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