8 #include "Math/Interpolator.h"
11 : theEBthreshold(-1000.),
12 theEEthreshold(-1000.),
14 theUseEtEBTresholdFlag(
false),
15 theUseEtEETresholdFlag(
false),
16 theUseSymEBTresholdFlag(
false),
17 theUseSymEETresholdFlag(
false),
20 theHcalThreshold(-1000.),
21 theHBthreshold(-1000.),
22 theHESthreshold(-1000.),
23 theHEDthreshold(-1000.),
24 theHOthreshold0(-1000.),
25 theHOthresholdPlus1(-1000.),
26 theHOthresholdMinus1(-1000.),
27 theHOthresholdPlus2(-1000.),
28 theHOthresholdMinus2(-1000.),
29 theHF1threshold(-1000.),
30 theHF2threshold(-1000.),
31 theEBGrid(std::vector<double>(5,10.)),
32 theEBWeights(std::vector<double>(5,1.)),
33 theEEGrid(std::vector<double>(5,10.)),
34 theEEWeights(std::vector<double>(5,1.)),
35 theHBGrid(std::vector<double>(5,10.)),
36 theHBWeights(std::vector<double>(5,1.)),
37 theHESGrid(std::vector<double>(5,10.)),
38 theHESWeights(std::vector<double>(5,1.)),
39 theHEDGrid(std::vector<double>(5,10.)),
40 theHEDWeights(std::vector<double>(5,1.)),
41 theHOGrid(std::vector<double>(5,10.)),
42 theHOWeights(std::vector<double>(5,1.)),
43 theHF1Grid(std::vector<double>(5,10.)),
44 theHF1Weights(std::vector<double>(5,1.)),
45 theHF2Grid(std::vector<double>(5,10.)),
46 theHF2Weights(std::vector<double>(5,1.)),
56 theEBSumThreshold(-1000.),
57 theEESumThreshold(-1000.),
60 theTowerConstituentsMap(0),
63 theMomConstrMethod(0),
75 bool useSymEBTreshold,
76 bool useSymEETreshold,
79 double HBthreshold,
double HESthreshold,
double HEDthreshold,
80 double HOthreshold0,
double HOthresholdPlus1,
double HOthresholdMinus1,
81 double HOthresholdPlus2,
double HOthresholdMinus2,
82 double HF1threshold,
double HF2threshold,
83 double EBweight,
double EEweight,
84 double HBweight,
double HESweight,
double HEDweight,
85 double HOweight,
double HF1weight,
double HF2weight,
86 double EcutTower,
double EBSumThreshold,
double EESumThreshold,
95 : theEBthreshold(EBthreshold),
96 theEEthreshold(EEthreshold),
98 theUseEtEBTresholdFlag(useEtEBTreshold),
99 theUseEtEETresholdFlag(useEtEETreshold),
100 theUseSymEBTresholdFlag(useSymEBTreshold),
101 theUseSymEETresholdFlag(useSymEETreshold),
103 theHcalThreshold(HcalThreshold),
104 theHBthreshold(HBthreshold),
105 theHESthreshold(HESthreshold),
106 theHEDthreshold(HEDthreshold),
107 theHOthreshold0(HOthreshold0),
108 theHOthresholdPlus1(HOthresholdPlus1),
109 theHOthresholdMinus1(HOthresholdMinus1),
110 theHOthresholdPlus2(HOthresholdPlus2),
111 theHOthresholdMinus2(HOthresholdMinus2),
112 theHF1threshold(HF1threshold),
113 theHF2threshold(HF2threshold),
114 theEBGrid(std::vector<double>(5,10.)),
115 theEBWeights(std::vector<double>(5,1.)),
116 theEEGrid(std::vector<double>(5,10.)),
117 theEEWeights(std::vector<double>(5,1.)),
118 theHBGrid(std::vector<double>(5,10.)),
119 theHBWeights(std::vector<double>(5,1.)),
120 theHESGrid(std::vector<double>(5,10.)),
121 theHESWeights(std::vector<double>(5,1.)),
122 theHEDGrid(std::vector<double>(5,10.)),
123 theHEDWeights(std::vector<double>(5,1.)),
124 theHOGrid(std::vector<double>(5,10.)),
125 theHOWeights(std::vector<double>(5,1.)),
126 theHF1Grid(std::vector<double>(5,10.)),
127 theHF1Weights(std::vector<double>(5,1.)),
128 theHF2Grid(std::vector<double>(5,10.)),
129 theHF2Weights(std::vector<double>(5,1.)),
130 theEBweight(EBweight),
131 theEEweight(EEweight),
132 theHBweight(HBweight),
133 theHESweight(HESweight),
134 theHEDweight(HEDweight),
135 theHOweight(HOweight),
136 theHF1weight(HF1weight),
137 theHF2weight(HF2weight),
138 theEcutTower(EcutTower),
139 theEBSumThreshold(EBSumThreshold),
140 theEESumThreshold(EESumThreshold),
143 theMomConstrMethod(momConstrMethod),
144 theMomHBDepth(momHBDepth),
145 theMomHEDepth(momHEDepth),
146 theMomEBDepth(momEBDepth),
147 theMomEEDepth(momEEDepth)
153 bool useEtEBTreshold,
154 bool useEtEETreshold,
155 bool useSymEBTreshold,
156 bool useSymEETreshold,
158 double HcalThreshold,
159 double HBthreshold,
double HESthreshold,
double HEDthreshold,
160 double HOthreshold0,
double HOthresholdPlus1,
double HOthresholdMinus1,
161 double HOthresholdPlus2,
double HOthresholdMinus2,
162 double HF1threshold,
double HF2threshold,
163 const std::vector<double> & EBGrid,
const std::vector<double> & EBWeights,
164 const std::vector<double> & EEGrid,
const std::vector<double> & EEWeights,
165 const std::vector<double> & HBGrid,
const std::vector<double> & HBWeights,
166 const std::vector<double> & HESGrid,
const std::vector<double> & HESWeights,
167 const std::vector<double> & HEDGrid,
const std::vector<double> & HEDWeights,
168 const std::vector<double> & HOGrid,
const std::vector<double> & HOWeights,
169 const std::vector<double> & HF1Grid,
const std::vector<double> & HF1Weights,
170 const std::vector<double> & HF2Grid,
const std::vector<double> & HF2Weights,
171 double EBweight,
double EEweight,
172 double HBweight,
double HESweight,
double HEDweight,
173 double HOweight,
double HF1weight,
double HF2weight,
174 double EcutTower,
double EBSumThreshold,
double EESumThreshold,
183 : theEBthreshold(EBthreshold),
184 theEEthreshold(EEthreshold),
186 theUseEtEBTresholdFlag(useEtEBTreshold),
187 theUseEtEETresholdFlag(useEtEETreshold),
188 theUseSymEBTresholdFlag(useSymEBTreshold),
189 theUseSymEETresholdFlag(useSymEETreshold),
191 theHcalThreshold(HcalThreshold),
192 theHBthreshold(HBthreshold),
193 theHESthreshold(HESthreshold),
194 theHEDthreshold(HEDthreshold),
195 theHOthreshold0(HOthreshold0),
196 theHOthresholdPlus1(HOthresholdPlus1),
197 theHOthresholdMinus1(HOthresholdMinus1),
198 theHOthresholdPlus2(HOthresholdPlus2),
199 theHOthresholdMinus2(HOthresholdMinus2),
200 theHF1threshold(HF1threshold),
201 theHF2threshold(HF2threshold),
203 theEBWeights(EBWeights),
205 theEEWeights(EEWeights),
207 theHBWeights(HBWeights),
209 theHESWeights(HESWeights),
211 theHEDWeights(HEDWeights),
213 theHOWeights(HOWeights),
215 theHF1Weights(HF1Weights),
217 theHF2Weights(HF2Weights),
218 theEBweight(EBweight),
219 theEEweight(EEweight),
220 theHBweight(HBweight),
221 theHESweight(HESweight),
222 theHEDweight(HEDweight),
223 theHOweight(HOweight),
224 theHF1weight(HF1weight),
225 theHF2weight(HF2weight),
226 theEcutTower(EcutTower),
227 theEBSumThreshold(EBSumThreshold),
228 theEESumThreshold(EESumThreshold),
231 theMomConstrMethod(momConstrMethod),
232 theMomHBDepth(momHBDepth),
233 theMomHEDepth(momHEDepth),
234 theMomEBDepth(momEBDepth),
235 theMomEEDepth(momEEDepth)
255 hbheItr != hbhe.
end(); ++hbheItr)
261 hoItr != ho.
end(); ++hoItr)
267 hfItr != hf.
end(); ++hfItr)
273 ecItr != ec.
end(); ++ecItr)
283 ctcItr != ctc.
end(); ++ctcItr) {
292 for(MetaTowerMap::const_iterator mapItr =
theTowerMap.begin();
297 if ( (mapItr->second).metaConstituents.empty() )
continue;
298 convert(mapItr->first, mapItr->second, result);
307 ctcItr != ctc.
end(); ++ctcItr) {
310 double newE_em = ctcItr->emEnergy();
311 double newE_had = ctcItr->hadEnergy();
312 double newE_outer = ctcItr->outerEnergy();
318 if (ctcItr->ietaAbs()>=30) {
319 double E_short = 0.5 * newE_had;
320 double E_long = newE_em + 0.5 * newE_had;
325 newE_em = E_long - E_short;
326 newE_had = 2.0 * E_short;
332 for (
unsigned int iConst = 0; iConst < ctcItr->constituentsSize(); ++iConst) {
333 DetId constId = ctcItr->constituent(iConst);
340 for (
unsigned int iConst = 0; iConst < ctcItr->constituentsSize(); ++iConst) {
341 DetId constId = ctcItr->constituent(iConst);
349 for (
unsigned int iConst = 0; iConst < ctcItr->constituentsSize(); ++iConst) {
350 DetId constId = ctcItr->constituent(iConst);
355 if (ctcItr->ietaAbs()>16) newE_outer *= weight;
363 double newE_hadTot = (
theHOIsUsed && twrId.
ietaAbs()<16)? newE_had+newE_outer : newE_had;
368 double f_em = 1.0/cosh(emPoint.
eta());
369 double f_had = 1.0/cosh(hadPoint.
eta());
373 if (ctcItr->ietaAbs()<30) {
378 double newE_tot = newE_em + newE_had;
385 CaloTower rescaledTower(twrId, newE_em, newE_had, newE_outer, -1, -1, towerP4, emPoint, hadPoint);
387 rescaledTower.
setEcalTime(
int(ctcItr->ecalTime()*100.0 + 0.5) );
388 rescaledTower.
setHcalTime(
int(ctcItr->hcalTime()*100.0 + 0.5) );
391 for (
unsigned int iConst = 0; iConst < ctcItr->constituentsSize(); ++iConst) {
392 contains.push_back(ctcItr->constituent(iConst));
437 if (towerDetId.
null())
return;
443 tower29.numBadHcalCells += 1;
446 else if (0.5*energy >= threshold) {
449 if (towerDetId.
null())
return;
457 tower29.numRecHcalCells += 1;
461 tower29.numProbHcalCells += 1;
465 double e28 = 0.5 *
e;
466 double e29 = 0.5 *
e;
468 tower28.
E_had += e28;
470 std::pair<DetId,double> mc(detId,e28);
473 tower29.E_had += e29;
475 tower29.metaConstituents.push_back(mc);
483 tower29.hadSumTimeTimesE += ( e29 * recHit->
time() );
484 tower29.hadSumEForTime += e29;
489 tower29.E_outer += e29;
507 bool passEmThreshold =
false;
512 else passEmThreshold = (energy >=
threshold);
518 else passEmThreshold = (energy >=
threshold);
525 if (towerDetId.
null())
return;
546 std::pair<DetId,double> mc(detId,e);
561 if (towerDetId.
null())
return;
568 else if (energy >= threshold) {
584 std::pair<DetId,double> mc(detId,e);
596 if (towerDetId.
null())
return;
601 else if (energy >= threshold) {
603 if (towerDetId.
null())
return;
606 if (hcalDetId.
depth() == 1) {
630 std::pair<DetId,double> mc(detId,e);
641 if (towerDetId.
null())
return;
645 else if (energy >= threshold) {
647 if (towerDetId.
null())
return;
675 std::pair<DetId,double> mc(detId,e);
698 if (towerDetId.
null())
return;
728 std::pair<DetId, double> mc(detId, 0);
740 E(0),E_em(0),E_had(0),E_outer(0), emSumTimeTimesE(0), hadSumTimeTimesE(0), emSumEForTime(0), hadSumEForTime(0),
741 numBadEcalCells(0), numRecEcalCells(0), numProbEcalCells(0), numBadHcalCells(0), numRecHcalCells(0), numProbHcalCells(0) { }
745 MetaTowerMap::iterator itr =
theTowerMap.lower_bound(detId);
754 itr =
theTowerMap.insert(itr, std::pair<CaloTowerDetId,CaloTowersCreationAlgo::MetaTower>(detId,
MetaTower()));
766 double E_had=mt.
E_had;
777 if (
id.ietaAbs()<=29 && E_em<ecalThres) {
780 std::vector<std::pair<DetId,double> > metaContains_noecal;
782 for (std::vector<std::pair<DetId,double> >::iterator
i=metaContains.begin();
i!=metaContains.end(); ++
i)
783 if (
i->first.det()!=
DetId::Ecal) metaContains_noecal.push_back(*
i);
784 metaContains.swap(metaContains_noecal);
793 std::vector<std::pair<DetId,double> > metaContains_nohcal;
795 for (std::vector<std::pair<DetId,double> >::iterator
i=metaContains.begin();
i!=metaContains.end(); ++
i)
796 if (
i->first.det()!=
DetId::Hcal) metaContains_nohcal.push_back(*
i);
797 metaContains.swap(metaContains_nohcal);
800 if(metaContains.empty())
return;
802 double E_had_tot = (
theHOIsUsed &&
id.ietaAbs()<16)? E_had+E_outer : E_had;
815 double momEmDepth = 0.;
816 double momHadDepth = 0.;
817 if (
id.ietaAbs()<=17) {
832 double pf=1.0/cosh(p.
eta());
842 if (
id.ietaAbs()<=29) {
844 emPoint =
emShwrPos(metaContains, momEmDepth, E_em);
845 double emPf = 1.0/cosh(emPoint.
eta());
848 if ( (E_had + E_outer) >0) {
850 double hadPf = 1.0/cosh(hadPoint.
eta());
859 double pf=1.0/cosh(p.
eta());
869 if (
id.ietaAbs()<=29) {
873 double sumPf = 1.0/cosh(emPoint.
eta());
880 double pf=1.0/cosh(p.
eta());
891 CaloTower caloTower(
id, E_em, E_had, E_outer, -1, -1, towerP4, emPoint, hadPoint);
906 unsigned int numBadEcalChan = 0;
915 if (dropChItr !=
hcalDropChMap.end()) numBadHcalChan += dropChItr->second;
923 for (std::vector<DetId>::iterator ac_it=allConstituents.begin();
924 ac_it!=allConstituents.end(); ++ac_it) {
928 int thisEcalSevLvl = -999;
949 numRecHcalChan, numRecEcalChan,
950 numProbHcalChan, numProbEcalChan);
952 double maxCellE = -999.0;
955 contains.reserve(metaContains.size());
956 for (std::vector<std::pair<DetId,double> >::iterator
i=metaContains.begin();
i!=metaContains.end(); ++
i) {
958 contains.push_back(
i->first);
960 if (maxCellE < i->
second) {
968 maxCellE =
i->second;
972 maxCellE =
i->second;
1050 else if(hcalDetId.
ieta() < 0) {
1065 if(hcalDetId.
depth() == 1) {
1083 edm::LogError(
"CaloTowersCreationAlgo") <<
"Bad cell: " << det << std::endl;
1132 if (fracDepth<0) fracDepth=0;
1133 else if (fracDepth>1) fracDepth=1;
1135 if (fracDepth>0.0) {
1138 0.25*( cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y() ),
1139 0.25*( cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z() ) );
1140 point += fracDepth * (backPoint-
point);
1150 if (fracDepth<0) fracDepth=0;
1151 else if (fracDepth>1) fracDepth=1;
1153 if (fracDepth>0.0) {
1156 0.25*( cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y() ),
1157 0.25*( cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z() ) );
1158 point += fracDepth * (backPoint-
point);
1166 float fracDepth,
double hadE) {
1178 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1179 for (; mc_it!=metaContains.end(); ++mc_it) {
1194 return GlobalPoint(hadX/nConst, hadY/nConst, hadZ/nConst);
1205 if (fracDepth < 0) fracDepth = 0;
1206 else if (fracDepth > 1) fracDepth = 1;
1210 int iEta = towerId.
ieta();
1211 int iPhi = towerId.
iphi();
1215 if (towerId.
ietaAbs() <= 14) {
1220 else if (towerId.
ietaAbs() == 15) {
1225 else if (towerId.
ietaAbs() == 16) {
1230 else if (towerId.
ietaAbs() == 17) {
1240 else if (towerId.
ietaAbs() <= 29) {
1244 if (iEta == 29) iEta = 28;
1245 if (iEta == -29) iEta = -28;
1248 else if (towerId.
ietaAbs() >= 30) {
1276 0.25 * (cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y()),
1277 0.25 * (cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z()));
1279 point += fracDepth * (backPoint -
point);
1286 float fracDepth,
double emE) {
1296 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1297 for (; mc_it!=metaContains.end(); ++mc_it) {
1300 double e = mc_it->second;
1316 float fracDepth,
double emE) {
1323 double sumWeights = 0;
1325 double crystalThresh = 0.015 * emE;
1327 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1328 for (; mc_it!=metaContains.end(); ++mc_it) {
1329 if (mc_it->second < 0)
continue;
1330 if (mc_it->first.det() ==
DetId::Ecal && mc_it->second > crystalThresh) sumEmE += mc_it->second;
1333 for (mc_it = metaContains.begin(); mc_it!=metaContains.end(); ++mc_it) {
1335 if (mc_it->first.det() !=
DetId::Ecal || mc_it->second < crystalThresh)
continue;
1339 weight = 4.2 +
log(mc_it->second/sumEmE);
1347 return GlobalPoint(emX/sumWeights, emY/sumWeights, emZ/sumWeights);
1356 const float timeUnit = 0.01;
1358 if (time> 300.0)
return 30000;
1359 if (time< -300.0)
return -30000;
1361 return int(time/timeUnit + 0.5);
1382 for (std::vector<DetId>::iterator it = allChanInStatusCont.begin(); it!=allChanInStatusCont.end(); ++it) {
1416 const uint32_t recHitFlag = hit->
flags();
std::vector< double > theHBGrid
virtual double energy() const GCC11_FINAL
energy
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
bool theUseEtEETresholdFlag
const HcalChannelQuality * theHcalChStatus
size_t constituentsSize() const
bool contains(EventRange const &lh, EventID const &rh)
HcalSubdetector subdet() const
get the subdetector
int ietaAbs() const
get the absolute value of the tower ieta
const DetId & detid() const
DetId constituent(size_t i) const
void setHF1EScale(double scale)
void setCaloTowerStatus(unsigned int numBadHcalChan, unsigned int numBadEcalChan, unsigned int numRecHcalChan, unsigned int numRecEcalChan, unsigned int numProbHcalChan, unsigned int numProbEcalChan)
std::vector< double > theHESGrid
std::vector< double > theHEDGrid
GlobalPoint emCrystalShwrPos(DetId detId, float fracDepth)
std::vector< int > theEcalSeveritiesToBeUsedInBadTowers
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
std::vector< HBHERecHit >::const_iterator const_iterator
void push_back(T const &t)
void setHF2EScale(double scale)
void finish(CaloTowerCollection &destCollection)
const Item * getValues(DetId fId, bool throwOnFail=true) const
edm::Handle< EcalRecHitCollection > theEeHandle
std::vector< double > theHOWeights
MetaTower & find(const CaloTowerDetId &id)
looks for a given tower in the internal cache. If it can't find it, it makes it.
std::vector< double > theEEGrid
void rescale(const CaloTower *ct)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
unsigned int ecalChanStatusForCaloTower(const CaloRecHit *hit)
GlobalPoint emShwrPos(const std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double totEmE)
void setHottestCellE(double e)
void setHBEScale(double scale)
virtual const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
std::vector< DetId > constituentsOf(const CaloTowerDetId &id) const
Get the constituent detids for this tower id ( not yet implemented )
std::vector< double > theEEWeights
std::vector< double > theHESWeights
U second(std::pair< T, U > const &p)
unsigned towerId(const DetId &)
const CaloSubdetectorGeometry * theTowerGeometry
int depth() const
get the tower depth
void addConstituents(const std::vector< DetId > &ids)
unsigned int hcalChanStatusForCaloTower(const CaloRecHit *hit)
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
std::vector< double > theHF2Grid
std::vector< double > theHEDWeights
unsigned int useRejectedRecoveredEcalHits
void rescaleTowers(const CaloTowerCollection &ctInput, CaloTowerCollection &ctResult)
static const int SubdetId
std::vector< DetId > getAllChannels() const
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
const CaloGeometry * theGeometry
int ieta() const
get the cell ieta
int iphi() const
get the tower iphi
std::vector< double > theHOGrid
bool dropChannel(const uint32_t &mystatus) const
const CaloTowerConstituentsMap * theTowerConstituentsMap
double theHOthresholdPlus1
void convert(const CaloTowerDetId &id, const MetaTower &mt, CaloTowerCollection &collection)
std::vector< double > theHF1Weights
int firstHEDoublePhiRing() const
GlobalPoint hadSegmentShwrPos(DetId detId, float fracDepth)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool theRecoveredHcalHitsAreUsed
bool theHOIsUsed
only affects energy and ET calculation. HO is still recorded in the tower
void process(const HBHERecHitCollection &hbhe)
int ietaAbs() const
get the absolute value of the cell ieta
unsigned int useRejectedRecoveredHcalHits
const_iterator end() const
double theHOthresholdMinus2
std::vector< double > theHBWeights
const HcalSeverityLevelComputer * theHcalSevLvlComputer
void setHESEScale(double scale)
void setHEDEScale(double scale)
bool theUseSymEBTresholdFlag
void setEEEScale(double scale)
CaloTowerDetId id() const
int compactTime(float time)
GlobalPoint hadShwPosFromCells(DetId frontCell, DetId backCell, float fracDepth)
bool null() const
is this a null id ?
int zside() const
get the z-side of the tower (1/-1)
void getThresholdAndWeight(const DetId &detId, double &threshold, double &weight) const
helper method to look up the appropriate threshold & weight
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
const HcalTopology * theHcalTopology
std::vector< int > theEcalSeveritiesToBeExcluded
void setHOEScale(double scale)
GlobalPoint hadShwrPos(const std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double hadE)
double theHOthresholdMinus1
const EcalSeverityLevelAlgo * theEcalSevLvlAlgo
const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id.
std::vector< double > theHF1Grid
void assignHit(const CaloRecHit *recHit)
adds a single hit to the tower
std::vector< double > theEBGrid
std::vector< double > theHF2Weights
volatile std::atomic< bool > shutdown_flag false
int ieta() const
get the tower ieta
bool theUseEtEBTresholdFlag
uint32_t getValue() const
unsigned int theHcalAcceptSeverityLevelForRejectedHit
Detector det() const
get the detector field from this detid
void setGeometry(const CaloTowerConstituentsMap *cttopo, const HcalTopology *htopo, const CaloGeometry *geo)
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
HcalDropChMap hcalDropChMap
void setEBEScale(double scale)
std::vector< double > theEBWeights
double theHOthresholdPlus2
bool theRecoveredEcalHitsAreUsed
unsigned int theHcalAcceptSeverityLevel
EcalSeverityLevel::SeverityLevel severityLevel(const DetId &id, const EcalRecHitCollection &rhs) const
Evaluate status from id.
bool theUseSymEETresholdFlag
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
double outerEnergy() const
const_iterator begin() const
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell's volume.
edm::Handle< EcalRecHitCollection > theEbHandle
GlobalPoint emShwrLogWeightPos(const std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double totEmE)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.