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  double getLayer0Wt(int det, int phi, int zside) const;
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  bool isBH() const {return isBH_;}
56  int maxHFDepth(int ieta, int iphi) const;
57  unsigned int numberOfCells(HcalSubdetector) const;
58  int phiNumber(int phi, int unit) const;
59  void printTiles() const;
60  int unitPhi(int det, int etaR) const;
61  int unitPhi(double dphi) const;
62 
63 private:
64  void initialize();
65  double deltaEta(int det, int eta, int depth) const;
66  double getEta(int det, int etaR, int zside, int depth=1) const;
67  double getEta(double r, double z) const;
68  int getShift(HcalSubdetector subdet, int depth) const;
69  double getGain (HcalSubdetector subdet, int depth) const;
70  void printTileHB(int eta, int depth) const;
71  void printTileHE(int eta, int depth) const;
72  unsigned int layerGroupSize( unsigned int eta ) const;
73  unsigned int layerGroup( unsigned int eta, unsigned int i ) const;
74 
76 
77  static const int nDepthMax=9;
78  std::vector<int> maxDepth; // Maximum depths in HB/HE/HF/HO
79  int nEta; // Number of bins in eta for HB and HE
80  int nR; // Number of bins in r
81  int nPhiF; // Number of bins in phitable
82  std::vector<int> depths[nDepthMax]; // Maximum layer number for a depth
83  int nDepth; // Number of bins in depth0
84  int nzHB, nmodHB; // Number of halves and modules in HB
85  int nzHE, nmodHE; // Number of halves and modules in HE
86  double etaHO[4], rminHO; // eta in HO ring boundaries
87  double zVcal; // Z-position of the front of HF
88  double dzVcal; // Half length of the HF
89  double dlShort; // Diference of length between long and short
90  int depthEta16[2]; // depth index of ieta=16 for HBmax, HEMin
91  int depthEta29[2]; // maximum depth index for ieta=29
92  bool isBH_; // if HE is BH
93  std::vector<HcalDetId> idHF2QIE; // DetId's of HF modules with 2 QIE's
94 };
95 
96 #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)
double getLayer0Wt(int det, int phi, int zside) const
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
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
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