ATLAS Offline Software
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
DerivationFramework::SkimmingToolHIGG2 Class Reference

#include <SkimmingToolHIGG2.h>

Inheritance diagram for DerivationFramework::SkimmingToolHIGG2:
Collaboration diagram for DerivationFramework::SkimmingToolHIGG2:

Classes

struct  Candidates
 

Public Member Functions

 SkimmingToolHIGG2 (const std::string &t, const std::string &n, const IInterface *p)
 Constructor with parameters. More...
 
 ~SkimmingToolHIGG2 ()
 Destructor. More...
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual bool eventPassesFilter () const override
 Check that the current event passes this filter. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

enum  { NUMBER_OF_MERGED_JET_TYPES = 3 }
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

bool checkElectronQuality (const xAOD::Electron *el, const bool isTight=false) const
 
bool checkMuonQuality (const xAOD::Muon *mu, const bool isTight=false) const
 
bool checkJetQuality (const xAOD::Jet *jet) const
 
bool checkMergedJetQuality (const xAOD::Jet *jet, const unsigned int type) const
 
bool checkPhotonQuality (const xAOD::Photon *ph) const
 
bool checkTrackQuality (const xAOD::TrackParticle *trk) const
 
bool check2L (const Candidates &evt) const
 
bool check4L (const Candidates &evt) const
 
bool checkTP (const Candidates &evt) const
 
bool check2L2Q (const Candidates &evt) const
 
bool checkJPSI (const Candidates &evt) const
 
bool checkPHI (const Candidates &evt) const
 
TLorentzVector electronFourMomentum (const xAOD::Electron *el) const
 
TLorentzVector jetFourMomentum (const xAOD::Jet *jet) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Static Private Member Functions

static TLorentzVector muonFourMomentum (const xAOD::Muon *mu)
 
static double getDeltaR (const double eta1, const double phi1, const double eta2, const double phi2)
 

Private Attributes

ToolHandle< Trig::TrigDecisionToolm_trigDecisionTool
 
std::atomic< unsigned int > m_ntot
 
std::atomic< unsigned int > m_npass
 
bool m_skipTriggerRequirement
 
std::string m_filterType
 
std::string m_electronSGKey
 
std::string m_muonSGKey
 
std::string m_jetSGKey
 
std::string m_mergedJetSGKey [NUMBER_OF_MERGED_JET_TYPES]
 
std::string m_photonSGKey
 
std::string m_trackSGKey
 
unsigned int m_nLeptons
 
unsigned int m_nElectrons
 
unsigned int m_nMuons
 
unsigned int m_nJets
 
unsigned int m_nMergedJets [NUMBER_OF_MERGED_JET_TYPES] {}
 
unsigned int m_nPhotons
 
unsigned int m_nTracks
 
std::string m_electronQual
 
std::string m_muonQual
 
std::string m_tightMuonQual
 
std::string m_tightElectronQual
 
std::string m_jetQual
 
std::string m_mergedJetQual [NUMBER_OF_MERGED_JET_TYPES]
 
std::string m_photonQual
 
std::string m_primaryElectronQual4L
 
std::vector< std::string > m_trigger2L
 
std::vector< std::string > m_triggerTP
 
std::vector< std::string > m_trigger2L2Q
 
std::vector< std::string > m_triggerJPSI
 
std::vector< std::string > m_triggerPHI
 
double m_electronEtCut
 
double m_muonPtCut
 
double m_tightElectronEtCut
 
double m_tightMuonPtCut
 
double m_jetPtCut
 
double m_mergedJetPtCut [NUMBER_OF_MERGED_JET_TYPES] {}
 
double m_photonPtCut
 
double m_trackPtCut
 
double m_electronEtaCut
 
double m_muonEtaCut
 
double m_caloMuonEtaCut
 
double m_jetEtaCut
 
double m_mergedJetEtaCut [NUMBER_OF_MERGED_JET_TYPES] {}
 
double m_photonEtaCut
 
double m_invariantMassCut
 
double m_invariantMassJpsiLowCut
 
double m_invariantMassJpsiUpCut
 
double m_invariantMassUpsilonLowCut
 
double m_invariantMassUpsilonUpCut
 
double m_invariantMassPhiLowCut
 
double m_invariantMassPhiUpCut
 
double m_leadingElectronEtCut
 
double m_leadingMuonPtCut
 
double m_dRElectronJetCut
 
bool m_checkLArError
 
bool m_defaultElectronFourMomentum
 
bool m_DFCommonJetFourMomentum
 
bool m_requireTightLeptons
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Static Private Attributes

static const double s_MZ
 
static const double s_MKplus
 

Detailed Description

Author
Susum.nosp@m.u.Od.nosp@m.a@cer.nosp@m.n.ch

Definition at line 35 of file SkimmingToolHIGG2.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
NUMBER_OF_MERGED_JET_TYPES 

Definition at line 52 of file SkimmingToolHIGG2.h.

52  {
54  };

Constructor & Destructor Documentation

◆ SkimmingToolHIGG2()

DerivationFramework::SkimmingToolHIGG2::SkimmingToolHIGG2 ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor with parameters.

Definition at line 23 of file SkimmingToolHIGG2.cxx.

25  :
26  AthAlgTool(t, n, p),
27  m_trigDecisionTool("Trig::TrigDecisionTool/TrigDecisionTool"),
28  m_ntot(0),
29  m_npass(0)
30 {
31  declareInterface<DerivationFramework::ISkimmingTool>(this);
32 
33  declareProperty("SkipTriggerRequirement", m_skipTriggerRequirement=false);
34 
35  declareProperty("FilterType", m_filterType="2L");
36 
37  declareProperty("ElectronContainerKey", m_electronSGKey="Electrons");
38  declareProperty("MuonContainerKey", m_muonSGKey="Muons");
39  declareProperty("JetContainerKey", m_jetSGKey="AntiKt4EMTopoJets");
40  declareProperty("MergedJetContainerKey0", m_mergedJetSGKey[0]="AntiKt4EMTopoJets");
41  declareProperty("MergedJetContainerKey1", m_mergedJetSGKey[1]="AntiKt10LCTopoJets");
42  declareProperty("MergedJetContainerKey2", m_mergedJetSGKey[2]="CamKt12LCTopoJets");
43  declareProperty("PhotonContainerKey", m_photonSGKey="Photons");
44  declareProperty("TrackContainerKey", m_trackSGKey="InDetTrackParticles");
45 
46  declareProperty("NumberOfLeptons", m_nLeptons=2);
47  declareProperty("NumberOfElectrons", m_nElectrons=0);
48  declareProperty("NumberOfMuons", m_nMuons=0);
49  declareProperty("NumberOfJets", m_nJets=0);
50  declareProperty("NumberOfMergedJets0", m_nMergedJets[0]=0);
51  declareProperty("NumberOfMergedJets1", m_nMergedJets[1]=0);
52  declareProperty("NumberOfMergedJets2", m_nMergedJets[2]=0);
53  declareProperty("NumberOfPhotons", m_nPhotons=0);
54  declareProperty("NumberOfTracks", m_nTracks=0);
55 
56  declareProperty("ElectronQuality", m_electronQual="any");
57  declareProperty("MuonQuality", m_muonQual="inMS");
58  declareProperty("TightElectronQuality", m_tightElectronQual="DFCommonElectronsLHVeryLoose");
59  declareProperty("TightMuonQuality", m_tightMuonQual="DFCommonGoodMuon");
60  declareProperty("JetQuality", m_jetQual="any");
61  declareProperty("MergedJetQuality0", m_mergedJetQual[0]="any");
62  declareProperty("MergedJetQuality1", m_mergedJetQual[1]="any");
63  declareProperty("MergedJetQuality2", m_mergedJetQual[2]="any");
64  declareProperty("PhotonQuality", m_photonQual="any");
65 
66  declareProperty("PrimaryElectronQuality4L", m_primaryElectronQual4L="DFCommonElectronsLHLoose");
67 
68  declareProperty("Trigger2L", m_trigger2L=std::vector<std::string>());
69  declareProperty("TriggerTP", m_triggerTP=std::vector<std::string>());
70  declareProperty("Trigger2L2Q", m_trigger2L2Q=std::vector<std::string>());
71  declareProperty("TriggerJPSI", m_triggerJPSI=std::vector<std::string>());
72  declareProperty("TriggerPHI", m_triggerPHI=std::vector<std::string>());
73 
74  declareProperty("ElectronEtCut", m_electronEtCut=10.*CLHEP::GeV);
75  declareProperty("MuonPtCut", m_muonPtCut=10.*CLHEP::GeV);
76  declareProperty("TightElectronEtCut", m_tightElectronEtCut=15.*CLHEP::GeV);
77  declareProperty("TightMuonPtCut", m_tightMuonPtCut=15.*CLHEP::GeV);
78  declareProperty("JetPtCut", m_jetPtCut=15.*CLHEP::GeV);
79  declareProperty("MergedJetPtCut0", m_mergedJetPtCut[0]=100.*CLHEP::GeV);
80  declareProperty("MergedJetPtCut1", m_mergedJetPtCut[1]=150.*CLHEP::GeV);
81  declareProperty("MergedJetPtCut2", m_mergedJetPtCut[2]=150.*CLHEP::GeV);
82  declareProperty("PhotonPtCut", m_photonPtCut=15.*CLHEP::GeV);
83  declareProperty("TrackPtCut", m_trackPtCut=20.*CLHEP::GeV);
84 
85  declareProperty("ElectronEtaCut", m_electronEtaCut=9999.);
86  declareProperty("MuonEtaCut", m_muonEtaCut=9999.);
87  declareProperty("CaloMuonEtaCut", m_caloMuonEtaCut=0.2);
88  declareProperty("JetEtaCut", m_jetEtaCut=2.6);
89  declareProperty("MergedJetEtaCut0", m_mergedJetEtaCut[0]=2.6);
90  declareProperty("MergedJetEtaCut1", m_mergedJetEtaCut[1]=2.6);
91  declareProperty("MergedJetEtaCut2", m_mergedJetEtaCut[2]=2.6);
92  declareProperty("PhotonEtaCut", m_photonEtaCut=2.5);
93 
94  declareProperty("InvariantMassCut", m_invariantMassCut=0.*CLHEP::GeV);
95  declareProperty("InvariantMassJpsiLowCut", m_invariantMassJpsiLowCut=2.0*CLHEP::GeV);
96  declareProperty("InvariantMassJpsiUpCut", m_invariantMassJpsiUpCut=4.3*CLHEP::GeV);
97  declareProperty("InvariantMassUpsilonLowCut", m_invariantMassUpsilonLowCut=8.0*CLHEP::GeV);
98  declareProperty("InvariantMassUpsilonUpCut", m_invariantMassUpsilonUpCut=12.0*CLHEP::GeV);
99  declareProperty("InvariantMassPhiLowCut", m_invariantMassPhiLowCut=2.*s_MKplus);
100  declareProperty("InvariantMassPhiUpCut", m_invariantMassPhiUpCut=1.2*CLHEP::GeV);
101 
102  declareProperty("LeadingElectronEtCut", m_leadingElectronEtCut=0.*CLHEP::GeV);
103  declareProperty("LeadingMuonPtCut", m_leadingMuonPtCut=0.*CLHEP::GeV);
104 
105  declareProperty("DRElectronJetCut", m_dRElectronJetCut=0.05);
106 
107  declareProperty("CheckLArError", m_checkLArError=true);
108  declareProperty("UseDefaultElectronFourMomentum", m_defaultElectronFourMomentum=true);
109 
110  declareProperty("UseDFCommonJetFourMomentum", m_DFCommonJetFourMomentum=true);
111 
112  declareProperty("RequireTightLeptons", m_requireTightLeptons=false);
113 }

◆ ~SkimmingToolHIGG2()

DerivationFramework::SkimmingToolHIGG2::~SkimmingToolHIGG2 ( )

Destructor.

Definition at line 116 of file SkimmingToolHIGG2.cxx.

116  {
117 }

Member Function Documentation

◆ check2L()

bool DerivationFramework::SkimmingToolHIGG2::check2L ( const Candidates evt) const
private

Definition at line 400 of file SkimmingToolHIGG2.cxx.

401 {
402  if(!(m_nLeptons>0 and evt.goodElectrons.size()+evt.goodMuons.size()>=m_nLeptons)) return false;
403  if(!(evt.goodJets.size()>=m_nJets and evt.goodPhotons.size()>=m_nPhotons)) return false;
404 
405  bool isTriggerFired(m_trigger2L.empty() or m_skipTriggerRequirement);
406  for(unsigned int i(0); i<m_trigger2L.size(); i++) {
407  if(m_trigDecisionTool->isPassed(m_trigger2L.at(i))) {
408  isTriggerFired = true;
409  break;
410  }
411  }
412  if(!isTriggerFired) return false;
413 
414  unsigned int nGoodLeptons(evt.goodElectrons.size()+evt.goodMuons.size());
415  std::vector<TLorentzVector> v_tlv(nGoodLeptons);
416  std::vector<bool> v_isElectron(nGoodLeptons);
417  std::vector<bool> v_isTight(nGoodLeptons);
418 
419  for(unsigned int el_i(0); el_i<evt.goodElectrons.size(); el_i++) {
420  const xAOD::Electron *el(evt.goodElectrons.at(el_i));
421  TLorentzVector tlv(this->electronFourMomentum(el));
422  v_tlv.at(el_i) = tlv;
423  v_isElectron.at(el_i) = true;
424  v_isTight.at(el_i) = this->checkElectronQuality(el, true);
425  }
426 
427  for(unsigned int mu_i(0); mu_i<evt.goodMuons.size(); mu_i++) {
428  const xAOD::Muon *mu(evt.goodMuons.at(mu_i));
430  unsigned int mu_j(evt.goodElectrons.size()+mu_i);
431  v_tlv.at(mu_j) = tlv;
432  v_isElectron.at(mu_j) = false;
433  v_isTight.at(mu_j) = this->checkMuonQuality(mu, true);
434  }
435 
436  for(unsigned int i0(0); i0<nGoodLeptons; i0++) {
437  for(unsigned int i1(i0+1); i1<nGoodLeptons; i1++) {
438  if(m_requireTightLeptons and (not (v_isTight.at(i0) or v_isTight.at(i1)))) continue;
439 
440  TLorentzVector tlv_2lep(v_tlv.at(i0) + v_tlv.at(i1));
441  // Check two lepton mass
442  if(tlv_2lep.M()>m_invariantMassCut) return true;
443  }
444  }
445 
446  return false;
447 }

◆ check2L2Q()

bool DerivationFramework::SkimmingToolHIGG2::check2L2Q ( const Candidates evt) const
private

Definition at line 578 of file SkimmingToolHIGG2.cxx.

579 {
580  if(!(m_nLeptons>0 and evt.goodElectrons.size()+evt.goodMuons.size()>=m_nLeptons)) return false;
581 
582  bool isTriggerFired(m_trigger2L2Q.empty() or m_skipTriggerRequirement);
583  for(unsigned int i(0); i<m_trigger2L2Q.size(); i++) {
584  if(m_trigDecisionTool->isPassed(m_trigger2L2Q.at(i))) {
585  isTriggerFired = true;
586  break;
587  }
588  }
589  if(!isTriggerFired) return false;
590 
591  bool checkGoodJets(evt.goodJets.size()>=m_nJets and m_nJets>0);
592  for(unsigned int type(0); type<NUMBER_OF_MERGED_JET_TYPES; type++) {
593  if(m_nMergedJets[type]>0) {
594  checkGoodJets = (checkGoodJets or (evt.goodMergedJets[type].size()>=m_nMergedJets[type]));
595  }
596  }
597  if(!checkGoodJets) return false;
598 
599  unsigned int nGoodLeptons(evt.goodElectrons.size()+evt.goodMuons.size());
600  std::vector<TLorentzVector> v_tlv(nGoodLeptons);
601  std::vector<bool> v_isElectron(nGoodLeptons);
602  std::vector<bool> v_isTight(nGoodLeptons);
603 
604  for(unsigned int el_i(0); el_i<evt.goodElectrons.size(); el_i++) {
605  const xAOD::Electron *el(evt.goodElectrons.at(el_i));
606  TLorentzVector tlv(this->electronFourMomentum(el));
607  v_tlv.at(el_i) = tlv;
608  v_isElectron.at(el_i) = true;
609  v_isTight.at(el_i) = this->checkElectronQuality(el, true);
610  }
611 
612  for(unsigned int mu_i(0); mu_i<evt.goodMuons.size(); mu_i++) {
613  const xAOD::Muon *mu(evt.goodMuons.at(mu_i));
615  unsigned int mu_j(evt.goodElectrons.size()+mu_i);
616  v_tlv.at(mu_j) = tlv;
617  v_isElectron.at(mu_j) = false;
618  v_isTight.at(mu_j) = this->checkMuonQuality(mu, true);
619  }
620 
621  for(unsigned int i0(0); i0<nGoodLeptons; i0++) {
622  for(unsigned int i1(i0+1); i1<nGoodLeptons; i1++) {
623  // if(v_isElectron.at(i0)!=v_isElectron.at(i1)) continue; // Events with N(e)=1 and N(mu)=1 are kept.
624  if(m_requireTightLeptons and (not (v_isTight.at(i0) or v_isTight.at(i1)))) continue;
625 
626  TLorentzVector tlv_2lep(v_tlv.at(i0) + v_tlv.at(i1));
627  // Check two lepton mass
628  if(tlv_2lep.M()<m_invariantMassCut) continue;
629 
630  // dR(e-jet)>0.05 is required for at least two jets
631  if(v_isElectron.at(i0)) {
632  unsigned int nGoodJetsWithDRCut(0);
633  unsigned int nGoodJets(evt.goodJets.size());
634  for(unsigned int j(0); j<nGoodJets; j++) {
635  const xAOD::Jet *jet(evt.goodJets.at(j));
636  TLorentzVector jet_tlv(this->jetFourMomentum(jet));
637 
638  double dR_0(DerivationFramework::SkimmingToolHIGG2::getDeltaR(v_tlv.at(i0).Eta(), v_tlv.at(i0).Phi(), jet_tlv.Eta(), jet_tlv.Phi()));
639  if(dR_0<m_dRElectronJetCut) continue;
640 
641  double dR_1(DerivationFramework::SkimmingToolHIGG2::getDeltaR(v_tlv.at(i1).Eta(), v_tlv.at(i1).Phi(), jet_tlv.Eta(), jet_tlv.Phi()));
642  if(dR_1<m_dRElectronJetCut) continue;
643 
644  nGoodJetsWithDRCut++;
645  }
646 
647  bool checkGoodJetsWithDRCut(nGoodJetsWithDRCut>=m_nJets and m_nJets>0);
648 
649  for(unsigned int type(0); type<NUMBER_OF_MERGED_JET_TYPES; type++) {
650  if(m_nMergedJets[type]>0) {
651  unsigned int nGoodMergedJetsWithDRCut(0);
652  unsigned int nGoodMergedJets(evt.goodMergedJets[type].size());
653  for(unsigned int j(0); j<nGoodMergedJets; j++) {
654  const xAOD::Jet *jet(evt.goodMergedJets[type].at(j));
655 
656  double dR_0(DerivationFramework::SkimmingToolHIGG2::getDeltaR(v_tlv.at(i0).Eta(), v_tlv.at(i0).Phi(), jet->eta(), jet->phi()));
657  if(dR_0<m_dRElectronJetCut) continue;
658 
659  double dR_1(DerivationFramework::SkimmingToolHIGG2::getDeltaR(v_tlv.at(i1).Eta(), v_tlv.at(i1).Phi(), jet->eta(), jet->phi()));
660  if(dR_1<m_dRElectronJetCut) continue;
661 
662  nGoodMergedJetsWithDRCut++;
663  }
664 
665  checkGoodJetsWithDRCut = (checkGoodJetsWithDRCut or (nGoodMergedJetsWithDRCut>=m_nMergedJets[type]));
666  }
667  }
668  if(!checkGoodJetsWithDRCut) return false;
669  }
670 
671  // Leading lepton ET/pT cut
672  if((v_tlv.at(i0).Pt()>v_tlv.at(i1).Pt() ? v_tlv.at(i0).Pt() : v_tlv.at(i1).Pt()) > (v_isElectron.at(i0) ? m_leadingElectronEtCut : m_leadingMuonPtCut)) return true;
673  }
674  }
675 
676  return false;
677 }

◆ check4L()

bool DerivationFramework::SkimmingToolHIGG2::check4L ( const Candidates evt) const
private

Definition at line 449 of file SkimmingToolHIGG2.cxx.

450 {
451  if(!(m_nLeptons>0 and evt.goodElectrons.size()+evt.goodMuons.size()>=m_nLeptons)) return false;
452  if(!(evt.goodJets.size()>=m_nJets and evt.goodPhotons.size()>=m_nPhotons)) return false;
453 
454  unsigned int nGoodLeptons(evt.goodElectrons.size()+evt.goodMuons.size());
455  std::vector<TLorentzVector> v_tlv(nGoodLeptons);
456  std::vector<bool> v_pid(nGoodLeptons);
457 
458  for(unsigned int el_i(0); el_i<evt.goodElectrons.size(); el_i++) {
459  const xAOD::Electron *el(evt.goodElectrons.at(el_i));
460  TLorentzVector tlv(this->electronFourMomentum(el));
461  v_tlv.at(el_i) = tlv;
462 
463  bool value(false);
464  bool defined(false);
465  if(m_primaryElectronQual4L.empty()) {
466  // In the case of no identification requirement
467  defined = true;
468  value = true;
469  } else if(m_primaryElectronQual4L=="DFCommonElectronsLHVeryLoose" or
470  m_primaryElectronQual4L=="DFCommonElectronsLHLoose" or
471  m_primaryElectronQual4L=="DFCommonElectronsLHMedium" or
472  m_primaryElectronQual4L=="DFCommonElectronsLHTight" or
473  m_primaryElectronQual4L=="DFCommonElectronsML") {
474  // Use Derivation Framework variable to pickup possible new correction result
475  // If the same electron likelihood configuration is used in AOD creation and DAOD creation,
476  // DFCommonElectronsLHLoose and LHLoose are identical.
478  if(primEleAcc.isAvailable(*el)) {
479  defined = true;
480  value = static_cast<bool>(primEleAcc(*el));
481  }
482  } else {
483  // Electron menu is defined in http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Reconstruction/egamma/egammaTools/python/EMPIDBuilderBase.py
484  defined = el->passSelection(value, m_primaryElectronQual4L);
485  }
486 
487  v_pid.at(el_i) = (value and defined);
488  }
489 
490  for(unsigned int mu_i(0); mu_i<evt.goodMuons.size(); mu_i++) {
491  const xAOD::Muon *mu(evt.goodMuons.at(mu_i));
493  unsigned int mu_j(evt.goodElectrons.size()+mu_i);
494  v_tlv.at(mu_j) = tlv;
495  v_pid.at(mu_j) = true;
496  }
497 
498  for(unsigned int i0(0); i0<nGoodLeptons; i0++) {
499  for(unsigned int i1(i0+1); i1<nGoodLeptons; i1++) {
500  for(unsigned int i2(i1+1); i2<nGoodLeptons; i2++) {
501  for(unsigned int i3(i2+1); i3<nGoodLeptons; i3++) {
502  TLorentzVector tlv_4lep(v_tlv.at(i0) + v_tlv.at(i1) + v_tlv.at(i2) + v_tlv.at(i3));
503  // Check four lepton mass
504  if(tlv_4lep.M()<m_invariantMassCut) continue;
505 
506  // Check primary dilepton's electron PID (muon PID is always true)
507  if(fabs((v_tlv.at(i0)+v_tlv.at(i1)).M()-s_MZ)<fabs((v_tlv.at(i2)+v_tlv.at(i3)).M()-s_MZ)) {
508  if(v_pid.at(i0) and v_pid.at(i1)) return true;
509  } else {
510  if(v_pid.at(i2) and v_pid.at(i3)) return true;
511  }
512  if(fabs((v_tlv.at(i0)+v_tlv.at(i2)).M()-s_MZ)<fabs((v_tlv.at(i1)+v_tlv.at(i3)).M()-s_MZ)) {
513  if(v_pid.at(i0) and v_pid.at(i2)) return true;
514  } else {
515  if(v_pid.at(i1) and v_pid.at(i3)) return true;
516  }
517  if(fabs((v_tlv.at(i0)+v_tlv.at(i3)).M()-s_MZ)<fabs((v_tlv.at(i1)+v_tlv.at(i2)).M()-s_MZ)) {
518  if(v_pid.at(i0) and v_pid.at(i3)) return true;
519  } else {
520  if(v_pid.at(i1) and v_pid.at(i2)) return true;
521  }
522  }
523  }
524  }
525  }
526 
527  return false;
528 }

◆ checkElectronQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkElectronQuality ( const xAOD::Electron el,
const bool  isTight = false 
) const
private

Definition at line 236 of file SkimmingToolHIGG2.cxx.

237 {
238  if(!el) return false;
239 
240  const std::string electronQual(isTight ? m_tightElectronQual : m_electronQual);
241  const double electronEtCut(isTight ? m_tightElectronEtCut : m_electronEtCut);
242 
243  if(electronQual!="any") {
244  bool value(false);
245  bool defined(false);
246  if(electronQual=="DFCommonElectronsLHVeryLoose" or
247  electronQual=="DFCommonElectronsLHLoose" or
248  electronQual=="DFCommonElectronsLHMedium" or
249  electronQual=="DFCommonElectronsLHTight" or
250  electronQual=="DFCommonElectronsML") {
251  // Use Derivation Framework variable to pickup possible new correction result
252  // If the same electron likelihood configuration is used in AOD creation and DAOD creation,
253  // DFCommonElectronsLHLoose and LHLoose are identical.
254  SG::ConstAccessor<char> qualAcc(electronQual);
255  if(qualAcc.isAvailable(*el)) {
256  defined = true;
257  value = static_cast<bool>(qualAcc(*el));
258  }
259  } else {
260  // Electron menu is defined in http://acode-browser.usatlas.bnl.gov/lxr/source/atlas/Reconstruction/egamma/egammaTools/python/EMPIDBuilderBase.py
261  defined = el->passSelection(value, electronQual);
262  }
263  if(not(value and defined)) return false;
264  }
265 
266  const xAOD::TrackParticle *trackParticle(el->trackParticle());
267  if(!trackParticle) {
268  ATH_MSG_DEBUG("xAOD::TrackParticle pointer is null");
269  return false;
270  }
272  if(!trackParticle->summaryValue(numberOfPixelHits, xAOD::numberOfPixelHits)) {
273  ATH_MSG_WARNING("xAOD::TrackParticle does not give summaryValue correctly for xAOD::numberOfPixelHits");
274  return false;
275  }
277  if(!trackParticle->summaryValue(numberOfSCTHits, xAOD::numberOfSCTHits)) {
278  ATH_MSG_WARNING("xAOD::TrackParticle does not give summaryValue correctly for xAOD::numberOfSCTHits");
279  return false;
280  }
281  if(numberOfPixelHits+numberOfSCTHits==0) return false;
282 
283  const xAOD::CaloCluster *caloCluster(el->caloCluster());
284  if(!caloCluster) {
285  ATH_MSG_WARNING("xAOD::CaloCluster pointer is null");
286  return false;
287  }
288 
289  double eta(trackParticle->eta());
290  if(fabs(eta)>10.) return false;
291  double et(caloCluster->e()/cosh(eta));
292 
293  if(et<electronEtCut) return false;
294  if(fabs(eta)>m_electronEtaCut) return false;
295 
296  return true;
297 }

◆ checkJetQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkJetQuality ( const xAOD::Jet jet) const
private

Definition at line 343 of file SkimmingToolHIGG2.cxx.

344 {
345  if(!jet) return false;
346 
347  if(m_jetQual!="any") {
348  // do something
349  }
350 
351  TLorentzVector tlv(this->jetFourMomentum(jet));
352  if(tlv.Pt()<m_jetPtCut) return false;
353  if(fabs(tlv.Eta())>m_jetEtaCut) return false;
354 
355  return true;
356 }

◆ checkJPSI()

bool DerivationFramework::SkimmingToolHIGG2::checkJPSI ( const Candidates evt) const
private

Definition at line 679 of file SkimmingToolHIGG2.cxx.

680 {
681  if(!(m_nMuons>0 and evt.goodMuons.size()>=m_nMuons)) return false;
682  if(!(evt.goodPhotons.size()>=m_nPhotons)) return false;
683 
684  bool isTriggerFired(m_triggerJPSI.empty() or m_skipTriggerRequirement);
685  for(unsigned int i(0); i<m_triggerJPSI.size(); i++) {
686  if(m_trigDecisionTool->isPassed(m_triggerJPSI.at(i))) {
687  isTriggerFired = true;
688  break;
689  }
690  }
691  if(!isTriggerFired) return false;
692 
693  std::vector<TLorentzVector> v_tlv(evt.goodMuons.size());
694 
695  for(unsigned int mu_i(0); mu_i<evt.goodMuons.size(); mu_i++) {
696  const xAOD::Muon *mu(evt.goodMuons.at(mu_i));
698  v_tlv.at(mu_i) = tlv;
699  }
700 
701  unsigned int nGoodLeptons(v_tlv.size());
702  for(unsigned int i0(0); i0<nGoodLeptons; i0++) {
703  for(unsigned int i1(i0+1); i1<nGoodLeptons; i1++) {
704  TLorentzVector tlv_2lep(v_tlv.at(i0) + v_tlv.at(i1));
705 
706  // Check di-muon mass
707  if((tlv_2lep.M()<m_invariantMassJpsiLowCut or tlv_2lep.M()>m_invariantMassJpsiUpCut) and
708  (tlv_2lep.M()<m_invariantMassUpsilonLowCut or tlv_2lep.M()>m_invariantMassUpsilonUpCut)) continue;
709 
710  // Check leading muon pT
711  if((v_tlv.at(i0).Pt()>v_tlv.at(i1).Pt() ? v_tlv.at(i0).Pt() : v_tlv.at(i1).Pt())>m_leadingMuonPtCut) return true;
712  }
713  }
714 
715  return false;
716 }

◆ checkMergedJetQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkMergedJetQuality ( const xAOD::Jet jet,
const unsigned int  type 
) const
private

Definition at line 358 of file SkimmingToolHIGG2.cxx.

359 {
360  if(!jet) return false;
361 
362  if(m_mergedJetQual[type]!="any") {
363  // do something
364  }
365 
366  if(jet->pt()<m_mergedJetPtCut[type]) return false;
367  if(fabs(jet->eta())>m_mergedJetEtaCut[type]) return false;
368 
369  return true;
370 }

◆ checkMuonQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkMuonQuality ( const xAOD::Muon mu,
const bool  isTight = false 
) const
private

Definition at line 299 of file SkimmingToolHIGG2.cxx.

300 {
301  if(!mu) return false;
302 
303  const std::string muonQual(isTight ? m_tightMuonQual : m_muonQual);
304  const double muonPtCut(isTight ? m_tightMuonPtCut : m_muonPtCut);
305 
306  if(muonQual=="any") {
307  // do nothing
308  } else if(muonQual=="combined") {
309  if(mu->muonType()!=xAOD::Muon::Combined) return false;
310  } else if(muonQual=="standalone") {
311  if(mu->muonType()!=xAOD::Muon::MuonStandAlone) return false;
312  } else if(muonQual=="lowpt") {
313  if(mu->muonType()!=xAOD::Muon::SegmentTagged) return false;
314  } else if(muonQual=="combined+lowpt") {
315  if(mu->muonType()!=xAOD::Muon::Combined and mu->muonType()!=xAOD::Muon::SegmentTagged) return false;
316  } else if(muonQual=="inMS") {
317  if(mu->muonType()==xAOD::Muon::MuonStandAlone and fabs(fabs(mu->eta())-2.6)>0.12) return false;
318  } else if(muonQual=="DFCommonGoodMuon") { // Derivation Framework variable
319  static const SG::ConstAccessor<char> DFCommonGoodMuonAcc("DFCommonGoodMuon");
320  if(!DFCommonGoodMuonAcc.withDefault(*mu, false)) return false;
321  } else if(muonQual=="DFCommonMuonsLoose") { // Derivation Framework variable
322  static const SG::ConstAccessor<char> DFCommonMuonsLooseAcc("DFCommonMuonsLoose");
323  if(!DFCommonMuonsLooseAcc.withDefault(*mu, false)) return false;
324  } else if(muonQual=="DFCommonMuonsMedium") { // Derivation Framework variable
325  static const SG::ConstAccessor<char> DFCommonMuonsMediumAcc("DFCommonMuonsMedium");
326  if(!DFCommonMuonsMediumAcc.withDefault(*mu, false)) return false;
327  } else if(muonQual=="DFCommonMuonsTight") { // Derivation Framework variable
328  static const SG::ConstAccessor<char> DFCommonMuonsTightAcc("DFCommonMuonsTight");
329  if(!DFCommonMuonsTightAcc.withDefault(*mu, false)) return false;
330  } else {
331  ATH_MSG_WARNING("Muon quality " << muonQual << "is not defined");
332  return false;
333  }
334 
335  if(mu->pt()<muonPtCut) return false;
336  if(fabs(mu->eta())>m_muonEtaCut) return false;
337  if(muonQual!="DFCommonGoodMuon" and
338  (mu->muonType()==xAOD::Muon::CaloTagged and fabs(mu->eta())>m_caloMuonEtaCut)) return false;
339 
340  return true;
341 }

◆ checkPHI()

bool DerivationFramework::SkimmingToolHIGG2::checkPHI ( const Candidates evt) const
private

Definition at line 718 of file SkimmingToolHIGG2.cxx.

719 {
720  // Check if there are candidates
721  if(!(m_nTracks>0 and evt.goodTracks.size()>=m_nTracks)) return false;
722  if(!(evt.goodPhotons.size()>=m_nPhotons)) return false;
723 
724  // Check if triggers are OK
725  bool isTriggerFired(m_triggerPHI.empty() or m_skipTriggerRequirement);
726  for(unsigned int i(0); i<m_triggerPHI.size(); i++) {
727  if(m_trigDecisionTool->isPassed(m_triggerPHI.at(i))) {
728  isTriggerFired = true;
729  break;
730  }
731  }
732  if(!isTriggerFired) return false;
733 
734  // Get 4-momentum of tracks (=charged kaons)
735  std::vector<TLorentzVector> v_tlv[2];
736  for(unsigned int trk_i(0); trk_i<evt.goodTracks.size(); trk_i++) {
737  const xAOD::TrackParticle *trk(evt.goodTracks.at(trk_i));
738  TLorentzVector tlv;
739  tlv.SetPtEtaPhiM(trk->pt(), trk->eta(), trk->phi(), s_MKplus); // Kaon is assumed.
740  v_tlv[trk->charge()>0. ? 0 : 1].push_back(tlv); // 0 is positive, 1 is negative
741  }
742 
743  // Check track pair mass
744  unsigned int nGoodTracks[2];
745  nGoodTracks[0] = v_tlv[0].size();
746  nGoodTracks[1] = v_tlv[1].size();
747  for(unsigned int i0(0); i0<nGoodTracks[0]; i0++) {
748  for(unsigned int i1(0); i1<nGoodTracks[1]; i1++) {
749  TLorentzVector tlv_2trk(v_tlv[0].at(i0) + v_tlv[1].at(i1));
750  if(tlv_2trk.M()<m_invariantMassPhiLowCut or tlv_2trk.M()>m_invariantMassPhiUpCut) continue;
751  return true; // One candidate is found.
752  }
753  }
754 
755  return false; // No candidate is found.
756 }

◆ checkPhotonQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkPhotonQuality ( const xAOD::Photon ph) const
private

Definition at line 372 of file SkimmingToolHIGG2.cxx.

373 {
374  if(!ph) return false;
375 
376  if(m_photonQual!="any") {
377  bool value(false);
378  if(!ph->passSelection(value, m_photonQual)) {
379  ATH_MSG_WARNING("xAOD::Photon does not have menu of " << m_photonQual);
380  return false;
381  }
382  if(!value) return false;
383  }
384 
385  if(ph->pt()<m_photonPtCut) return false;
386  if(fabs(ph->eta())>m_photonEtaCut) return false;
387 
388  return true;
389 }

◆ checkTP()

bool DerivationFramework::SkimmingToolHIGG2::checkTP ( const Candidates evt) const
private

Definition at line 530 of file SkimmingToolHIGG2.cxx.

531 {
532  if(!(m_nLeptons>0 and evt.goodElectrons.size()+evt.goodMuons.size()>=m_nLeptons)) return false;
533 
534  bool isTriggerFired(m_triggerTP.empty() or m_skipTriggerRequirement);
535  for(unsigned int i(0); i<m_triggerTP.size(); i++) {
536  if(m_trigDecisionTool->isPassed(m_triggerTP.at(i))) {
537  isTriggerFired = true;
538  break;
539  }
540  }
541  if(!isTriggerFired) return false;
542 
543  unsigned int nGoodLeptons(evt.goodElectrons.size()+evt.goodMuons.size());
544  std::vector<TLorentzVector> v_tlv(nGoodLeptons);
545  std::vector<bool> v_isElectron(nGoodLeptons);
546 
547  for(unsigned int el_i(0); el_i<evt.goodElectrons.size(); el_i++) {
548  const xAOD::Electron *el(evt.goodElectrons.at(el_i));
549  TLorentzVector tlv(this->electronFourMomentum(el));
550  v_tlv.at(el_i) = tlv;
551  v_isElectron.at(el_i) = true;
552  }
553 
554  for(unsigned int mu_i(0); mu_i<evt.goodMuons.size(); mu_i++) {
555  const xAOD::Muon *mu(evt.goodMuons.at(mu_i));
557  unsigned int mu_j(evt.goodElectrons.size()+mu_i);
558  v_tlv.at(mu_j) = tlv;
559  v_isElectron.at(mu_j) = false;
560  }
561 
562  for(unsigned int i0(0); i0<nGoodLeptons; i0++) {
563  for(unsigned int i1(i0+1); i1<nGoodLeptons; i1++) {
564  if(v_isElectron.at(i0)!=v_isElectron.at(i1)) continue;
565 
566  TLorentzVector tlv_2lep(v_tlv.at(i0) + v_tlv.at(i1));
567  // Check two lepton mass
568  if(tlv_2lep.M()<m_invariantMassCut) continue;
569 
570  // Leading lepton ET/pT cut
571  if((v_tlv.at(i0).Pt()>v_tlv.at(i1).Pt() ? v_tlv.at(i0).Pt() : v_tlv.at(i1).Pt()) > (v_isElectron.at(i0) ? m_leadingElectronEtCut : m_leadingMuonPtCut)) return true;
572  }
573  }
574 
575  return false;
576 }

◆ checkTrackQuality()

bool DerivationFramework::SkimmingToolHIGG2::checkTrackQuality ( const xAOD::TrackParticle trk) const
private

Definition at line 391 of file SkimmingToolHIGG2.cxx.

392 {
393  if(!trk) return false;
394 
395  if(trk->pt()<m_trackPtCut) return false;
396 
397  return true;
398 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ electronFourMomentum()

TLorentzVector DerivationFramework::SkimmingToolHIGG2::electronFourMomentum ( const xAOD::Electron el) const
private

Definition at line 758 of file SkimmingToolHIGG2.cxx.

759 {
760  TLorentzVector tlv;
761  tlv.SetPtEtaPhiE(el->pt(), el->eta(), el->phi(), el->e());
762  if(m_defaultElectronFourMomentum) return tlv;
763 
764  const xAOD::TrackParticle *trackParticle(el->trackParticle());
765  if(!trackParticle) {
766  ATH_MSG_WARNING("xAOD::TrackParticle pointer is null");
767  return tlv;
768  }
769  const xAOD::CaloCluster *caloCluster(el->caloCluster());
770  if(!caloCluster) {
771  ATH_MSG_WARNING("xAOD::CaloCluster pointer is null");
772  return tlv;
773  }
774 
775  double eta(trackParticle->eta());
776  double phi(trackParticle->phi());
777  if(fabs(eta)>10.) {
778  ATH_MSG_WARNING("fabs(trackParticle->eta()) = " << eta << " > 10.");
779  return tlv;
780  }
781  double e(caloCluster->e());
782  double et(e/cosh(eta));
783 
784  tlv.SetPtEtaPhiE(et, eta, phi, e);
785  return tlv;
786 }

◆ eventPassesFilter()

bool DerivationFramework::SkimmingToolHIGG2::eventPassesFilter ( ) const
overridevirtual

Check that the current event passes this filter.

Implements DerivationFramework::ISkimmingTool.

Definition at line 147 of file SkimmingToolHIGG2.cxx.

148 {
149  m_ntot++;
150  bool acceptEvent(false);
151  StatusCode sc(StatusCode::SUCCESS);
152 
153  // Retrieve EventInfo
154  const xAOD::EventInfo *eventInfo(nullptr);
155  ATH_CHECK(evtStore()->retrieve(eventInfo), false);
156 
157  // LAr error check
158  if(m_checkLArError) {
159  if(eventInfo->errorState(xAOD::EventInfo::LAr)==xAOD::EventInfo::Error) {
160  return acceptEvent;
161  }
162  }
163 
165  // Electrons
166  if(m_nElectrons>0 or m_nLeptons>0) {
167  const xAOD::ElectronContainer *electrons(nullptr);
169  for(const auto *el: *electrons) {
170  if(this->checkElectronQuality(el)) evt.goodElectrons.push_back(el);
171  }
172  }
173 
174  // Muons
175  if(m_nMuons>0 or m_nLeptons>0) {
176  const xAOD::MuonContainer *muons(nullptr);
177  ATH_CHECK(evtStore()->retrieve(muons, m_muonSGKey), false);
178  for(const auto *mu: *muons) {
179  if(this->checkMuonQuality(mu)) evt.goodMuons.push_back(mu);
180  }
181  }
182 
183  // Jets
184  if(m_nJets>0) {
185  const xAOD::JetContainer *jets(nullptr);
187  for(const auto *jet: *jets) {
188  if(this->checkJetQuality(jet)) evt.goodJets.push_back(jet);
189  }
190  }
191  for(unsigned int type(0); type<NUMBER_OF_MERGED_JET_TYPES; type++) {
192  if(m_nMergedJets[type]>0) {
193  const xAOD::JetContainer *jets(nullptr);
195  for(const auto *jet: *jets) {
196  if(this->checkMergedJetQuality(jet, type)) evt.goodMergedJets[type].push_back(jet);
197  }
198  }
199  }
200 
201  // Photons
202  if(m_nPhotons>0) {
203  const xAOD::PhotonContainer *photons(nullptr);
204  ATH_CHECK(evtStore()->retrieve(photons, m_photonSGKey), false);
205  for(const auto *ph: *photons) {
206  if(this->checkPhotonQuality(ph)) evt.goodPhotons.push_back(ph);
207  }
208  }
209 
210  // Tracks
211  if(m_nTracks>0) {
212  const xAOD::TrackParticleContainer *tracks(nullptr);
213  ATH_CHECK(evtStore()->retrieve(tracks, m_trackSGKey), false);
214  for(const auto *trk: *tracks) {
215  if(this->checkTrackQuality(trk)) evt.goodTracks.push_back(trk);
216  }
217  }
218 
219  // Check conditions of filters
220  if(m_filterType=="2L") {
221  if(this->check2L(evt)) acceptEvent = true;
222  } else if(m_filterType=="4L") {
223  if(this->check4L(evt)) acceptEvent = true;
224  } else if(m_filterType=="TP") {
225  if(this->checkTP(evt)) acceptEvent = true;
226  } else if(m_filterType=="2L2Q") {
227  if(this->check2L2Q(evt)) acceptEvent = true;
228  } else if(m_filterType=="JPSI") {
229  if(this->checkJPSI(evt) or this->checkPHI(evt)) acceptEvent = true;
230  }
231 
232  if(acceptEvent) m_npass++;
233  return acceptEvent;
234 }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode DerivationFramework::SkimmingToolHIGG2::finalize ( )
overridevirtual

Definition at line 139 of file SkimmingToolHIGG2.cxx.

140 {
141  ATH_MSG_VERBOSE("finalize() ...");
142  ATH_MSG_INFO("Processed " << m_ntot << " events, " << m_npass << " events passed filter ");
143  return StatusCode::SUCCESS;
144 }

◆ getDeltaR()

double DerivationFramework::SkimmingToolHIGG2::getDeltaR ( const double  eta1,
const double  phi1,
const double  eta2,
const double  phi2 
)
staticprivate

Definition at line 816 of file SkimmingToolHIGG2.cxx.

817 {
818  double dEta(eta1 - eta2);
819  double dPhi(phi1 - phi2);
820  if(dPhi>+M_PI) dPhi -= 2.*M_PI;
821  if(dPhi<-M_PI) dPhi += 2.*M_PI;
822  double dR(sqrt(dEta*dEta + dPhi*dPhi));
823  return dR;
824 }

◆ initialize()

StatusCode DerivationFramework::SkimmingToolHIGG2::initialize ( )
overridevirtual

Definition at line 120 of file SkimmingToolHIGG2.cxx.

121 {
122  ATH_MSG_VERBOSE("initialize() ...");
123 
124  // if(m_defaultElectronFourMomentum==true and m_DFCommonElectronFourMomentum==true) {
125  // ATH_MSG_FATAL("Wrong setting both m_defaultElectronFourMomentum and m_DFCommonElectronFourMomentum are true.");
126  // return StatusCode::FAILURE;
127  // }
128 
129  // trigger decision tool
130  if(m_trigDecisionTool.retrieve(DisableTool{m_skipTriggerRequirement}).isFailure()) {
131  ATH_MSG_FATAL("Failed to retrieve tool: " << m_trigDecisionTool);
132  return StatusCode::FAILURE;
133  }
134  ATH_MSG_INFO("Retrieved tool: " << m_trigDecisionTool);
135 
136  return StatusCode::SUCCESS;
137 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

static const InterfaceID& DerivationFramework::ISkimmingTool::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 32 of file ISkimmingTool.h.

32 { return IID_ISkimmingTool; }

◆ jetFourMomentum()

TLorentzVector DerivationFramework::SkimmingToolHIGG2::jetFourMomentum ( const xAOD::Jet jet) const
private

Definition at line 795 of file SkimmingToolHIGG2.cxx.

796 {
797  TLorentzVector tlv;
799  static const SG::ConstAccessor<float> DFCommonJets_Calib_ptAcc("DFCommonJets_Calib_pt");
800  static const SG::ConstAccessor<float> DFCommonJets_Calib_etaAcc("DFCommonJets_Calib_eta");
801  static const SG::ConstAccessor<float> DFCommonJets_Calib_phiAcc("DFCommonJets_Calib_phi");
802  static const SG::ConstAccessor<float> DFCommonJets_Calib_mAcc("DFCommonJets_Calib_m");
803 
804  const float& pt =DFCommonJets_Calib_ptAcc(*jet);
805  const float& eta=DFCommonJets_Calib_etaAcc(*jet);
806  const float& phi=DFCommonJets_Calib_phiAcc(*jet);
807  const float& m =DFCommonJets_Calib_mAcc(*jet);
808  tlv.SetPtEtaPhiM(pt, eta, phi, m);
809  }
810  else
811  tlv.SetPtEtaPhiM(jet->pt(), jet->eta(), jet->phi(), jet->m());
812 
813  return tlv;
814 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ muonFourMomentum()

TLorentzVector DerivationFramework::SkimmingToolHIGG2::muonFourMomentum ( const xAOD::Muon mu)
staticprivate

Definition at line 788 of file SkimmingToolHIGG2.cxx.

789 {
790  TLorentzVector tlv;
791  tlv.SetPtEtaPhiM(mu->pt(), mu->eta(), mu->phi(), mu->m());
792  return tlv;
793 }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_caloMuonEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_caloMuonEtaCut
private

Definition at line 116 of file SkimmingToolHIGG2.h.

◆ m_checkLArError

bool DerivationFramework::SkimmingToolHIGG2::m_checkLArError
private

Definition at line 134 of file SkimmingToolHIGG2.h.

◆ m_defaultElectronFourMomentum

bool DerivationFramework::SkimmingToolHIGG2::m_defaultElectronFourMomentum
private

Definition at line 135 of file SkimmingToolHIGG2.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DFCommonJetFourMomentum

bool DerivationFramework::SkimmingToolHIGG2::m_DFCommonJetFourMomentum
private

Definition at line 143 of file SkimmingToolHIGG2.h.

◆ m_dRElectronJetCut

double DerivationFramework::SkimmingToolHIGG2::m_dRElectronJetCut
private

Definition at line 132 of file SkimmingToolHIGG2.h.

◆ m_electronEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_electronEtaCut
private

Definition at line 114 of file SkimmingToolHIGG2.h.

◆ m_electronEtCut

double DerivationFramework::SkimmingToolHIGG2::m_electronEtCut
private

Definition at line 105 of file SkimmingToolHIGG2.h.

◆ m_electronQual

std::string DerivationFramework::SkimmingToolHIGG2::m_electronQual
private

Definition at line 89 of file SkimmingToolHIGG2.h.

◆ m_electronSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_electronSGKey
private

Definition at line 74 of file SkimmingToolHIGG2.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_filterType

std::string DerivationFramework::SkimmingToolHIGG2::m_filterType
private

Definition at line 72 of file SkimmingToolHIGG2.h.

◆ m_invariantMassCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassCut
private

Definition at line 121 of file SkimmingToolHIGG2.h.

◆ m_invariantMassJpsiLowCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassJpsiLowCut
private

Definition at line 122 of file SkimmingToolHIGG2.h.

◆ m_invariantMassJpsiUpCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassJpsiUpCut
private

Definition at line 123 of file SkimmingToolHIGG2.h.

◆ m_invariantMassPhiLowCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassPhiLowCut
private

Definition at line 126 of file SkimmingToolHIGG2.h.

◆ m_invariantMassPhiUpCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassPhiUpCut
private

Definition at line 127 of file SkimmingToolHIGG2.h.

◆ m_invariantMassUpsilonLowCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassUpsilonLowCut
private

Definition at line 124 of file SkimmingToolHIGG2.h.

◆ m_invariantMassUpsilonUpCut

double DerivationFramework::SkimmingToolHIGG2::m_invariantMassUpsilonUpCut
private

Definition at line 125 of file SkimmingToolHIGG2.h.

◆ m_jetEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_jetEtaCut
private

Definition at line 117 of file SkimmingToolHIGG2.h.

◆ m_jetPtCut

double DerivationFramework::SkimmingToolHIGG2::m_jetPtCut
private

Definition at line 109 of file SkimmingToolHIGG2.h.

◆ m_jetQual

std::string DerivationFramework::SkimmingToolHIGG2::m_jetQual
private

Definition at line 93 of file SkimmingToolHIGG2.h.

◆ m_jetSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_jetSGKey
private

Definition at line 76 of file SkimmingToolHIGG2.h.

◆ m_leadingElectronEtCut

double DerivationFramework::SkimmingToolHIGG2::m_leadingElectronEtCut
private

Definition at line 129 of file SkimmingToolHIGG2.h.

◆ m_leadingMuonPtCut

double DerivationFramework::SkimmingToolHIGG2::m_leadingMuonPtCut
private

Definition at line 130 of file SkimmingToolHIGG2.h.

◆ m_mergedJetEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_mergedJetEtaCut[NUMBER_OF_MERGED_JET_TYPES] {}
private

Definition at line 118 of file SkimmingToolHIGG2.h.

◆ m_mergedJetPtCut

double DerivationFramework::SkimmingToolHIGG2::m_mergedJetPtCut[NUMBER_OF_MERGED_JET_TYPES] {}
private

Definition at line 110 of file SkimmingToolHIGG2.h.

◆ m_mergedJetQual

std::string DerivationFramework::SkimmingToolHIGG2::m_mergedJetQual[NUMBER_OF_MERGED_JET_TYPES]
private

Definition at line 94 of file SkimmingToolHIGG2.h.

◆ m_mergedJetSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_mergedJetSGKey[NUMBER_OF_MERGED_JET_TYPES]
private

Definition at line 77 of file SkimmingToolHIGG2.h.

◆ m_muonEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_muonEtaCut
private

Definition at line 115 of file SkimmingToolHIGG2.h.

◆ m_muonPtCut

double DerivationFramework::SkimmingToolHIGG2::m_muonPtCut
private

Definition at line 106 of file SkimmingToolHIGG2.h.

◆ m_muonQual

std::string DerivationFramework::SkimmingToolHIGG2::m_muonQual
private

Definition at line 90 of file SkimmingToolHIGG2.h.

◆ m_muonSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_muonSGKey
private

Definition at line 75 of file SkimmingToolHIGG2.h.

◆ m_nElectrons

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nElectrons
private

Definition at line 82 of file SkimmingToolHIGG2.h.

◆ m_nJets

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nJets
private

Definition at line 84 of file SkimmingToolHIGG2.h.

◆ m_nLeptons

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nLeptons
private

Definition at line 81 of file SkimmingToolHIGG2.h.

◆ m_nMergedJets

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nMergedJets[NUMBER_OF_MERGED_JET_TYPES] {}
private

Definition at line 85 of file SkimmingToolHIGG2.h.

◆ m_nMuons

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nMuons
private

Definition at line 83 of file SkimmingToolHIGG2.h.

◆ m_npass

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG2::m_npass
mutableprivate

Definition at line 59 of file SkimmingToolHIGG2.h.

◆ m_nPhotons

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nPhotons
private

Definition at line 86 of file SkimmingToolHIGG2.h.

◆ m_ntot

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG2::m_ntot
mutableprivate

Definition at line 58 of file SkimmingToolHIGG2.h.

◆ m_nTracks

unsigned int DerivationFramework::SkimmingToolHIGG2::m_nTracks
private

Definition at line 87 of file SkimmingToolHIGG2.h.

◆ m_photonEtaCut

double DerivationFramework::SkimmingToolHIGG2::m_photonEtaCut
private

Definition at line 119 of file SkimmingToolHIGG2.h.

◆ m_photonPtCut

double DerivationFramework::SkimmingToolHIGG2::m_photonPtCut
private

Definition at line 111 of file SkimmingToolHIGG2.h.

◆ m_photonQual

std::string DerivationFramework::SkimmingToolHIGG2::m_photonQual
private

Definition at line 95 of file SkimmingToolHIGG2.h.

◆ m_photonSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_photonSGKey
private

Definition at line 78 of file SkimmingToolHIGG2.h.

◆ m_primaryElectronQual4L

std::string DerivationFramework::SkimmingToolHIGG2::m_primaryElectronQual4L
private

Definition at line 97 of file SkimmingToolHIGG2.h.

◆ m_requireTightLeptons

bool DerivationFramework::SkimmingToolHIGG2::m_requireTightLeptons
private

Definition at line 145 of file SkimmingToolHIGG2.h.

◆ m_skipTriggerRequirement

bool DerivationFramework::SkimmingToolHIGG2::m_skipTriggerRequirement
private

Definition at line 61 of file SkimmingToolHIGG2.h.

◆ m_tightElectronEtCut

double DerivationFramework::SkimmingToolHIGG2::m_tightElectronEtCut
private

Definition at line 107 of file SkimmingToolHIGG2.h.

◆ m_tightElectronQual

std::string DerivationFramework::SkimmingToolHIGG2::m_tightElectronQual
private

Definition at line 92 of file SkimmingToolHIGG2.h.

◆ m_tightMuonPtCut

double DerivationFramework::SkimmingToolHIGG2::m_tightMuonPtCut
private

Definition at line 108 of file SkimmingToolHIGG2.h.

◆ m_tightMuonQual

std::string DerivationFramework::SkimmingToolHIGG2::m_tightMuonQual
private

Definition at line 91 of file SkimmingToolHIGG2.h.

◆ m_trackPtCut

double DerivationFramework::SkimmingToolHIGG2::m_trackPtCut
private

Definition at line 112 of file SkimmingToolHIGG2.h.

◆ m_trackSGKey

std::string DerivationFramework::SkimmingToolHIGG2::m_trackSGKey
private

Definition at line 79 of file SkimmingToolHIGG2.h.

◆ m_trigDecisionTool

ToolHandle<Trig::TrigDecisionTool> DerivationFramework::SkimmingToolHIGG2::m_trigDecisionTool
private

Definition at line 56 of file SkimmingToolHIGG2.h.

◆ m_trigger2L

std::vector<std::string> DerivationFramework::SkimmingToolHIGG2::m_trigger2L
private

Definition at line 99 of file SkimmingToolHIGG2.h.

◆ m_trigger2L2Q

std::vector<std::string> DerivationFramework::SkimmingToolHIGG2::m_trigger2L2Q
private

Definition at line 101 of file SkimmingToolHIGG2.h.

◆ m_triggerJPSI

std::vector<std::string> DerivationFramework::SkimmingToolHIGG2::m_triggerJPSI
private

Definition at line 102 of file SkimmingToolHIGG2.h.

◆ m_triggerPHI

std::vector<std::string> DerivationFramework::SkimmingToolHIGG2::m_triggerPHI
private

Definition at line 103 of file SkimmingToolHIGG2.h.

◆ m_triggerTP

std::vector<std::string> DerivationFramework::SkimmingToolHIGG2::m_triggerTP
private

Definition at line 100 of file SkimmingToolHIGG2.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ s_MKplus

const double DerivationFramework::SkimmingToolHIGG2::s_MKplus
staticprivate

Definition at line 168 of file SkimmingToolHIGG2.h.

◆ s_MZ

const double DerivationFramework::SkimmingToolHIGG2::s_MZ
staticprivate

Definition at line 167 of file SkimmingToolHIGG2.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
DerivationFramework::SkimmingToolHIGG2::jetFourMomentum
TLorentzVector jetFourMomentum(const xAOD::Jet *jet) const
Definition: SkimmingToolHIGG2.cxx:795
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
DerivationFramework::SkimmingToolHIGG2::m_leadingElectronEtCut
double m_leadingElectronEtCut
Definition: SkimmingToolHIGG2.h:129
DerivationFramework::SkimmingToolHIGG2::m_tightMuonPtCut
double m_tightMuonPtCut
Definition: SkimmingToolHIGG2.h:108
DerivationFramework::SkimmingToolHIGG2::check4L
bool check4L(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:449
et
Extra patterns decribing particle interation process.
DerivationFramework::SkimmingToolHIGG2::m_muonQual
std::string m_muonQual
Definition: SkimmingToolHIGG2.h:90
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DerivationFramework::SkimmingToolHIGG2::Candidates::goodJets
std::vector< const xAOD::Jet * > goodJets
Definition: SkimmingToolHIGG2.h:66
DerivationFramework::SkimmingToolHIGG2::NUMBER_OF_MERGED_JET_TYPES
@ NUMBER_OF_MERGED_JET_TYPES
Definition: SkimmingToolHIGG2.h:53
DerivationFramework::SkimmingToolHIGG2::m_photonSGKey
std::string m_photonSGKey
Definition: SkimmingToolHIGG2.h:78
DerivationFramework::SkimmingToolHIGG2::checkMergedJetQuality
bool checkMergedJetQuality(const xAOD::Jet *jet, const unsigned int type) const
Definition: SkimmingToolHIGG2.cxx:358
DerivationFramework::SkimmingToolHIGG2::m_jetPtCut
double m_jetPtCut
Definition: SkimmingToolHIGG2.h:109
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::SkimmingToolHIGG2::m_checkLArError
bool m_checkLArError
Definition: SkimmingToolHIGG2.h:134
ParticleGun_SamplingFraction.eta2
eta2
Definition: ParticleGun_SamplingFraction.py:96
DerivationFramework::SkimmingToolHIGG2::check2L
bool check2L(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:400
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
DerivationFramework::SkimmingToolHIGG2::Candidates
Definition: SkimmingToolHIGG2.h:63
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
DerivationFramework::SkimmingToolHIGG2::m_electronSGKey
std::string m_electronSGKey
Definition: SkimmingToolHIGG2.h:74
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
DerivationFramework::SkimmingToolHIGG2::m_mergedJetPtCut
double m_mergedJetPtCut[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:110
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
DerivationFramework::SkimmingToolHIGG2::m_invariantMassCut
double m_invariantMassCut
Definition: SkimmingToolHIGG2.h:121
DerivationFramework::SkimmingToolHIGG2::checkTrackQuality
bool checkTrackQuality(const xAOD::TrackParticle *trk) const
Definition: SkimmingToolHIGG2.cxx:391
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
DerivationFramework::SkimmingToolHIGG2::m_trigger2L2Q
std::vector< std::string > m_trigger2L2Q
Definition: SkimmingToolHIGG2.h:101
DerivationFramework::SkimmingToolHIGG2::m_DFCommonJetFourMomentum
bool m_DFCommonJetFourMomentum
Definition: SkimmingToolHIGG2.h:143
DerivationFramework::SkimmingToolHIGG2::m_mergedJetQual
std::string m_mergedJetQual[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:94
DerivationFramework::SkimmingToolHIGG2::m_requireTightLeptons
bool m_requireTightLeptons
Definition: SkimmingToolHIGG2.h:145
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
athena.value
value
Definition: athena.py:122
xAOD::eta1
setEt setPhi setE277 setWeta2 eta1
Definition: TrigEMCluster_v1.cxx:41
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
SG::ConstAccessor< char >
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::SkimmingToolHIGG2::m_jetSGKey
std::string m_jetSGKey
Definition: SkimmingToolHIGG2.h:76
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::EventInfo_v1::LAr
@ LAr
The LAr calorimeter.
Definition: EventInfo_v1.h:335
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
DerivationFramework::SkimmingToolHIGG2::m_caloMuonEtaCut
double m_caloMuonEtaCut
Definition: SkimmingToolHIGG2.h:116
DerivationFramework::SkimmingToolHIGG2::s_MZ
static const double s_MZ
Definition: SkimmingToolHIGG2.h:167
DerivationFramework::SkimmingToolHIGG2::Candidates::goodMuons
std::vector< const xAOD::Muon * > goodMuons
Definition: SkimmingToolHIGG2.h:65
DerivationFramework::SkimmingToolHIGG2::m_trigDecisionTool
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
Definition: SkimmingToolHIGG2.h:56
DerivationFramework::SkimmingToolHIGG2::m_invariantMassPhiUpCut
double m_invariantMassPhiUpCut
Definition: SkimmingToolHIGG2.h:127
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
DerivationFramework::SkimmingToolHIGG2::checkPHI
bool checkPHI(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:718
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::EventInfo_v1::Error
@ Error
The sub-detector issued an error.
Definition: EventInfo_v1.h:349
DerivationFramework::SkimmingToolHIGG2::m_defaultElectronFourMomentum
bool m_defaultElectronFourMomentum
Definition: SkimmingToolHIGG2.h:135
DerivationFramework::SkimmingToolHIGG2::m_muonSGKey
std::string m_muonSGKey
Definition: SkimmingToolHIGG2.h:75
DerivationFramework::SkimmingToolHIGG2::m_tightElectronEtCut
double m_tightElectronEtCut
Definition: SkimmingToolHIGG2.h:107
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
DerivationFramework::SkimmingToolHIGG2::s_MKplus
static const double s_MKplus
Definition: SkimmingToolHIGG2.h:168
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
DerivationFramework::SkimmingToolHIGG2::m_nLeptons
unsigned int m_nLeptons
Definition: SkimmingToolHIGG2.h:81
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
DerivationFramework::SkimmingToolHIGG2::m_jetEtaCut
double m_jetEtaCut
Definition: SkimmingToolHIGG2.h:117
DerivationFramework::SkimmingToolHIGG2::m_trackSGKey
std::string m_trackSGKey
Definition: SkimmingToolHIGG2.h:79
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::SkimmingToolHIGG2::m_npass
std::atomic< unsigned int > m_npass
Definition: SkimmingToolHIGG2.h:59
DerivationFramework::SkimmingToolHIGG2::m_muonPtCut
double m_muonPtCut
Definition: SkimmingToolHIGG2.h:106
DerivationFramework::SkimmingToolHIGG2::m_nMergedJets
unsigned int m_nMergedJets[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:85
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::SkimmingToolHIGG2::m_electronQual
std::string m_electronQual
Definition: SkimmingToolHIGG2.h:89
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
DerivationFramework::SkimmingToolHIGG2::muonFourMomentum
static TLorentzVector muonFourMomentum(const xAOD::Muon *mu)
Definition: SkimmingToolHIGG2.cxx:788
TauGNNUtils::Variables::Track::dPhi
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:530
DerivationFramework::SkimmingToolHIGG2::getDeltaR
static double getDeltaR(const double eta1, const double phi1, const double eta2, const double phi2)
Definition: SkimmingToolHIGG2.cxx:816
DerivationFramework::SkimmingToolHIGG2::m_primaryElectronQual4L
std::string m_primaryElectronQual4L
Definition: SkimmingToolHIGG2.h:97
DerivationFramework::SkimmingToolHIGG2::m_tightMuonQual
std::string m_tightMuonQual
Definition: SkimmingToolHIGG2.h:91
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
DerivationFramework::SkimmingToolHIGG2::m_nMuons
unsigned int m_nMuons
Definition: SkimmingToolHIGG2.h:83
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::SkimmingToolHIGG2::m_skipTriggerRequirement
bool m_skipTriggerRequirement
Definition: SkimmingToolHIGG2.h:61
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
DerivationFramework::SkimmingToolHIGG2::m_triggerTP
std::vector< std::string > m_triggerTP
Definition: SkimmingToolHIGG2.h:100
DerivationFramework::SkimmingToolHIGG2::m_mergedJetSGKey
std::string m_mergedJetSGKey[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:77
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
DerivationFramework::SkimmingToolHIGG2::m_nTracks
unsigned int m_nTracks
Definition: SkimmingToolHIGG2.h:87
Trk::Combined
@ Combined
Definition: TrackSummaryTool.h:32
DerivationFramework::SkimmingToolHIGG2::m_jetQual
std::string m_jetQual
Definition: SkimmingToolHIGG2.h:93
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
DerivationFramework::SkimmingToolHIGG2::m_invariantMassUpsilonUpCut
double m_invariantMassUpsilonUpCut
Definition: SkimmingToolHIGG2.h:125
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
DerivationFramework::SkimmingToolHIGG2::m_invariantMassUpsilonLowCut
double m_invariantMassUpsilonLowCut
Definition: SkimmingToolHIGG2.h:124
DerivationFramework::SkimmingToolHIGG2::electronFourMomentum
TLorentzVector electronFourMomentum(const xAOD::Electron *el) const
Definition: SkimmingToolHIGG2.cxx:758
DerivationFramework::SkimmingToolHIGG2::m_muonEtaCut
double m_muonEtaCut
Definition: SkimmingToolHIGG2.h:115
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
DerivationFramework::SkimmingToolHIGG2::checkMuonQuality
bool checkMuonQuality(const xAOD::Muon *mu, const bool isTight=false) const
Definition: SkimmingToolHIGG2.cxx:299
DerivationFramework::SkimmingToolHIGG2::m_trackPtCut
double m_trackPtCut
Definition: SkimmingToolHIGG2.h:112
DerivationFramework::SkimmingToolHIGG2::m_electronEtaCut
double m_electronEtaCut
Definition: SkimmingToolHIGG2.h:114
DerivationFramework::SkimmingToolHIGG2::checkTP
bool checkTP(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:530
DerivationFramework::SkimmingToolHIGG2::m_photonPtCut
double m_photonPtCut
Definition: SkimmingToolHIGG2.h:111
xAOD::Electron_v1
Definition: Electron_v1.h:34
DerivationFramework::SkimmingToolHIGG2::Candidates::goodMergedJets
std::vector< const xAOD::Jet * > goodMergedJets[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:67
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
DerivationFramework::SkimmingToolHIGG2::checkJetQuality
bool checkJetQuality(const xAOD::Jet *jet) const
Definition: SkimmingToolHIGG2.cxx:343
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
DerivationFramework::SkimmingToolHIGG2::m_invariantMassPhiLowCut
double m_invariantMassPhiLowCut
Definition: SkimmingToolHIGG2.h:126
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
DerivationFramework::SkimmingToolHIGG2::checkJPSI
bool checkJPSI(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:679
h
DerivationFramework::SkimmingToolHIGG2::m_leadingMuonPtCut
double m_leadingMuonPtCut
Definition: SkimmingToolHIGG2.h:130
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DerivationFramework::SkimmingToolHIGG2::m_invariantMassJpsiUpCut
double m_invariantMassJpsiUpCut
Definition: SkimmingToolHIGG2.h:123
DerivationFramework::SkimmingToolHIGG2::m_dRElectronJetCut
double m_dRElectronJetCut
Definition: SkimmingToolHIGG2.h:132
DerivationFramework::SkimmingToolHIGG2::m_photonQual
std::string m_photonQual
Definition: SkimmingToolHIGG2.h:95
DerivationFramework::SkimmingToolHIGG2::m_nPhotons
unsigned int m_nPhotons
Definition: SkimmingToolHIGG2.h:86
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DerivationFramework::SkimmingToolHIGG2::Candidates::goodElectrons
std::vector< const xAOD::Electron * > goodElectrons
Definition: SkimmingToolHIGG2.h:64
DerivationFramework::SkimmingToolHIGG2::checkElectronQuality
bool checkElectronQuality(const xAOD::Electron *el, const bool isTight=false) const
Definition: SkimmingToolHIGG2.cxx:236
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
DerivationFramework::SkimmingToolHIGG2::m_triggerPHI
std::vector< std::string > m_triggerPHI
Definition: SkimmingToolHIGG2.h:103
xAOD::Egamma_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: Egamma_v1.cxx:65
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
DerivationFramework::SkimmingToolHIGG2::m_ntot
std::atomic< unsigned int > m_ntot
Definition: SkimmingToolHIGG2.h:58
xAOD::Egamma_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: Egamma_v1.cxx:70
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DerivationFramework::SkimmingToolHIGG2::check2L2Q
bool check2L2Q(const Candidates &evt) const
Definition: SkimmingToolHIGG2.cxx:578
DerivationFramework::SkimmingToolHIGG2::checkPhotonQuality
bool checkPhotonQuality(const xAOD::Photon *ph) const
Definition: SkimmingToolHIGG2.cxx:372
DerivationFramework::SkimmingToolHIGG2::m_mergedJetEtaCut
double m_mergedJetEtaCut[NUMBER_OF_MERGED_JET_TYPES]
Definition: SkimmingToolHIGG2.h:118
TauGNNUtils::Variables::Track::dEta
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:525
DerivationFramework::SkimmingToolHIGG2::m_invariantMassJpsiLowCut
double m_invariantMassJpsiLowCut
Definition: SkimmingToolHIGG2.h:122
DerivationFramework::SkimmingToolHIGG2::m_filterType
std::string m_filterType
Definition: SkimmingToolHIGG2.h:72
DerivationFramework::SkimmingToolHIGG2::m_electronEtCut
double m_electronEtCut
Definition: SkimmingToolHIGG2.h:105
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
DerivationFramework::SkimmingToolHIGG2::m_tightElectronQual
std::string m_tightElectronQual
Definition: SkimmingToolHIGG2.h:92
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
DerivationFramework::SkimmingToolHIGG2::m_trigger2L
std::vector< std::string > m_trigger2L
Definition: SkimmingToolHIGG2.h:99
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
DerivationFramework::SkimmingToolHIGG2::m_nJets
unsigned int m_nJets
Definition: SkimmingToolHIGG2.h:84
xAOD::Egamma_v1::passSelection
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
fitman.k
k
Definition: fitman.py:528
DerivationFramework::SkimmingToolHIGG2::m_triggerJPSI
std::vector< std::string > m_triggerJPSI
Definition: SkimmingToolHIGG2.h:102
DerivationFramework::SkimmingToolHIGG2::m_nElectrons
unsigned int m_nElectrons
Definition: SkimmingToolHIGG2.h:82
DerivationFramework::SkimmingToolHIGG2::m_photonEtaCut
double m_photonEtaCut
Definition: SkimmingToolHIGG2.h:119