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));
422 double e = energy *
weight;
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) {
613 tower.
E_had += 2. * e;
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;
1049 else if(hcalDetId.
ieta() < 0) {
1064 if(hcalDetId.
depth() == 1) {
1082 edm::LogError(
"CaloTowersCreationAlgo") <<
"Bad cell: " << det << std::endl;
1131 if (fracDepth<0) fracDepth=0;
1132 else if (fracDepth>1) fracDepth=1;
1134 if (fracDepth>0.0) {
1137 0.25*( cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y() ),
1138 0.25*( cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z() ) );
1139 point += fracDepth * (backPoint-
point);
1149 if (fracDepth<0) fracDepth=0;
1150 else if (fracDepth>1) fracDepth=1;
1152 if (fracDepth>0.0) {
1155 0.25*( cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y() ),
1156 0.25*( cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z() ) );
1157 point += fracDepth * (backPoint-
point);
1165 float fracDepth,
double hadE) {
1177 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1178 for (; mc_it!=metaContains.end(); ++mc_it) {
1193 return GlobalPoint(hadX/nConst, hadY/nConst, hadZ/nConst);
1204 if (fracDepth < 0) fracDepth = 0;
1205 else if (fracDepth > 1) fracDepth = 1;
1209 int iEta = towerId.
ieta();
1210 int iPhi = towerId.
iphi();
1214 if (towerId.
ietaAbs() <= 14) {
1219 else if (towerId.
ietaAbs() == 15) {
1224 else if (towerId.
ietaAbs() == 16) {
1229 else if (towerId.
ietaAbs() == 17) {
1239 else if (towerId.
ietaAbs() <= 29) {
1243 if (iEta == 29) iEta = 28;
1244 if (iEta == -29) iEta = -28;
1247 else if (towerId.
ietaAbs() >= 30) {
1275 0.25 * (cv[4].
y() + cv[5].
y() + cv[6].
y() + cv[7].
y()),
1276 0.25 * (cv[4].
z() + cv[5].
z() + cv[6].
z() + cv[7].
z()));
1278 point += fracDepth * (backPoint -
point);
1285 float fracDepth,
double emE) {
1295 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1296 for (; mc_it!=metaContains.end(); ++mc_it) {
1299 double e = mc_it->second;
1315 float fracDepth,
double emE) {
1322 double sumWeights = 0;
1324 double crystalThresh = 0.015 * emE;
1326 std::vector<std::pair<DetId,double> >::const_iterator mc_it = metaContains.begin();
1327 for (; mc_it!=metaContains.end(); ++mc_it) {
1328 if (mc_it->second < 0)
continue;
1329 if (mc_it->first.det() ==
DetId::Ecal && mc_it->second > crystalThresh) sumEmE += mc_it->second;
1332 for (mc_it = metaContains.begin(); mc_it!=metaContains.end(); ++mc_it) {
1334 if (mc_it->first.det() !=
DetId::Ecal || mc_it->second < crystalThresh)
continue;
1338 weight = 4.2 +
log(mc_it->second/sumEmE);
1346 return GlobalPoint(emX/sumWeights, emY/sumWeights, emZ/sumWeights);
1355 const float timeUnit = 0.01;
1357 if (time> 300.0)
return 30000;
1358 if (time< -300.0)
return -30000;
1360 return int(time/timeUnit + 0.5);
1381 for (std::vector<DetId>::iterator it = allChanInStatusCont.begin(); it!=allChanInStatusCont.end(); ++it) {
1415 const uint32_t recHitFlag = hit->
flags();
std::vector< double > theHBGrid
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
unsigned int theEcalAcceptSeverityLevelForRejectedHit
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)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
std::vector< T >::const_iterator const_iterator
void push_back(T const &t)
void setHF2EScale(double scale)
void finish(CaloTowerCollection &destCollection)
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)
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)
const CaloSubdetectorGeometry * theTowerGeometry
virtual double energy() const
energy
int depth() const
get the tower depth
void addConstituents(const std::vector< DetId > &ids)
EcalSeverityLevel severityLevel(const DetId &id, const EcalRecHitCollection &rhs) const
Evaluate status from id.
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
unsigned int theEcalAcceptSeverityLevel
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
Log< T >::type log(const T &t)
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
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
perl if(1 lt scalar(@::datatypes))
void assignHit(const CaloRecHit *recHit)
adds a single hit to the tower
std::vector< double > theEBGrid
std::vector< double > theHF2Weights
int ieta() const
get the tower ieta
bool theUseEtEBTresholdFlag
uint32_t getValue() const
unsigned int theHcalAcceptSeverityLevelForRejectedHit
const Item * getValues(DetId fId) const
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
HcalDropChMap hcalDropChMap
void setEBEScale(double scale)
std::vector< double > theEBWeights
double theHOthresholdPlus2
bool theRecoveredEcalHitsAreUsed
unsigned int theHcalAcceptSeverityLevel
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
edm::Handle< EcalRecHitCollection > theEbHandle
GlobalPoint emShwrLogWeightPos(const std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double totEmE)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.