CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
AlCaIsoTracksProducer Class Reference
Inheritance diagram for AlCaIsoTracksProducer:
edm::stream::EDProducer< edm::GlobalCache< AlCaIsoTracks::Counters > >

Public Member Functions

 AlCaIsoTracksProducer (edm::ParameterSet const &, const AlCaIsoTracks::Counters *count)
 
void endStream () override
 
void produce (edm::Event &, edm::EventSetup const &) override
 
 ~AlCaIsoTracksProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< AlCaIsoTracks::Counters > >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void globalEndJob (const AlCaIsoTracks::Counters *counters)
 
static std::unique_ptr< AlCaIsoTracks::CountersinitializeGlobalCache (edm::ParameterSet const &)
 

Private Member Functions

void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
reco::HcalIsolatedTrackCandidateCollectionselect (edm::Handle< edm::TriggerResults > &triggerResults, const std::vector< std::string > &triggerNames_, edm::Handle< reco::TrackCollection > &trkCollection, math::XYZPoint &leadPV, edm::Handle< EcalRecHitCollection > &barrelRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapRecHitsHandle, edm::Handle< HBHERecHitCollection > &hbhe, double ptL1, double etaL1, double phiL1)
 
void setPtEtaPhi (std::vector< edm::Ref< l1extra::L1JetParticleCollection > > &objref, double &ptL1, double &etaL1, double &phiL1)
 

Private Attributes

double a_charIsoR_
 
const double a_coneR_
 
const double a_mipR_
 
const MagneticFieldbField
 
const double eEcalMax_
 
const double eIsolate_
 
const CaloGeometrygeo
 
HLTConfigProvider hltConfig_
 
const edm::InputTag labelBS_
 
const edm::InputTag labelEB_
 
const edm::InputTag labelEE_
 
const edm::InputTag labelGenTrack_
 
const edm::InputTag labelHBHE_
 
const edm::InputTag labelHltGT_
 
const std::string labelIsoTk_
 
const edm::InputTag labelRecVtx_
 
const edm::InputTag labelTriggerEvent_
 
const edm::InputTag labelTriggerResults_
 
const double maxRestrictionP_
 
unsigned int nAll_
 
unsigned int nGood_
 
unsigned int nRange_
 
unsigned int nRun_
 
const int preScale_
 
const std::string processName_
 
const double pTrackHigh_
 
const double pTrackLow_
 
const double pTrackMin_
 
spr::trackSelectionParameters selectionParameter_
 
const double slopeRestrictionP_
 
const std::string theTrackQuality_
 
edm::EDGetTokenT< reco::BeamSpottok_bs_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EB_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EE_
 
edm::EDGetTokenT< reco::TrackCollectiontok_genTrack_
 
edm::EDGetTokenT< HBHERecHitCollectiontok_hbhe_
 
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefstok_hltGT_
 
edm::EDGetTokenT< reco::VertexCollectiontok_recVtx_
 
edm::EDGetTokenT< trigger::TriggerEventtok_trigEvt_
 
edm::EDGetTokenT< edm::TriggerResultstok_trigRes_
 
const std::vector< std::string > trigNames_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< AlCaIsoTracks::Counters > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 87 of file AlCaIsoTracksProducer.cc.

Constructor & Destructor Documentation

AlCaIsoTracksProducer::AlCaIsoTracksProducer ( edm::ParameterSet const &  iConfig,
const AlCaIsoTracks::Counters count 
)
explicit

Definition at line 149 of file AlCaIsoTracksProducer.cc.

References a_charIsoR_, a_coneR_, a_mipR_, eEcalMax_, eIsolate_, edm::ParameterSet::getParameter(), edm::InputTag::instance(), dqmdumpme::k, edm::InputTag::label(), labelBS_, labelEB_, labelEE_, labelGenTrack_, labelHBHE_, labelHltGT_, labelIsoTk_, labelRecVtx_, labelTriggerEvent_, labelTriggerResults_, spr::trackSelectionParameters::maxChi2, spr::trackSelectionParameters::maxDpOverP, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, maxRestrictionP_, spr::trackSelectionParameters::minLayerCrossed, spr::trackSelectionParameters::minOuterHit, spr::trackSelectionParameters::minPt, spr::trackSelectionParameters::minQuality, preScale_, processName_, pTrackHigh_, pTrackLow_, pTrackMin_, reco::TrackBase::qualityByName(), selectionParameter_, slopeRestrictionP_, theTrackQuality_, tok_bs_, tok_EB_, tok_EE_, tok_genTrack_, tok_hbhe_, tok_hltGT_, tok_recVtx_, tok_trigEvt_, tok_trigRes_, and trigNames_.

150  : nRun_(0),
151  nAll_(0),
152  nGood_(0),
153  nRange_(0),
154  trigNames_(iConfig.getParameter<std::vector<std::string> >("triggers")),
155  theTrackQuality_(iConfig.getParameter<std::string>("trackQuality")),
156  processName_(iConfig.getParameter<std::string>("processName")),
157  a_coneR_(iConfig.getParameter<double>("coneRadius")),
158  a_mipR_(iConfig.getParameter<double>("coneRadiusMIP")),
159  maxRestrictionP_(iConfig.getParameter<double>("maxTrackP")),
160  slopeRestrictionP_(iConfig.getParameter<double>("slopeTrackP")),
161  pTrackMin_(iConfig.getParameter<double>("minimumTrackP")),
162  eEcalMax_(iConfig.getParameter<double>("maximumEcalEnergy")),
163  eIsolate_(iConfig.getParameter<double>("isolationEnergy")),
164  pTrackLow_(iConfig.getParameter<double>("momentumRangeLow")),
165  pTrackHigh_(iConfig.getParameter<double>("momentumRangeHigh")),
166  preScale_(iConfig.getParameter<int>("preScaleFactor")),
167  labelGenTrack_(iConfig.getParameter<edm::InputTag>("TrackLabel")),
168  labelRecVtx_(iConfig.getParameter<edm::InputTag>("VertexLabel")),
169  labelBS_(iConfig.getParameter<edm::InputTag>("BeamSpotLabel")),
170  labelEB_(iConfig.getParameter<edm::InputTag>("EBRecHitLabel")),
171  labelEE_(iConfig.getParameter<edm::InputTag>("EERecHitLabel")),
172  labelHBHE_(iConfig.getParameter<edm::InputTag>("HBHERecHitLabel")),
173  labelHltGT_(iConfig.getParameter<edm::InputTag>("L1GTSeedLabel")),
174  labelTriggerEvent_(iConfig.getParameter<edm::InputTag>("TriggerEventLabel")),
175  labelTriggerResults_(iConfig.getParameter<edm::InputTag>("TriggerResultLabel")),
176  labelIsoTk_(iConfig.getParameter<std::string>("IsoTrackLabel")) {
177  // Get the run parameters
178  // Different isolation cuts are described in DN-2016/029
179  // Tight cut uses 2 GeV; Loose cut uses 10 GeV
180  // Eta dependent cut uses (maxRestrictionP_ * exp(|ieta|*log(2.5)/18))
181  // with the factor for exponential slopeRestrictionP_ = log(2.5)/18
182  // maxRestrictionP_ = 8 GeV as came from a study
183  const double isolationRadius(28.9);
184  selectionParameter_.minPt = iConfig.getParameter<double>("minTrackPt");
185  ;
187  selectionParameter_.maxDxyPV = iConfig.getParameter<double>("maxDxyPV");
188  selectionParameter_.maxDzPV = iConfig.getParameter<double>("maxDzPV");
189  selectionParameter_.maxChi2 = iConfig.getParameter<double>("maxChi2");
190  selectionParameter_.maxDpOverP = iConfig.getParameter<double>("maxDpOverP");
191  selectionParameter_.minOuterHit = iConfig.getParameter<int>("minOuterHit");
192  selectionParameter_.minLayerCrossed = iConfig.getParameter<int>("minLayerCrossed");
193  selectionParameter_.maxInMiss = iConfig.getParameter<int>("maxInMiss");
194  selectionParameter_.maxOutMiss = iConfig.getParameter<int>("maxOutMiss");
195  a_charIsoR_ = a_coneR_ + isolationRadius;
196 
197  // define tokens for access
198  tok_hltGT_ = consumes<trigger::TriggerFilterObjectWithRefs>(labelHltGT_);
199  tok_trigEvt_ = consumes<trigger::TriggerEvent>(labelTriggerEvent_);
200  tok_trigRes_ = consumes<edm::TriggerResults>(labelTriggerResults_);
201  tok_genTrack_ = consumes<reco::TrackCollection>(labelGenTrack_);
202  tok_recVtx_ = consumes<reco::VertexCollection>(labelRecVtx_);
203  tok_bs_ = consumes<reco::BeamSpot>(labelBS_);
204  tok_EB_ = consumes<EcalRecHitCollection>(labelEB_);
205  tok_EE_ = consumes<EcalRecHitCollection>(labelEE_);
206  tok_hbhe_ = consumes<HBHERecHitCollection>(labelHBHE_);
207 
208  edm::LogInfo("HcalIsoTrack") << "Parameters read from config file \n"
209  << "\t minPt " << selectionParameter_.minPt << "\t theTrackQuality " << theTrackQuality_
210  << "\t minQuality " << selectionParameter_.minQuality << "\t maxDxyPV "
212  << "\t maxChi2 " << selectionParameter_.maxChi2 << "\t maxDpOverP "
214  << "\t minLayerCrossed " << selectionParameter_.minLayerCrossed << "\t maxInMiss "
216  << "\n"
217  << "\t a_coneR " << a_coneR_ << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR "
218  << a_mipR_ << "\t pTrackMin " << pTrackMin_ << "\t eEcalMax " << eEcalMax_
219  << "\t maxRestrictionP_ " << maxRestrictionP_ << "\t slopeRestrictionP_ "
220  << slopeRestrictionP_ << "\t eIsolate_ " << eIsolate_ << "\t Process " << processName_
221  << "\n"
222  << "\t Precale factor " << preScale_ << "\t in momentum range " << pTrackLow_ << ":"
223  << pTrackHigh_;
224  for (unsigned int k = 0; k < trigNames_.size(); ++k)
225  edm::LogInfo("HcalIsoTrack") << "Trigger[" << k << "] " << trigNames_[k];
226 
227  //create also IsolatedPixelTrackCandidateCollection which contains isolation info and reference to primary track
228  produces<reco::HcalIsolatedTrackCandidateCollection>(labelIsoTk_);
229  produces<reco::VertexCollection>(labelRecVtx_.label());
230  produces<EcalRecHitCollection>(labelEB_.instance());
231  produces<EcalRecHitCollection>(labelEE_.instance());
232  produces<HBHERecHitCollection>(labelHBHE_.label());
233 
234  edm::LogInfo("HcalIsoTrack") << " Expected to produce the collections:\n"
235  << "reco::HcalIsolatedTrackCandidateCollection "
236  << " with label HcalIsolatedTrackCollection\n"
237  << "reco::VertexCollection with label " << labelRecVtx_.label() << "\n"
238  << "EcalRecHitCollection with label EcalRecHitsEB\n"
239  << "EcalRecHitCollection with label EcalRecHitsEE\n"
240  << "HBHERecHitCollection with label " << labelHBHE_.label();
241 }
const edm::InputTag labelEE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::InputTag labelHBHE_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
const edm::InputTag labelHltGT_
const edm::InputTag labelBS_
const edm::InputTag labelTriggerEvent_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_hltGT_
const std::string processName_
const std::string theTrackQuality_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
std::string const & label() const
Definition: InputTag.h:36
const std::vector< std::string > trigNames_
spr::trackSelectionParameters selectionParameter_
reco::TrackBase::TrackQuality minQuality
const edm::InputTag labelRecVtx_
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
const edm::InputTag labelTriggerResults_
std::string const & instance() const
Definition: InputTag.h:37
const edm::InputTag labelEB_
const edm::InputTag labelGenTrack_
AlCaIsoTracksProducer::~AlCaIsoTracksProducer ( )
override

Definition at line 243 of file AlCaIsoTracksProducer.cc.

243 {}

Member Function Documentation

void AlCaIsoTracksProducer::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 467 of file AlCaIsoTracksProducer.cc.

References bField, geo, edm::EventSetup::get(), hltConfig_, HLTConfigProvider::init(), nRun_, processName_, edm::ESHandle< T >::product(), and edm::RunBase::run().

467  {
468  bool changed(false);
469  edm::LogInfo("HcalIsoTrack") << "Run[" << nRun_ << "] " << iRun.run() << " hltconfig.init "
470  << hltConfig_.init(iRun, iSetup, processName_, changed);
471 
473  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
474  bField = bFieldH.product();
476  iSetup.get<CaloGeometryRecord>().get(pG);
477  geo = pG.product();
478 }
const CaloGeometry * geo
const std::string processName_
const MagneticField * bField
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
T const * product() const
Definition: ESHandle.h:86
void AlCaIsoTracksProducer::endRun ( edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivate

Definition at line 480 of file AlCaIsoTracksProducer.cc.

References nRun_, and edm::RunBase::run().

480  {
481  edm::LogInfo("HcalIsoTrack") << "endRun [" << nRun_ << "] " << iRun.run();
482  ++nRun_;
483 }
void AlCaIsoTracksProducer::endStream ( )
override

Definition at line 456 of file AlCaIsoTracksProducer.cc.

References nAll_, nGood_, and nRange_.

456  {
457  globalCache()->nAll_ += nAll_;
458  globalCache()->nGood_ += nGood_;
459  globalCache()->nRange_ += nRange_;
460 }
void AlCaIsoTracksProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 245 of file AlCaIsoTracksProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

245  {
247  // producer for (HCAL isolated tracks)
248  desc.add<edm::InputTag>("TrackLabel", edm::InputTag("generalTracks"));
249  desc.add<edm::InputTag>("VertexLabel", edm::InputTag("offlinePrimaryVertices"));
250  desc.add<edm::InputTag>("BeamSpotLabel", edm::InputTag("offlineBeamSpot"));
251  desc.add<edm::InputTag>("EBRecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
252  desc.add<edm::InputTag>("EERecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
253  desc.add<edm::InputTag>("HBHERecHitLabel", edm::InputTag("hbhereco"));
254  desc.add<edm::InputTag>("L1GTSeedLabel", edm::InputTag("hltL1sV0SingleJet60"));
255  desc.add<edm::InputTag>("TriggerEventLabel", edm::InputTag("hltTriggerSummaryAOD", "", "HLT"));
256  desc.add<edm::InputTag>("TriggerResultLabel", edm::InputTag("TriggerResults", "", "HLT"));
257  desc.add<std::string>("IsoTrackLabel", "HcalIsolatedTrackCollection");
258  std::vector<std::string> triggers = {"HLT_IsoTrackHB", "HLT_IsoTrackHE"};
259  desc.add<std::vector<std::string> >("triggers", triggers);
260  desc.add<std::string>("processName", "HLT");
261  // following 10 parameters are parameters to select good tracks
262  desc.add<std::string>("trackQuality", "highPurity");
263  desc.add<double>("minTrackPt", 1.0);
264  desc.add<double>("maxDxyPV", 10.0);
265  desc.add<double>("maxDzPV", 100.0);
266  desc.add<double>("maxChi2", 5.0);
267  desc.add<double>("maxDpOverP", 0.1);
268  desc.add<int>("minOuterHit", 4);
269  desc.add<int>("minLayerCrossed", 8);
270  desc.add<int>("maxInMiss", 2);
271  desc.add<int>("maxOutMiss", 2);
272  // Minimum momentum of selected isolated track and signal zone
273  desc.add<double>("coneRadius", 34.98);
274  desc.add<double>("minimumTrackP", 20.0);
275  // signal zone in ECAL and MIP energy cutoff
276  desc.add<double>("coneRadiusMIP", 14.0);
277  desc.add<double>("maximumEcalEnergy", 2.0);
278  // following 3 parameters are for isolation cuts and described in the code
279  desc.add<double>("maxTrackP", 8.0);
280  desc.add<double>("slopeTrackP", 0.05090504066);
281  desc.add<double>("isolationEnergy", 10.0);
282  // Prescale events only containing isolated tracks in the range
283  desc.add<double>("momentumRangeLow", 20.0);
284  desc.add<double>("momentumRangeHigh", 40.0);
285  desc.add<int>("preScaleFactor", 10);
286  descriptions.add("alcaisotrk", desc);
287 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void AlCaIsoTracksProducer::globalEndJob ( const AlCaIsoTracks::Counters counters)
static

Definition at line 462 of file AlCaIsoTracksProducer.cc.

References AlCaIsoTracks::Counters::nAll_, AlCaIsoTracks::Counters::nGood_, and AlCaIsoTracks::Counters::nRange_.

462  {
463  edm::LogInfo("HcalIsoTrack") << "Finds " << count->nGood_ << " good tracks in " << count->nAll_ << " events and "
464  << count->nRange_ << " events in the momentum raange";
465 }
static std::unique_ptr<AlCaIsoTracks::Counters> AlCaIsoTracksProducer::initializeGlobalCache ( edm::ParameterSet const &  )
inlinestatic

Definition at line 92 of file AlCaIsoTracksProducer.cc.

References Ecal2004TBTDCRanges_v1_cff::endRun, fillDescriptions(), photonIsolationHIProducer_cfi::hbhe, singleTopDQM_cfi::select, setPtEtaPhi(), and triggerResults.

92  {
93  return std::make_unique<AlCaIsoTracks::Counters>();
94  }
void AlCaIsoTracksProducer::produce ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
override

Definition at line 289 of file AlCaIsoTracksProducer.cc.

References edm::SortedCollection< T, SORT >::begin(), edm::EventBase::bunchCrossing(), edm::SortedCollection< T, SORT >::end(), edm::EventID::event(), edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), photonIsolationHIProducer_cfi::hbhe, edm::EventBase::id(), edm::InputTag::instance(), edm::HandleBase::isValid(), edm::InputTag::label(), labelEB_, labelEE_, labelGenTrack_, labelHBHE_, labelIsoTk_, labelRecVtx_, labelTriggerEvent_, labelTriggerResults_, edm::EventBase::luminosityBlock(), eostools::move(), nAll_, nGood_, nRange_, reco::BeamSpot::position(), preScale_, edm::Handle< T >::product(), pTrackHigh_, pTrackLow_, edm::Event::put(), edm::EventID::run(), select(), setPtEtaPhi(), tok_bs_, tok_EB_, tok_EE_, tok_genTrack_, tok_hbhe_, tok_hltGT_, tok_recVtx_, tok_trigEvt_, tok_trigRes_, PDWG_DiPhoton_SD_cff::triggerEvent, trigger::TriggerL1CenJet, trigger::TriggerL1ForJet, trigger::TriggerL1TauJet, L1TEGammaOffline_cfi::triggerNames, edm::TriggerNames::triggerNames(), edm::Event::triggerNames(), triggerResults, validateGeometry_cfg::valid, badGlobalMuonTaggersAOD_cff::vtx, x, y, and z.

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

289  {
290  nAll_++;
291 #ifdef DebugLog
292  edm::LogInfo("HcalIsoTrack") << "Run " << iEvent.id().run() << " Event " << iEvent.id().event() << " Luminosity "
293  << iEvent.luminosityBlock() << " Bunch " << iEvent.bunchCrossing();
294 #endif
295  bool valid(true);
296  //Step1: Get all the relevant containers
298  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
299  iEvent.getByToken(tok_trigEvt_, triggerEventHandle);
300  if (!triggerEventHandle.isValid()) {
301  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelTriggerEvent_;
302  valid = false;
303  }
305  iEvent.getByToken(tok_trigRes_, triggerResults);
306  if (!triggerResults.isValid()) {
307  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelTriggerResults_;
308  valid = false;
309  }
310 
312  iEvent.getByToken(tok_genTrack_, trkCollection);
313  if (!trkCollection.isValid()) {
314  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelGenTrack_;
315  valid = false;
316  }
317 
319  iEvent.getByToken(tok_recVtx_, recVtxs);
320  if (!recVtxs.isValid()) {
321  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelGenTrack_;
322  valid = false;
323  }
324 
325  edm::Handle<reco::BeamSpot> beamSpotH;
326  iEvent.getByToken(tok_bs_, beamSpotH);
327  math::XYZPoint leadPV(0, 0, 0);
328  if (valid) {
329  if (!recVtxs->empty() && !((*recVtxs)[0].isFake())) {
330  leadPV = math::XYZPoint((*recVtxs)[0].x(), (*recVtxs)[0].y(), (*recVtxs)[0].z());
331  } else if (beamSpotH.isValid()) {
332  leadPV = beamSpotH->position();
333  }
334  }
335 #ifdef DebugLog
336  edm::LogInfo("HcalIsoTrack") << "Primary Vertex " << leadPV;
337 #endif
338 
339  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
340  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
341  if (!barrelRecHitsHandle.isValid()) {
342  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEB_;
343  valid = false;
344  }
345  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
346  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
347  if (!endcapRecHitsHandle.isValid()) {
348  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelEE_;
349  valid = false;
350  }
352  iEvent.getByToken(tok_hbhe_, hbhe);
353  if (!hbhe.isValid()) {
354  edm::LogWarning("HcalIsoTrack") << "Cannot access the collection " << labelHBHE_;
355  valid = false;
356  }
357 
358  //Get L1 trigger object
359  double ptL1(0), etaL1(0), phiL1(0);
361  iEvent.getByToken(tok_hltGT_, l1trigobj);
362 
363  if (l1trigobj.isValid()) {
364  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1tauobjref;
365  l1trigobj->getObjects(trigger::TriggerL1TauJet, l1tauobjref);
366  setPtEtaPhi(l1tauobjref, ptL1, etaL1, phiL1);
367 
368  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1jetobjref;
369  l1trigobj->getObjects(trigger::TriggerL1CenJet, l1jetobjref);
370  setPtEtaPhi(l1jetobjref, ptL1, etaL1, phiL1);
371 
372  std::vector<edm::Ref<l1extra::L1JetParticleCollection> > l1forjetobjref;
373  l1trigobj->getObjects(trigger::TriggerL1ForJet, l1forjetobjref);
374  setPtEtaPhi(l1forjetobjref, ptL1, etaL1, phiL1);
375  } else {
376  valid = false;
377  }
378 
379  auto outputHcalIsoTrackColl = std::make_unique<reco::HcalIsolatedTrackCandidateCollection>();
380  auto outputVColl = std::make_unique<reco::VertexCollection>();
381  auto outputEBColl = std::make_unique<EBRecHitCollection>();
382  auto outputEEColl = std::make_unique<EERecHitCollection>();
383  auto outputHBHEColl = std::make_unique<HBHERecHitCollection>();
384 
385  //For valid HLT record
386  if (!valid) {
387  edm::LogWarning("HcalIsoTrack") << "Error! Can't get some of the products";
388  } else {
389  trigger::TriggerEvent triggerEvent = *(triggerEventHandle.product());
390  if (triggerResults.isValid()) {
391  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
392  const std::vector<std::string>& triggerNames_ = triggerNames.triggerNames();
393  reco::HcalIsolatedTrackCandidateCollection* isotk = select(triggerResults,
394  triggerNames_,
395  trkCollection,
396  leadPV,
397  barrelRecHitsHandle,
398  endcapRecHitsHandle,
399  hbhe,
400  ptL1,
401  etaL1,
402  phiL1);
403 #ifdef DebugLog
404  edm::LogInfo("HcalIsoTrack") << "AlCaIsoTracksProducer::select returns " << isotk->size() << " isolated tracks";
405 #endif
406 
407  if (!isotk->empty()) {
408  int ntrin(0), ntrout(0);
409  for (reco::HcalIsolatedTrackCandidateCollection::const_iterator itr = isotk->begin(); itr != isotk->end();
410  ++itr) {
411  if (itr->p() > pTrackLow_ && itr->p() < pTrackHigh_)
412  ntrin++;
413  else
414  ntrout++;
415  }
416  bool selectEvent = ntrout > 0;
417  if (!selectEvent && ntrin > 0) {
418  ++nRange_;
419  if (preScale_ <= 1)
420  selectEvent = true;
421  else if (nRange_ % preScale_ == 1)
422  selectEvent = true;
423  }
424  if (selectEvent) {
425  for (reco::HcalIsolatedTrackCandidateCollection::const_iterator itr = isotk->begin(); itr != isotk->end();
426  ++itr)
427  outputHcalIsoTrackColl->push_back(*itr);
428 
429  for (reco::VertexCollection::const_iterator vtx = recVtxs->begin(); vtx != recVtxs->end(); ++vtx)
430  outputVColl->push_back(*vtx);
431 
432  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = barrelRecHitsHandle->begin();
433  ehit != barrelRecHitsHandle->end();
434  ++ehit)
435  outputEBColl->push_back(*ehit);
436 
437  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = endcapRecHitsHandle->begin();
438  ehit != endcapRecHitsHandle->end();
439  ++ehit)
440  outputEEColl->push_back(*ehit);
441 
442  for (std::vector<HBHERecHit>::const_iterator hhit = hbhe->begin(); hhit != hbhe->end(); ++hhit)
443  outputHBHEColl->push_back(*hhit);
444  ++nGood_;
445  }
446  }
447  }
448  }
449  iEvent.put(std::move(outputHcalIsoTrackColl), labelIsoTk_);
450  iEvent.put(std::move(outputVColl), labelRecVtx_.label());
451  iEvent.put(std::move(outputEBColl), labelEB_.instance());
452  iEvent.put(std::move(outputEEColl), labelEE_.instance());
453  iEvent.put(std::move(outputHBHEColl), labelHBHE_.label());
454 }
RunNumber_t run() const
Definition: EventID.h:38
EventNumber_t event() const
Definition: EventID.h:40
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
const edm::InputTag labelEE_
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::InputTag labelHBHE_
std::vector< T >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:64
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
const edm::InputTag labelTriggerEvent_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_hltGT_
Strings const & triggerNames() const
Definition: TriggerNames.cc:20
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
std::vector< HcalIsolatedTrackCandidate > HcalIsolatedTrackCandidateCollection
collectin of HcalIsolatedTrackCandidate objects
void setPtEtaPhi(std::vector< edm::Ref< l1extra::L1JetParticleCollection > > &objref, double &ptL1, double &etaL1, double &phiL1)
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
static std::string const triggerResults
Definition: EdmProvDump.cc:45
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
const_iterator end() const
T const * product() const
Definition: Handle.h:69
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::string const & label() const
Definition: InputTag.h:36
edm::EventID id() const
Definition: EventBase.h:59
const edm::InputTag labelRecVtx_
const Point & position() const
position
Definition: BeamSpot.h:59
reco::HcalIsolatedTrackCandidateCollection * select(edm::Handle< edm::TriggerResults > &triggerResults, const std::vector< std::string > &triggerNames_, edm::Handle< reco::TrackCollection > &trkCollection, math::XYZPoint &leadPV, edm::Handle< EcalRecHitCollection > &barrelRecHitsHandle, edm::Handle< EcalRecHitCollection > &endcapRecHitsHandle, edm::Handle< HBHERecHitCollection > &hbhe, double ptL1, double etaL1, double phiL1)
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
const edm::InputTag labelTriggerResults_
std::string const & instance() const
Definition: InputTag.h:37
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:265
def move(src, dest)
Definition: eostools.py:511
const edm::InputTag labelEB_
const_iterator begin() const
const edm::InputTag labelGenTrack_
reco::HcalIsolatedTrackCandidateCollection * AlCaIsoTracksProducer::select ( edm::Handle< edm::TriggerResults > &  triggerResults,
const std::vector< std::string > &  triggerNames_,
edm::Handle< reco::TrackCollection > &  trkCollection,
math::XYZPoint leadPV,
edm::Handle< EcalRecHitCollection > &  barrelRecHitsHandle,
edm::Handle< EcalRecHitCollection > &  endcapRecHitsHandle,
edm::Handle< HBHERecHitCollection > &  hbhe,
double  ptL1,
double  etaL1,
double  phiL1 
)
private

Definition at line 485 of file AlCaIsoTracksProducer.cc.

References a_charIsoR_, a_mipR_, edm::HLTGlobalStatus::accept(), bField, spr::chargeIsolationCone(), spr::eCone_ecal(), eEcalMax_, eIsolate_, reco::TrackBase::eta(), JetChargeProducer_cfi::exp, spr::find(), geo, spr::goodTrack(), ValidationMatrix::hlt, mps_fire::i, LEDCalibrationChannels::ieta, HcalDetId::ieta(), HcalDetId::ietaAbs(), HcalDetId::iphi(), maxRestrictionP_, nTracks(), convertSQLiteXML::ok, reco::TrackBase::p(), phi, reco::TrackBase::phi(), spr::propagateCALO(), reco::TrackBase::pt(), pTrackMin_, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), selectionParameter_, reco::HcalIsolatedTrackCandidate::SetEnergyEcal(), reco::HcalIsolatedTrackCandidate::SetEtaPhiEcal(), reco::HcalIsolatedTrackCandidate::SetEtaPhiHcal(), reco::HcalIsolatedTrackCandidate::setL1(), reco::HcalIsolatedTrackCandidate::SetMaxP(), reco::HcalIsolatedTrackCandidate::setTrack(), edm::HLTGlobalStatus::size(), slopeRestrictionP_, theTrackQuality_, duplicaterechits_cfi::trackCollection, and trigNames_.

Referenced by Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Views.LineDecayView.LineDecayContainer::mousePressEvent(), Vispa.Gui.PortConnection.PointToPointConnection::mousePressEvent(), Vispa.Gui.VispaWidget.VispaWidget::mousePressEvent(), produce(), and Vispa.Views.AbstractView.AbstractView::restoreSelection().

495  {
497  bool ok(false);
498 
499  // Find a good HLT trigger
500  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
501  int hlt = triggerResults->accept(iHLT);
502  for (unsigned int i = 0; i < trigNames_.size(); ++i) {
503  if (triggerNames_[iHLT].find(trigNames_[i]) != std::string::npos) {
504  if (hlt > 0) {
505  ok = true;
506  }
507  edm::LogInfo("HcalIsoTrack") << "The trigger we are looking for " << triggerNames_[iHLT] << " Flag " << hlt
508  << ":" << ok;
509  }
510  }
511  }
512 
513  //Propagate tracks to calorimeter surface)
514  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
515  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDirections, false);
516 
517  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
518  unsigned int nTracks(0), nselTracks(0);
519  for (trkDetItr = trkCaloDirections.begin(), nTracks = 0; trkDetItr != trkCaloDirections.end();
520  trkDetItr++, nTracks++) {
521  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
522  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
523 #ifdef DebugLog
524  edm::LogInfo("HcalIsoTrack") << "This track : " << nTracks << " (pt|eta|phi|p) :" << pTrack->pt() << "|"
525  << pTrack->eta() << "|" << pTrack->phi() << "|" << pTrack->p();
526 #endif
527  //Selection of good track
528  bool qltyFlag = spr::goodTrack(pTrack, leadPV, selectionParameter_, false);
529 #ifdef DebugLog
530  edm::LogInfo("HcalIsoTrack") << "qltyFlag|okECAL|okHCAL : " << qltyFlag << "|" << trkDetItr->okECAL << "|"
531  << trkDetItr->okHCAL;
532 #endif
533  if (qltyFlag && trkDetItr->okECAL && trkDetItr->okHCAL) {
534  double t_p = pTrack->p();
535  nselTracks++;
536  int nRH_eMipDR(0), nNearTRKs(0);
537  double eMipDR = spr::eCone_ecal(geo,
538  barrelRecHitsHandle,
539  endcapRecHitsHandle,
540  trkDetItr->pointHCAL,
541  trkDetItr->pointECAL,
542  a_mipR_,
543  trkDetItr->directionECAL,
544  nRH_eMipDR);
545  double hmaxNearP = spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, false);
546  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
547  int ieta = detId.ietaAbs();
548  double eIsolation = (maxRestrictionP_ * exp(slopeRestrictionP_ * ((double)(ieta))));
549  if (eIsolation < eIsolate_)
550  eIsolation = eIsolate_;
551 #ifdef DebugLog
552  edm::LogInfo("HcalIsoTrack") << "This track : " << nTracks << " (pt|eta|phi|p) :" << pTrack->pt() << "|"
553  << pTrack->eta() << "|" << pTrack->phi() << "|" << t_p << " e_MIP " << eMipDR
554  << " Chg Isolation " << hmaxNearP << ":" << eIsolation;
555 #endif
556  if (t_p > pTrackMin_ && eMipDR < eEcalMax_ && hmaxNearP < eIsolation) {
557  reco::HcalIsolatedTrackCandidate newCandidate(v4);
558  newCandidate.SetMaxP(hmaxNearP);
559  newCandidate.SetEnergyEcal(eMipDR);
560  newCandidate.setL1(ptL1, etaL1, phiL1);
561  newCandidate.SetEtaPhiEcal((trkDetItr->pointECAL).eta(), (trkDetItr->pointECAL).phi());
562  HcalDetId detId = HcalDetId(trkDetItr->detIdHCAL);
563  newCandidate.SetEtaPhiHcal(
564  (trkDetItr->pointHCAL).eta(), (trkDetItr->pointHCAL).phi(), detId.ieta(), detId.iphi());
565  int indx(0);
566  for (reco::TrackCollection::const_iterator trkItr1 = trkCollection->begin(); trkItr1 != trkCollection->end();
567  ++trkItr1, ++indx) {
568  const reco::Track* pTrack1 = &(*trkItr1);
569  if (pTrack1 == pTrack) {
570  reco::TrackRef tRef = reco::TrackRef(trkCollection, indx);
571  newCandidate.setTrack(tRef);
572  break;
573  }
574  }
575  trackCollection->push_back(newCandidate);
576  }
577  }
578  }
579  return trackCollection;
580 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:599
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
const unsigned int nTracks(const reco::Vertex &sv)
bool accept() const
Has at least one path accepted the event?
const CaloGeometry * geo
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:614
double chargeIsolationCone(unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:605
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
const std::string theTrackQuality_
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:617
std::vector< HcalIsolatedTrackCandidate > HcalIsolatedTrackCandidateCollection
collectin of HcalIsolatedTrackCandidate objects
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
unsigned int size() const
Get number of paths stored.
double pt() const
track transverse momentum
Definition: TrackBase.h:602
int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
double eCone_ecal(const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
const MagneticField * bField
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:611
int ietaAbs() const
get the absolute value of the cell ieta
Definition: HcalDetId.h:148
int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
const std::vector< std::string > trigNames_
spr::trackSelectionParameters selectionParameter_
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:608
void AlCaIsoTracksProducer::setPtEtaPhi ( std::vector< edm::Ref< l1extra::L1JetParticleCollection > > &  objref,
double &  ptL1,
double &  etaL1,
double &  phiL1 
)
private

Definition at line 582 of file AlCaIsoTracksProducer.cc.

References DEFINE_FWK_MODULE, AlCaHLTBitMon_ParallelJobs::p, and DiDispStaMuonMonitor_cfi::pt.

Referenced by produce().

585  {
586  for (unsigned int p = 0; p < objref.size(); p++) {
587  if (objref[p]->pt() > ptL1) {
588  ptL1 = objref[p]->pt();
589  phiL1 = objref[p]->phi();
590  etaL1 = objref[p]->eta();
591  }
592  }
593 }

Member Data Documentation

double AlCaIsoTracksProducer::a_charIsoR_
private

Definition at line 134 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const double AlCaIsoTracksProducer::a_coneR_
private

Definition at line 125 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer().

const double AlCaIsoTracksProducer::a_mipR_
private

Definition at line 125 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const MagneticField* AlCaIsoTracksProducer::bField
private

Definition at line 135 of file AlCaIsoTracksProducer.cc.

Referenced by beginRun(), and select().

const double AlCaIsoTracksProducer::eEcalMax_
private

Definition at line 127 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const double AlCaIsoTracksProducer::eIsolate_
private

Definition at line 127 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const CaloGeometry* AlCaIsoTracksProducer::geo
private

Definition at line 136 of file AlCaIsoTracksProducer.cc.

Referenced by beginRun(), and select().

HLTConfigProvider AlCaIsoTracksProducer::hltConfig_
private

Definition at line 120 of file AlCaIsoTracksProducer.cc.

Referenced by beginRun().

const edm::InputTag AlCaIsoTracksProducer::labelBS_
private

Definition at line 130 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer().

const edm::InputTag AlCaIsoTracksProducer::labelEB_
private

Definition at line 131 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelEE_
private

Definition at line 131 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelGenTrack_
private

Definition at line 130 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelHBHE_
private

Definition at line 131 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelHltGT_
private

Definition at line 131 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer().

const std::string AlCaIsoTracksProducer::labelIsoTk_
private

Definition at line 133 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelRecVtx_
private

Definition at line 130 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelTriggerEvent_
private

Definition at line 132 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const edm::InputTag AlCaIsoTracksProducer::labelTriggerResults_
private

Definition at line 132 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const double AlCaIsoTracksProducer::maxRestrictionP_
private

Definition at line 126 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

unsigned int AlCaIsoTracksProducer::nAll_
private

Definition at line 121 of file AlCaIsoTracksProducer.cc.

Referenced by endStream(), and produce().

unsigned int AlCaIsoTracksProducer::nGood_
private

Definition at line 121 of file AlCaIsoTracksProducer.cc.

Referenced by endStream(), and produce().

unsigned int AlCaIsoTracksProducer::nRange_
private

Definition at line 121 of file AlCaIsoTracksProducer.cc.

Referenced by endStream(), and produce().

unsigned int AlCaIsoTracksProducer::nRun_
private

Definition at line 121 of file AlCaIsoTracksProducer.cc.

Referenced by beginRun(), and endRun().

const int AlCaIsoTracksProducer::preScale_
private

Definition at line 129 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const std::string AlCaIsoTracksProducer::processName_
private

Definition at line 124 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and beginRun().

const double AlCaIsoTracksProducer::pTrackHigh_
private

Definition at line 128 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const double AlCaIsoTracksProducer::pTrackLow_
private

Definition at line 128 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const double AlCaIsoTracksProducer::pTrackMin_
private

Definition at line 127 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

spr::trackSelectionParameters AlCaIsoTracksProducer::selectionParameter_
private

Definition at line 122 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const double AlCaIsoTracksProducer::slopeRestrictionP_
private

Definition at line 126 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

const std::string AlCaIsoTracksProducer::theTrackQuality_
private

Definition at line 124 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().

edm::EDGetTokenT<reco::BeamSpot> AlCaIsoTracksProducer::tok_bs_
private

Definition at line 143 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

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

Definition at line 144 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

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

Definition at line 145 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::EDGetTokenT<reco::TrackCollection> AlCaIsoTracksProducer::tok_genTrack_
private

Definition at line 141 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

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

Definition at line 146 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> AlCaIsoTracksProducer::tok_hltGT_
private

Definition at line 138 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::EDGetTokenT<reco::VertexCollection> AlCaIsoTracksProducer::tok_recVtx_
private

Definition at line 142 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::EDGetTokenT<trigger::TriggerEvent> AlCaIsoTracksProducer::tok_trigEvt_
private

Definition at line 139 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

edm::EDGetTokenT<edm::TriggerResults> AlCaIsoTracksProducer::tok_trigRes_
private

Definition at line 140 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and produce().

const std::vector<std::string> AlCaIsoTracksProducer::trigNames_
private

Definition at line 123 of file AlCaIsoTracksProducer.cc.

Referenced by AlCaIsoTracksProducer(), and select().