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 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  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  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(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(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  void initialize();
90  double deltaEta(const int det, const int eta,
91  const int depth) const;
92  double getEta(const int det, const int etaR,
93  const int zside, const int depth=1) const;
94  double getEta(const double r, const double z) const;
95  int getShift(const HcalSubdetector subdet,
96  const int depth) const;
97  double getGain (const HcalSubdetector subdet,
98  const int depth) const;
99  void printTileHB(const int eta, const int phi,
100  const int zside, const int depth) const;
101  void printTileHE(const int eta, const int phi,
102  const int zside, const int depth) const;
103  unsigned int layerGroupSize(const int eta) const;
104  unsigned int layerGroup(const int eta, const int i) const;
105  unsigned int layerGroup(const int det, const int eta,
106  const int phi, const int zside,
107  const int i) const;
108 
111 
112  static const int nDepthMax=9;
113  static const int maxLayer_=18;
114  static const int maxLayerHB_=16;
115 
116  std::vector<int> maxDepth; // Maximum depths in HB/HE/HF/HO
117  int nEta; // Number of bins in eta for HB and HE
118  int nR; // Number of bins in r
119  int nPhiF; // Number of bins in phitable
120  std::vector<int> depths[nDepthMax]; // Maximum layer number for a depth
121  int nDepth; // Number of bins in depth0
122  int nzHB, nmodHB; // Number of halves and modules in HB
123  int nzHE, nmodHE; // Number of halves and modules in HE
124  double etaHO[4], rminHO; // eta in HO ring boundaries
125  double zVcal; // Z-position of the front of HF
126  double dzVcal; // Half length of the HF
127  double dlShort; // Diference of length between long and short
128  int depthEta16[2]; // depth index of ieta=16 for HBmax, HEMin
129  int depthEta29[2]; // maximum depth index for ieta=29
130  bool isBH_; // if HE is BH
131  std::vector<HcalDetId> idHF2QIE; // DetId's of HF modules with 2 QIE's
132  std::pair<int,int> depthMaxDf_, depthMaxSp_; // (subdet,maximum depth) default,special
133 };
134 
135 #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
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