DESY Hbb Analysis Framework
Public Member Functions | List of all members
Candidates Class Reference

#include <Analysis/Ntuplizer/src/Candidates.cc>

Public Member Functions

template<>
void JECRecord (const std::string &jr)
 
template<>
void JECRecord (const std::string &jr)
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void Kinematics ()
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void ReadFromEvent (const edm::Event &event)
 
template<>
void TriggerObjectType (const std::string &trigobj_type)
 
template<>
void TriggerObjectType (const std::string &trigobj_type)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Member Function Documentation

template<>
void Candidates< pat::Jet >::JECRecord ( const std::string &  jr)
template<>
void Candidates< pat::Jet >::JECRecord ( const std::string &  jr)

Definition at line 793 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::jecRecord_.

794 {
795  jecRecord_ = jr;
796 }
template<>
void Candidates< trigger::TriggerObject >::Kinematics ( )
template<>
void Candidates< l1t::Jet >::Kinematics ( )
template<>
void Candidates< l1t::Muon >::Kinematics ( )
template<>
void Candidates< reco::Track >::Kinematics ( )
template<>
void Candidates< trigger::TriggerObject >::Kinematics ( )

Definition at line 637 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::ntuple::Candidates< T >::e_, analysis::ntuple::Candidates< T >::et_, analysis::ntuple::Candidates< T >::eta_, analysis::ntuple::Candidates< T >::maxCandidates, analysis::ntuple::Candidates< T >::maxEta_, analysis::ntuple::Candidates< T >::minPt_, analysis::ntuple::Candidates< T >::n_, analysis::ntuple::Candidates< T >::phi_, analysis::ntuple::Candidates< T >::pt_, analysis::ntuple::Candidates< T >::px_, analysis::ntuple::Candidates< T >::py_, analysis::ntuple::Candidates< T >::pz_, analysis::ntuple::Candidates< T >::q_, and analysis::ntuple::Candidates< T >::type_.

638 {
639  using namespace edm;
640 
641  int n = 0;
642  for ( size_t i = 0 ; i < candidates_.size(); ++i )
643  {
644  if ( n >= maxCandidates ) break;
645 
646  if ( minPt_ >= 0. && candidates_[i].pt() < minPt_ ) continue;
647  if ( maxEta_ >= 0. && fabs(candidates_[i].eta()) > maxEta_ ) continue;
648 
649  pt_[n] = candidates_[i].pt();
650  eta_[n] = candidates_[i].eta();
651  phi_[n] = candidates_[i].phi();
652  px_[n] = candidates_[i].px();
653  py_[n] = candidates_[i].py();
654  pz_[n] = candidates_[i].pz();
655  e_[n] = candidates_[i].energy();
656  et_[n] = candidates_[i].et();
657  q_[n] = 0;
658  type_[n] = candidates_[i].id();
659 
660  ++n;
661  }
662  n_ = n;
663 
664 }
template<>
void Candidates< l1t::Jet >::Kinematics ( )

Definition at line 667 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::ntuple::Candidates< T >::e_, analysis::ntuple::Candidates< T >::et_, analysis::ntuple::Candidates< T >::eta_, analysis::ntuple::Candidates< T >::maxCandidates, analysis::ntuple::Candidates< T >::n_, analysis::ntuple::Candidates< T >::phi_, analysis::ntuple::Candidates< T >::pt_, analysis::ntuple::Candidates< T >::px_, analysis::ntuple::Candidates< T >::py_, analysis::ntuple::Candidates< T >::pz_, and analysis::ntuple::Candidates< T >::q_.

668 {
669  using namespace edm;
670 
671  int n = 0;
672 
673  for ( size_t i = 0 ; i < candidates_.size(); ++i )
674  {
675  l1t::Jet * cand = dynamic_cast<l1t::Jet*> (&candidates_[i]);
676  if ( n >= maxCandidates ) break;
677 
678  pt_[n] = cand->pt();
679  eta_[n] = cand->eta();
680  phi_[n] = cand->phi();
681  px_[n] = cand->px();
682  py_[n] = cand->py();
683  pz_[n] = cand->pz();
684  e_[n] = cand->energy();
685  et_[n] = cand->et();
686  q_[n] = cand->charge();
687 
688  ++n;
689  }
690  n_ = n;
691 
692 }
template<>
void Candidates< l1t::Muon >::Kinematics ( )

Definition at line 695 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::ntuple::Candidates< T >::e_, analysis::ntuple::Candidates< T >::et_, analysis::ntuple::Candidates< T >::eta_, analysis::ntuple::Candidates< T >::etaAtVtx_, analysis::ntuple::Candidates< T >::hwQual_, analysis::ntuple::Candidates< T >::maxCandidates, analysis::ntuple::Candidates< T >::n_, analysis::ntuple::Candidates< T >::phi_, analysis::ntuple::Candidates< T >::phiAtVtx_, analysis::ntuple::Candidates< T >::pt_, analysis::ntuple::Candidates< T >::px_, analysis::ntuple::Candidates< T >::py_, analysis::ntuple::Candidates< T >::pz_, and analysis::ntuple::Candidates< T >::q_.

696 {
697  using namespace edm;
698 
699  int n = 0;
700 
701  for ( size_t i = 0 ; i < candidates_.size(); ++i )
702  {
703  l1t::Muon * cand = dynamic_cast<l1t::Muon*> (&candidates_[i]);
704  if ( n >= maxCandidates ) break;
705 
706  pt_[n] = cand->pt();
707  eta_[n] = cand->eta();
708  phi_[n] = cand->phi();
709  px_[n] = cand->px();
710  py_[n] = cand->py();
711  pz_[n] = cand->pz();
712  e_[n] = cand->energy();
713  et_[n] = cand->et();
714  q_[n] = cand->charge();
715  hwQual_[n] = cand->hwQual();
716  etaAtVtx_[n] = cand->etaAtVtx();
717  phiAtVtx_[n] = cand->phiAtVtx();
718 
719 
720  ++n;
721  }
722  n_ = n;
723 
724 }
template<>
void Candidates< reco::Track >::Kinematics ( )

Definition at line 727 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::tools::confirmed, analysis::tools::discarded, analysis::ntuple::Candidates< T >::eta_, analysis::tools::goodIterative, analysis::tools::highPurity, analysis::tools::highPuritySetWithPV, analysis::tools::loose, analysis::tools::looseSetWithPV, analysis::ntuple::Candidates< T >::maxCandidates, analysis::ntuple::Candidates< T >::n_, analysis::ntuple::Candidates< T >::phi_, analysis::ntuple::Candidates< T >::pt_, analysis::ntuple::Candidates< T >::px_, analysis::ntuple::Candidates< T >::py_, analysis::ntuple::Candidates< T >::pz_, analysis::ntuple::Candidates< T >::q_, analysis::tools::qualitySize, analysis::tools::tight, analysis::ntuple::Candidates< T >::trkchi2_, analysis::ntuple::Candidates< T >::trkd0_, analysis::ntuple::Candidates< T >::trkdxy_, analysis::ntuple::Candidates< T >::trkhp_badmu_, analysis::ntuple::Candidates< T >::trkhp_innerstationsvalhits_, analysis::ntuple::Candidates< T >::trkhp_lostmu_, analysis::ntuple::Candidates< T >::trkhp_outerstationsvalhits_, analysis::ntuple::Candidates< T >::trkhp_stationsbadhits_, analysis::ntuple::Candidates< T >::trkhp_stationsvalhits_, analysis::ntuple::Candidates< T >::trkhp_valmu_, analysis::ntuple::Candidates< T >::trkhp_valtechits_, analysis::ntuple::Candidates< T >::trkhp_valtibhits_, analysis::ntuple::Candidates< T >::trkhp_valtidhits_, analysis::ntuple::Candidates< T >::trkhp_valtobhits_, analysis::ntuple::Candidates< T >::trkhp_valtrkhits_, analysis::ntuple::Candidates< T >::trkndof_, analysis::ntuple::Candidates< T >::trkqual_, and analysis::tools::undefQuality.

728 {
729  using namespace edm;
730 
731  int n = 0;
732 
733  for ( size_t i = 0 ; i < candidates_.size(); ++i )
734  {
735  reco::Track * cand = dynamic_cast<reco::Track*> (&candidates_[i]);
736  if ( n >= maxCandidates ) break;
737 
738  pt_[n] = cand->pt();
739  eta_[n] = cand->eta();
740  phi_[n] = cand->phi();
741  px_[n] = cand->px();
742  py_[n] = cand->py();
743  pz_[n] = cand->pz();
744  q_[n] = cand->charge();
745 
746  trkchi2_[n] = cand->chi2();
747  trkndof_[n] = cand->ndof();
748  trkd0_[n] = cand->d0();
749  trkdxy_[n] = cand->dxy();
750 
751 
752  trkqual_[0][n] = cand->quality(reco::TrackBase::TrackQuality::undefQuality );
753  trkqual_[1][n] = cand->quality(reco::TrackBase::TrackQuality::loose );
754  trkqual_[2][n] = cand->quality(reco::TrackBase::TrackQuality::tight );
755  trkqual_[3][n] = cand->quality(reco::TrackBase::TrackQuality::highPurity );
756  trkqual_[4][n] = cand->quality(reco::TrackBase::TrackQuality::confirmed );
757  trkqual_[5][n] = cand->quality(reco::TrackBase::TrackQuality::goodIterative );
758  trkqual_[6][n] = cand->quality(reco::TrackBase::TrackQuality::looseSetWithPV );
759  trkqual_[7][n] = cand->quality(reco::TrackBase::TrackQuality::highPuritySetWithPV);
760  trkqual_[8][n] = cand->quality(reco::TrackBase::TrackQuality::discarded );
761  trkqual_[9][n] = cand->quality(reco::TrackBase::TrackQuality::qualitySize );
762 
763  trkhp_lostmu_[n] = cand -> hitPattern().numberOfLostMuonHits() ;
764  trkhp_valmu_[n] = cand -> hitPattern().numberOfValidMuonHits() ;
765  trkhp_badmu_[n] = cand -> hitPattern().numberOfBadMuonHits() ;
766 
767  trkhp_valtrkhits_[n] = cand -> hitPattern().numberOfValidTrackerHits() ;
768  trkhp_valtechits_[n] = cand -> hitPattern().numberOfValidStripTECHits();
769  trkhp_valtibhits_[n] = cand -> hitPattern().numberOfValidStripTIBHits();
770  trkhp_valtidhits_[n] = cand -> hitPattern().numberOfValidStripTIDHits();
771  trkhp_valtobhits_[n] = cand -> hitPattern().numberOfValidStripTOBHits();
772 
773  trkhp_stationsvalhits_[n] = cand -> hitPattern().muonStationsWithValidHits () ;
774  trkhp_stationsbadhits_[n] = cand -> hitPattern().muonStationsWithBadHits () ;
775  trkhp_innerstationsvalhits_[n] = cand -> hitPattern().innermostMuonStationWithValidHits ();
776  trkhp_outerstationsvalhits_[n] = cand -> hitPattern().outermostMuonStationWithValidHits ();
777 
778 
779  ++n;
780  }
781  n_ = n;
782 
783 }
template<>
void Candidates< pat::TriggerObject >::ReadFromEvent ( const edm::Event &  event)
template<>
void Candidates< trigger::TriggerObject >::ReadFromEvent ( const edm::Event &  event)
template<>
void Candidates< l1t::Jet >::ReadFromEvent ( const edm::Event &  event)
template<>
void Candidates< l1t::Muon >::ReadFromEvent ( const edm::Event &  event)
template<>
void Candidates< l1t::Jet >::ReadFromEvent ( const edm::Event &  event)

Definition at line 200 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, and analysis::ntuple::Candidates< T >::input_collection_.

201 {
202  using namespace edm;
203 
204  // Candidates
205  candidates_.clear();
206  edm::Handle<l1t::JetBxCollection> handler;
207  event.getByLabel(input_collection_, handler);
208  BXVector<l1t::Jet> l1jets = *(handler.product());
209  for ( auto l1jet : l1jets )
210  {
211  candidates_.push_back(l1jet);
212  }
213  // Sort the objects by pt
214  NumericSafeGreaterByPt<l1t::Jet> l1tjetGreaterByPt;
215  std::sort (candidates_.begin(), candidates_.end(),l1tjetGreaterByPt);
216 
217 }
template<>
void Candidates< l1t::Muon >::ReadFromEvent ( const edm::Event &  event)

Definition at line 220 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, and analysis::ntuple::Candidates< T >::input_collection_.

221 {
222  using namespace edm;
223 
224  // Candidates
225  candidates_.clear();
226  edm::Handle<l1t::MuonBxCollection> handler;
227  event.getByLabel(input_collection_, handler);
228  BXVector<l1t::Muon> l1muons = *(handler.product());
229  for ( auto l1muon : l1muons )
230  {
231  candidates_.push_back(l1muon);
232  }
233  // Sort the objects by pt
234  NumericSafeGreaterByPt<l1t::Muon> l1tmuonGreaterByPt;
235  std::sort (candidates_.begin(), candidates_.end(),l1tmuonGreaterByPt);
236 
237 }
template<>
void Candidates< pat::TriggerObject >::ReadFromEvent ( const edm::Event &  event)

Definition at line 241 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::ntuple::Candidates< T >::input_collection_, analysis::ntuple::Candidates< T >::tree_, ntuplizer_101X_promptreco_2018-v1::TriggerResults, analysis::ntuple::Candidates< T >::triggerresults_collection_, analysis::ntuple::Candidates< T >::trigobj_type_, and naf_mult_submit::type.

242 {
243  using namespace edm;
244 
245  Handle<TriggerResults> trhandler;
246  event.getByLabel(triggerresults_collection_, trhandler);
247  const TriggerResults & trgres = *(trhandler.product());
248 
249  candidates_.clear();
250  // The stand alone collection
251  edm::Handle<pat::TriggerObjectStandAloneCollection> handler;
252  event.getByLabel(input_collection_, handler);
253 
254  const std::string treename = tree_ -> GetName(); // using the label to name the tree
255  const std::string delimiter = "_";
256  std::string label = treename.substr(0, treename.find(delimiter));
257 
258  for ( auto ito : *handler )
259  {
260  ito.unpackFilterLabels(event,trgres);
261  if ( ito.filter(label) )
262  {
263  if ( trigobj_type_ != "" )
264  {
265  int type = ito.triggerObject().triggerObjectTypes().at(0);
266  if ( trigobj_type_ == "l1muon" )
267  {
268  if ( type == trigger::TriggerL1Mu ) candidates_.push_back(ito.triggerObject());
269  }
270  else if ( trigobj_type_ == "l1jet" )
271  {
272  if ( type == trigger::TriggerL1Jet ) candidates_.push_back(ito.triggerObject());
273  }
274  else if ( trigobj_type_ == "hltmuon" )
275  {
276  if ( type == trigger::TriggerMuon ) candidates_.push_back(ito.triggerObject());
277  }
278  else if ( trigobj_type_ == "hltjet" )
279  {
280  if ( type == trigger::TriggerJet ) candidates_.push_back(ito.triggerObject());
281  }
282  else if ( trigobj_type_ == "hltbjet" )
283  {
284  if ( type == trigger::TriggerBJet ) candidates_.push_back(ito.triggerObject());
285  }
286  }
287  else
288  {
289  candidates_.push_back(ito.triggerObject());
290  }
291  }
292  }
293 
294  // Sort the objects by pt
295  NumericSafeGreaterByPt<pat::TriggerObject> triggerObjectGreaterByPt;
296  std::sort (candidates_.begin(), candidates_.end(),triggerObjectGreaterByPt);
297 }
template<>
void Candidates< trigger::TriggerObject >::ReadFromEvent ( const edm::Event &  event)

Definition at line 306 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::candidates_, analysis::ntuple::Candidates< T >::input_collection_, and analysis::ntuple::Candidates< T >::tree_.

307 {
308  using namespace edm;
309 
310  candidates_.clear();
311  // The stand alone collection
312 
313  edm::Handle<trigger::TriggerEvent> handler;
314  event.getByLabel(input_collection_, handler);
315 
316  const std::string treename = tree_ -> GetName(); // using the label to name the tree
317  const std::string delimiter = "_";
318  const std::string processName(handler->usedProcessName());
319  std::string label = treename.substr(0, treename.find(delimiter));
320  const unsigned int filterIndex(handler->filterIndex(InputTag(label,"",processName)));
321  if ( filterIndex < handler->sizeFilters() )
322  {
323  const trigger::Keys& keys(handler->filterKeys(filterIndex));
324  const trigger::TriggerObjectCollection & triggerObjects = handler->getObjects();
325  for ( auto & key : keys )
326  {
327  candidates_.reserve(candidates_.size()+keys.size());
328  candidates_.push_back(triggerObjects[key]);
329  }
330  }
331 
332  // Sort the objects by pt
333  NumericSafeGreaterByPt<trigger::TriggerObject> triggerObjectGreaterByPt;
334  std::sort (candidates_.begin(), candidates_.end(),triggerObjectGreaterByPt);
335 }
template<>
void Candidates< pat::TriggerObject >::TriggerObjectType ( const std::string &  trigobj_type)
template<>
void Candidates< pat::TriggerObject >::TriggerObjectType ( const std::string &  trigobj_type)

Definition at line 299 of file Candidates.cc.

References analysis::ntuple::Candidates< T >::trigobj_type_.

300 {
301  trigobj_type_ = trigobj_type;
302 }

The documentation for this class was generated from the following file: