CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
22 
24 
25 public:
26 
29 
30  HcalCellType::HcalCell cell(int det, int zside, int depth, int etaR,
31  int iphi) const;
32  std::vector<std::pair<double,double> > getConstHBHE(const int type) const;
33  int getDepthEta16(int i) const {return ((i==1) ? depthEta16[1] : depthEta16[0]);}
34  int getDepthEta29(int i) const {return ((i==1) ? depthEta29[1] : depthEta29[0]);}
35  std::pair<int,double> getDetEta(double eta, int depth);
36  int getEta(int det,int lay, double hetaR);
37  std::pair<int,int> getEtaDepth(int det, int etaR, int phi, int depth,
38  int lay);
39  double getEtaHO(double& etaR, double& x, double& y,
40  double& z) const;
41  std::pair<int,int> getiEtaRange(const int i) const {return std::pair<int,int>(hpar->etaMin[i],hpar->etaMax[i]);}
42  const std::vector<double> & getEtaTableHF() const {return hpar->etaTableHF;}
43  unsigned int findLayer(int layer, const std::vector<HcalParameters::LayerItem>& layerGroup) const;
44  const std::vector<double> & getGparHF() const {return hpar->gparHF;}
45  const std::vector<double> & getLayer0Wt() const {return hpar->Layer0Wt;}
46  int getMaxDepth(const int type) const {return maxDepth[type];}
47  std::pair<int,int> getModHalfHBHE(const int type) const;
48  std::pair<double,double> getPhiCons(int det, int ieta);
49  const std::vector<HcalDetId> & getIdHF2QIE() const {return idHF2QIE;}
50  const std::vector<double> & getPhiTableHF() const {return hpar->phitable;}
51  const std::vector<double> & getRTableHF() const {return hpar->rTable;}
52  std::vector<HcalCellType> HcalCellTypes() const;
53  std::vector<HcalCellType> HcalCellTypes(HcalSubdetector, int ieta=-1,
54  int depth=-1) const;
55  int maxHFDepth(int ieta, int iphi) const;
56  unsigned int numberOfCells(HcalSubdetector) const;
57  int phiNumber(int phi, int unit) const;
58  void printTiles() const;
59  int unitPhi(int det, int etaR) const;
60  int unitPhi(double dphi) const;
61 
62 private:
63  void initialize();
64  double deltaEta(int det, int eta, int depth) const;
65  double getEta(int det, int etaR, int zside, int depth=1) const;
66  double getEta(double r, double z) const;
67  int getShift(HcalSubdetector subdet, int depth) const;
68  double getGain (HcalSubdetector subdet, int depth) const;
69  void printTileHB(int eta, int depth) const;
70  void printTileHE(int eta, int depth) const;
71  unsigned int layerGroupSize( unsigned int eta ) const;
72  unsigned int layerGroup( unsigned int eta, unsigned int i ) const;
73 
75 
76  static const int nDepthMax=9;
77  std::vector<int> maxDepth; // Maximum depths in HB/HE/HF/HO
78  int nEta; // Number of bins in eta for HB and HE
79  int nR; // Number of bins in r
80  int nPhiF; // Number of bins in phitable
81  std::vector<int> depths[nDepthMax]; // Maximum layer number for a depth
82  int nDepth; // Number of bins in depth0
83  int nzHB, nmodHB; // Number of halves and modules in HB
84  int nzHE, nmodHE; // Number of halves and modules in HE
85  double etaHO[4], rminHO; // eta in HO ring boundaries
86  double zVcal; // Z-position of the front of HF
87  double dzVcal; // Half length of the HF
88  double dlShort; // Diference of length between long and short
89  int depthEta16[2]; // depth index of ieta=16 for HBmax, HEMin
90  int depthEta29[2]; // maximum depth index for ieta=29
91  std::vector<HcalDetId> idHF2QIE; // DetId's of HF modules with 2 QIE's
92 };
93 
94 #endif
std::pair< int, int > getEtaDepth(int det, int etaR, int phi, int depth, int lay)
type
Definition: HCALResponse.h:21
int i
Definition: DBlmapReader.cc:9
int unitPhi(int det, int etaR) const
void printTileHB(int eta, int depth) const
std::vector< int > maxDepth
int getEta(int det, int lay, double hetaR)
int getMaxDepth(const int type) const
int zside(DetId const &)
std::vector< std::pair< double, double > > getConstHBHE(const int type) const
HcalDDDSimConstants(const HcalParameters *hp)
std::vector< double > etaTableHF
unsigned int numberOfCells(HcalSubdetector) const
std::vector< int > etaMax
int getDepthEta16(int i) const
std::vector< int > depths[nDepthMax]
double getEtaHO(double &etaR, double &x, double &y, double &z) const
const std::vector< double > & getLayer0Wt() const
void printTileHE(int eta, int depth) const
const std::vector< double > & getRTableHF() const
string unit
Definition: csvLumiCalc.py:46
susybsm::HSCParticleRefProd hp
Definition: classes.h:27
int getShift(HcalSubdetector subdet, int depth) const
double getGain(HcalSubdetector subdet, int depth) const
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
unsigned int findLayer(int layer, const std::vector< HcalParameters::LayerItem > &layerGroup) const
const std::vector< double > & getGparHF() const
std::pair< int, double > getDetEta(double eta, int depth)
std::pair< double, double > getPhiCons(int det, int ieta)
int getDepthEta29(int i) const
std::vector< double > gparHF
double deltaEta(int det, int eta, int depth) const
std::vector< double > Layer0Wt
const std::vector< double > & getEtaTableHF() const
std::vector< double > rTable
std::vector< double > phitable
HcalCellType::HcalCell cell(int det, int zside, int depth, int etaR, int iphi) const
int phiNumber(int phi, int unit) const
std::pair< int, int > getiEtaRange(const int i) const
const std::vector< HcalDetId > & getIdHF2QIE() const
const HcalParameters * hpar
static const int nDepthMax
unsigned int layerGroup(unsigned int eta, unsigned int i) const
std::vector< int > etaMin
int maxHFDepth(int ieta, int iphi) const
unsigned int layerGroupSize(unsigned int eta) const