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 Attributes
AlCaIsoTracksProducer Class Reference

#include <AlCaIsoTracksProducer.h>

Inheritance diagram for AlCaIsoTracksProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 AlCaIsoTracksProducer (const edm::ParameterSet &)
 
void endJob (void)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
 ~AlCaIsoTracksProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

bool checkHLTMatch_
 
double cluRad_
 
std::vector< edm::InputTagecalLabels_
 
double etaMax_
 
const CaloGeometrygeo
 
edm::InputTag hbheLabel_
 
edm::InputTag hltEventTag_
 
std::vector< std::string > hltFiltTag_
 
double hltMatchingCone_
 
edm::InputTag hoLabel_
 
double isolE_
 
std::string l1FilterTag_
 
double l1jetVetoCone_
 
double m_ddirCut
 
double m_dvCut
 
double m_ecalCut
 
edm::InputTag m_inputTrackLabel_
 
double m_pCut
 
double m_ptCut
 
int matrixInnerSize_
 
int matrixOuterSize_
 
int matrixSize_
 
int nHitsMinCore_
 
int nHitsMinIso_
 
TrackAssociatorParameters parameters_
 
double ringInnRad_
 
double ringOutRad_
 
bool skipNeutrals_
 
double taECALCone_
 
double taHCALCone_
 
TrackDetectorAssociator trackAssociator_
 
bool useConeCorr_
 
bool useECALCluMatrix_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 51 of file AlCaIsoTracksProducer.h.

Constructor & Destructor Documentation

AlCaIsoTracksProducer::AlCaIsoTracksProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 138 of file AlCaIsoTracksProducer.cc.

References checkHLTMatch_, cluRad_, ecalLabels_, etaMax_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), hbheLabel_, hltEventTag_, hltFiltTag_, hltMatchingCone_, hoLabel_, isolE_, l1FilterTag_, l1jetVetoCone_, TrackAssociatorParameters::loadParameters(), m_ddirCut, m_dvCut, m_ecalCut, m_inputTrackLabel_, m_pCut, m_ptCut, matrixSize_, nHitsMinCore_, nHitsMinIso_, Parameters::parameters, parameters_, ringInnRad_, ringOutRad_, skipNeutrals_, taECALCone_, taHCALCone_, trackAssociator_, useConeCorr_, TrackDetectorAssociator::useDefaultPropagator(), and useECALCluMatrix_.

139 {
140 
141  m_inputTrackLabel_ = iConfig.getParameter<edm::InputTag>("InputTracksLabel");
142 
143  hoLabel_ = iConfig.getParameter<edm::InputTag>("HOInput");
144 
145  ecalLabels_=iConfig.getParameter<std::vector<edm::InputTag> >("ECALInputs");
146 
147  hbheLabel_= iConfig.getParameter<edm::InputTag>("HBHEInput");
148 
149  m_dvCut = iConfig.getParameter<double>("vtxCut");
150  m_ddirCut = iConfig.getParameter<double>("RIsolAtHCALSurface");
151  useConeCorr_=iConfig.getParameter<bool>("UseLowPtConeCorrection");
152  m_pCut = iConfig.getParameter<double>("MinTrackP");
153  m_ptCut = iConfig.getParameter<double>("MinTrackPt");
154  m_ecalCut = iConfig.getUntrackedParameter<double>("NeutralIsolCut",8.);
155 
156  taECALCone_=iConfig.getUntrackedParameter<double>("TrackAssociatorECALCone",0.5);
157  taHCALCone_=iConfig.getUntrackedParameter<double>("TrackAssociatorHCALCone",1.0);
158 
159  skipNeutrals_=iConfig.getUntrackedParameter<bool>("SkipNeutralIsoCheck",false);
160 
161  nHitsMinCore_=iConfig.getParameter<int>("MinNumberOfHitsCoreTrack");
162  nHitsMinIso_=iConfig.getParameter<int>("MinNumberOfHitsInConeTracks");
163 
164  isolE_ = iConfig.getParameter<double>("MaxNearbyTrackEnergy");
165  etaMax_= iConfig.getParameter<double>("MaxTrackEta");
166  cluRad_ = iConfig.getParameter<double>("ECALClusterRadius");
167  ringOutRad_ = iConfig.getParameter<double>("ECALRingOuterRadius");
168  ringInnRad_=iConfig.getParameter<double>("ECALRingInnerRadius");
169 
170  useECALCluMatrix_=iConfig.getParameter<bool>("ClusterECALasMatrix");
171  matrixSize_=iConfig.getParameter<int>("ECALMatrixFullSize");
172 
173  checkHLTMatch_=iConfig.getParameter<bool>("CheckHLTMatch");
174  hltEventTag_=iConfig.getParameter<edm::InputTag>("hltTriggerEventLabel");
175  hltFiltTag_=iConfig.getParameter<std::vector<std::string> >("hltL3FilterLabels");
176  hltMatchingCone_=iConfig.getParameter<double>("hltMatchingCone");
177  l1FilterTag_=iConfig.getParameter<std::string>("l1FilterLabel");
178  l1jetVetoCone_=iConfig.getParameter<double>("l1JetVetoCone");
179 
181 //
182 // Parameters for track associator ===========================
183 //
184  edm::ParameterSet parameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
187 // ===============================================================
188 
189  //create also IsolatedPixelTrackCandidateCollection which contains isolation info and reference to primary track
190  produces<reco::IsolatedPixelTrackCandidateCollection>("HcalIsolatedTrackCollection");
191 
192  produces<reco::TrackCollection>("IsoTrackTracksCollection");
193  produces<reco::TrackExtraCollection>("IsoTrackExtraTracksCollection");
194 
195  produces<EcalRecHitCollection>("IsoTrackEcalRecHitCollection");
196  produces<EcalRecHitCollection>("IsoTrackPSEcalRecHitCollection");
197 
198  produces<HBHERecHitCollection>("IsoTrackHBHERecHitCollection");
199  produces<HORecHitCollection>("IsoTrackHORecHitCollection");
200 
201 }
T getParameter(std::string const &) const
std::vector< std::string > hltFiltTag_
T getUntrackedParameter(std::string const &, T const &) const
dictionary parameters
Definition: Parameters.py:2
TrackDetectorAssociator trackAssociator_
void useDefaultPropagator()
use the default propagator
std::vector< edm::InputTag > ecalLabels_
TrackAssociatorParameters parameters_
void loadParameters(const edm::ParameterSet &)
AlCaIsoTracksProducer::~AlCaIsoTracksProducer ( )

Definition at line 204 of file AlCaIsoTracksProducer.cc.

204 { }

Member Function Documentation

void AlCaIsoTracksProducer::endJob ( void  )
virtual

Reimplemented from edm::EDProducer.

Definition at line 557 of file AlCaIsoTracksProducer.cc.

557 {}
void AlCaIsoTracksProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

vector of used hits:

Implements edm::EDProducer.

Definition at line 207 of file AlCaIsoTracksProducer.cc.

References TrackDetectorAssociator::associate(), edm::SortedCollection< T, SORT >::begin(), checkHLTMatch(), checkHLTMatch_, cluRad_, TrackDetMatchInfo::crossedEcalRecHits, deltaR(), TrackAssociatorParameters::dREcal, TrackAssociatorParameters::dRHcal, EcalBarrel, EcalEndcap, ecalLabels_, edm::SortedCollection< T, SORT >::end(), relval_parameters_module::energy, PV3DBase< T, PVType, FrameType >::eta(), etaMax_, geo, edm::EventSetup::get(), edm::Event::getByLabel(), getDistInPlaneTrackDir(), TrackDetectorAssociator::getFreeTrajectoryState(), getL1triggerDirection(), CaloGeometry::getPosition(), edm::Event::getRefBeforePut(), EBDetId::hashedIndex(), EEDetId::hashedIndex(), hbheLabel_, hltEventTag_, hltFiltTag_, hltMatchingCone_, hoLabel_, i, EBDetId::ieta(), info, EBDetId::iphi(), isolE_, EEDetId::ix(), EEDetId::iy(), l1FilterTag_, l1jetVetoCone_, m_ddirCut, m_ecalCut, m_inputTrackLabel_, m_ptCut, matrixSize_, nHitsMinCore_, nHitsMinIso_, parameters_, PV3DBase< T, PVType, FrameType >::phi(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), edm::SortedCollection< T, SORT >::push_back(), edm::Event::put(), ringInnRad_, ringOutRad_, reco::IsolatedPixelTrackCandidate::SetEnergyIn(), reco::IsolatedPixelTrackCandidate::SetEnergyOut(), reco::Track::setExtra(), reco::IsolatedPixelTrackCandidate::SetMaxPtPxl(), reco::IsolatedPixelTrackCandidate::SetSumPtPxl(), skipNeutrals_, mathSSE::sqrt(), taECALCone_, taHCALCone_, trackAssociator_, TrackDetMatchInfo::trkGlobPosAtEcal, TrackDetMatchInfo::trkGlobPosAtHcal, TrackDetMatchInfo::trkMomAtHcal, TrackAssociatorParameters::useCalo, useConeCorr_, TrackAssociatorParameters::useEcal, useECALCluMatrix_, TrackAssociatorParameters::useHcal, and TrackAssociatorParameters::useMuon.

Referenced by python.JSONExport.JsonExport::export(), and python.HTMLExport.HTMLExport::export().

208 {
209  std::auto_ptr<reco::IsolatedPixelTrackCandidateCollection> outputHcalIsoTrackColl(new reco::IsolatedPixelTrackCandidateCollection);
210  std::auto_ptr<reco::TrackCollection> outputTColl(new reco::TrackCollection);
211  std::auto_ptr<reco::TrackExtraCollection> outputExTColl(new reco::TrackExtraCollection);
212 
213  reco::TrackExtraRefProd rTrackExtras = iEvent.getRefBeforePut<reco::TrackExtraCollection>("IsoTrackExtraTracksCollection");
214  std::auto_ptr<EcalRecHitCollection> outputEColl(new EcalRecHitCollection);
215  std::auto_ptr<EcalRecHitCollection> outputESColl(new EcalRecHitCollection);
216  std::auto_ptr<HBHERecHitCollection> outputHColl(new HBHERecHitCollection);
217  std::auto_ptr<HORecHitCollection> outputHOColl(new HORecHitCollection);
218 
220  iSetup.get<CaloGeometryRecord>().get(pG);
221  geo = pG.product();
222 
223  edm::Handle<reco::TrackCollection> trackCollection;
224  iEvent.getByLabel(m_inputTrackLabel_,trackCollection);
225 
226 
227  // temporary collection of EB+EE recHits
228  std::auto_ptr<EcalRecHitCollection> tmpEcalRecHitCollection(new EcalRecHitCollection);
229 
230  std::vector<edm::InputTag>::const_iterator i;
231  for (i=ecalLabels_.begin(); i!=ecalLabels_.end(); i++)
232  {
234  iEvent.getByLabel(*i,ec);
235  for(EcalRecHitCollection::const_iterator recHit = (*ec).begin(); recHit != (*ec).end(); ++recHit)
236  {
237  tmpEcalRecHitCollection->push_back(*recHit);
238  }
239  }
240 
242  iEvent.getByLabel(hbheLabel_, hbheRHcol);
243 
244  const reco::TrackCollection tC = *(trackCollection.product());
245 
246  int itrk=0;
247  int nisotr=0;
249 
250  // Parameters for TrackDetAssociator ================================
251  // For Low momentum tracks need to look for larger cone for search ====
252  // ====================================================================
253 
254  parameters_.useEcal = true;
255  parameters_.useHcal = true;
256  parameters_.useCalo = false;
257  parameters_.useMuon = false;
260 
262 
264  std::vector<int> usedHitsHC;
265  std::vector<int> usedHitsEC;
267 
268  // main loop over input tracks
269  for (reco::TrackCollection::const_iterator track=tC.begin(); track!=tC.end(); track++) {
270  bool noChargedTracks = true;
271  int itrk1=0;
272  itrk++;
273  double px = track->px();
274  double py = track->py();
275  double pz = track->pz();
276  double ptrack = sqrt(px*px+py*py+pz*pz);
277 
278  if (ptrack < m_pCut || track->pt() < m_ptCut ) continue;
279 
280  if (track->hitPattern().numberOfValidHits() < nHitsMinCore_) continue;
281 
282  // check that track is not in the region of L1 jet
283  double l1jDR=deltaR(track->eta(), track->phi(), getL1triggerDirection(iEvent,hltEventTag_,l1FilterTag_).first,getL1triggerDirection(iEvent,hltEventTag_,l1FilterTag_).second);
284  if (l1jDR<l1jetVetoCone_) continue;
286 
288 
289  GlobalPoint gPointHcal(info.trkGlobPosAtHcal.x(),info.trkGlobPosAtHcal.y(),info.trkGlobPosAtHcal.z());
290 
291  GlobalVector trackMomAtHcal = info.trkMomAtHcal;
292 
293  double etaecal=info.trkGlobPosAtEcal.eta();
294  double phiecal=info.trkGlobPosAtEcal.phi();
295 
296  if (etaecal==0&&phiecal==0) continue;
297 
298  //check matching to HLT object (optional)
299 
300  if (checkHLTMatch_&&!checkHLTMatch(iEvent, hltEventTag_, hltFiltTag_, etaecal, phiecal,hltMatchingCone_)) continue;
301 
302  if (fabs(track->eta())>etaMax_) continue;
303 
304  // check charged isolation from all other tracks
305  double maxPNearby=-10;
306  double sumPNearby=0;
307  for (reco::TrackCollection::const_iterator track1=tC.begin(); track1!=tC.end(); track1++)
308  {
309  itrk1++;
310  if (track == track1) continue;
311  if (track->hitPattern().numberOfValidHits() < nHitsMinIso_) continue;
312  double ptrack1 = sqrt(track1->px()*track1->px()+track1->py()*track1->py()+track1->pz()*track1->pz());
313 
315 
316  GlobalPoint gPointHcal1(info1.trkGlobPosAtHcal.x(),info1.trkGlobPosAtHcal.y(),info1.trkGlobPosAtHcal.z());
317 
318  double etaecal1=info1.trkGlobPosAtEcal.eta();
319  double phiecal1=info1.trkGlobPosAtEcal.phi();
320 
321  if (etaecal1==0&&phiecal1==0) continue;
322 
323  double hcDist=getDistInPlaneTrackDir(gPointHcal, trackMomAtHcal, gPointHcal1);
324 
325 // double hcDist=getDistInCM(etaecal,phiecal,etaecal1,phiecal1);
326 
327  // increase required separation for low momentum tracks
328  double factor=1.;
329  double factor1=1.;
330 
331  if (useConeCorr_)
332  {
333  if(ptrack<10.)factor+=(10.-ptrack)/20.;
334  if(ptrack1<10.)factor1+=(10.-ptrack1)/20.;
335  }
336 
337  if( hcDist < m_ddirCut*factor*factor1 )
338  {
339  //calculate maximum P and sum P near seed track
340  if (track1->p()>maxPNearby)
341  {
342  maxPNearby=track1->p();
343  }
344  sumPNearby+=track1->p();
345 
346  //apply loose isolation criteria
347  if (track1->p()>isolE_)
348  {
349  noChargedTracks = false;
350  break;
351  }
353  }
354 
355  } //second track loop
356 
357  bool noNeutrals = false;
358 
359  // we have a good charge-isolated track, so check neutral isolation and write it out
360 
361  if(noChargedTracks)
362  {
363  //find ecal cluster energy and write ecal recHits
364  double ecClustR=0;
365  double ecClustN=0;
366  double ecOutRingR=0;
367 
368  //get index of ECAL crystal hit by track
369  std::vector<const EcalRecHit*> crossedECids=info.crossedEcalRecHits;
370  int etaIDcenter=-10000;
371  int phiIDcenter=-10000;
372  double enMax=0;
373  for (unsigned int i=0; i<crossedECids.size(); i++)
374  {
375  if ((*crossedECids[i]).id().subdetId()==EcalEndcap)
376  {
377  EEDetId did(crossedECids[i]->id());
378  if (crossedECids[i]->energy()>enMax)
379  {
380  enMax=crossedECids[i]->energy();
381  etaIDcenter=did.iy();
382  phiIDcenter=did.ix();
383  }
384  }
385  if ((*crossedECids[i]).id().subdetId()==EcalBarrel)
386  {
387  EBDetId did(crossedECids[i]->id());
388  if (crossedECids[i]->energy()>enMax)
389  {
390  enMax=crossedECids[i]->energy();
391  etaIDcenter=did.ieta();
392  phiIDcenter=did.iphi();
393  }
394  }
395  }
396  for (std::vector<EcalRecHit>::const_iterator ehit=tmpEcalRecHitCollection->begin(); ehit!=tmpEcalRecHitCollection->end(); ehit++)
397  {
399  // R scheme of ECAL CLUSTERIZATION
400  GlobalPoint posH = geo->getPosition((*ehit).detid());
401  double phihit = posH.phi();
402  double etahit = posH.eta();
403 
404  double dHit=deltaR(etaecal,phiecal,etahit,phihit);
405 
406  double dHitCM=getDistInPlaneTrackDir(gPointHcal, trackMomAtHcal, posH);
407 
408  if (dHitCM<cluRad_)
409  {
410  ecClustR+=ehit->energy();
411  }
412 
413  if (dHitCM>ringInnRad_&&dHitCM<ringOutRad_)
414  {
415  ecOutRingR+=ehit->energy();
416  }
417 
419  //NxN scheme & check whether hit was used or not, if not used push into usedHits
420  bool hitIsUsed=false;
421  int hitHashedIndex=-10000;
422  if (ehit->id().subdetId()==EcalBarrel)
423  {
424  EBDetId did(ehit->id());
425  hitHashedIndex=did.hashedIndex();
426  if (fabs(did.ieta()-etaIDcenter)<=matrixSize_/2&&fabs(did.iphi()-phiIDcenter)<=matrixSize_/2) ecClustN+=ehit->energy();
427  }
428 
429  if (ehit->id().subdetId()==EcalEndcap)
430  {
431  EEDetId did(ehit->id());
432  hitHashedIndex=did.hashedIndex();
433  if (fabs(did.iy()-etaIDcenter)<=matrixSize_/2&&fabs(did.ix()-phiIDcenter)<=matrixSize_/2) ecClustN+=ehit->energy();
434  }
435  for (uint32_t i=0; i<usedHitsEC.size(); i++)
436  {
437  if (usedHitsEC[i]==hitHashedIndex) hitIsUsed=true;
438  }
439 
440  if (hitIsUsed) continue; //skip if used
441  usedHitsEC.push_back(hitHashedIndex);
443 
444  if(dHit<1.)
445  {
446  outputEColl->push_back(*ehit);
447  }
448  }
449 
450  //check neutrals
451  if (ecOutRingR<m_ecalCut) noNeutrals=true;
452  else noNeutrals=false;
453 
454  if (noNeutrals||skipNeutrals_)
455  {
456 
457  // Take info on the track extras and keep it in the outercollection
458 
459  reco::TrackExtraRef myextra = (*track).extra();
460  reco::TrackExtraRef teref= reco::TrackExtraRef ( rTrackExtras, idx ++ );
461 
462  outputTColl->push_back(*track);
463  reco::Track & mytrack = outputTColl->back();
464 
465  mytrack.setExtra( teref );
466  outputExTColl->push_back(*myextra);
467  // reco::TrackExtra & tx = outputExTColl->back();
468 
469  //Create IsolatedPixelTrackCandidate (will change naming in future release)
470  reco::IsolatedPixelTrackCandidate newHITCandidate(reco::Candidate::LorentzVector(track->px(),track->py(),track->pz(),track->p()));
471  newHITCandidate.SetSumPtPxl(sumPNearby);
472  newHITCandidate.SetMaxPtPxl(maxPNearby);
473 
474  //set cluster energy deposition and ring energy deposition and push_back
475  if (!useECALCluMatrix_) newHITCandidate.SetEnergyIn(ecClustR);
476  else newHITCandidate.SetEnergyIn(ecClustN);
477  newHITCandidate.SetEnergyOut(ecOutRingR);
478  outputHcalIsoTrackColl->push_back(newHITCandidate);
479 
480  //save hcal recHits
481  for (std::vector<HBHERecHit>::const_iterator hhit=hbheRHcol->begin(); hhit!=hbheRHcol->end(); hhit++)
482  {
483  //check that this hit was not considered before and push it into usedHits
484  bool hitIsUsed=false;
485  int hitHashedIndex=hhit->id().hashed_index();
486  for (uint32_t i=0; i<usedHitsHC.size(); i++)
487  {
488  if (usedHitsHC[i]==hitHashedIndex) hitIsUsed=true;
489  }
490  if (hitIsUsed) continue;
491  usedHitsHC.push_back(hitHashedIndex);
493 
494  GlobalPoint posH = geo->getPosition((*hhit).detid());
495  double phihit = posH.phi();
496  double etahit = posH.eta();
497 
498  double dHit=deltaR(etaecal,phiecal,etahit,phihit);
499 
500  if(dHit<1.)
501 
502  {
503  outputHColl->push_back(*hhit);
504  }
505  }
506  }
507 
508  nisotr++;
509 
510  } //if (noNeutrals....
511 
512  } // end of main track loop
513 
514  if(outputTColl->size() > 0)
515  {
516  // Take HO collection
518  iEvent.getByLabel(hoLabel_,ho);
519 
520  const HORecHitCollection Hitho = *(ho.product());
521  for(HORecHitCollection::const_iterator hoItr=Hitho.begin(); hoItr!=Hitho.end(); hoItr++)
522  {
523  outputHOColl->push_back(*hoItr);
524  }
525 
526  // Take Preshower collection
527 
528  // get the ps geometry
529  edm::ESHandle<CaloGeometry> geoHandle;
530  iSetup.get<CaloGeometryRecord>().get(geoHandle);
531 
532  // get the ps topology
533  EcalPreshowerTopology psTopology(geoHandle);
534 
535  // process rechits
537  iEvent.getByLabel("ecalPreshowerRecHit","EcalRecHitsES",pRecHits);
538  const EcalRecHitCollection& psrechits = *(pRecHits.product());
539 
541 
542  for(IT i=psrechits.begin(); i!=psrechits.end(); i++)
543  {
544  outputESColl->push_back( *i );
545  }
546  }
547 
548  iEvent.put( outputHcalIsoTrackColl, "HcalIsolatedTrackCollection");
549  iEvent.put( outputTColl, "IsoTrackTracksCollection");
550  iEvent.put( outputExTColl, "IsoTrackExtraTracksCollection");
551  iEvent.put( outputEColl, "IsoTrackEcalRecHitCollection");
552  iEvent.put( outputESColl, "IsoTrackPSEcalRecHitCollection");
553  iEvent.put( outputHColl, "IsoTrackHBHERecHitCollection");
554  iEvent.put( outputHOColl, "IsoTrackHORecHitCollection");
555 }
std::vector< std::string > hltFiltTag_
int i
Definition: DBlmapReader.cc:9
int hashedIndex() const
get a compact index for arrays
Definition: EBDetId.h:73
TrackDetectorAssociator trackAssociator_
static FreeTrajectoryState getFreeTrajectoryState(const edm::EventSetup &, const reco::Track &)
get FreeTrajectoryState from different track representations
double getDistInPlaneTrackDir(const GlobalPoint caloPoint, const GlobalVector caloVector, const GlobalPoint rechitPoint)
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
const CaloGeometry * geo
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
std::vector< T >::const_iterator const_iterator
void push_back(T const &t)
edm::Ref< TrackExtraCollection > TrackExtraRef
persistent reference to a TrackExtra
Definition: TrackExtraFwd.h:13
std::pair< double, double > getL1triggerDirection(edm::Event &iEvent, edm::InputTag hltEventTag_, std::string l1FilterTag_)
std::vector< const EcalRecHit * > crossedEcalRecHits
hits in detector elements crossed by a track
math::XYZPoint trkGlobPosAtHcal
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
T sqrt(T t)
Definition: SSEVec.h:28
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:68
std::vector< IsolatedPixelTrackCandidate > IsolatedPixelTrackCandidateCollection
collectin of IsolatedPixelTrackCandidate objects
std::vector< LinkConnSpec >::const_iterator IT
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
RefProd< PROD > getRefBeforePut()
Definition: Event.h:96
const_iterator end() const
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:9
void setExtra(const TrackExtraRef &ref)
set reference to &quot;extra&quot; object
Definition: Track.h:95
std::vector< edm::InputTag > ecalLabels_
int hashedIndex() const
Definition: EEDetId.h:177
bool checkHLTMatch(edm::Event &iEvent, edm::InputTag hltEventTag_, std::vector< std::string > hltFilterTag_, double eta, double phi, double hltMatchingCone_)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
T const * product() const
Definition: Handle.h:74
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:39
T eta() const
Definition: PV3DBase.h:70
GlobalVector trkMomAtHcal
TrackAssociatorParameters parameters_
TrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const AssociatorParameters &)
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
boost::remove_cv< typename boost::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:169
const_iterator begin() const

Member Data Documentation

bool AlCaIsoTracksProducer::checkHLTMatch_
private

Definition at line 85 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::cluRad_
private

Definition at line 92 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

std::vector<edm::InputTag> AlCaIsoTracksProducer::ecalLabels_
private

Definition at line 68 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::etaMax_
private

Definition at line 91 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

const CaloGeometry* AlCaIsoTracksProducer::geo
private

Definition at line 65 of file AlCaIsoTracksProducer.h.

Referenced by produce().

edm::InputTag AlCaIsoTracksProducer::hbheLabel_
private

Definition at line 67 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::InputTag AlCaIsoTracksProducer::hltEventTag_
private

Definition at line 86 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

std::vector<std::string> AlCaIsoTracksProducer::hltFiltTag_
private

Definition at line 87 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::hltMatchingCone_
private

Definition at line 88 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::InputTag AlCaIsoTracksProducer::hoLabel_
private

Definition at line 66 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::isolE_
private

Definition at line 90 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

std::string AlCaIsoTracksProducer::l1FilterTag_
private

Definition at line 101 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::l1jetVetoCone_
private

Definition at line 102 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::m_ddirCut
private

Definition at line 75 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::m_dvCut
private

Definition at line 74 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer().

double AlCaIsoTracksProducer::m_ecalCut
private

Definition at line 79 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::InputTag AlCaIsoTracksProducer::m_inputTrackLabel_
private

Definition at line 70 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::m_pCut
private

Definition at line 77 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer().

double AlCaIsoTracksProducer::m_ptCut
private

Definition at line 78 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

int AlCaIsoTracksProducer::matrixInnerSize_
private

Definition at line 98 of file AlCaIsoTracksProducer.h.

int AlCaIsoTracksProducer::matrixOuterSize_
private

Definition at line 99 of file AlCaIsoTracksProducer.h.

int AlCaIsoTracksProducer::matrixSize_
private

Definition at line 97 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

int AlCaIsoTracksProducer::nHitsMinCore_
private

Definition at line 72 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

int AlCaIsoTracksProducer::nHitsMinIso_
private

Definition at line 73 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

TrackAssociatorParameters AlCaIsoTracksProducer::parameters_
private
double AlCaIsoTracksProducer::ringInnRad_
private

Definition at line 94 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::ringOutRad_
private

Definition at line 93 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

bool AlCaIsoTracksProducer::skipNeutrals_
private

Definition at line 84 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::taECALCone_
private

Definition at line 81 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

double AlCaIsoTracksProducer::taHCALCone_
private

Definition at line 82 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

TrackDetectorAssociator AlCaIsoTracksProducer::trackAssociator_
private

Definition at line 61 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

bool AlCaIsoTracksProducer::useConeCorr_
private

Definition at line 76 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().

bool AlCaIsoTracksProducer::useECALCluMatrix_
private

Definition at line 96 of file AlCaIsoTracksProducer.h.

Referenced by AlCaIsoTracksProducer(), and produce().