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) const;
43  int getEta(const int& det, const int& lay, const double& hetaR) const;
44  std::pair<int,int> getEtaDepth(const int& det, int etaR,
45  const int& phi, const int& zside,
46  int depth, const int& lay) const;
47  double getEtaHO(const double& etaR, const double& x,
48  const double& y, const double& z) const;
49  std::pair<int,int> getiEtaRange(const int& i) const {return std::pair<int,int>(hpar->etaMin[i],hpar->etaMax[i]);}
50  const std::vector<double> & getEtaTableHF() const {return hpar->etaTableHF;}
51  const std::vector<double> & getGparHF() const {return hpar->gparHF;}
52  const std::vector<HcalDetId> & getIdHF2QIE() const {return idHF2QIE;}
53  double getLayer0Wt(const int& det, const int& phi,
54  const int& zside) const;
55  int getFrontLayer(const int& det, const int& eta) const;
56  int getLastLayer(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  const 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  const 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(const 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(const 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 
91  static const int nDepthMax=9;
92  static const int maxLayer_=18;
93  static const int maxLayerHB_=16;
94 
95  void initialize();
96  double deltaEta(const int& det, const int& eta, const int& depth) const;
97  double getEta(const int& det, const int& etaR,
98  const int& zside, int depth=1) const;
99  double getEta(const double& r, const double& z) const;
100  int getShift(const HcalSubdetector& subdet, const int& depth) const;
101  double getGain (const HcalSubdetector& subdet, const int& depth) const;
102  void printTileHB(const int& eta, const int& phi,
103  const int& zside, const int& depth) const;
104  void printTileHE(const int& eta, const int& phi,
105  const int& zside, const int& depth) const;
106  unsigned int layerGroupSize(int eta) const;
107  unsigned int layerGroup(int eta, int i) const;
108  unsigned int layerGroup(int det, int eta,
109  int phi, int zside,
110  int i) const;
111 
114 
115  std::vector<int> maxDepth; // Maximum depths in HB/HE/HF/HO
116  int nEta; // Number of bins in eta for HB and HE
117  int nR; // Number of bins in r
118  int nPhiF; // Number of bins in phitable
119  std::vector<int> depths[nDepthMax]; // Maximum layer number for a depth
120  int nDepth; // Number of bins in depth0
121  int nzHB, nmodHB; // Number of halves and modules in HB
122  int nzHE, nmodHE; // Number of halves and modules in HE
123  double etaHO[4], rminHO; // eta in HO ring boundaries
124  double zVcal; // Z-position of the front of HF
125  double dzVcal; // Half length of the HF
126  double dlShort; // Diference of length between long and short
127  int depthEta16[2]; // depth index of ieta=16 for HBmax, HEMin
128  int depthEta29[2]; // maximum depth index for ieta=29
129  int layFHB[2]; // first layers in HB (normal, special 16)
130  int layFHE[3]; // first layers in HE (normal, special 16, 18)
131  int layBHB[3]; // last layers in HB (normal, special 15, 16)
132  int layBHE[4]; // last layers in HE (normal, special 16, 17, 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
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_
std::pair< int, double > getDetEta(const double &eta, const int &depth) const
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
int zside(DetId 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
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::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
int getEta(const int &det, const int &lay, const double &hetaR) const
double deltaEta(const int &det, const int &eta, const int &depth) const
std::vector< double > rTable
std::vector< double > phitable
std::pair< int, int > getEtaDepth(const int &det, int etaR, const int &phi, const int &zside, int depth, const int &lay) const
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