#include <RecoLocalCalo/CaloTowersCreator/interface/CaloTowersCreationAlgo.h>
Public Member Functions | |
void | begin () |
CaloTowersCreationAlgo (double EBthreshold, double EEthreshold, double HcalThreshold, double HBthreshold, double HESthreshold, double HEDthreshold, double HOthreshold, double HF1threshold, double HF2threshold, std::vector< double > EBGrid, std::vector< double > EBWeights, std::vector< double > EEGrid, std::vector< double > EEWeights, std::vector< double > HBGrid, std::vector< double > HBWeights, std::vector< double > HESGrid, std::vector< double > HESWeights, std::vector< double > HEDGrid, std::vector< double > HEDWeights, std::vector< double > HOGrid, std::vector< double > HOWeights, std::vector< double > HF1Grid, std::vector< double > HF1Weights, std::vector< double > HF2Grid, std::vector< double > HF2Weights, double EBweight, double EEweight, double HBweight, double HESweight, double HEDweight, double HOweight, double HF1weight, double HF2weight, double EcutTower, double EBSumThreshold, double EESumThreshold, bool useHO, int momConstrMethod, double momEmDepth, double momHadDepth, double momTotDepth) | |
CaloTowersCreationAlgo (double EBthreshold, double EEthreshold, double HcalThreshold, double HBthreshold, double HESthreshold, double HEDthreshold, double HOthreshold, double HF1threshold, double HF2threshold, double EBweight, double EEweight, double HBweight, double HESweight, double HEDweight, double HOweight, double HF1weight, double HF2weight, double EcutTower, double EBSumThreshold, double EESumThreshold, bool useHO, int momConstrMethod, double momEmDepth, double momHadDepth, double momTotDepth) | |
CaloTowersCreationAlgo () | |
GlobalPoint | emCrystalShwrPos (DetId detId, float fracDepth) |
GlobalPoint | emShwrPos (std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double totEmE) |
void | finish (CaloTowerCollection &destCollection) |
GlobalPoint | hadSegmentShwrPos (DetId detId, float fracDepth) |
GlobalPoint | hadShwrPos (std::vector< std::pair< DetId, double > > &metaContains, float fracDepth, double hadE) |
void | process (const CaloTowerCollection &ctc) |
void | process (const EcalRecHitCollection &ecal) |
void | process (const HFRecHitCollection &hf) |
void | process (const HORecHitCollection &ho) |
void | process (const HBHERecHitCollection &hbhe) |
void | setEBEScale (double scale) |
void | setEEEScale (double scale) |
void | setGeometry (const CaloTowerConstituentsMap *cttopo, const HcalTopology *htopo, const CaloGeometry *geo) |
void | setHBEScale (double scale) |
void | setHEDEScale (double scale) |
void | setHESEScale (double scale) |
void | setHF1EScale (double scale) |
void | setHF2EScale (double scale) |
void | setHOEScale (double scale) |
Private Types | |
typedef std::map < CaloTowerDetId, MetaTower > | MetaTowerMap |
Private Member Functions | |
void | assignHit (const CaloRecHit *recHit) |
adds a single hit to the tower | |
int | compactTime (float time) |
CaloTower | convert (const CaloTowerDetId &id, const MetaTower &mt) |
MetaTower & | find (const CaloTowerDetId &id) |
looks for a given tower in the internal cache. If it can't find it, it makes it. | |
void | getThresholdAndWeight (const DetId &detId, double &threshold, double &weight) const |
helper method to look up the appropriate threshold & weight | |
void | rescale (const CaloTower *ct) |
Private Attributes | |
double | theEBEScale |
std::vector< double > | theEBGrid |
double | theEBSumThreshold |
double | theEBthreshold |
double | theEBweight |
std::vector< double > | theEBWeights |
double | theEcutTower |
double | theEEEScale |
std::vector< double > | theEEGrid |
double | theEESumThreshold |
double | theEEthreshold |
double | theEEweight |
std::vector< double > | theEEWeights |
const CaloGeometry * | theGeometry |
double | theHBEScale |
std::vector< double > | theHBGrid |
double | theHBthreshold |
double | theHBweight |
std::vector< double > | theHBWeights |
double | theHcalThreshold |
const HcalTopology * | theHcalTopology |
double | theHEDEScale |
std::vector< double > | theHEDGrid |
double | theHEDthreshold |
double | theHEDweight |
std::vector< double > | theHEDWeights |
double | theHESEScale |
std::vector< double > | theHESGrid |
double | theHESthreshold |
double | theHESweight |
std::vector< double > | theHESWeights |
double | theHF1EScale |
std::vector< double > | theHF1Grid |
double | theHF1threshold |
double | theHF1weight |
std::vector< double > | theHF1Weights |
double | theHF2EScale |
std::vector< double > | theHF2Grid |
double | theHF2threshold |
double | theHF2weight |
std::vector< double > | theHF2Weights |
double | theHOEScale |
std::vector< double > | theHOGrid |
bool | theHOIsUsed |
only affects energy and ET calculation. HO is still recorded in the tower | |
double | theHOthreshold |
double | theHOweight |
std::vector< double > | theHOWeights |
int | theMomConstrMethod |
double | theMomEmDepth |
double | theMomHadDepth |
double | theMomTotDepth |
const CaloTowerConstituentsMap * | theTowerConstituentsMap |
const CaloSubdetectorGeometry * | theTowerGeometry |
MetaTowerMap | theTowerMap |
Classes | |
struct | MetaTower |
Definition at line 31 of file CaloTowersCreationAlgo.h.
typedef std::map<CaloTowerDetId, MetaTower> CaloTowersCreationAlgo::MetaTowerMap [private] |
Definition at line 176 of file CaloTowersCreationAlgo.h.
CaloTowersCreationAlgo::CaloTowersCreationAlgo | ( | ) |
Definition at line 12 of file CaloTowersCreationAlgo.cc.
00013 : theEBthreshold(-1000.), 00014 theEEthreshold(-1000.), 00015 theHcalThreshold(-1000.), 00016 theHBthreshold(-1000.), 00017 theHESthreshold(-1000.), 00018 theHEDthreshold(-1000.), 00019 theHOthreshold(-1000.), 00020 theHF1threshold(-1000.), 00021 theHF2threshold(-1000.), 00022 theEBGrid(std::vector<double>(5,10.)), 00023 theEBWeights(std::vector<double>(5,1.)), 00024 theEEGrid(std::vector<double>(5,10.)), 00025 theEEWeights(std::vector<double>(5,1.)), 00026 theHBGrid(std::vector<double>(5,10.)), 00027 theHBWeights(std::vector<double>(5,1.)), 00028 theHESGrid(std::vector<double>(5,10.)), 00029 theHESWeights(std::vector<double>(5,1.)), 00030 theHEDGrid(std::vector<double>(5,10.)), 00031 theHEDWeights(std::vector<double>(5,1.)), 00032 theHOGrid(std::vector<double>(5,10.)), 00033 theHOWeights(std::vector<double>(5,1.)), 00034 theHF1Grid(std::vector<double>(5,10.)), 00035 theHF1Weights(std::vector<double>(5,1.)), 00036 theHF2Grid(std::vector<double>(5,10.)), 00037 theHF2Weights(std::vector<double>(5,1.)), 00038 theEBweight(1.), 00039 theEEweight(1.), 00040 theHBweight(1.), 00041 theHESweight(1.), 00042 theHEDweight(1.), 00043 theHOweight(1.), 00044 theHF1weight(1.), 00045 theHF2weight(1.), 00046 theEcutTower(-1000.), 00047 theEBSumThreshold(-1000.), 00048 theEESumThreshold(-1000.), 00049 theHcalTopology(0), 00050 theGeometry(0), 00051 theTowerConstituentsMap(0), 00052 theHOIsUsed(true), 00053 // (for momentum reconstruction algorithm) 00054 theMomConstrMethod(0), 00055 theMomEmDepth(0.), 00056 theMomHadDepth(0.), 00057 theMomTotDepth(0.) 00058 { 00059 }
CaloTowersCreationAlgo::CaloTowersCreationAlgo | ( | double | EBthreshold, | |
double | EEthreshold, | |||
double | HcalThreshold, | |||
double | HBthreshold, | |||
double | HESthreshold, | |||
double | HEDthreshold, | |||
double | HOthreshold, | |||
double | HF1threshold, | |||
double | HF2threshold, | |||
double | EBweight, | |||
double | EEweight, | |||
double | HBweight, | |||
double | HESweight, | |||
double | HEDweight, | |||
double | HOweight, | |||
double | HF1weight, | |||
double | HF2weight, | |||
double | EcutTower, | |||
double | EBSumThreshold, | |||
double | EESumThreshold, | |||
bool | useHO, | |||
int | momConstrMethod, | |||
double | momEmDepth, | |||
double | momHadDepth, | |||
double | momTotDepth | |||
) |
Definition at line 61 of file CaloTowersCreationAlgo.cc.
00075 : theEBthreshold(EBthreshold), 00076 theEEthreshold(EEthreshold), 00077 theHcalThreshold(HcalThreshold), 00078 theHBthreshold(HBthreshold), 00079 theHESthreshold(HESthreshold), 00080 theHEDthreshold(HEDthreshold), 00081 theHOthreshold(HOthreshold), 00082 theHF1threshold(HF1threshold), 00083 theHF2threshold(HF2threshold), 00084 theEBGrid(std::vector<double>(5,10.)), 00085 theEBWeights(std::vector<double>(5,1.)), 00086 theEEGrid(std::vector<double>(5,10.)), 00087 theEEWeights(std::vector<double>(5,1.)), 00088 theHBGrid(std::vector<double>(5,10.)), 00089 theHBWeights(std::vector<double>(5,1.)), 00090 theHESGrid(std::vector<double>(5,10.)), 00091 theHESWeights(std::vector<double>(5,1.)), 00092 theHEDGrid(std::vector<double>(5,10.)), 00093 theHEDWeights(std::vector<double>(5,1.)), 00094 theHOGrid(std::vector<double>(5,10.)), 00095 theHOWeights(std::vector<double>(5,1.)), 00096 theHF1Grid(std::vector<double>(5,10.)), 00097 theHF1Weights(std::vector<double>(5,1.)), 00098 theHF2Grid(std::vector<double>(5,10.)), 00099 theHF2Weights(std::vector<double>(5,1.)), 00100 theEBweight(EBweight), 00101 theEEweight(EEweight), 00102 theHBweight(HBweight), 00103 theHESweight(HESweight), 00104 theHEDweight(HEDweight), 00105 theHOweight(HOweight), 00106 theHF1weight(HF1weight), 00107 theHF2weight(HF2weight), 00108 theEcutTower(EcutTower), 00109 theEBSumThreshold(EBSumThreshold), 00110 theEESumThreshold(EESumThreshold), 00111 theHOIsUsed(useHO), 00112 // (momentum reconstruction algorithm) 00113 theMomConstrMethod(momConstrMethod), 00114 theMomEmDepth(momEmDepth), 00115 theMomHadDepth(momHadDepth), 00116 theMomTotDepth(momTotDepth) 00117 { 00118 }
CaloTowersCreationAlgo::CaloTowersCreationAlgo | ( | double | EBthreshold, | |
double | EEthreshold, | |||
double | HcalThreshold, | |||
double | HBthreshold, | |||
double | HESthreshold, | |||
double | HEDthreshold, | |||
double | HOthreshold, | |||
double | HF1threshold, | |||
double | HF2threshold, | |||
std::vector< double > | EBGrid, | |||
std::vector< double > | EBWeights, | |||
std::vector< double > | EEGrid, | |||
std::vector< double > | EEWeights, | |||
std::vector< double > | HBGrid, | |||
std::vector< double > | HBWeights, | |||
std::vector< double > | HESGrid, | |||
std::vector< double > | HESWeights, | |||
std::vector< double > | HEDGrid, | |||
std::vector< double > | HEDWeights, | |||
std::vector< double > | HOGrid, | |||
std::vector< double > | HOWeights, | |||
std::vector< double > | HF1Grid, | |||
std::vector< double > | HF1Weights, | |||
std::vector< double > | HF2Grid, | |||
std::vector< double > | HF2Weights, | |||
double | EBweight, | |||
double | EEweight, | |||
double | HBweight, | |||
double | HESweight, | |||
double | HEDweight, | |||
double | HOweight, | |||
double | HF1weight, | |||
double | HF2weight, | |||
double | EcutTower, | |||
double | EBSumThreshold, | |||
double | EESumThreshold, | |||
bool | useHO, | |||
int | momConstrMethod, | |||
double | momEmDepth, | |||
double | momHadDepth, | |||
double | momTotDepth | |||
) |
Definition at line 120 of file CaloTowersCreationAlgo.cc.
00143 : theEBthreshold(EBthreshold), 00144 theEEthreshold(EEthreshold), 00145 theHcalThreshold(HcalThreshold), 00146 theHBthreshold(HBthreshold), 00147 theHESthreshold(HESthreshold), 00148 theHEDthreshold(HEDthreshold), 00149 theHOthreshold(HOthreshold), 00150 theHF1threshold(HF1threshold), 00151 theHF2threshold(HF2threshold), 00152 theEBGrid(EBGrid), 00153 theEBWeights(EBWeights), 00154 theEEGrid(EEGrid), 00155 theEEWeights(EEWeights), 00156 theHBGrid(HBGrid), 00157 theHBWeights(HBWeights), 00158 theHESGrid(HESGrid), 00159 theHESWeights(HESWeights), 00160 theHEDGrid(HEDGrid), 00161 theHEDWeights(HEDWeights), 00162 theHOGrid(HOGrid), 00163 theHOWeights(HOWeights), 00164 theHF1Grid(HF1Grid), 00165 theHF1Weights(HF1Weights), 00166 theHF2Grid(HF2Grid), 00167 theHF2Weights(HF2Weights), 00168 theEBweight(EBweight), 00169 theEEweight(EEweight), 00170 theHBweight(HBweight), 00171 theHESweight(HESweight), 00172 theHEDweight(HEDweight), 00173 theHOweight(HOweight), 00174 theHF1weight(HF1weight), 00175 theHF2weight(HF2weight), 00176 theEcutTower(EcutTower), 00177 theEBSumThreshold(EBSumThreshold), 00178 theEESumThreshold(EESumThreshold), 00179 theHOIsUsed(useHO), 00180 // (momentum reconstruction algorithm) 00181 theMomConstrMethod(momConstrMethod), 00182 theMomEmDepth(momEmDepth), 00183 theMomHadDepth(momHadDepth), 00184 theMomTotDepth(momTotDepth) 00185 { 00186 }
void CaloTowersCreationAlgo::assignHit | ( | const CaloRecHit * | recHit | ) | [private] |
adds a single hit to the tower
Definition at line 246 of file CaloTowersCreationAlgo.cc.
References HcalDetId::depth(), DetId::det(), detId, CaloRecHit::detid(), e, CaloTowersCreationAlgo::MetaTower::E, CaloTowersCreationAlgo::MetaTower::E_em, CaloTowersCreationAlgo::MetaTower::E_had, CaloTowersCreationAlgo::MetaTower::E_outer, DetId::Ecal, CaloTowersCreationAlgo::MetaTower::emSumEForTime, CaloTowersCreationAlgo::MetaTower::emSumTimeTimesE, CaloRecHit::energy(), relval_parameters_module::energy, find(), getThresholdAndWeight(), CaloTowersCreationAlgo::MetaTower::hadSumEForTime, CaloTowersCreationAlgo::MetaTower::hadSumTimeTimesE, DetId::Hcal, HcalEndcap, HcalForward, HcalOuter, CaloTowerDetId::ieta(), CaloTowerDetId::iphi(), EcalRecHit::kRECOVERED, CaloTowersCreationAlgo::MetaTower::metaConstituents, DetId::null(), HcalDetId::subdet(), theHOIsUsed, theTowerConstituentsMap, dimuonsSequences_cff::threshold, CaloRecHit::time(), CaloTowerConstituentsMap::towerOf(), weight, and CaloTowerDetId::zside().
Referenced by process().
00246 { 00247 DetId detId = recHit->detid(); 00248 double threshold, weight; 00249 getThresholdAndWeight(detId, threshold, weight); 00250 00251 // SPECIAL handling of tower 28/depth 3 --> half into tower 28 and half into tower 29 00252 if (detId.det()==DetId::Hcal && 00253 HcalDetId(detId).subdet()==HcalEndcap && 00254 HcalDetId(detId).depth()==3 && 00255 HcalDetId(detId).ietaAbs()==28) { 00256 00257 CaloTowerDetId towerDetId = theTowerConstituentsMap->towerOf(detId); 00258 if (towerDetId.null()) return; 00259 MetaTower & tower28 = find(towerDetId); 00260 CaloTowerDetId towerDetId29 = CaloTowerDetId(towerDetId.ieta()+ 00261 towerDetId.zside(), 00262 towerDetId.iphi()); 00263 MetaTower & tower29 = find(towerDetId29); 00264 00265 double energy = recHit->energy()/2; // NOTE DIVIDE BY 2!!! 00266 if(energy >= threshold) { 00267 double e28 = energy * weight; 00268 double e29 = energy * weight; 00269 00270 tower28.E_had += e28; 00271 tower28.E += e28; 00272 std::pair<DetId,double> mc(detId,e28); 00273 tower28.metaConstituents.push_back(mc); 00274 00275 tower29.E_had += e29; 00276 tower29.E += e29; 00277 tower29.metaConstituents.push_back(mc); 00278 00279 // store the energy in layer 3 also in E_outer 00280 tower28.E_outer += e28; 00281 tower29.E_outer += e29; 00282 00283 } 00284 } else { 00285 CaloTowerDetId towerDetId = theTowerConstituentsMap->towerOf(detId); 00286 if (towerDetId.null()) return; 00287 MetaTower & tower = find(towerDetId); 00288 00289 double energy = recHit->energy(); 00290 if(energy >= threshold) { 00291 // TODO calculate crystal by crystal 00292 double e = energy * weight; 00293 00294 DetId::Detector det = detId.det(); 00295 if(det == DetId::Ecal) { 00296 tower.E_em += e; 00297 tower.E += e; 00298 // do not use "recovered" hits in time calculation 00299 if (recHit->time() != EcalRecHit::kRECOVERED) { 00300 tower.emSumTimeTimesE += ( e * recHit->time() ); 00301 tower.emSumEForTime += e; // see above 00302 } 00303 } 00304 // HCAL 00305 else { 00306 HcalDetId hcalDetId(detId); 00307 if(hcalDetId.subdet() == HcalOuter) { 00308 tower.E_outer += e; 00309 if(theHOIsUsed) tower.E += e; 00310 } 00311 // HF calculates EM fraction differently 00312 else if(hcalDetId.subdet() == HcalForward) { 00313 if(hcalDetId.depth() == 1) { 00314 // long fiber, so E_EM = E(Long) - E(Short) 00315 tower.E_em += e; 00316 } 00317 else { 00318 // short fiber, EHAD = 2 * E(Short) 00319 tower.E_em -= e; 00320 tower.E_had += 2. * e; 00321 } 00322 tower.E += e; 00323 00324 // put the timing only in HCAL 00325 tower.hadSumTimeTimesE += ( e * recHit->time() ); 00326 tower.hadSumEForTime += e; 00327 } 00328 else { 00329 // HCAL situation normal 00330 tower.E_had += e; 00331 tower.E += e; 00332 00333 // time info 00334 tower.hadSumTimeTimesE += ( e * recHit->time() ); 00335 tower.hadSumEForTime += e; 00336 00337 // store energy for depth 2 for towers 18-27 00338 if (HcalDetId(detId).subdet()==HcalEndcap & HcalDetId(detId).depth()==2 && 00339 HcalDetId(detId).ietaAbs()>=18 && HcalDetId(detId).ietaAbs()<=27) { 00340 tower.E_outer += e; 00341 } 00342 } 00343 } 00344 std::pair<DetId,double> mc(detId,e); 00345 tower.metaConstituents.push_back(mc); 00346 } 00347 } 00348 }
Definition at line 196 of file CaloTowersCreationAlgo.cc.
References theTowerMap.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00196 { 00197 theTowerMap.clear(); 00198 }
int CaloTowersCreationAlgo::compactTime | ( | float | time | ) | [private] |
Definition at line 748 of file CaloTowersCreationAlgo.cc.
References int.
Referenced by convert().
00748 { 00749 00750 const float timeUnit = 0.01; // discretization (ns) 00751 00752 if (time> 300.0) return 30000; 00753 if (time< -300.0) return -30000; 00754 00755 return int(time/timeUnit + 0.5); 00756 00757 }
CaloTower CaloTowersCreationAlgo::convert | ( | const CaloTowerDetId & | id, | |
const MetaTower & | mt | |||
) | [private] |
Definition at line 419 of file CaloTowersCreationAlgo.cc.
References CaloTower::addConstituents(), compactTime(), CaloTowersCreationAlgo::MetaTower::E, CaloTowersCreationAlgo::MetaTower::E_em, CaloTowersCreationAlgo::MetaTower::E_had, CaloTowersCreationAlgo::MetaTower::E_outer, DetId::Ecal, emShwrPos(), CaloTowersCreationAlgo::MetaTower::emSumEForTime, CaloTowersCreationAlgo::MetaTower::emSumTimeTimesE, PV3DBase< T, PVType, FrameType >::eta(), CaloSubdetectorGeometry::getGeometry(), CaloCellGeometry::getPosition(), hadShwrPos(), CaloTowersCreationAlgo::MetaTower::hadSumEForTime, CaloTowersCreationAlgo::MetaTower::hadSumTimeTimesE, DetId::Hcal, i, CaloTowersCreationAlgo::MetaTower::metaConstituents, p, PV3DBase< T, PVType, FrameType >::phi(), CaloTower::setEcalTime(), CaloTower::setHcalTime(), theEBSumThreshold, theEESumThreshold, theHcalThreshold, theHOIsUsed, theMomConstrMethod, theMomEmDepth, theMomHadDepth, and theTowerGeometry.
Referenced by finish().
00419 { 00420 00421 double ecalThres=(id.ietaAbs()<=17)?(theEBSumThreshold):(theEESumThreshold); 00422 double E=mt.E; 00423 double E_em=mt.E_em; 00424 double E_had=mt.E_had; 00425 double E_outer=mt.E_outer; 00426 00427 // Note: E_outer is used to save HO energy OR energy in the outermost depths in endcap region 00428 // In the methods with separate treatment of EM and HAd components: 00429 // - HO is not used to determine direction, however HO energy is added to get "total had energy" 00430 // => Check if the tower is within HO coverage before adding E_outer to the "total had" energy 00431 // else the energy will be double counted 00432 // When summing up the energy of the tower these checks are performed in the loops over RecHits, 00433 // so it only affects the alternative methods that are NOT yet used 00434 00435 00436 float ecalTime = (mt.emSumEForTime>0)? mt.emSumTimeTimesE/mt.emSumEForTime : -9999; 00437 float hcalTime = (mt.hadSumEForTime>0)? mt.hadSumTimeTimesE/mt.hadSumEForTime : -9999; 00438 00439 std::vector<std::pair<DetId,double> > metaContains=mt.metaConstituents; 00440 00441 if (id.ietaAbs()<=29 && E_em<ecalThres) { // ignore EM threshold in HF 00442 E-=E_em; 00443 E_em=0; 00444 std::vector<std::pair<DetId,double> > metaContains_noecal; 00445 00446 for (std::vector<std::pair<DetId,double> >::iterator i=metaContains.begin(); i!=metaContains.end(); ++i) 00447 if (i->first.det()!=DetId::Ecal) metaContains_noecal.push_back(*i); 00448 metaContains.swap(metaContains_noecal); 00449 } 00450 00451 if (id.ietaAbs()<=29 && E_had<theHcalThreshold) { 00452 E-=E_had; 00453 00454 if (theHOIsUsed && id.ietaAbs()<16) E-=E_outer; // has to be done for consistency 00455 00456 E_had=0; 00457 E_outer=0; 00458 std::vector<std::pair<DetId,double> > metaContains_nohcal; 00459 00460 for (std::vector<std::pair<DetId,double> >::iterator i=metaContains.begin(); i!=metaContains.end(); ++i) 00461 if (i->first.det()!=DetId::Hcal) metaContains_nohcal.push_back(*i); 00462 metaContains.swap(metaContains_nohcal); 00463 } 00464 00465 // create CaloTower using the selected algorithm 00466 00467 GlobalPoint emPoint, hadPoint; 00468 CaloTower::LorentzVector towerP4; 00469 00470 switch (theMomConstrMethod) { 00471 00472 case 0 : 00473 { // Simple 4-momentum assignment 00474 GlobalPoint p=theTowerGeometry->getGeometry(id)->getPosition(); 00475 00476 double pf=1.0/cosh(p.eta()); 00477 if (E>0) towerP4 = CaloTower::PolarLorentzVector(E*pf, p.eta(), p.phi(), 0); 00478 00479 emPoint = p; 00480 hadPoint = p; 00481 } // end case 0 00482 break; 00483 00484 case 1 : 00485 { 00486 if (id.ietaAbs()<=29) { 00487 if (E_em>0) { 00488 emPoint = emShwrPos(metaContains, theMomEmDepth, E_em); 00489 double emPf = 1.0/cosh(emPoint.eta()); 00490 towerP4 += CaloTower::PolarLorentzVector(E_em*emPf, emPoint.eta(), emPoint.phi(), 0); 00491 } 00492 if (E_had>0) { 00493 double E_had_tot = (theHOIsUsed && id.ietaAbs()<16)? E_had+E_outer : E_had; 00494 hadPoint = hadShwrPos(metaContains, theMomHadDepth, E_had_tot); 00495 double hadPf = 1.0/cosh(hadPoint.eta()); 00496 towerP4 += CaloTower::PolarLorentzVector(E_had_tot*hadPf, hadPoint.eta(), hadPoint.phi(), 0); 00497 } 00498 } 00499 else { // forward detector: use the CaloTower position 00500 GlobalPoint p=theTowerGeometry->getGeometry(id)->getPosition(); 00501 double pf=1.0/cosh(p.eta()); 00502 if (E>0) towerP4 = CaloTower::PolarLorentzVector(E*pf, p.eta(), p.phi(), 0); // simple momentum assignment, same position 00503 emPoint = p; 00504 hadPoint = p; 00505 } 00506 } // end case 1 00507 break; 00508 00509 } // end of decision on p4 reconstruction method 00510 00511 00512 // CaloTower::LorentzVector lv = caloTowerMomentum(id, metaContains, E, E_em, E_had, E_outer); 00513 00514 CaloTower retval(id, E_em, E_had, E_outer, -1, -1, towerP4, emPoint, hadPoint); 00515 00516 // set the timings 00517 retval.setEcalTime(compactTime(ecalTime)); 00518 retval.setHcalTime(compactTime(hcalTime)); 00519 00520 std::vector<DetId> contains; 00521 for (std::vector<std::pair<DetId,double> >::iterator i=metaContains.begin(); i!=metaContains.end(); ++i) 00522 contains.push_back(i->first); 00523 00524 retval.addConstituents(contains); 00525 return retval; 00526 }
GlobalPoint CaloTowersCreationAlgo::emCrystalShwrPos | ( | DetId | detId, | |
float | fracDepth | |||
) |
Definition at line 657 of file CaloTowersCreationAlgo.cc.
References CaloCellGeometry::getCorners(), CaloGeometry::getGeometry(), CaloCellGeometry::getPosition(), theGeometry, x, y, and z.
Referenced by emShwrPos().
00657 { 00658 const CaloCellGeometry* cellGeometry = theGeometry->getGeometry(detId); 00659 GlobalPoint point = cellGeometry->getPosition(); // face of the cell 00660 00661 if (fracDepth<0) fracDepth=0; 00662 else if (fracDepth>1) fracDepth=1; 00663 00664 if (fracDepth>0.0) { 00665 CaloCellGeometry::CornersVec cv = cellGeometry->getCorners(); 00666 GlobalPoint backPoint = GlobalPoint( 0.25*( cv[4].x() + cv[5].x() + cv[6].x() + cv[7].x() ), 00667 0.25*( cv[4].y() + cv[5].y() + cv[6].y() + cv[7].y() ), 00668 0.25*( cv[4].z() + cv[5].z() + cv[6].z() + cv[7].z() ) ); 00669 point += fracDepth * (backPoint-point); 00670 } 00671 00672 return point; 00673 }
GlobalPoint CaloTowersCreationAlgo::emShwrPos | ( | std::vector< std::pair< DetId, double > > & | metaContains, | |
float | fracDepth, | |||
double | totEmE | |||
) |
Definition at line 724 of file CaloTowersCreationAlgo.cc.
References e, DetId::Ecal, emCrystalShwrPos(), p, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by convert().
00725 { 00726 00727 if (emE<=0) return GlobalPoint(0,0,0); 00728 00729 double emX = 0.0; 00730 double emY = 0.0; 00731 double emZ = 0.0; 00732 00733 std::vector<std::pair<DetId,double> >::iterator mc_it = metaContains.begin(); 00734 for (; mc_it!=metaContains.end(); ++mc_it) { 00735 if (mc_it->first.det() != DetId::Ecal) continue; 00736 GlobalPoint p = emCrystalShwrPos(mc_it->first, fracDepth); 00737 double e = mc_it->second; 00738 00739 emX += p.x() * e; 00740 emY += p.y() * e; 00741 emZ += p.z() * e; 00742 } 00743 00744 return GlobalPoint(emX/emE, emY/emE, emZ/emE); 00745 }
CaloTowersCreationAlgo::MetaTower & CaloTowersCreationAlgo::find | ( | const CaloTowerDetId & | id | ) | [private] |
looks for a given tower in the internal cache. If it can't find it, it makes it.
Definition at line 406 of file CaloTowersCreationAlgo.cc.
References t, and theTowerMap.
Referenced by assignHit(), and rescale().
00406 { 00407 MetaTowerMap::iterator itr = theTowerMap.find(detId); 00408 if(itr == theTowerMap.end()) { 00409 // need to build a new tower 00410 MetaTower t; 00411 00412 // store it in the map 00413 theTowerMap.insert(std::pair<CaloTowerDetId, CaloTowersCreationAlgo::MetaTower>(detId, t)); 00414 itr = theTowerMap.find(detId); 00415 } 00416 return itr->second; 00417 }
void CaloTowersCreationAlgo::finish | ( | CaloTowerCollection & | destCollection | ) |
Definition at line 232 of file CaloTowersCreationAlgo.cc.
References CaloTower::constituentsSize(), convert(), ct, reco::Particle::energy(), edm::SortedCollection< T, SORT >::push_back(), theEcutTower, and theTowerMap.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00232 { 00233 // now copy this map into the final collection 00234 for(MetaTowerMap::const_iterator mapItr = theTowerMap.begin(); 00235 mapItr != theTowerMap.end(); ++ mapItr) { 00236 CaloTower ct=convert(mapItr->first,mapItr->second); 00237 if (ct.constituentsSize()>0 && ct.energy()>theEcutTower) { 00238 result.push_back(ct); 00239 } 00240 } 00241 theTowerMap.clear(); // save the memory 00242 }
void CaloTowersCreationAlgo::getThresholdAndWeight | ( | const DetId & | detId, | |
double & | threshold, | |||
double & | weight | |||
) | const [private] |
helper method to look up the appropriate threshold & weight
Definition at line 530 of file CaloTowersCreationAlgo.cc.
References GenMuonPlsPt100GeV_cfg::cout, HcalDetId::depth(), DetId::det(), DetId::Ecal, EcalBarrel, EcalEndcap, lat::endl(), HcalTopology::firstHEDoublePhiRing(), DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalDetId::ietaAbs(), HcalDetId::subdet(), DetId::subdetId(), theEBEScale, theEBGrid, theEBthreshold, theEBweight, theEBWeights, theEEEScale, theEEGrid, theEEthreshold, theEEweight, theEEWeights, theHBEScale, theHBGrid, theHBthreshold, theHBweight, theHBWeights, theHcalTopology, theHEDEScale, theHEDGrid, theHEDthreshold, theHEDweight, theHEDWeights, theHESEScale, theHESGrid, theHESthreshold, theHESweight, theHESWeights, theHF1EScale, theHF1Grid, theHF1threshold, theHF1weight, theHF1Weights, theHF2EScale, theHF2Grid, theHF2threshold, theHF2weight, theHF2Weights, theHOEScale, theHOGrid, theHOthreshold, theHOweight, and theHOWeights.
Referenced by assignHit(), and rescale().
00530 { 00531 DetId::Detector det = detId.det(); 00532 weight=0; // in case the hit is not identified 00533 00534 if(det == DetId::Ecal) { 00535 // may or may not be EB. We'll find out. 00536 00537 EcalSubdetector subdet = (EcalSubdetector)(detId.subdetId()); 00538 if(subdet == EcalBarrel) { 00539 threshold = theEBthreshold; 00540 weight = theEBweight; 00541 if (weight <= 0.) { 00542 ROOT::Math::Interpolator my(theEBGrid,theEBWeights,ROOT::Math::Interpolation::AKIMA); 00543 weight = my.Eval(theEBEScale); 00544 } 00545 } 00546 else if(subdet == EcalEndcap) { 00547 threshold = theEEthreshold; 00548 weight = theEEweight; 00549 if (weight <= 0.) { 00550 ROOT::Math::Interpolator my(theEEGrid,theEEWeights,ROOT::Math::Interpolation::AKIMA); 00551 weight = my.Eval(theEEEScale); 00552 } 00553 } 00554 } 00555 else if(det == DetId::Hcal) { 00556 HcalDetId hcalDetId(detId); 00557 HcalSubdetector subdet = hcalDetId.subdet(); 00558 00559 if(subdet == HcalBarrel) { 00560 threshold = theHBthreshold; 00561 weight = theHBweight; 00562 if (weight <= 0.) { 00563 ROOT::Math::Interpolator my(theHBGrid,theHBWeights,ROOT::Math::Interpolation::AKIMA); 00564 weight = my.Eval(theHBEScale); 00565 } 00566 } 00567 00568 else if(subdet == HcalEndcap) { 00569 // check if it's single or double tower 00570 if(hcalDetId.ietaAbs() < theHcalTopology->firstHEDoublePhiRing()) { 00571 threshold = theHESthreshold; 00572 weight = theHESweight; 00573 if (weight <= 0.) { 00574 ROOT::Math::Interpolator my(theHESGrid,theHESWeights,ROOT::Math::Interpolation::AKIMA); 00575 weight = my.Eval(theHESEScale); 00576 } 00577 } 00578 else { 00579 threshold = theHEDthreshold; 00580 weight = theHEDweight; 00581 if (weight <= 0.) { 00582 ROOT::Math::Interpolator my(theHEDGrid,theHEDWeights,ROOT::Math::Interpolation::AKIMA); 00583 weight = my.Eval(theHEDEScale); 00584 } 00585 } 00586 } else if(subdet == HcalOuter) { 00587 threshold = theHOthreshold; 00588 weight = theHOweight; 00589 if (weight <= 0.) { 00590 ROOT::Math::Interpolator my(theHOGrid,theHOWeights,ROOT::Math::Interpolation::AKIMA); 00591 weight = my.Eval(theHOEScale); 00592 } 00593 } else if(subdet == HcalForward) { 00594 if(hcalDetId.depth() == 1) { 00595 threshold = theHF1threshold; 00596 weight = theHF1weight; 00597 if (weight <= 0.) { 00598 ROOT::Math::Interpolator my(theHF1Grid,theHF1Weights,ROOT::Math::Interpolation::AKIMA); 00599 weight = my.Eval(theHF1EScale); 00600 } 00601 } else { 00602 threshold = theHF2threshold; 00603 weight = theHF2weight; 00604 if (weight <= 0.) { 00605 ROOT::Math::Interpolator my(theHF2Grid,theHF2Weights,ROOT::Math::Interpolation::AKIMA); 00606 weight = my.Eval(theHF2EScale); 00607 } 00608 } 00609 } 00610 } 00611 else { 00612 std::cout << "BAD CELL det " << det << std::endl; 00613 } 00614 }
GlobalPoint CaloTowersCreationAlgo::hadSegmentShwrPos | ( | DetId | detId, | |
float | fracDepth | |||
) |
Definition at line 675 of file CaloTowersCreationAlgo.cc.
References CaloCellGeometry::getCorners(), CaloGeometry::getGeometry(), CaloCellGeometry::getPosition(), theGeometry, x, y, and z.
Referenced by hadShwrPos().
00675 { 00676 const CaloCellGeometry* cellGeometry = theGeometry->getGeometry(detId); 00677 GlobalPoint point = cellGeometry->getPosition(); // face of the cell 00678 00679 if (fracDepth<0) fracDepth=0; 00680 else if (fracDepth>1) fracDepth=1; 00681 00682 if (fracDepth>0.0) { 00683 CaloCellGeometry::CornersVec cv = cellGeometry->getCorners(); 00684 GlobalPoint backPoint = GlobalPoint( 0.25*( cv[4].x() + cv[5].x() + cv[6].x() + cv[7].x() ), 00685 0.25*( cv[4].y() + cv[5].y() + cv[6].y() + cv[7].y() ), 00686 0.25*( cv[4].z() + cv[5].z() + cv[6].z() + cv[7].z() ) ); 00687 point += fracDepth * (backPoint-point); 00688 } 00689 00690 return point; 00691 }
GlobalPoint CaloTowersCreationAlgo::hadShwrPos | ( | std::vector< std::pair< DetId, double > > & | metaContains, | |
float | fracDepth, | |||
double | hadE | |||
) |
Definition at line 694 of file CaloTowersCreationAlgo.cc.
References hadSegmentShwrPos(), DetId::Hcal, p, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by convert().
00695 { 00696 00697 00698 if (hadE<=0) return GlobalPoint(0,0,0); 00699 00700 double hadX = 0.0; 00701 double hadY = 0.0; 00702 double hadZ = 0.0; 00703 00704 int nConst = 0; 00705 00706 std::vector<std::pair<DetId,double> >::iterator mc_it = metaContains.begin(); 00707 for (; mc_it!=metaContains.end(); ++mc_it) { 00708 if (mc_it->first.det() != DetId::Hcal) continue; 00709 ++nConst; 00710 00711 GlobalPoint p = hadSegmentShwrPos(mc_it->first, fracDepth); 00712 00713 // longitudinal segmentation: do not weight by energy, 00714 // get the geometrical position 00715 hadX += p.x(); 00716 hadY += p.y(); 00717 hadZ += p.z(); 00718 } 00719 00720 return GlobalPoint(hadX/nConst, hadY/nConst, hadZ/nConst); 00721 }
void CaloTowersCreationAlgo::process | ( | const CaloTowerCollection & | ctc | ) |
void CaloTowersCreationAlgo::process | ( | const EcalRecHitCollection & | ecal | ) |
void CaloTowersCreationAlgo::process | ( | const HFRecHitCollection & | hf | ) |
void CaloTowersCreationAlgo::process | ( | const HORecHitCollection & | ho | ) |
void CaloTowersCreationAlgo::process | ( | const HBHERecHitCollection & | hbhe | ) |
Definition at line 200 of file CaloTowersCreationAlgo.cc.
References assignHit(), edm::SortedCollection< T, SORT >::begin(), and edm::SortedCollection< T, SORT >::end().
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00200 { 00201 for(HBHERecHitCollection::const_iterator hbheItr = hbhe.begin(); 00202 hbheItr != hbhe.end(); ++hbheItr) 00203 assignHit(&(*hbheItr)); 00204 }
Definition at line 355 of file CaloTowersCreationAlgo.cc.
References CaloTower::constituent(), CaloTower::constituentsSize(), HcalDetId::depth(), DetId::det(), detId, CaloTowersCreationAlgo::MetaTower::E, CaloTowersCreationAlgo::MetaTower::E_em, CaloTowersCreationAlgo::MetaTower::E_had, CaloTowersCreationAlgo::MetaTower::E_outer, DetId::Ecal, CaloTower::ecalTime(), CaloTower::emEnergy(), CaloTowersCreationAlgo::MetaTower::emSumEForTime, CaloTowersCreationAlgo::MetaTower::emSumTimeTimesE, find(), getThresholdAndWeight(), CaloTower::hadEnergy(), CaloTowersCreationAlgo::MetaTower::hadSumEForTime, CaloTowersCreationAlgo::MetaTower::hadSumTimeTimesE, HcalForward, HcalOuter, CaloTower::hcalTime(), i, CaloTower::id(), CaloTowersCreationAlgo::MetaTower::metaConstituents, CaloTower::outerEnergy(), HcalDetId::subdet(), dimuonsSequences_cff::threshold, and weight.
00355 { 00356 double threshold, weight; 00357 00358 CaloTowerDetId towerDetId = ct->id(); 00359 // if (towerDetId.null()) return; 00360 MetaTower & tower = find(towerDetId); 00361 00362 tower.E_em = 0.; 00363 tower.E_had = 0.; 00364 tower.E_outer = 0.; 00365 for (unsigned int i=0; i<ct->constituentsSize(); i++) { 00366 DetId detId = ct->constituent(i); 00367 getThresholdAndWeight(detId, threshold, weight); 00368 DetId::Detector det = detId.det(); 00369 if(det == DetId::Ecal) { 00370 tower.E_em = ct->emEnergy()*weight; 00371 } 00372 else { 00373 HcalDetId hcalDetId(detId); 00374 if(hcalDetId.subdet() == HcalForward) { 00375 if (hcalDetId.depth()==1) tower.E_em = ct->emEnergy()*weight; 00376 if (hcalDetId.depth()==2) tower.E_had = ct->hadEnergy()*weight; 00377 } 00378 else if(hcalDetId.subdet() == HcalOuter) { 00379 tower.E_outer = ct->outerEnergy()*weight; 00380 } 00381 else { 00382 tower.E_had = ct->hadEnergy()*weight; 00383 } 00384 } 00385 tower.E = tower.E_had+tower.E_em+tower.E_outer; 00386 00387 // this is to be compliant with the new MetaTower setup 00388 // used only for the default simple vector assignment 00389 std::pair<DetId, double> mc(detId, 0); 00390 tower.metaConstituents.push_back(mc); 00391 } 00392 00393 // preserve time inforamtion 00394 tower.emSumTimeTimesE = ct->ecalTime(); 00395 tower.hadSumTimeTimesE = ct->hcalTime(); 00396 tower.emSumEForTime = 1.0; 00397 tower.hadSumEForTime = 1.0; 00398 00399 00400 }
void CaloTowersCreationAlgo::setEBEScale | ( | double | scale | ) |
Definition at line 616 of file CaloTowersCreationAlgo.cc.
References theEBEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00616 { 00617 if (scale>0.00001) *&theEBEScale = scale; 00618 else *&theEBEScale = 50.; 00619 }
void CaloTowersCreationAlgo::setEEEScale | ( | double | scale | ) |
Definition at line 621 of file CaloTowersCreationAlgo.cc.
References theEEEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00621 { 00622 if (scale>0.00001) *&theEEEScale = scale; 00623 else *&theEEEScale = 50.; 00624 }
void CaloTowersCreationAlgo::setGeometry | ( | const CaloTowerConstituentsMap * | cttopo, | |
const HcalTopology * | htopo, | |||
const CaloGeometry * | geo | |||
) |
Definition at line 189 of file CaloTowersCreationAlgo.cc.
References DetId::Calo, CaloGeometry::getSubdetectorGeometry(), CaloTowerDetId::SubdetId, theGeometry, theHcalTopology, theTowerConstituentsMap, and theTowerGeometry.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00189 { 00190 theTowerConstituentsMap=ctt; 00191 theHcalTopology = topo; 00192 theGeometry = geo; 00193 theTowerGeometry=geo->getSubdetectorGeometry(DetId::Calo,CaloTowerDetId::SubdetId); 00194 }
void CaloTowersCreationAlgo::setHBEScale | ( | double | scale | ) |
Definition at line 626 of file CaloTowersCreationAlgo.cc.
References theHBEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00626 { 00627 if (scale>0.00001) *&theHBEScale = scale; 00628 else *&theHBEScale = 50.; 00629 }
void CaloTowersCreationAlgo::setHEDEScale | ( | double | scale | ) |
Definition at line 636 of file CaloTowersCreationAlgo.cc.
References theHEDEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00636 { 00637 if (scale>0.00001) *&theHEDEScale = scale; 00638 else *&theHEDEScale = 50.; 00639 }
void CaloTowersCreationAlgo::setHESEScale | ( | double | scale | ) |
Definition at line 631 of file CaloTowersCreationAlgo.cc.
References theHESEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00631 { 00632 if (scale>0.00001) *&theHESEScale = scale; 00633 else *&theHESEScale = 50.; 00634 }
void CaloTowersCreationAlgo::setHF1EScale | ( | double | scale | ) |
Definition at line 646 of file CaloTowersCreationAlgo.cc.
References theHF1EScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00646 { 00647 if (scale>0.00001) *&theHF1EScale = scale; 00648 else *&theHF1EScale = 50.; 00649 }
void CaloTowersCreationAlgo::setHF2EScale | ( | double | scale | ) |
Definition at line 651 of file CaloTowersCreationAlgo.cc.
References theHF2EScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00651 { 00652 if (scale>0.00001) *&theHF2EScale = scale; 00653 else *&theHF2EScale = 50.; 00654 }
void CaloTowersCreationAlgo::setHOEScale | ( | double | scale | ) |
Definition at line 641 of file CaloTowersCreationAlgo.cc.
References theHOEScale.
Referenced by CaloTowersReCreator::produce(), and CaloTowersCreator::produce().
00641 { 00642 if (scale>0.00001) *&theHOEScale = scale; 00643 else *&theHOEScale = 50.; 00644 }
double CaloTowersCreationAlgo::theEBEScale [private] |
Definition at line 146 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setEBEScale().
std::vector<double> CaloTowersCreationAlgo::theEBGrid [private] |
double CaloTowersCreationAlgo::theEBSumThreshold [private] |
double CaloTowersCreationAlgo::theEBthreshold [private] |
double CaloTowersCreationAlgo::theEBweight [private] |
std::vector<double> CaloTowersCreationAlgo::theEBWeights [private] |
double CaloTowersCreationAlgo::theEcutTower [private] |
double CaloTowersCreationAlgo::theEEEScale [private] |
Definition at line 147 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setEEEScale().
std::vector<double> CaloTowersCreationAlgo::theEEGrid [private] |
double CaloTowersCreationAlgo::theEESumThreshold [private] |
double CaloTowersCreationAlgo::theEEthreshold [private] |
double CaloTowersCreationAlgo::theEEweight [private] |
std::vector<double> CaloTowersCreationAlgo::theEEWeights [private] |
const CaloGeometry* CaloTowersCreationAlgo::theGeometry [private] |
Definition at line 155 of file CaloTowersCreationAlgo.h.
Referenced by emCrystalShwrPos(), hadSegmentShwrPos(), and setGeometry().
double CaloTowersCreationAlgo::theHBEScale [private] |
Definition at line 148 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHBEScale().
std::vector<double> CaloTowersCreationAlgo::theHBGrid [private] |
double CaloTowersCreationAlgo::theHBthreshold [private] |
double CaloTowersCreationAlgo::theHBweight [private] |
std::vector<double> CaloTowersCreationAlgo::theHBWeights [private] |
double CaloTowersCreationAlgo::theHcalThreshold [private] |
const HcalTopology* CaloTowersCreationAlgo::theHcalTopology [private] |
Definition at line 154 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setGeometry().
double CaloTowersCreationAlgo::theHEDEScale [private] |
Definition at line 150 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHEDEScale().
std::vector<double> CaloTowersCreationAlgo::theHEDGrid [private] |
double CaloTowersCreationAlgo::theHEDthreshold [private] |
double CaloTowersCreationAlgo::theHEDweight [private] |
std::vector<double> CaloTowersCreationAlgo::theHEDWeights [private] |
double CaloTowersCreationAlgo::theHESEScale [private] |
Definition at line 149 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHESEScale().
std::vector<double> CaloTowersCreationAlgo::theHESGrid [private] |
double CaloTowersCreationAlgo::theHESthreshold [private] |
double CaloTowersCreationAlgo::theHESweight [private] |
std::vector<double> CaloTowersCreationAlgo::theHESWeights [private] |
double CaloTowersCreationAlgo::theHF1EScale [private] |
Definition at line 152 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHF1EScale().
std::vector<double> CaloTowersCreationAlgo::theHF1Grid [private] |
double CaloTowersCreationAlgo::theHF1threshold [private] |
double CaloTowersCreationAlgo::theHF1weight [private] |
std::vector<double> CaloTowersCreationAlgo::theHF1Weights [private] |
double CaloTowersCreationAlgo::theHF2EScale [private] |
Definition at line 153 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHF2EScale().
std::vector<double> CaloTowersCreationAlgo::theHF2Grid [private] |
double CaloTowersCreationAlgo::theHF2threshold [private] |
double CaloTowersCreationAlgo::theHF2weight [private] |
std::vector<double> CaloTowersCreationAlgo::theHF2Weights [private] |
double CaloTowersCreationAlgo::theHOEScale [private] |
Definition at line 151 of file CaloTowersCreationAlgo.h.
Referenced by getThresholdAndWeight(), and setHOEScale().
std::vector<double> CaloTowersCreationAlgo::theHOGrid [private] |
bool CaloTowersCreationAlgo::theHOIsUsed [private] |
only affects energy and ET calculation. HO is still recorded in the tower
Definition at line 160 of file CaloTowersCreationAlgo.h.
Referenced by assignHit(), and convert().
double CaloTowersCreationAlgo::theHOthreshold [private] |
double CaloTowersCreationAlgo::theHOweight [private] |
std::vector<double> CaloTowersCreationAlgo::theHOWeights [private] |
double CaloTowersCreationAlgo::theMomEmDepth [private] |
double CaloTowersCreationAlgo::theMomHadDepth [private] |
double CaloTowersCreationAlgo::theMomTotDepth [private] |
Definition at line 167 of file CaloTowersCreationAlgo.h.
const CaloTowerConstituentsMap* CaloTowersCreationAlgo::theTowerConstituentsMap [private] |
Definition at line 156 of file CaloTowersCreationAlgo.h.
Referenced by assignHit(), and setGeometry().
const CaloSubdetectorGeometry* CaloTowersCreationAlgo::theTowerGeometry [private] |
Definition at line 157 of file CaloTowersCreationAlgo.h.
Referenced by convert(), and setGeometry().
Definition at line 177 of file CaloTowersCreationAlgo.h.