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
 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
 
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
 
- 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(), and Parameters::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("generator") );
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");
141 
142  associationConeSize_=iConfig.getParameter<double>("associationConeSize");
143  clusterConeSize_=iConfig.getParameter<double>("clusterConeSize");
144  ecalCone_=iConfig.getParameter<double>("ecalCone");
145  trackIsolationCone_ = iConfig.getParameter<double>("trackIsolationCone");
146  neutralIsolationCone_ = iConfig.getParameter<double>("neutralIsolationCone");
147 
148  // AxB_=iConfig.getParameter<std::string>("AxB");
149 
150 }
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
dictionary parameters
Definition: Parameters.py:2
void useDefaultPropagator()
use the default propagator
TrackAssociatorParameters parameters_
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_
void loadParameters(const edm::ParameterSet &)
HcalCorrPFCalculation::~HcalCorrPFCalculation ( )

Definition at line 165 of file HcalCorrPFCalculation.cc.

165 {}

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 167 of file HcalCorrPFCalculation.cc.

References funct::abs(), alongMomentum, edm::SortedCollection< T, SORT >::begin(), ecalTB2006H4_GenSimDigiReco_cfg::bField, DeDxDiscriminatorTools::charge(), gather_cfg::cout, deltaR(), MaxHit_struct::depthhit, MaxHit_struct::dr, alignCSCRings::e, ecalEnergyInCone(), edm::SortedCollection< T, SORT >::end(), PV3DBase< T, PVType, FrameType >::eta(), eta(), TrajectoryStateOnSurface::freeState(), mixHitsAndTracksWithPU_cfi::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, edm::HandleBase::isValid(), TrajectoryStateOnSurface::isValid(), npart, AlCaHLTBitMon_ParallelJobs::p, phi, PV3DBase< T, PVType, FrameType >::phi(), PlaneBuilder::plane(), FreeTrajectoryState::position(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), RecoTauCleanerPlugins::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().

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

Reimplemented from edm::EDAnalyzer.

Definition at line 772 of file HcalCorrPFCalculation.cc.

References reco::btau::trackEta, and reco::btau::trackPhi.

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

Reimplemented from edm::EDAnalyzer.

Definition at line 830 of file HcalCorrPFCalculation.cc.

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

Definition at line 153 of file HcalCorrPFCalculation.cc.

154 {
155  Float_t resprecal = 1.;
156  Float_t pfrecal = 1.;
157  if(AddRecalib) {
158  if(Respcorr_) resprecal = respRecalib -> getValues(id)->getValue();
159  if(PFcorr_) pfrecal = pfRecalib -> getValues(id)->getValue();
160  }
161  Float_t factor = resprecal*pfrecal;
162  return factor;
163 }
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.