CMS 3D CMS Logo

HcalDDDSimConstants.h
Go to the documentation of this file.
1 #ifndef Geometry_HcalTowerAlgo_HcalDDDSimConstants_h
2 #define Geometry_HcalTowerAlgo_HcalDDDSimConstants_h
3 
13 #include<string>
14 #include<vector>
15 #include<iostream>
16 #include<iomanip>
17 
23 
25 
26 public:
27 
30 
31  HcalCellType::HcalCell cell(const int& det, const int& zside, const int& depth,
32  const int& etaR, const int& iphi) const;
33  int findDepth(const int& det, const int& eta, const int& phi,
34  const int& zside, const int& lay) const;
35  unsigned int findLayer(const int& layer, const std::vector<HcalParameters::LayerItem>& layerGroup) const;
36  std::vector<std::pair<double,double> > getConstHBHE(const int& type) const;
37  int getDepthEta16(const int& det, const int& phi,
38  const int& zside) const;
39  int getDepthEta16M(const int& det) const;
40  int getDepthEta29(const int& phi, const int& zside, const int& i) const;
41  int getDepthEta29M(const int& i, const bool& planOne) const;
42  std::pair<int,double> getDetEta(const double& eta, const int& depth);
43  int getEta(const int& det, const int& lay, const double& hetaR);
44  std::pair<int,int> getEtaDepth(const int& det, int etaR, const int& phi,
45  const int& zside, int depth, const int& lay);
46  double getEtaHO(const double& etaR, const double& x, const double& y,
47  const double& z) const;
48  std::pair<int,int> getiEtaRange(const int& i) const {return std::pair<int,int>(hpar->etaMin[i],hpar->etaMax[i]);}
49  const std::vector<double> & getEtaTableHF() const {return hpar->etaTableHF;}
50  const std::vector<double> & getGparHF() const {return hpar->gparHF;}
51  const std::vector<HcalDetId> & getIdHF2QIE() const {return idHF2QIE;}
52  double getLayer0Wt(const int& det, const int& phi,
53  const int& zside) const;
54  int getFrontLayer(const int& det, const int& eta) const;
55  int getLastLayer(const int& det, const int& eta) const;
56  int getLayerFront(const int& det, const int& eta,
57  const int& phi, const int& zside,
58  const int& depth) const;
59  int getLayerBack(const int& det, const int& eta,
60  const int& phi, const int& zside,
61  const int& depth) const;
62  int getLayerMax(const int& eta, const int& depth) const;
63  int getMaxDepth(const int& type) const {return maxDepth[type];}
64  int getMaxDepth(const int& det, const int& eta,
65  const int& phi, const int& zside,
66  const bool& partialOnly) const;
67  std::pair<int,int> getMaxDepthDet(const int& i) const {return ((i==1) ? depthMaxDf_ : depthMaxSp_);}
68  int getMinDepth(const int& det, const int& eta,
69  const int& phi, const int& zside,
70  const bool& partialOnly) const;
71  std::pair<int,int> getModHalfHBHE(const int& type) const;
72  std::pair<double,double> getPhiCons(const int& det, const int& ieta) const;
73  std::vector<std::pair<int,double> > getPhis(const int& subdet, const int& ieta) const;
74  const std::vector<double> & getPhiTableHF() const {return hpar->phitable;}
75  const std::vector<double> & getRTableHF() const {return hpar->rTable;}
76  std::vector<HcalCellType> HcalCellTypes() const;
77  std::vector<HcalCellType> HcalCellTypes(const HcalSubdetector&, int ieta=-1,
78  int depth=-1) const;
79  bool isBH() const {return isBH_;}
80  const HcalLayerDepthMap* ldMap() const {return &ldmap_;}
81  int maxHFDepth(const int& ieta, const int& iphi) const;
82  unsigned int numberOfCells(const HcalSubdetector&) const;
83  int phiNumber(const int& phi, const int& unit) const;
84  void printTiles() const;
85  int unitPhi(const int& det, const int& etaR) const;
86  int unitPhi(const double& dphi) const;
87 
88 private:
89 
90  static const int nDepthMax=9;
91  static const int maxLayer_=18;
92  static const int maxLayerHB_=16;
93 
94  void initialize();
95  double deltaEta(const int& det, const int& eta, const int& depth) const;
96  double getEta(const int& det, const int& etaR,
97  const int& zside, int depth=1) const;
98  double getEta(const double& r, const double& z) const;
99  int getShift(const HcalSubdetector& subdet, const int& depth) const;
100  double getGain (const HcalSubdetector& subdet, const int& depth) const;
101  void printTileHB(const int& eta, const int& phi,
102  const int& zside, const int& depth) const;
103  void printTileHE(const int& eta, const int& phi,
104  const int& zside, const int& depth) const;
105  unsigned int layerGroupSize(int eta) const;
106  unsigned int layerGroup(int eta, int i) const;
107  unsigned int layerGroup(int det, int eta,
108  int phi, int zside,
109  int i) const;
110 
113 
114  std::vector<int> maxDepth; // Maximum depths in HB/HE/HF/HO
115  int nEta; // Number of bins in eta for HB and HE
116  int nR; // Number of bins in r
117  int nPhiF; // Number of bins in phitable
118  std::vector<int> depths[nDepthMax]; // Maximum layer number for a depth
119  int nDepth; // Number of bins in depth0
120  int nzHB, nmodHB; // Number of halves and modules in HB
121  int nzHE, nmodHE; // Number of halves and modules in HE
122  double etaHO[4], rminHO; // eta in HO ring boundaries
123  double zVcal; // Z-position of the front of HF
124  double dzVcal; // Half length of the HF
125  double dlShort; // Diference of length between long and short
126  int depthEta16[2]; // depth index of ieta=16 for HBmax, HEMin
127  int depthEta29[2]; // maximum depth index for ieta=29
128  int layFHB[2]; // first layers in HB (normal, special 16)
129  int layFHE[3]; // first layers in HE (normal, special 16, 18)
130  int layBHB[3]; // last layers in HB (normal, special 15, 16)
131  int layBHE[4]; // last layers in HE (normal, special 16, 17, 18)
132  bool isBH_; // if HE is BH
133  std::vector<HcalDetId> idHF2QIE; // DetId's of HF modules with 2 QIE's
134  std::pair<int,int> depthMaxDf_, depthMaxSp_; // (subdet,maximum depth) default,special
135 };
136 
137 #endif
type
Definition: HCALResponse.h:21
unsigned int layerGroupSize(int eta) const
int findDepth(const int &det, const int &eta, const int &phi, const int &zside, const int &lay) const
unsigned int layerGroup(int eta, int i) const
std::vector< int > maxDepth
int getFrontLayer(const int &det, const int &eta) const
static const int maxLayer_
int getLayerFront(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
int getMinDepth(const int &det, const int &eta, const int &phi, const int &zside, const bool &partialOnly) const
int phiNumber(const int &phi, const int &unit) const
void printTileHB(const int &eta, const int &phi, const int &zside, const int &depth) const
HcalDDDSimConstants(const HcalParameters *hp)
HcalCellType::HcalCell cell(const int &det, const int &zside, const int &depth, const int &etaR, const int &iphi) const
double getEtaHO(const double &etaR, const double &x, const double &y, const double &z) const
std::vector< double > etaTableHF
int getShift(const HcalSubdetector &subdet, const int &depth) const
std::vector< int > etaMax
std::vector< int > depths[nDepthMax]
std::vector< std::pair< double, double > > getConstHBHE(const int &type) const
std::pair< int, int > getiEtaRange(const int &i) const
int getMaxDepth(const int &type) const
const std::vector< double > & getRTableHF() const
int getDepthEta29(const int &phi, const int &zside, const int &i) const
int unitPhi(const int &det, const int &etaR) const
std::pair< int, int > depthMaxDf_
susybsm::HSCParticleRefProd hp
Definition: classes.h:27
unsigned int findLayer(const int &layer, const std::vector< HcalParameters::LayerItem > &layerGroup) const
const std::vector< double > & getPhiTableHF() const
HcalSubdetector
Definition: HcalAssistant.h:31
std::vector< HcalCellType > HcalCellTypes() const
int getLayerMax(const int &eta, const int &depth) const
std::vector< HcalDetId > idHF2QIE
std::pair< int, int > getEtaDepth(const int &det, int etaR, const int &phi, const int &zside, int depth, const int &lay)
int getLastLayer(const int &det, const int &eta) const
unsigned int numberOfCells(const HcalSubdetector &) const
double getLayer0Wt(const int &det, const int &phi, const int &zside) const
int getDepthEta16M(const int &det) const
int getDepthEta29M(const int &i, const bool &planOne) const
const std::vector< double > & getGparHF() const
std::pair< int, double > getDetEta(const double &eta, const int &depth)
std::vector< double > gparHF
std::pair< int, int > getModHalfHBHE(const int &type) const
int getLayerBack(const int &det, const int &eta, const int &phi, const int &zside, const int &depth) const
const std::vector< double > & getEtaTableHF() const
double deltaEta(const int &det, const int &eta, const int &depth) const
std::vector< double > rTable
std::vector< double > phitable
int getEta(const int &det, const int &lay, const double &hetaR)
std::pair< int, int > depthMaxSp_
std::pair< int, int > getMaxDepthDet(const int &i) const
const std::vector< HcalDetId > & getIdHF2QIE() const
const HcalParameters * hpar
int maxHFDepth(const int &ieta, const int &iphi) const
static const int nDepthMax
void printTileHE(const int &eta, const int &phi, const int &zside, const int &depth) const
std::pair< double, double > getPhiCons(const int &det, const int &ieta) const
static const int maxLayerHB_
double getGain(const HcalSubdetector &subdet, const int &depth) const
std::vector< std::pair< int, double > > getPhis(const int &subdet, const int &ieta) const
std::vector< int > etaMin
HcalLayerDepthMap ldmap_
int getDepthEta16(const int &det, const int &phi, const int &zside) const
const HcalLayerDepthMap * ldMap() const