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)
 
virtual void beginJob ()
 
virtual void endJob ()
 
 HcalCorrPFCalculation (edm::ParameterSet const &conf)
 
 ~HcalCorrPFCalculation ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) 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
 
edm::InputTag hbheRecHitCollectionTag_
 
edm::InputTag hfRecHitCollectionTag_
 
edm::InputTag hoRecHitCollectionTag_
 
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
 
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
 
typedef WorkerT< EDAnalyzerWorkerType
 
- 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::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- 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 43 of file HcalCorrPFCalculation.cc.

Constructor & Destructor Documentation

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

Definition at line 114 of file HcalCorrPFCalculation.cc.

References associationConeSize_, clusterConeSize_, Conecorr_, ecalCone_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), TrackAssociatorParameters::loadParameters(), neutralIsolationCone_, Parameters::parameters, parameters_, PFcorr_, Respcorr_, trackAssociator_, trackIsolationCone_, and TrackDetectorAssociator::useDefaultPropagator().

114  :
115  hbheRecHitCollectionTag_(iConfig.getParameter<edm::InputTag>("hbheRecHitCollectionTag")),
116  hfRecHitCollectionTag_(iConfig.getParameter<edm::InputTag>("hfRecHitCollectionTag")),
117  hoRecHitCollectionTag_(iConfig.getParameter<edm::InputTag>("hoRecHitCollectionTag")) {
118 
119  // outputFile_ = iConfig.getUntrackedParameter<std::string>("outputFile", "myfile.root");
120 
121  Respcorr_ = iConfig.getUntrackedParameter<bool>("RespcorrAdd", false);
122  PFcorr_ = iConfig.getUntrackedParameter<bool>("PFcorrAdd", false);
123  Conecorr_ = iConfig.getUntrackedParameter<bool>("ConeCorrAdd", true);
124  //radius_ = iConfig.getUntrackedParameter<double>("ConeRadiusCm", 40.);
125  //energyECALmip = iConfig.getParameter<double>("energyECALmip");
126 
127  edm::ParameterSet parameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
128  parameters_.loadParameters( parameters );
130 
131  associationConeSize_=iConfig.getParameter<double>("associationConeSize");
132  clusterConeSize_=iConfig.getParameter<double>("clusterConeSize");
133  ecalCone_=iConfig.getParameter<double>("ecalCone");
134  trackIsolationCone_ = iConfig.getParameter<double>("trackIsolationCone");
135  neutralIsolationCone_ = iConfig.getParameter<double>("neutralIsolationCone");
136 
137  // AxB_=iConfig.getParameter<std::string>("AxB");
138 
139 }
dictionary parameters
Definition: Parameters.py:2
void useDefaultPropagator()
use the default propagator
TrackAssociatorParameters parameters_
TrackDetectorAssociator trackAssociator_
edm::InputTag hbheRecHitCollectionTag_
void loadParameters(const edm::ParameterSet &)
HcalCorrPFCalculation::~HcalCorrPFCalculation ( )

Definition at line 154 of file HcalCorrPFCalculation.cc.

154 {}

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 156 of file HcalCorrPFCalculation.cc.

References abs, AddRecalib, alongMomentum, TrackDetectorAssociator::associate(), associationConeSize_, edm::SortedCollection< T, SORT >::begin(), ecalTB2006H4_GenSimDigiReco_cfg::bField, DeDxDiscriminatorTools::charge(), clusterConeSize_, gather_cfg::cout, delR, delRmc, deltaR(), MaxHit_struct::depthhit, doHF, MaxHit_struct::dr, TrackAssociatorParameters::dREcal, TrackAssociatorParameters::dRHcal, alignCSCRings::e, e3x3, e5x5, ecalCone_, ecalEnergyInCone(), eCentHit, eECAL, eECAL09cm, eECAL40cm, eEcalCone, eHcalCone, eHcalConeNoise, edm::SortedCollection< T, SORT >::end(), eParticle, PV3DBase< T, PVType, FrameType >::eta(), eta(), etaGPoint, etaParticle, TrajectoryStateOnSurface::freeState(), MergeTrackCollections_cff::generalTracks, geo, edm::EventSetup::get(), edm::Event::getByLabel(), CaloSubdetectorGeometry::getClosestCell(), getDistInPlaneSimple(), CaloGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), hbheRecHitCollectionTag_, DetId::Hcal, HcalBarrel, hfRecHitCollectionTag_, reco::TrackBase::highPurity, MaxHit_struct::hitenergy, hoRecHitCollectionTag_, iDr, HcalDetId::ieta(), iEta, MaxHit_struct::ietahitm, info, HcalDetId::iphi(), iPhi, MaxHit_struct::iphihitm, edm::HandleBase::isValid(), TrajectoryStateOnSurface::isValid(), npart, nTracks, numLayers, numValidTrkHits, numValidTrkStrips, AlCaHLTBitMon_ParallelJobs::p, parameters_, pfRecalib, pfTree, phi, PV3DBase< T, PVType, FrameType >::phi(), phiGPoint, phiParticle, PlaneBuilder::plane(), pos, FreeTrajectoryState::position(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), RecalibFactor(), respRecalib, makeMuonMisalignmentScenario::rot, mathSSE::sqrt(), SteppingHelixPropagator_cfi::SteppingHelixPropagator, stepPropF, theMagField, trackAssociator_, trackEta, trackP, trackPhi, TrackDetMatchInfo::trkGlobPosAtEcal, trkQual, TrackAssociatorParameters::useCalo, UsedCells, UsedCellsNoise, TrackAssociatorParameters::useEcal, TrackAssociatorParameters::useHcal, TrackAssociatorParameters::useMuon, PV3DBase< T, PVType, FrameType >::x(), xTrkEcal, PV3DBase< T, PVType, FrameType >::y(), yTrkEcal, PV3DBase< T, PVType, FrameType >::z(), and zTrkEcal.

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

Reimplemented from edm::EDAnalyzer.

Definition at line 761 of file HcalCorrPFCalculation.cc.

References delR, delRmc, e3x3, e5x5, eCentHit, eECAL, eECAL09cm, eECAL40cm, eEcalCone, eHcalCone, eHcalConeNoise, eParticle, etaGPoint, etaParticle, fs, iDr, iEta, iPhi, nTracks, numLayers, numValidTrkHits, numValidTrkStrips, pfTree, phiGPoint, phiParticle, trackEta, trackP, trackPhi, trkQual, UsedCells, UsedCellsNoise, xAtHcal, yAtHcal, and zAtHcal.

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

Reimplemented from edm::EDAnalyzer.

Definition at line 819 of file HcalCorrPFCalculation.cc.

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

Definition at line 142 of file HcalCorrPFCalculation.cc.

References AddRecalib, PFcorr_, pfRecalib, Respcorr_, and respRecalib.

Referenced by analyze().

143 {
144  Float_t resprecal = 1.;
145  Float_t pfrecal = 1.;
146  if(AddRecalib) {
147  if(Respcorr_) resprecal = respRecalib -> getValues(id)->getValue();
148  if(PFcorr_) pfrecal = pfRecalib -> getValues(id)->getValue();
149  }
150  Float_t factor = resprecal*pfrecal;
151  return factor;
152 }
const HcalPFCorrs * pfRecalib
const HcalRespCorrs * respRecalib

Member Data Documentation

Bool_t HcalCorrPFCalculation::AddRecalib
private

Definition at line 73 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and RecalibFactor().

double HcalCorrPFCalculation::associationConeSize_
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and HcalCorrPFCalculation().

float HcalCorrPFCalculation::CentHitFactor
private

Definition at line 64 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::clusterConeSize_
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and HcalCorrPFCalculation().

bool HcalCorrPFCalculation::Conecorr_
private

Definition at line 56 of file HcalCorrPFCalculation.cc.

Referenced by HcalCorrPFCalculation().

float HcalCorrPFCalculation::delR
private

Definition at line 67 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Float_t HcalCorrPFCalculation::delRmc[50]
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Bool_t HcalCorrPFCalculation::doHF
private

Definition at line 72 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

float HcalCorrPFCalculation::e3x3
private

Definition at line 68 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::e5x5
private

Definition at line 68 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

double HcalCorrPFCalculation::ecalCone_
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and HcalCorrPFCalculation().

float HcalCorrPFCalculation::eCentHit
private

Definition at line 63 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eECAL
private

Definition at line 60 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eECAL09cm
private

Definition at line 60 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eECAL40cm
private

Definition at line 60 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eEcalCone
private

Definition at line 92 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eHcalCone
private

Definition at line 92 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::eHcalConeNoise
private

Definition at line 92 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

TProfile * HcalCorrPFCalculation::enHcal
private

Definition at line 100 of file HcalCorrPFCalculation.cc.

TProfile * HcalCorrPFCalculation::enHcalNoise
private

Definition at line 100 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eParticle
private

Definition at line 63 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::etaGPoint
private

Definition at line 70 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::etaParticle
private

Definition at line 94 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::etaTrack
private

Definition at line 69 of file HcalCorrPFCalculation.cc.

float HcalCorrPFCalculation::eTrack
private

Definition at line 63 of file HcalCorrPFCalculation.cc.

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

Definition at line 104 of file HcalCorrPFCalculation.cc.

Referenced by beginJob().

Float_t HcalCorrPFCalculation::genEta
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::genPhi
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

const CaloGeometry* HcalCorrPFCalculation::geo
private

Definition at line 85 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

const HcalGeometry* HcalCorrPFCalculation::geoHcal
private

Definition at line 86 of file HcalCorrPFCalculation.cc.

edm::InputTag HcalCorrPFCalculation::hbheRecHitCollectionTag_
private

Definition at line 108 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

edm::InputTag HcalCorrPFCalculation::hfRecHitCollectionTag_
private

Definition at line 109 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

edm::InputTag HcalCorrPFCalculation::hoRecHitCollectionTag_
private

Definition at line 110 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

float HcalCorrPFCalculation::iDr
private

Definition at line 67 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

int HcalCorrPFCalculation::iEta
private

Definition at line 65 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

int HcalCorrPFCalculation::iPhi
private

Definition at line 65 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

TProfile* HcalCorrPFCalculation::nCells
private

Definition at line 100 of file HcalCorrPFCalculation.cc.

TProfile * HcalCorrPFCalculation::nCellsNoise
private

Definition at line 100 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::neutralIsolationCone_
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

Referenced by HcalCorrPFCalculation().

int HcalCorrPFCalculation::nevtot
private

Definition at line 74 of file HcalCorrPFCalculation.cc.

Int_t HcalCorrPFCalculation::nTracks
private

Definition at line 105 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Int_t HcalCorrPFCalculation::numLayers[50]
private

Definition at line 96 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Int_t HcalCorrPFCalculation::numValidTrkHits[50]
private

Definition at line 96 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Int_t HcalCorrPFCalculation::numValidTrkStrips[50]
private

Definition at line 96 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

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

Definition at line 55 of file HcalCorrPFCalculation.cc.

Referenced by HcalCorrPFCalculation(), and RecalibFactor().

const HcalPFCorrs* HcalCorrPFCalculation::pfRecalib
private

Definition at line 77 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and RecalibFactor().

TTree* HcalCorrPFCalculation::pfTree
private

Definition at line 102 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::phiGPoint
private

Definition at line 70 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::phiParticle
private

Definition at line 94 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

float HcalCorrPFCalculation::phiTrack
private

Definition at line 69 of file HcalCorrPFCalculation.cc.

double HcalCorrPFCalculation::radius_
private

Definition at line 57 of file HcalCorrPFCalculation.cc.

bool HcalCorrPFCalculation::Respcorr_
private

Definition at line 54 of file HcalCorrPFCalculation.cc.

Referenced by HcalCorrPFCalculation(), and RecalibFactor().

const HcalRespCorrs* HcalCorrPFCalculation::respRecalib
private

Definition at line 76 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and RecalibFactor().

SteppingHelixPropagator* HcalCorrPFCalculation::stepPropF
private

Definition at line 79 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

MagneticField* HcalCorrPFCalculation::theMagField
private

Definition at line 80 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

TrackDetectorAssociator HcalCorrPFCalculation::trackAssociator_
private

Definition at line 82 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and HcalCorrPFCalculation().

Float_t HcalCorrPFCalculation::trackEta[50]
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

double HcalCorrPFCalculation::trackIsolationCone_
private

Definition at line 59 of file HcalCorrPFCalculation.cc.

Referenced by HcalCorrPFCalculation().

Float_t HcalCorrPFCalculation::trackP[50]
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Float_t HcalCorrPFCalculation::trackPhi[50]
private

Definition at line 106 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

TTree * HcalCorrPFCalculation::tracksTree
private

Definition at line 102 of file HcalCorrPFCalculation.cc.

Bool_t HcalCorrPFCalculation::trkQual[50]
private

Definition at line 98 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

int HcalCorrPFCalculation::UsedCells
private

Definition at line 93 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

int HcalCorrPFCalculation::UsedCellsNoise
private

Definition at line 93 of file HcalCorrPFCalculation.cc.

Referenced by analyze(), and beginJob().

Float_t HcalCorrPFCalculation::xAtHcal
private

Definition at line 90 of file HcalCorrPFCalculation.cc.

Referenced by beginJob().

Float_t HcalCorrPFCalculation::xTrkEcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

Float_t HcalCorrPFCalculation::xTrkHcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::yAtHcal
private

Definition at line 90 of file HcalCorrPFCalculation.cc.

Referenced by beginJob().

Float_t HcalCorrPFCalculation::yTrkEcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

Float_t HcalCorrPFCalculation::yTrkHcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.

Float_t HcalCorrPFCalculation::zAtHcal
private

Definition at line 90 of file HcalCorrPFCalculation.cc.

Referenced by beginJob().

Float_t HcalCorrPFCalculation::zTrkEcal
private

Definition at line 89 of file HcalCorrPFCalculation.cc.

Referenced by analyze().

Float_t HcalCorrPFCalculation::zTrkHcal
private

Definition at line 88 of file HcalCorrPFCalculation.cc.