CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
HcalCorrPFCalculation Class Reference
Inheritance diagram for HcalCorrPFCalculation:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

virtual void analyze (edm::Event const &ev, edm::EventSetup const &c) override
 
virtual void beginJob () override
 
virtual void endJob () override
 
 HcalCorrPFCalculation (edm::ParameterSet const &conf)
 
 ~HcalCorrPFCalculation ()
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

double RecalibFactor (HcalDetId id)
 

Private Attributes

Bool_t AddRecalib
 
double associationConeSize_
 
float CentHitFactor
 
double clusterConeSize_
 
bool Conecorr_
 
float delR
 
Float_t delRmc [50]
 
Bool_t doHF
 
float e3x3
 
float e5x5
 
double ecalCone_
 
float eCentHit
 
float eECAL
 
float eECAL09cm
 
float eECAL40cm
 
float eEcalCone
 
float eHcalCone
 
float eHcalConeNoise
 
TProfile * enHcal
 
TProfile * enHcalNoise
 
float eParticle
 
float etaGPoint
 
float etaParticle
 
float etaTrack
 
float eTrack
 
edm::Service< TFileServicefs
 
Float_t genEta
 
Float_t genPhi
 
const CaloGeometrygeo
 
const HcalGeometrygeoHcal
 
float iDr
 
int iEta
 
int iPhi
 
TProfile * nCells
 
TProfile * nCellsNoise
 
double neutralIsolationCone_
 
int nevtot
 
Int_t nTracks
 
Int_t numLayers [50]
 
Int_t numValidTrkHits [50]
 
Int_t numValidTrkStrips [50]
 
TrackAssociatorParameters parameters_
 
bool PFcorr_
 
const HcalPFCorrspfRecalib
 
TTree * pfTree
 
float phiGPoint
 
float phiParticle
 
float phiTrack
 
double radius_
 
bool Respcorr_
 
const HcalRespCorrsrespRecalib
 
SteppingHelixPropagatorstepPropF
 
MagneticFieldtheMagField
 
edm::EDGetTokenT
< EcalRecHitCollection
tok_EB_
 
edm::EDGetTokenT
< EcalRecHitCollection
tok_EE_
 
edm::EDGetTokenT
< edm::HepMCProduct
tok_gen_
 
edm::EDGetTokenT
< HBHERecHitCollection
tok_hbhe_
 
edm::EDGetTokenT
< HFRecHitCollection
tok_hf_
 
edm::EDGetTokenT
< HORecHitCollection
tok_ho_
 
edm::EDGetTokenT
< reco::TrackCollection
tok_tracks_
 
TrackDetectorAssociator trackAssociator_
 
Float_t trackEta [50]
 
double trackIsolationCone_
 
Float_t trackP [50]
 
Float_t trackPhi [50]
 
TTree * tracksTree
 
Bool_t trkQual [50]
 
int UsedCells
 
int UsedCellsNoise
 
Float_t xAtHcal
 
Float_t xTrkEcal
 
Float_t xTrkHcal
 
Float_t yAtHcal
 
Float_t yTrkEcal
 
Float_t yTrkHcal
 
Float_t zAtHcal
 
Float_t zTrkEcal
 
Float_t zTrkHcal
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 42 of file HcalCorrPFCalculation.cc.

Constructor & Destructor Documentation

HcalCorrPFCalculation::HcalCorrPFCalculation ( edm::ParameterSet const &  conf)

Definition at line 118 of file HcalCorrPFCalculation.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_25ns10e33_v2_cff::InputTag, and HLT_25ns10e33_v2_cff::parameters.

118  {
119 
120  tok_hbhe_ = consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("hbheRecHitCollectionTag"));
121  tok_hf_ = consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("hfRecHitCollectionTag"));
122  tok_ho_ = consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("hoRecHitCollectionTag"));
123 
124  // should maybe add these options to configuration - cowden
125  tok_EE_ = consumes<EcalRecHitCollection>( edm::InputTag("ecalRecHit","EcalRecHitsEE") );
126  tok_EB_ = consumes<EcalRecHitCollection>( edm::InputTag("ecalRecHit","EcalRecHitsEB") );
127  tok_tracks_ = consumes<reco::TrackCollection>( edm::InputTag("generalTracks") );
128  tok_gen_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
129 
130  // outputFile_ = iConfig.getUntrackedParameter<std::string>("outputFile", "myfile.root");
131 
132  Respcorr_ = iConfig.getUntrackedParameter<bool>("RespcorrAdd", false);
133  PFcorr_ = iConfig.getUntrackedParameter<bool>("PFcorrAdd", false);
134  Conecorr_ = iConfig.getUntrackedParameter<bool>("ConeCorrAdd", true);
135  //radius_ = iConfig.getUntrackedParameter<double>("ConeRadiusCm", 40.);
136  //energyECALmip = iConfig.getParameter<double>("energyECALmip");
137 
138  edm::ParameterSet parameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
142 
143  associationConeSize_=iConfig.getParameter<double>("associationConeSize");
144  clusterConeSize_=iConfig.getParameter<double>("clusterConeSize");
145  ecalCone_=iConfig.getParameter<double>("ecalCone");
146  trackIsolationCone_ = iConfig.getParameter<double>("trackIsolationCone");
147  neutralIsolationCone_ = iConfig.getParameter<double>("neutralIsolationCone");
148 
149  // AxB_=iConfig.getParameter<std::string>("AxB");
150 
151 }
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
void useDefaultPropagator()
use the default propagator
TrackAssociatorParameters parameters_
void loadParameters(const edm::ParameterSet &, edm::ConsumesCollector &)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
edm::EDGetTokenT< HORecHitCollection > tok_ho_
TrackDetectorAssociator trackAssociator_
edm::EDGetTokenT< reco::TrackCollection > tok_tracks_
edm::EDGetTokenT< edm::HepMCProduct > tok_gen_
HcalCorrPFCalculation::~HcalCorrPFCalculation ( )

Definition at line 166 of file HcalCorrPFCalculation.cc.

166 {}

Member Function Documentation

void HcalCorrPFCalculation::analyze ( edm::Event const &  ev,
edm::EventSetup const &  c 
)
overridevirtual

Implements edm::EDAnalyzer.

Definition at line 168 of file HcalCorrPFCalculation.cc.

References funct::abs(), alongMomentum, edm::SortedCollection< T, SORT >::begin(), ecalTB2006H4_GenSimDigiReco_cfg::bField, RecoTauCleanerPlugins::charge, gather_cfg::cout, deltaR(), HLT_25ns10e33_v2_cff::depth, MaxHit_struct::depthhit, MaxHit_struct::dr, alignCSCRings::e, ecalEnergyInCone(), edm::SortedCollection< T, SORT >::end(), eta, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), DigiAliases_cff::generalTracks, edm::EventSetup::get(), edm::Event::getByToken(), CaloSubdetectorGeometry::getClosestCell(), getDistInPlaneSimple(), DetId::Hcal, HcalBarrel, reco::TrackBase::highPurity, MaxHit_struct::hitenergy, HcalDetId::ieta(), MaxHit_struct::ietahitm, info(), HcalDetId::iphi(), MaxHit_struct::iphihitm, TrajectoryStateOnSurface::isValid(), edm::HandleBase::isValid(), npart, nTracks(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::phi(), phi(), PlaneBuilder::plane(), FreeTrajectoryState::position(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), EnergyCorrector::pt, makeMuonMisalignmentScenario::rot, mathSSE::sqrt(), SteppingHelixPropagator_cfi::SteppingHelixPropagator, reco::btau::trackEta, reco::btau::trackPhi, TrackDetMatchInfo::trkGlobPosAtEcal, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

168  {
169 
170  AddRecalib=kFALSE;
171 
172  try{
173 
174  edm::ESHandle <HcalRespCorrs> recalibCorrs;
175  c.get<HcalRespCorrsRcd>().get("recalibrate",recalibCorrs);
176  respRecalib = recalibCorrs.product();
177 
179  c.get<HcalPFCorrsRcd>().get("recalibrate",pfCorrs);
180  pfRecalib = pfCorrs.product();
181 
182  AddRecalib = kTRUE;
183  // LogMessage("CalibConstants")<<" OK ";
184 
185  }catch(const cms::Exception & e) {
186  LogWarning("CalibConstants")<<" Not Found!! ";
187  }
188 
190  ev.getByToken(tok_hbhe_, hbhe);
191  const HBHERecHitCollection Hithbhe = *(hbhe.product());
192 
194  ev.getByToken(tok_hf_, hfcoll);
195  const HFRecHitCollection Hithf = *(hfcoll.product());
196 
198  ev.getByToken(tok_ho_, hocoll);
199  const HORecHitCollection Hitho = *(hocoll.product());
200 
202  ev.getByToken(tok_EE_,ecalEE);
203  const EERecHitCollection HitecalEE = *(ecalEE.product());
204 
206  ev.getByToken(tok_EB_,ecalEB);
207  const EBRecHitCollection HitecalEB = *(ecalEB.product());
208 
209  // temporary collection of EB+EE recHits
210  std::auto_ptr<EcalRecHitCollection> tmpEcalRecHitCollection(new EcalRecHitCollection);
211  for(EcalRecHitCollection::const_iterator recHit = (*ecalEB).begin(); recHit != (*ecalEB).end(); ++recHit)
212  {tmpEcalRecHitCollection->push_back(*recHit);}
213  for(EcalRecHitCollection::const_iterator recHit = (*ecalEE).begin(); recHit != (*ecalEE).end(); ++recHit)
214  {tmpEcalRecHitCollection->push_back(*recHit);}
215  const EcalRecHitCollection Hitecal = *tmpEcalRecHitCollection;
216 
217 
219  ev.getByToken(tok_tracks_, generalTracks);
220 
222  c.get<CaloGeometryRecord>().get(pG);
223  geo = pG.product();
224 
225  /*
226  edm::ESHandle<HcalGeometry> hcalG;
227  c.get<HcalGeometryRecord>().get(hcalG);
228  geoHcal = hcalG.product();
229  */
230 
232 
233  parameters_.useEcal = true;
234  parameters_.useHcal = true;
235  parameters_.useCalo = false;
236  parameters_.useMuon = false;
237  parameters_.dREcal = 0.5;
238  parameters_.dRHcal = 0.6;
239 
240  //parameters_.dREcal = taECALCone_;
241  //parameters_.dRHcal = taHCALCone_;
242 
243 
245  c.get<IdealMagneticFieldRecord>().get(bField);
247  stepPropF->setMaterialMode(false);
249 
250 
251  // double eta_bin[42]={0.,.087,.174,.261,.348,.435,.522,.609,.696,.783,
252  //.870,.957,1.044,1.131,1.218,1.305,1.392,1.479,1.566,1.653,1.740,1.830,1.930,2.043,2.172,
253  //2.322,2.500,2.650,2.853,3.000,3.139,3.314,3.489,3.664,3.839,4.013,4.191,4.363,4.538,4.716,4.889,5.191};
254 
255  // MC info
256  //double phi_MC = -999999.; // phi of initial particle from HepMC
257  //double eta_MC = -999999.; // eta of initial particle from HepMC
258  double mom_MC = 50.; // P of initial particle from HepMC
259  //bool MC = false;
260 
261  // MC information
262 
263 
265  // ev.getByLabel("generatorSmeared",evtMC);
266  ev.getByToken(tok_gen_,evtMC);
267  if (!evtMC.isValid())
268  {
269  std::cout << "no HepMCProduct found" << std::endl;
270  }
271  else
272  {
273  //MC=true;
274  // std::cout << "*** source HepMCProduct found"<< std::endl;
275  }
276 
277  // MC particle with highest pt is taken as a direction reference
278  double maxPt = -99999.;
279  int npart = 0;
280 
281  GlobalPoint initpos (0,0,0);
282 
283  HepMC::GenEvent * myGenEvent = new HepMC::GenEvent(*(evtMC->GetEvent()));
284  for ( HepMC::GenEvent::particle_iterator p = myGenEvent->particles_begin();
285  p != myGenEvent->particles_end(); ++p )
286  {
287  phiParticle = (*p)->momentum().phi();
288  etaParticle = (*p)->momentum().eta();
289  double pt = (*p)->momentum().perp();
290  mom_MC = (*p)->momentum().rho();
291  if(pt > maxPt) { npart++; maxPt = pt; /*phi_MC = phiParticle; eta_MC = etaParticle;*/ }
292  GlobalVector mom ((*p)->momentum().x(),(*p)->momentum().y(),(*p)->momentum().z());
293  int charge = -1;
294 
295  if(abs((*p)->pdg_id())==211) charge = (*p)->pdg_id()/abs((*p)->pdg_id()); // pions only !!!
296  else continue;
297 
298 
299  /* Propogate the partoicle to Hcal */
300 
301 
302  const FreeTrajectoryState *freetrajectorystate_ =
303  new FreeTrajectoryState(initpos, mom ,charge , &(*theMagField));
304 
305 
306  TrackDetMatchInfo info = trackAssociator_.associate(ev, c, *freetrajectorystate_ , parameters_);
307 
308  GlobalPoint barrelMC(0,0,0), endcapMC(0,0,0), forwardMC1(0,0,0), forwardMC2(0,0,0);
309 
310  GlobalPoint gPointHcal(0.,0.,0.);
311 
312  /*
313  xTrkHcal=info.trkGlobPosAtHcal.x();
314  yTrkHcal=info.trkGlobPosAtHcal.y();
315  zTrkHcal=info.trkGlobPosAtHcal.z();
316  //GlobalPoint gPointHcal(xTrkHcal,yTrkHcal,zTrkHcal);
317 
318  GlobalVector trackMomAtHcal = info.trkMomAtHcal;
319 
320  if (xTrkHcal==0 && yTrkHcal==0 && zTrkHcal==0) continue;
321  */
322 
323 
324  if(fabs(etaParticle)<1.392) {
325  Cylinder *cylinder = new Cylinder(181.1, Surface::PositionType(0,0,0),
327 
328  TrajectoryStateOnSurface steppingHelixstateinfo_ = stepPropF->propagate(*freetrajectorystate_, (*cylinder));
329  if(steppingHelixstateinfo_.isValid() )
330  { barrelMC = steppingHelixstateinfo_.freeState()->position(); }
331 
332  }
333 
334 
335  doHF = kFALSE;
336  if(fabs(etaParticle)>=1.392 && fabs(etaParticle)<5.191) {
337 
339 
340  Surface::PositionType pos(0., 0.,400.5*fabs(etaParticle)/etaParticle);
342 
343 
344  TrajectoryStateOnSurface steppingHelixstateinfo_ = stepPropF->propagate(*freetrajectorystate_, (*aPlane));
345  if(steppingHelixstateinfo_.isValid() && fabs(steppingHelixstateinfo_.freeState()->position().eta())<3.0 )
346  endcapMC = steppingHelixstateinfo_.freeState()->position();
347  if(steppingHelixstateinfo_.isValid() && fabs(steppingHelixstateinfo_.freeState()->position().eta())>3.0 )
348  doHF=kTRUE;
349  }
350  if(doHF) {
351 
352  if (abs(etaParticle)>5.191) continue;
353 
354  if(abs(etaParticle)>2.99) {
356 
357  Surface::PositionType pos1(0., 0.,1125*fabs(etaParticle)/etaParticle);
358  // Surface::PositionType pos1(0., 0.,1115*fabs(etaParticle)/etaParticle);
359  Surface::PositionType pos2(0., 0.,1137*fabs(etaParticle)/etaParticle);
362 
363 
364  TrajectoryStateOnSurface steppingHelixstateinfo_ = stepPropF->propagate(*freetrajectorystate_, (*aPlane1));
365  if(steppingHelixstateinfo_.isValid() )
366  forwardMC1 = steppingHelixstateinfo_.freeState()->position();
367 
368  steppingHelixstateinfo_ = stepPropF->propagate(*freetrajectorystate_, (*aPlane2));
369  if(steppingHelixstateinfo_.isValid() )
370  forwardMC2 = steppingHelixstateinfo_.freeState()->position();
371  }
372  }
373  /* ------------ ------------ ----------------------------- */
374 
375 
376 
377  /* Finding the closest cell at Hcal */
378  Int_t iphitrue = -10;
379  Int_t ietatrue = 100;
380  HcalDetId tempId, tempId1, tempId2;
381 
382 
383  if (abs(etaParticle)<1.392)
384  {
385  gPointHcal = barrelMC;
386  tempId = gHcal->getClosestCell(gPointHcal);
387  }
388  if (abs(etaParticle)>=1.392 && abs(etaParticle)<3.0)
389  {
390  gPointHcal = endcapMC;
391  tempId = gHcal->getClosestCell(gPointHcal);
392  }
393  if (abs(etaParticle)>=3.0 && abs(etaParticle)<5.191)
394  {
395  /*
396  tempId1 = gHcal->getClosestCell(forwardMC1);
397  tempId2 = gHcal->getClosestCell(forwardMC2);
398  if (deltaR(tempId1.eta(), tempId1.phi(), etaParticle, phiParticle) < deltaR(tempId2.eta(), tempId2.phi(), etaParticle, phiParticle))
399  gPointHcal = forwardMC1;
400 
401  else gPointHcal = forwardMC2;
402  */
403  gPointHcal = forwardMC1;
404  tempId = gHcal->getClosestCell(gPointHcal);
405  //tempId = gHcal->CaloSubdetectorGeometry::getClosestCell(gPointHcal);
406  }
407 
408 
409 
410  tempId = gHcal->getClosestCell(gPointHcal);
411 
412  ietatrue = tempId.ieta();
413  iphitrue = tempId.iphi();
414 
415  etaGPoint = gPointHcal.eta();
416  phiGPoint = gPointHcal.phi();
417 
418  //xAtHcal = gPointHcal.x();
419  //yAtHcal = gPointHcal.y();
420  //zAtHcal = gPointHcal.z();
421  /* ----------------- ------------------------ */
422 
423 
424  if (gPointHcal.x()==0 && gPointHcal.y()==0 && gPointHcal.z()==0)
425  {/*cout <<"gPointHcal is Zero!"<<endl;*/ continue;}
426 
427 
428  float etahcal=gPointHcal.eta();
429  // float phihcal=gPointHcal.phi();
430  if (abs(etahcal)>5.192) continue;
431  //if (abs(etahcal)>3.0 && abs(etahcal)<5.191)
432 
433  //cout <<gPointHcal.x() <<" "<<gPointHcal.y() <<" "<<gPointHcal.z()<<" "<<gPointHcal.eta()<<" "<<gPointHcal.phi()<<" "<<ietatrue<<" "<<iphitrue <<endl;
434 
435  // if (ietatrue==100 || iphitrue==-10) {cout<<"ietatrue: "<<ietatrue<<" iphitrue: "<<iphitrue<<" etahcal: "<<etahcal<<" phihcal: "<<phihcal<<endl;}
436 
437 
438 
439 
440  /* ------------- Calculate Ecal Energy using TrackAssociator ---------------------- */
441 
442  //float etaecal=info.trkGlobPosAtEcal.eta();
443 
444  xTrkEcal=info.trkGlobPosAtEcal.x();
445  yTrkEcal=info.trkGlobPosAtEcal.y();
446  zTrkEcal=info.trkGlobPosAtEcal.z();
447 
449 
450  eECAL = ecalEnergyInCone(gPointEcal, ecalCone_, Hitecal, geo);
451  eECAL09cm = ecalEnergyInCone(gPointEcal, 9, Hitecal, geo);
452  eECAL40cm = ecalEnergyInCone(gPointEcal, 40, Hitecal, geo);
453 
454  eEcalCone = eECAL;
455  //if(abs(etaecal)<1.5) enEcalB -> Fill(eEcalCone);
456  //if(abs(etaecal)>1.5 && abs(etaecal)<3.1) enEcalE -> Fill(eEcalCone);
457 
458  /* ------------------------------ -------------------------- ----------------- */
459 
460 
461  /* ----------------- Find the Hottest Hcal RecHit --------------------------- */
462  MaxHit_struct MaxHit;
463 
464  MaxHit.hitenergy=-100.;
465  Float_t recal = 1.0;
466 
467  //Hcal:
468  eHcalCone = 0.;
469  eHcalConeNoise = 0.;
470  UsedCells = 0;
471  UsedCellsNoise = 0;
472  e3x3 = 0.;
473  e5x5 = 0.;
474 
475  for (HBHERecHitCollection::const_iterator hhit=Hithbhe.begin(); hhit!=Hithbhe.end(); hhit++)
476  //for (HcalRecHitCollection::const_iterator hhit=Hithcal.begin(); hhit!=Hithcal.end(); hhit++)
477  {
478  recal = RecalibFactor(hhit->detid());
479  GlobalPoint pos = geo->getPosition(hhit->detid());
480 
481  int iphihit = (hhit->id()).iphi();
482  int ietahit = (hhit->id()).ieta();
483  int depthhit = (hhit->id()).depth();
484  float enehit = hhit->energy()* recal;
485 
486  if (depthhit!=1) continue;
487 
488  double distAtHcal = getDistInPlaneSimple(gPointHcal, pos);
489 
490  if(distAtHcal < clusterConeSize_)
491  {
492  for (HBHERecHitCollection::const_iterator hhit2=Hithbhe.begin(); hhit2!=Hithbhe.end(); hhit2++)
493  //for (HcalRecHitCollection::const_iterator hhit2=Hithcal.begin(); hhit2!=Hithcal.end(); hhit2++)
494  {
495  int iphihit2 = (hhit2->id()).iphi();
496  int ietahit2 = (hhit2->id()).ieta();
497  int depthhit2 = (hhit2->id()).depth();
498  float enehit2 = hhit2->energy() * recal;
499 
500  if (iphihit==iphihit2 && ietahit==ietahit2 && depthhit!=depthhit2) enehit = enehit+enehit2;
501 
502  }
503 
504 
505  if(enehit > MaxHit.hitenergy)
506  {
507  MaxHit.hitenergy = enehit;
508  MaxHit.ietahitm = (hhit->id()).ieta();
509  MaxHit.iphihitm = (hhit->id()).iphi();
510  MaxHit.dr = distAtHcal;
511  //MaxHit.depthhit = (hhit->id()).depth();
512  MaxHit.depthhit = 1;
513  }
514  }
515  }
516 
517 
518  for (HFRecHitCollection::const_iterator hhit=Hithf.begin(); hhit!=Hithf.end(); hhit++)
519  {
520 
521  recal = RecalibFactor(hhit->detid());
522 
523  GlobalPoint pos = geo->getPosition(hhit->detid());
524 
525  int iphihit = (hhit->id()).iphi();
526  int ietahit = (hhit->id()).ieta();
527  int depthhit = (hhit->id()).depth();
528  float enehit = hhit->energy()* recal;
529 
530  double distAtHcal = getDistInPlaneSimple(gPointHcal,pos);
531 
532  if(distAtHcal < associationConeSize_)
533  {
534  for (HFRecHitCollection::const_iterator hhit2=Hithf.begin(); hhit2!=Hithf.end(); hhit2++)
535  {
536  int iphihit2 = (hhit2->id()).iphi();
537  int ietahit2 = (hhit2->id()).ieta();
538  int depthhit2 = (hhit2->id()).depth();
539  float enehit2 = hhit2->energy() * recal;
540 
541  if (iphihit==iphihit2 && ietahit==ietahit2 && depthhit!=depthhit2) enehit = enehit+enehit2;
542 
543  }
544 
545  if(enehit > MaxHit.hitenergy)
546  {
547  MaxHit.hitenergy = enehit;
548  MaxHit.ietahitm = (hhit->id()).ieta();
549  MaxHit.iphihitm = (hhit->id()).iphi();
550  MaxHit.dr = distAtHcal;
551  MaxHit.depthhit = 1;
552  }
553  }
554  }
555 
556  /* ---------------------- ---------------- -------------------------------------------- */
557 
558 
559  /* ----------- Collect Hcal Energy in a Cone (and also 3x3 and 5x5 around the hottest cell)*/
560 
561  for (HBHERecHitCollection::const_iterator hhit=Hithbhe.begin(); hhit!=Hithbhe.end(); hhit++)
562  // for (HcalRecHitCollection::const_iterator hhit=Hithcal.begin(); hhit!=Hithcal.end(); hhit++)
563  {
564 
565  recal = RecalibFactor(hhit->detid());
566  //cout<<"recal: "<<recal<<endl;
567 
568  GlobalPoint pos = geo->getPosition(hhit->detid());
569 
570  int iphihit = (hhit->id()).iphi();
571  int ietahit = (hhit->id()).ieta();
572  int depthhit = (hhit->id()).depth();
573  float enehit = hhit->energy()* recal;
574 
575  //if (depthhit!=1) continue;
576 
577  //Set noise RecHit opposite to track hits
578  int iphihitNoise = iphihit >36 ? iphihit-36 : iphihit+36;
579  int ietahitNoise = -ietahit;
580  int depthhitNoise = depthhit;
581 
582  double distAtHcal = getDistInPlaneSimple(gPointHcal, pos);
583  if(distAtHcal < clusterConeSize_ && MaxHit.hitenergy > 0.)
584  {
585  eHcalCone += enehit;
586  UsedCells++;
587 
588 
589  int DIETA = 100;
590  if(MaxHit.ietahitm*(hhit->id()).ieta()>0)
591  { DIETA = MaxHit.ietahitm - (hhit->id()).ieta();}
592  if(MaxHit.ietahitm*(hhit->id()).ieta()<0)
593  { DIETA = MaxHit.ietahitm - (hhit->id()).ieta(); DIETA = DIETA>0 ? DIETA-1 : DIETA+1;}
594  int DIPHI = abs(MaxHit.iphihitm - (hhit->id()).iphi());
595  DIPHI = DIPHI>36 ? 72-DIPHI : DIPHI;
596 
597 
598  if (abs(DIETA)<=2 && (abs(DIPHI)<=2 || ((abs(MaxHit.ietahitm)>20 && abs(DIPHI)<=4) && !( (abs(MaxHit.ietahitm)==21 || abs(MaxHit.ietahitm)==22) && abs((hhit->id()).ieta())<=20 && abs(DIPHI)>2) )) )
599  {e5x5 += hhit->energy();}
600  if (abs(DIETA)<=1 && (abs(DIPHI)<=1 || ((abs(MaxHit.ietahitm)>20 && abs(DIPHI)<=2) && !(abs(MaxHit.ietahitm)==21 && abs((hhit->id()).ieta())<=20 && abs(DIPHI)>1) )) )
601  {e3x3 += hhit->energy();}
602 
603  // cout<<"track: ieta "<<ietahit<<" iphi: "<<iphihit<<" depth: "<<depthhit<<" energydepos: "<<enehit<<endl;
604 
605  for (HBHERecHitCollection::const_iterator hhit2=Hithbhe.begin(); hhit2!=Hithbhe.end(); hhit2++)
606  {
607  recal = RecalibFactor(hhit2->detid());
608  int iphihit2 = (hhit2->id()).iphi();
609  int ietahit2 = (hhit2->id()).ieta();
610  int depthhit2 = (hhit2->id()).depth();
611  float enehit2 = hhit2->energy()* recal;
612 
613  if (iphihitNoise == iphihit2 && ietahitNoise == ietahit2 && depthhitNoise == depthhit2 && enehit2>0.)
614  {
615  eHcalConeNoise += hhit2->energy()*recal;
616  UsedCellsNoise++;
617  //cout<<"Noise: ieta "<<ietahit2<<" iphi: "<<iphihit2<<" depth: "<<depthhit2<<" energydepos: "<<enehit2<<endl;
618  }
619  }
620  }
621  } //end of all HBHE hits loop
622 
623 
624  for (HFRecHitCollection::const_iterator hhit=Hithf.begin(); hhit!=Hithf.end(); hhit++)
625  {
626 
627  recal = RecalibFactor(hhit->detid());
628 
629  GlobalPoint pos = geo->getPosition(hhit->detid());
630  //float phihit = pos.phi();
631  //float etahit = pos.eta();
632 
633  int iphihit = (hhit->id()).iphi();
634  int ietahit = (hhit->id()).ieta();
635  int depthhit = (hhit->id()).depth();
636  float enehit = hhit->energy()* recal;
637 
638  //Set noise RecHit opposite to track hits
639  int iphihitNoise = iphihit >36 ? iphihit-36 : iphihit+36;
640  int ietahitNoise = -ietahit;
641  int depthhitNoise = depthhit;
642 
643  double distAtHcal = getDistInPlaneSimple(gPointHcal,pos);
644 
645  if(distAtHcal < clusterConeSize_ && MaxHit.hitenergy > 0.)
646  //if(dr<radius_ && enehit>0.)
647  {
648 
649  eHcalCone += enehit;
650  UsedCells++;
651 
652  int DIETA = 100;
653  if(MaxHit.ietahitm*(hhit->id()).ieta()>0)
654  { DIETA = MaxHit.ietahitm - (hhit->id()).ieta();}
655  if(MaxHit.ietahitm*(hhit->id()).ieta()<0)
656  { DIETA = MaxHit.ietahitm - (hhit->id()).ieta(); DIETA = DIETA>0 ? DIETA-1 : DIETA+1;}
657  int DIPHI = abs(MaxHit.iphihitm - (hhit->id()).iphi());
658  DIPHI = DIPHI>36 ? 72-DIPHI : DIPHI;
659 
660 
661  if (abs(DIETA)<=2 && (abs(DIPHI)<=2 || ((abs(MaxHit.ietahitm)>20 && abs(DIPHI)<=4) && !( (abs(MaxHit.ietahitm)==21 || abs(MaxHit.ietahitm)==22) && abs((hhit->id()).ieta())<=20 && abs(DIPHI)>2) )) )
662  {e5x5 += hhit->energy();}
663  if (abs(DIETA)<=1 && (abs(DIPHI)<=1 || ((abs(MaxHit.ietahitm)>20 && abs(DIPHI)<=2) && !(abs(MaxHit.ietahitm)==21 && abs((hhit->id()).ieta())<=20 && abs(DIPHI)>1) )) )
664  {e3x3 += hhit->energy();}
665 
666  for (HFRecHitCollection::const_iterator hhit2=Hithf.begin(); hhit2!=Hithf.end(); hhit2++)
667  {
668  recal = RecalibFactor(hhit2->detid());
669 
670  int iphihit2 = (hhit2->id()).iphi();
671  int ietahit2 = (hhit2->id()).ieta();
672  int depthhit2 = (hhit2->id()).depth();
673  float enehit2 = hhit2->energy()* recal;
674 
675  if (iphihitNoise == iphihit2 && ietahitNoise == ietahit2 && depthhitNoise == depthhit2 && enehit2>0.01)
676  {
677  eHcalConeNoise += hhit2->energy()*recal;
678  UsedCellsNoise++;
679  }
680  }
681 
682  }
683  } //end of all HF hits loop
684 
685  /* ---------------- -------------------- ---------------------------------------------- -------- */
686 
687 
688  /* ------------- - Track-MC matching (if any tracks are in event) ------------ - */
689 
690  nTracks=0;
691 
692  delRmc[0] = 5;
693 
694  float delR_track_particle = 100;
695 
696  for (reco::TrackCollection::const_iterator track1=generalTracks->begin(); track1!=generalTracks->end(); track1++)
697  {
698  delR_track_particle = deltaR(etaParticle, phiParticle, track1->eta(), track1->phi());
699 
700  trackEta[nTracks] = track1 -> eta();
701  trackPhi[nTracks] = track1 -> phi();
702  trackP[nTracks] = sqrt(track1->px()*track1->px() + track1->py()*track1->py() + track1->pz()*track1->pz());
703 
704  delRmc[nTracks] = delR_track_particle;
705  numValidTrkHits[nTracks] = track1->hitPattern().numberOfValidHits();
706  numValidTrkStrips[nTracks] = track1->hitPattern().numberOfValidStripTECHits();
707  numLayers[nTracks] = track1->hitPattern().trackerLayersWithMeasurement(); //layers crossed
708  trkQual[nTracks] = track1->quality(reco::TrackBase::highPurity);
709 
710  nTracks++;
711  }
712 
713 
714  /* ------------------ ------------------------------ ------- */
715 
716 
717  int dieta_M_P = 100;
718  int diphi_M_P = 100;
719  if(MaxHit.ietahitm*ietatrue>0) {dieta_M_P = abs (MaxHit.ietahitm-ietatrue);}
720  if(MaxHit.ietahitm*ietatrue<0) {dieta_M_P = abs(MaxHit.ietahitm-ietatrue)-1;}
721  diphi_M_P = abs(MaxHit.iphihitm-iphitrue);
722 
723  diphi_M_P = diphi_M_P>36 ? 72-diphi_M_P : diphi_M_P;
724  iDr = sqrt(diphi_M_P*diphi_M_P+dieta_M_P*dieta_M_P);
725 
726  /* if (iDr>15)
727  {
728 cout<<"diphi: "<<diphi_M_P<<" dieta: "<<dieta_M_P<<" iDr: "<<iDr<<" ietatrue:"<<ietatrue<<" iphitrue:"<<iphitrue<<endl;
729 cout<<"M ieta: "<<MaxHit.ietahitm<<" M iphi: "<<MaxHit.iphihitm<<endl;
730 
731 }*/
732 
733 
734  Bool_t passCuts = kFALSE;
735  passCuts=kTRUE;
736  //if(eEcalCone < energyECALmip && iDr<2.) passCuts = kTRUE;
737  //if(MaxHit.hitenergy>0.) passCuts = kTRUE;
738 
739 
740  if(passCuts)
741  {
742  /*
743  enHcal -> Fill(ietatrue, eHcalCone);
744  nCells -> Fill(ietatrue, UsedCells);
745  enHcalNoise -> Fill(ietatrue, eHcalConeNoise);
746  nCellsNoise -> Fill(ietatrue, UsedCellsNoise);
747  */
748 
749 
750  //e3x3=0; e5x5=0;
751 
752  iEta = ietatrue;
753  iPhi = iphitrue;
754 
755  //iEta = MaxHit.ietahitm;
756  //iPhi = MaxHit.iphihitm;
757  delR = MaxHit.dr;
758  eCentHit = MaxHit.hitenergy;
759 
760  eParticle = mom_MC;
761  //eTrack = mom_MC;
762  //phiTrack = phiParticle;
763  //etaTrack = etaParticle;
764 
765  pfTree->Fill();
766  }
767 
768  } //Hep:MC
769 
770 
771 }
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:43
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
const HcalPFCorrs * pfRecalib
static const TGPicture * info(bool iBackgroundIsBlack)
double ecalEnergyInCone(const GlobalPoint center, double radius, const EcalRecHitCollection ecalCol, const CaloGeometry *geo)
ReturnType plane(const PositionType &pos, const RotationType &rot) const
Definition: PlaneBuilder.h:22
TrackAssociatorParameters parameters_
std::vector< EcalRecHit >::const_iterator const_iterator
double npart
Definition: HydjetWrapper.h:49
bool ev
void applyRadX0Correction(bool applyRadX0Correction)
T sqrt(T t)
Definition: SSEVec.h:18
FreeTrajectoryState const * freeState(bool withErrors=true) const
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void propagate(const SteppingHelixStateInfo &ftsStart, const Surface &sDest, SteppingHelixStateInfo &out) const
Propagate to Plane given a starting point.
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:68
const CaloGeometry * geo
bool isValid() const
Definition: HandleBase.h:75
const HcalRespCorrs * respRecalib
const_iterator end() const
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
virtual DetId getClosestCell(const GlobalPoint &r) const
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:124
GlobalPoint position() const
SteppingHelixPropagator * stepPropF
T const * product() const
Definition: Handle.h:81
edm::EDGetTokenT< HFRecHitCollection > tok_hf_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
T const * product() const
Definition: ESHandle.h:86
edm::EDGetTokenT< HORecHitCollection > tok_ho_
TrackDetectorAssociator trackAssociator_
T eta() const
Definition: PV3DBase.h:76
edm::EDGetTokenT< reco::TrackCollection > tok_tracks_
TrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const AssociatorParameters &)
double RecalibFactor(HcalDetId id)
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
double getDistInPlaneSimple(const GlobalPoint caloPoint, const GlobalPoint rechitPoint)
Definition: ConeDefinition.h:9
tuple cout
Definition: gather_cfg.py:145
edm::EDGetTokenT< edm::HepMCProduct > tok_gen_
void setMaterialMode(bool noMaterial)
Switch for material effects mode: no material effects if true.
const_iterator begin() const
Global3DVector GlobalVector
Definition: GlobalVector.h:10
void HcalCorrPFCalculation::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 773 of file HcalCorrPFCalculation.cc.

References nTracks(), reco::btau::trackEta, and reco::btau::trackPhi.

773  {
774 
775  pfTree = fs -> make<TTree>("pfTree", "Tree for pf info");
776 
777 
778  pfTree->Branch("nTracks", &nTracks, "nTracks/I");
779  pfTree->Branch("trackEta", trackEta, "trackEta[nTracks]/F");
780  pfTree->Branch("trackPhi", trackPhi, "trackPhi[nTracks]/F");
781  pfTree->Branch("trackP", trackP, "trackP[nTracks]/F");
782 
783  pfTree->Branch("delRmc", delRmc, "delRmc[nTracks]/F");
784  pfTree->Branch("numValidTrkHits", numValidTrkHits, "numValidTrkHits[nTracks]/I");
785  pfTree->Branch("numValidTrkStrips", numValidTrkStrips, "numValidTrkStrips[nTracks]/I");
786  pfTree->Branch("numLayers", numLayers, "numLayers[nTracks]/I");
787  pfTree->Branch("trkQual", trkQual, "trkQual[nTracks]/O");
788 
789 
790  pfTree->Branch("eEcalCone", &eEcalCone, "eEcalCone/F");
791  pfTree->Branch("eHcalCone", &eHcalCone, "eHcalCone/F");
792  pfTree->Branch("eHcalConeNoise", &eHcalConeNoise, "eHcalConeNoise/F");
793 
794  pfTree->Branch("UsedCellsNoise", &UsedCellsNoise, "UsedCellsNoise/I");
795  pfTree->Branch("UsedCells", &UsedCells, "UsedCells/I");
796 
797  pfTree->Branch("eCentHit", &eCentHit , "eCentHit/F");
798 
799  pfTree->Branch("eParticle", &eParticle, "eParticle/F");
800  pfTree->Branch("etaParticle", &etaParticle, "etaParticle/F");
801  pfTree->Branch("phiParticle", &phiParticle, "phiParticle/F");
802 
803  pfTree->Branch("etaGPoint", &etaGPoint, "etaGPoint/F");
804  pfTree->Branch("phiGPoint", &phiGPoint, "phiGPoint/F");
805 
806  pfTree->Branch("xAtHcal", &xAtHcal, "xAtHcal/F");
807  pfTree->Branch("yAtHcal", &yAtHcal, "yAtHcal/F");
808  pfTree->Branch("zAtHcal", &zAtHcal, "zAtHcal/F");
809 
810  pfTree->Branch("eECAL09cm", &eECAL09cm, "eECAL09cm/F");
811  pfTree->Branch("eECAL40cm", &eECAL40cm, "eECAL40cm/F");
812  pfTree->Branch("eECAL", &eECAL, "eECAL/F");
813 
814  pfTree->Branch("e3x3 ", &e3x3 , "e3x3/F");
815  pfTree->Branch("e5x5", &e5x5 , "e5x5/F");
816 
817  pfTree->Branch("iDr", &iDr, "iDr/F");
818  pfTree->Branch("delR", &delR, "delR/F");
819 
820  pfTree->Branch("iEta", &iEta, "iEta/I");
821  pfTree->Branch("iPhi", &iPhi, "iPhi/I");
822 
823  // pfTree->Branch("numValidTrkHits", &numValidTrkHits, "numValidTrkHits/I");
824  // pfTree->Branch("numValidTrkStrips", &numValidTrkStrips, "numValidTrkStrips/I");
825  // pfTree->Branch("trkQual", &trkQual, "trkQual/");
826  // pfTree->Branch("numLayers", &numLayers, "numLayers/I");
827 
828 }
edm::Service< TFileService > fs
void HcalCorrPFCalculation::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 831 of file HcalCorrPFCalculation.cc.

Referenced by o2o.O2ORunMgr::executeJob().

832 {}
double HcalCorrPFCalculation::RecalibFactor ( HcalDetId  id)
private

Definition at line 154 of file HcalCorrPFCalculation.cc.

References V0MonitoringClient_cfi::factor.

155 {
156  Float_t resprecal = 1.;
157  Float_t pfrecal = 1.;
158  if(AddRecalib) {
159  if(Respcorr_) resprecal = respRecalib -> getValues(id)->getValue();
160  if(PFcorr_) pfrecal = pfRecalib -> getValues(id)->getValue();
161  }
162  Float_t factor = resprecal*pfrecal;
163  return factor;
164 }
const HcalPFCorrs * pfRecalib
const HcalRespCorrs * respRecalib

Member Data Documentation

Bool_t HcalCorrPFCalculation::AddRecalib
private

Definition at line 72 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::associationConeSize_
private

Definition at line 58 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::CentHitFactor
private

Definition at line 63 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::clusterConeSize_
private

Definition at line 58 of file HcalCorrPFCalculation.cc.

bool HcalCorrPFCalculation::Conecorr_
private

Definition at line 55 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::delR
private

Definition at line 66 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::delRmc[50]
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

Bool_t HcalCorrPFCalculation::doHF
private

Definition at line 71 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::e3x3
private

Definition at line 67 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::e5x5
private

Definition at line 67 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::ecalCone_
private

Definition at line 58 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eCentHit
private

Definition at line 62 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eECAL
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eECAL09cm
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eECAL40cm
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eEcalCone
private

Definition at line 91 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eHcalCone
private

Definition at line 91 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eHcalConeNoise
private

Definition at line 91 of file HcalCorrPFCalculation.cc.

TProfile * HcalCorrPFCalculation::enHcal
private

Definition at line 99 of file HcalCorrPFCalculation.cc.

TProfile * HcalCorrPFCalculation::enHcalNoise
private

Definition at line 99 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eParticle
private

Definition at line 62 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::etaGPoint
private

Definition at line 69 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::etaParticle
private

Definition at line 93 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::etaTrack
private

Definition at line 68 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eTrack
private

Definition at line 62 of file HcalCorrPFCalculation.cc.

edm::Service<TFileService> HcalCorrPFCalculation::fs
private

Definition at line 103 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::genEta
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::genPhi
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

const CaloGeometry* HcalCorrPFCalculation::geo
private

Definition at line 84 of file HcalCorrPFCalculation.cc.

const HcalGeometry* HcalCorrPFCalculation::geoHcal
private

Definition at line 85 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::iDr
private

Definition at line 66 of file HcalCorrPFCalculation.cc.

int HcalCorrPFCalculation::iEta
private

Definition at line 64 of file HcalCorrPFCalculation.cc.

int HcalCorrPFCalculation::iPhi
private

Definition at line 64 of file HcalCorrPFCalculation.cc.

TProfile* HcalCorrPFCalculation::nCells
private

Definition at line 99 of file HcalCorrPFCalculation.cc.

TProfile * HcalCorrPFCalculation::nCellsNoise
private

Definition at line 99 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::neutralIsolationCone_
private

Definition at line 58 of file HcalCorrPFCalculation.cc.

int HcalCorrPFCalculation::nevtot
private

Definition at line 73 of file HcalCorrPFCalculation.cc.

Int_t HcalCorrPFCalculation::nTracks
private

Definition at line 104 of file HcalCorrPFCalculation.cc.

Int_t HcalCorrPFCalculation::numLayers[50]
private

Definition at line 95 of file HcalCorrPFCalculation.cc.

Int_t HcalCorrPFCalculation::numValidTrkHits[50]
private

Definition at line 95 of file HcalCorrPFCalculation.cc.

Int_t HcalCorrPFCalculation::numValidTrkStrips[50]
private

Definition at line 95 of file HcalCorrPFCalculation.cc.

TrackAssociatorParameters HcalCorrPFCalculation::parameters_
private
bool HcalCorrPFCalculation::PFcorr_
private

Definition at line 54 of file HcalCorrPFCalculation.cc.

const HcalPFCorrs* HcalCorrPFCalculation::pfRecalib
private

Definition at line 76 of file HcalCorrPFCalculation.cc.

TTree* HcalCorrPFCalculation::pfTree
private

Definition at line 101 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::phiGPoint
private

Definition at line 69 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::phiParticle
private

Definition at line 93 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::phiTrack
private

Definition at line 68 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::radius_
private

Definition at line 56 of file HcalCorrPFCalculation.cc.

bool HcalCorrPFCalculation::Respcorr_
private

Definition at line 53 of file HcalCorrPFCalculation.cc.

const HcalRespCorrs* HcalCorrPFCalculation::respRecalib
private

Definition at line 75 of file HcalCorrPFCalculation.cc.

SteppingHelixPropagator* HcalCorrPFCalculation::stepPropF
private

Definition at line 78 of file HcalCorrPFCalculation.cc.

MagneticField* HcalCorrPFCalculation::theMagField
private

Definition at line 79 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<EcalRecHitCollection> HcalCorrPFCalculation::tok_EB_
private

Definition at line 112 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<EcalRecHitCollection> HcalCorrPFCalculation::tok_EE_
private

Definition at line 111 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<edm::HepMCProduct> HcalCorrPFCalculation::tok_gen_
private

Definition at line 114 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<HBHERecHitCollection> HcalCorrPFCalculation::tok_hbhe_
private

Definition at line 107 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<HFRecHitCollection> HcalCorrPFCalculation::tok_hf_
private

Definition at line 109 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<HORecHitCollection> HcalCorrPFCalculation::tok_ho_
private

Definition at line 108 of file HcalCorrPFCalculation.cc.

edm::EDGetTokenT<reco::TrackCollection> HcalCorrPFCalculation::tok_tracks_
private

Definition at line 113 of file HcalCorrPFCalculation.cc.

TrackDetectorAssociator HcalCorrPFCalculation::trackAssociator_
private

Definition at line 81 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::trackEta[50]
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::trackIsolationCone_
private

Definition at line 58 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::trackP[50]
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::trackPhi[50]
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

TTree * HcalCorrPFCalculation::tracksTree
private

Definition at line 101 of file HcalCorrPFCalculation.cc.

Bool_t HcalCorrPFCalculation::trkQual[50]
private

Definition at line 97 of file HcalCorrPFCalculation.cc.

int HcalCorrPFCalculation::UsedCells
private

Definition at line 92 of file HcalCorrPFCalculation.cc.

int HcalCorrPFCalculation::UsedCellsNoise
private

Definition at line 92 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::xAtHcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::xTrkEcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::xTrkHcal
private

Definition at line 87 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::yAtHcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::yTrkEcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::yTrkHcal
private

Definition at line 87 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::zAtHcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::zTrkEcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::zTrkHcal
private

Definition at line 87 of file HcalCorrPFCalculation.cc.