ATLAS Offline Software
Loading...
Searching...
No Matches
DerivationFramework::SkimmingToolHIGG1 Class Reference

#include <SkimmingToolHIGG1.h>

Inheritance diagram for DerivationFramework::SkimmingToolHIGG1:
Collaboration diagram for DerivationFramework::SkimmingToolHIGG1:

Public Member Functions

 SkimmingToolHIGG1 (const std::string &t, const std::string &n, const IInterface *p)
 Constructor with parameters.
 ~SkimmingToolHIGG1 ()
 Destructor.
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual bool eventPassesFilter () const override
 Check that the current event passes this filter.

Private Types

using LeadingPhotons_t = std::array<const xAOD::Photon*, 2>
 Leading and sub-leading photon (in that order)

Private Member Functions

bool SubcutOneMergedElectron () const
bool SubcutGoodRunList () const
bool SubcutLArError (const xAOD::EventInfo &eventInfo) const
bool SubcutTrigger () const
std::optional< LeadingPhotons_tSubcutPreselect () const
bool SubcutOnePhotonOneElectron () const
bool SubcutTwoElectrons () const
bool SubcutOnePhotonOneMuon () const
bool SubcutOnePhotonTwoElectrons () const
bool SubcutOnePhotonTwoMuons () const
bool SubcutOnePhotonMergedElectrons (const xAOD::EventInfo &eventInfo) const
bool SubcutHighPtOnePhotonOneElectron () const
bool SubcutKinematic (const LeadingPhotons_t &leadingPhotons, double invariantMass) const
bool SubcutQuality (const LeadingPhotons_t &leadingPhotons) const
bool SubcutIsolation () const
bool SubcutInvariantMass (double invariantMass) const
bool PhotonPreselect (const xAOD::Photon *ph) const
bool ElectronPreselect (const xAOD::Electron *el) const
bool MergedElectronPreselect (const xAOD::Electron *el) const
bool MuonPreselect (const xAOD::Muon *mu) const
double CalculateInvariantMass (const LeadingPhotons_t &leadingPhotons) const
double GetDiphotonVertex () const
double CorrectedEta (const xAOD::Photon *ph) const

Static Private Member Functions

static double CorrectedEnergy (const xAOD::Photon *ph)
static double ReturnRZ_1stSampling_cscopt2 (double eta1)

Private Attributes

ToolHandle< Trig::TrigDecisionToolm_trigDecisionTool
bool m_reqGRL
bool m_reqLArError
bool m_reqTrigger
bool m_reqPreselection
bool m_incMergedElectron
bool m_incSingleElectron
bool m_incDoubleElectron
bool m_incSingleMuon
bool m_incDoubleMuon
bool m_incDoubleElectronPhoton
bool m_incMergedElectronPhoton
bool m_incHighPtElectronPhoton
bool m_incTwoPhotons
bool m_reqKinematic
bool m_reqQuality
bool m_reqIsolation
bool m_reqInvariantMass
std::string m_goodRunList
std::string m_defaultTrigger
std::vector< std::string > m_triggers
std::vector< std::string > m_mergedtriggers
double m_minPhotonPt
bool m_removeCrack
double m_maxEta
bool m_relativePtCuts
double m_leadingPhotonPt
double m_subleadingPhotonPt
double m_minInvariantMass
double m_maxInvariantMass
double m_minElectronPt
double m_minMergedElectronPt
double m_minMuonPt
double m_maxMuonEta
std::atomic< unsigned int > m_n_tot {0}
std::atomic< unsigned int > m_n_passGRL {0}
std::atomic< unsigned int > m_n_passLArError {0}
std::atomic< unsigned int > m_n_passTrigger {0}
std::atomic< unsigned int > m_n_passPreselect {0}
std::atomic< unsigned int > m_n_passSingleElectronPreselect {0}
std::atomic< unsigned int > m_n_passDoubleElectronPreselect {0}
std::atomic< unsigned int > m_n_passSingleMuonPreselect {0}
std::atomic< unsigned int > m_n_passSinglePhotonDoubleMuonPreselect {0}
std::atomic< unsigned int > m_n_passSinglePhotonDoubleElectronPreselect {0}
std::atomic< unsigned int > m_n_passSinglePhotonMergedElectronPreselect {0}
std::atomic< unsigned int > m_n_passHighPtPhotonMergedElectronPreselect {0}
std::atomic< unsigned int > m_n_passSingleMergedElectronPreselect {0}
std::atomic< unsigned int > m_n_passKinematic {0}
std::atomic< unsigned int > m_n_passQuality {0}
std::atomic< unsigned int > m_n_passIsolation {0}
std::atomic< unsigned int > m_n_passInvariantMass {0}
std::atomic< unsigned int > m_n_pass {0}
ToolHandle< IAsgElectronIsEMSelectorm_mergedCutTools
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey { this, "EventInfoKey", "EventInfo", "" }
SG::ReadHandleKey< xAOD::PhotonContainerm_photonKey { this, "PhotonKey", "Photons", "" }
SG::ReadHandleKey< xAOD::ElectronContainerm_electronKey { this, "ElectronKey", "Electrons", "" }
SG::ReadHandleKey< xAOD::MuonContainerm_muonKey { this, "MuonKey", "Muons", "" }

Static Private Attributes

static const double s_MZ = 91187.6*CLHEP::MeV

Detailed Description

Member Typedef Documentation

◆ LeadingPhotons_t

Leading and sub-leading photon (in that order)

Definition at line 127 of file SkimmingToolHIGG1.h.

Constructor & Destructor Documentation

◆ SkimmingToolHIGG1()

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

Constructor with parameters.

Definition at line 22 of file SkimmingToolHIGG1.cxx.

24 :
25 base_class(t, n, p),
26 m_trigDecisionTool("Trig::TrigDecisionTool/TrigDecisionTool"),
28{
29
30
31 declareProperty("RequireGRL", m_reqGRL = true);
32 declareProperty("ReqireLArError", m_reqLArError = true);
33 declareProperty("RequireTrigger", m_reqTrigger = true);
34 declareProperty("RequirePreselection", m_reqPreselection = true);
35 declareProperty("IncludeSingleMergedElectronPreselection", m_incMergedElectron = false);
36 declareProperty("IncludeSingleElectronPreselection", m_incSingleElectron = true);
37 declareProperty("IncludeDoubleElectronPreselection", m_incDoubleElectron = false);
38 declareProperty("IncludeSingleMuonPreselection", m_incSingleMuon = true);
39 declareProperty("IncludeDoubleMuonPreselection", m_incDoubleMuon = false);
40 declareProperty("IncludePhotonDoubleElectronPreselection", m_incDoubleElectronPhoton = false);
41 declareProperty("IncludePhotonMergedElectronPreselection", m_incMergedElectronPhoton = false);
42 declareProperty("IncludeHighPtPhotonElectronPreselection", m_incHighPtElectronPhoton = false);
43 declareProperty("IncludeDoublePhotonPreselection", m_incTwoPhotons = true);
44
45 declareProperty("RequireKinematic", m_reqKinematic = true);
46 declareProperty("RequireQuality", m_reqQuality = true);
47 declareProperty("RequireIsolation", m_reqIsolation = true);
48 declareProperty("RequireInvariantMass", m_reqInvariantMass = true);
49
50 declareProperty("GoodRunList", m_goodRunList = "");
51
52 declareProperty("DefaultTrigger", m_defaultTrigger = "EF_g35_loose_g25_loose");
53 declareProperty("Triggers", m_triggers = std::vector<std::string>());
54 declareProperty("MergedElectronTriggers",m_mergedtriggers = std::vector<std::string>() );
55
56 declareProperty("MinimumPhotonPt", m_minPhotonPt = 20*CLHEP::GeV);
57 declareProperty("MinimumElectronPt", m_minElectronPt = 20*CLHEP::GeV);
58 declareProperty("MinimumMergedElectronPt", m_minMergedElectronPt = 18*CLHEP::GeV);
59
60 declareProperty("MinimumMuonPt", m_minMuonPt = 20*CLHEP::GeV);
61 declareProperty("MaxMuonEta", m_maxMuonEta = 2.7);
62 declareProperty("RemoveCrack", m_removeCrack = true);
63 declareProperty("MaxEta", m_maxEta = 2.47);
64
65 declareProperty("RelativePtCuts", m_relativePtCuts = true);
66 declareProperty("LeadingPhotonPtCut", m_leadingPhotonPt = 0.35);
67 declareProperty("SubleadingPhotonPtCut", m_subleadingPhotonPt = 0.25);
68
69 declareProperty("MinInvariantMass", m_minInvariantMass = 105*CLHEP::GeV);
70 declareProperty("MaxInvariantMass", m_maxInvariantMass = 160*CLHEP::GeV);
71
72 declareProperty("MergedElectronCutTool", m_mergedCutTools);
73
74}
std::vector< std::string > m_triggers
std::vector< std::string > m_mergedtriggers
ToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
ToolHandle< IAsgElectronIsEMSelector > m_mergedCutTools

◆ ~SkimmingToolHIGG1()

DerivationFramework::SkimmingToolHIGG1::~SkimmingToolHIGG1 ( )

Destructor.

Definition at line 77 of file SkimmingToolHIGG1.cxx.

77 {
78}

Member Function Documentation

◆ CalculateInvariantMass()

double DerivationFramework::SkimmingToolHIGG1::CalculateInvariantMass ( const LeadingPhotons_t & leadingPhotons) const
private

CAUTION - PLACEHOLDERS

CAUTION - CONSTANTS SHOULD BE UPDATED.

Definition at line 387 of file SkimmingToolHIGG1.cxx.

387 {
388
390 const double ph_e_lead = CorrectedEnergy(leadingPhotons[0]);
391 const double ph_e_subl = CorrectedEnergy(leadingPhotons[1]);
392
394 const double ph_eta_lead = CorrectedEta(leadingPhotons[0]);
395 const double ph_eta_subl = CorrectedEta(leadingPhotons[1]);
396
397 const double ph_phi_lead = leadingPhotons[0]->phi();
398 const double ph_phi_subl = leadingPhotons[1]->phi();
399
400 const double ph_pt_lead = ph_e_lead / cosh(ph_eta_lead);
401 const double ph_pt_subl = ph_e_subl / cosh(ph_eta_subl);
402
403 TLorentzVector leadPhotonLV;
404 TLorentzVector sublPhotonLV;
405 leadPhotonLV.SetPtEtaPhiM(ph_pt_lead, ph_eta_lead, ph_phi_lead, 0.);
406 sublPhotonLV.SetPtEtaPhiM(ph_pt_subl, ph_eta_subl, ph_phi_subl, 0.);
407
408 return (leadPhotonLV + sublPhotonLV).M();
409
410}
static double CorrectedEnergy(const xAOD::Photon *ph)
double CorrectedEta(const xAOD::Photon *ph) const

◆ CorrectedEnergy()

double DerivationFramework::SkimmingToolHIGG1::CorrectedEnergy ( const xAOD::Photon * ph)
staticprivate

Definition at line 421 of file SkimmingToolHIGG1.cxx.

421 {
422
423 return ph->e();
424
425}
virtual double e() const override final
The total energy of the particle.
Definition Photon_v1.cxx:46

◆ CorrectedEta()

double DerivationFramework::SkimmingToolHIGG1::CorrectedEta ( const xAOD::Photon * ph) const
private

Definition at line 430 of file SkimmingToolHIGG1.cxx.

430 {
431
432 double eta1 = ph->caloCluster()->etaBE(1);
433
434 double R_photom_n_front, Z_photom_n_front;
435 if (std::abs(eta1) < 1.5) { // barrel
436 R_photom_n_front = ReturnRZ_1stSampling_cscopt2(eta1);
437 Z_photom_n_front = R_photom_n_front*sinh(eta1);
438 } else { // endcap
439 Z_photom_n_front = ReturnRZ_1stSampling_cscopt2(eta1);
440 R_photom_n_front = Z_photom_n_front/sinh(eta1);
441 }
442
443 return asinh((Z_photom_n_front - GetDiphotonVertex())/R_photom_n_front);
444
445}
static double ReturnRZ_1stSampling_cscopt2(double eta1)
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
asinh(x)
helper methods ---------------------------------------------------------—
Definition Dumpers.py:88
setEt setPhi setE277 setWeta2 eta1

◆ ElectronPreselect()

bool DerivationFramework::SkimmingToolHIGG1::ElectronPreselect ( const xAOD::Electron * el) const
private

Definition at line 765 of file SkimmingToolHIGG1.cxx.

765 {
766
767 if (!el) return false;
768
769 bool val(false);
770 bool defined(false);
771
772 static const SG::ConstAccessor<char> DFCommonElectronsLooseAcc("DFCommonElectronsLoose");
773 if(DFCommonElectronsLooseAcc.isAvailable(*el)){
774 defined = true;
775 val = val || static_cast<bool>(DFCommonElectronsLooseAcc(*el));
776 }else{
777 defined = el->passSelection(val, "Loose");
778 }
779
780 static const SG::ConstAccessor<char> DFCommonElectronsLHLooseAcc("DFCommonElectronsLHLoose");
781 if(DFCommonElectronsLHLooseAcc.isAvailable(*el)){
782 defined = true;
783 val = val || static_cast<bool>(DFCommonElectronsLHLooseAcc(*el));
784 }
785
786 if(!defined || !val) return false;
787
788 double eta = std::abs(el->eta());
789 double pt = el->pt();
790
791 if (eta > m_maxEta) return false;
792 if (m_removeCrack && 1.37 <= eta && eta <= 1.52) return false;
793 if (pt <= m_minElectronPt) return false;
794
795 return true;
796
797}
Scalar eta() const
pseudorapidity method

◆ eventPassesFilter()

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

Check that the current event passes this filter.

Definition at line 157 of file SkimmingToolHIGG1.cxx.

158{
159
160 m_n_tot++;
161
162 bool writeEvent(false);
163 const EventContext& ctx = Gaudi::Hive::currentContext();
164 SG::ReadHandle<xAOD::EventInfo> eventInfo (m_eventInfoKey, ctx);
165
166 if (m_reqGRL && !SubcutGoodRunList() ) return false;
167 if (m_reqLArError && !SubcutLArError(*eventInfo) ) return false;
168 if (m_reqTrigger && !SubcutTrigger() ) return false;
169
170 const auto leadingPhotons = SubcutPreselect();
171 if (m_incTwoPhotons && !m_reqPreselection) writeEvent = true;
172
173 // ey, ee, muy events
174 if (m_incSingleElectron && SubcutOnePhotonOneElectron() ) writeEvent = true;
175 if (m_incDoubleElectron && SubcutTwoElectrons() ) writeEvent = true;
176 if (m_incSingleMuon && SubcutOnePhotonOneMuon() ) writeEvent = true;
177
178 // eey, mumuy events
179 if (m_incMergedElectronPhoton && SubcutOnePhotonMergedElectrons(*eventInfo)) writeEvent = true;
180 if (m_incDoubleMuon && SubcutOnePhotonTwoMuons() ) writeEvent = true;
181 if (m_incDoubleElectronPhoton && SubcutOnePhotonTwoElectrons() ) writeEvent = true;
183
184 if (m_incMergedElectron && SubcutOneMergedElectron() ) writeEvent = true;
185 // There *must* be two photons for the remaining
186 // pieces, but you can still save the event...
187 if (m_incTwoPhotons && leadingPhotons) {
189 const double mass = CalculateInvariantMass(leadingPhotons.value());
190
191 bool passTwoPhotonCuts(true);
192 if (m_reqQuality && !SubcutQuality(leadingPhotons.value())) passTwoPhotonCuts = false;
193 if (m_reqKinematic && !SubcutKinematic(leadingPhotons.value(), mass)) passTwoPhotonCuts = false;
194 if (m_reqIsolation && !SubcutIsolation()) passTwoPhotonCuts = false;
195 if (m_reqInvariantMass && !SubcutInvariantMass(mass)) passTwoPhotonCuts = false;
196 // yy events
197 if (passTwoPhotonCuts) writeEvent = true;
198
199 }
200
201
202 if (!writeEvent) return false;
203
204 m_n_pass++;
205 return true;
206}
bool SubcutInvariantMass(double invariantMass) const
double CalculateInvariantMass(const LeadingPhotons_t &leadingPhotons) const
bool SubcutQuality(const LeadingPhotons_t &leadingPhotons) const
std::optional< LeadingPhotons_t > SubcutPreselect() const
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
bool SubcutKinematic(const LeadingPhotons_t &leadingPhotons, double invariantMass) const
bool SubcutLArError(const xAOD::EventInfo &eventInfo) const
bool SubcutOnePhotonMergedElectrons(const xAOD::EventInfo &eventInfo) const

◆ finalize()

StatusCode DerivationFramework::SkimmingToolHIGG1::finalize ( )
overridevirtual

Definition at line 115 of file SkimmingToolHIGG1.cxx.

116{
117 ATH_MSG_VERBOSE("finalize() ...");
118 ATH_MSG_INFO("Processed " << m_n_tot << " events, " << m_n_pass << " events passed filter ");
119
120
121 ATH_MSG_INFO("GRL :: " << m_n_passGRL);
122 ATH_MSG_INFO("lar :: " << m_n_passLArError);
123 ATH_MSG_INFO("trig :: " << m_n_passTrigger);
124 ATH_MSG_INFO("----------------------------");
141
142 if(m_incTwoPhotons){
143 ATH_MSG_INFO("2y :: " << m_n_passPreselect);
144 ATH_MSG_INFO("----------------------------");
145 ATH_MSG_INFO("2y - kin :: " << m_n_passKinematic);
146 ATH_MSG_INFO("2y - qual :: " << m_n_passQuality);
147 ATH_MSG_INFO("2y - iso :: " << m_n_passIsolation);
148 ATH_MSG_INFO("2y - inv :: " << m_n_passInvariantMass);
149 }
150 ATH_MSG_INFO("----------------------------");
151 ATH_MSG_INFO("passed :: " << m_n_pass);
152
153 return StatusCode::SUCCESS;
154}
#define ATH_MSG_INFO(x)
#define ATH_MSG_VERBOSE(x)
std::atomic< unsigned int > m_n_passTrigger
std::atomic< unsigned int > m_n_passSingleElectronPreselect
std::atomic< unsigned int > m_n_passInvariantMass
std::atomic< unsigned int > m_n_passSinglePhotonMergedElectronPreselect
std::atomic< unsigned int > m_n_passDoubleElectronPreselect
std::atomic< unsigned int > m_n_passHighPtPhotonMergedElectronPreselect
std::atomic< unsigned int > m_n_passSingleMergedElectronPreselect
std::atomic< unsigned int > m_n_passSinglePhotonDoubleMuonPreselect
std::atomic< unsigned int > m_n_passSingleMuonPreselect
std::atomic< unsigned int > m_n_passSinglePhotonDoubleElectronPreselect
std::atomic< unsigned int > m_n_passKinematic
std::atomic< unsigned int > m_n_passGRL
std::atomic< unsigned int > m_n_passPreselect
std::atomic< unsigned int > m_n_passQuality
std::atomic< unsigned int > m_n_passLArError
std::atomic< unsigned int > m_n_passIsolation

◆ GetDiphotonVertex()

double DerivationFramework::SkimmingToolHIGG1::GetDiphotonVertex ( ) const
private

Definition at line 414 of file SkimmingToolHIGG1.cxx.

414 {
415
416 return 0;
417
418}

◆ initialize()

StatusCode DerivationFramework::SkimmingToolHIGG1::initialize ( )
overridevirtual

Definition at line 81 of file SkimmingToolHIGG1.cxx.

82{
83 ATH_MSG_VERBOSE("INITIALIZING HSG1 SELECTOR TOOL");
84
86 // trigger decision tool
87 if(m_trigDecisionTool.retrieve(DisableTool{!m_reqTrigger}).isFailure()) {
88 ATH_MSG_FATAL("Failed to retrieve tool: " << m_trigDecisionTool);
89 return StatusCode::FAILURE;
90 }
91 if (m_triggers.empty()) m_triggers.push_back(m_defaultTrigger);
92 ATH_MSG_INFO("Retrieved tool: " << m_trigDecisionTool);
94 //
96 if( m_mergedCutTools.retrieve().isFailure() )
97 {
98 ATH_MSG_FATAL("Failed to retrieve tool: ElectronPhotonSelectorTools");
99 return StatusCode::FAILURE;
100 }
101 }
102
103 ATH_CHECK( m_eventInfoKey.initialize() );
104
105 ATH_CHECK( m_photonKey.initialize() );
106
107 ATH_CHECK( m_electronKey.initialize() );
108
109 ATH_CHECK( m_muonKey.initialize() );
110
112 return StatusCode::SUCCESS;
113}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
SG::ReadHandleKey< xAOD::PhotonContainer > m_photonKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronKey

◆ MergedElectronPreselect()

bool DerivationFramework::SkimmingToolHIGG1::MergedElectronPreselect ( const xAOD::Electron * el) const
private

Definition at line 799 of file SkimmingToolHIGG1.cxx.

799 {
800
801 if (!el) return false;
802
803 double eta = std::abs(el->eta());
804 double pt = el->pt();
805
806 if (eta > m_maxEta) return false;
807 if (m_removeCrack && 1.37 <= eta && eta <= 1.52) return false;
808 if (pt <= m_minMergedElectronPt) return false;
809
810 return m_mergedCutTools->accept(el) || ElectronPreselect(el);
811
812}
bool ElectronPreselect(const xAOD::Electron *el) const

◆ MuonPreselect()

bool DerivationFramework::SkimmingToolHIGG1::MuonPreselect ( const xAOD::Muon * mu) const
private

Definition at line 814 of file SkimmingToolHIGG1.cxx.

814 {
815
816 if (!mu) return false;
817
818 static const SG::ConstAccessor<char> DFCommonGoodMuonAcc("DFCommonGoodMuon");
819 if(DFCommonGoodMuonAcc.isAvailable(*mu))
820 if( !static_cast<bool>(DFCommonGoodMuonAcc(*mu)) )
821 return false;
822
823 static const SG::ConstAccessor<char> DFCommonMuonsPreselectionAcc("DFCommonMuonsPreselection");
824 if(DFCommonMuonsPreselectionAcc.isAvailable(*mu))
825 if( !static_cast<bool>(DFCommonMuonsPreselectionAcc(*mu)) )
826 return false;
827
828 double eta = std::abs(mu->eta());
829 double pt = mu->pt();
830
831 if (eta > m_maxMuonEta) return false;
832 if (pt <= m_minMuonPt) return false;
833
834 return true;
835
836}

◆ PhotonPreselect()

bool DerivationFramework::SkimmingToolHIGG1::PhotonPreselect ( const xAOD::Photon * ph) const
private

Definition at line 294 of file SkimmingToolHIGG1.cxx.

294 {
295
296 if (!ph) return false;
297
298 if (!ph->isGoodOQ(34214)) return false;
299
300 bool val(false);
301 bool defined(false);
302
303 static const SG::ConstAccessor<char> DFCommonPhotonsIsEMLooseAcc("DFCommonPhotonsIsEMLoose");
304 if(DFCommonPhotonsIsEMLooseAcc.isAvailable(*ph)){
305 defined = true;
306 val = static_cast<bool>(DFCommonPhotonsIsEMLooseAcc(*ph));
307 }
308 else{
309 defined = ph->passSelection(val, "Loose");
310 }
311
312 if(!defined || !val) return false;
313
314
315 // veto topo-seeded clusters
316 // uint16_t author = 0;
317 // author = ph->author();
318 // if (author & xAOD::EgammaParameters::AuthorCaloTopo35) return false;
319
320 // Check which variable versions are best...
321 const xAOD::CaloCluster *caloCluster(ph->caloCluster());
322 double eta = std::abs(caloCluster->etaBE(2));
323
324 if (eta > m_maxEta) return false;
325 if (m_removeCrack &&
326 1.37 <= eta && eta <= 1.52) return false;
327 if (caloCluster->e()/cosh(eta) < m_minPhotonPt) return false;
328
329 return true;
330
331}
bool isGoodOQ(uint32_t mask) const
Check object quality. Return True is it is Good Object Quality.
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...
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.

◆ ReturnRZ_1stSampling_cscopt2()

double DerivationFramework::SkimmingToolHIGG1::ReturnRZ_1stSampling_cscopt2 ( double eta1)
staticprivate

Definition at line 448 of file SkimmingToolHIGG1.cxx.

448 {
449
450 float abs_eta1 = std::abs(eta1);
451
452 double radius = -99999;
453 if (abs_eta1 < 0.8) {
454 radius = 1558.859292 - 4.990838 * abs_eta1 - 21.144279 * abs_eta1 * abs_eta1;
455 } else if (abs_eta1 < 1.5) {
456 radius = 1522.775373 + 27.970192 * abs_eta1 - 21.104108 * abs_eta1 * abs_eta1;
457 } else { //endcap
458 radius = 3790.671754;
459 if (eta1 < 0.) radius = -radius;
460 }
461
462 return radius;
463
464}

◆ SubcutGoodRunList()

bool DerivationFramework::SkimmingToolHIGG1::SubcutGoodRunList ( ) const
private

Definition at line 208 of file SkimmingToolHIGG1.cxx.

208 {
209
210 // Placeholder
211 m_n_passGRL++;
212 return true;
213}

◆ SubcutHighPtOnePhotonOneElectron()

bool DerivationFramework::SkimmingToolHIGG1::SubcutHighPtOnePhotonOneElectron ( ) const
private

Definition at line 724 of file SkimmingToolHIGG1.cxx.

725{
726
727
728 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
729
730 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
731 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
732
733 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
734
737
738 int nPhoton = 0;
739 int nElectron = 0;
740
741 for( ; ph_itr != ph_end; ++ph_itr){
742 if(PhotonPreselect(*ph_itr) && (*ph_itr)->pt() > 500*CLHEP::GeV){
743 ++nPhoton;
744 }
745 }
746
747 for( ; el_itr != el_end; ++el_itr){
748 if( std::abs((*el_itr)->eta()) <= m_maxEta && (*el_itr)->pt() > m_minElectronPt){
749 ++nElectron;
750 }
751 }
752
753 if(nPhoton >= 1 && nElectron >= 1 ){
754 ATH_MSG_DEBUG("Event selected with " << nPhoton << " high pt photons and " << nElectron << " merged electron");
756 return true;
757 } else {
758 return false;
759 }
760
761}
#define ATH_MSG_DEBUG(x)
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
bool PhotonPreselect(const xAOD::Photon *ph) const

◆ SubcutInvariantMass()

bool DerivationFramework::SkimmingToolHIGG1::SubcutInvariantMass ( double invariantMass) const
private

Definition at line 374 of file SkimmingToolHIGG1.cxx.

374 {
375
376 bool passInvariantMass = (!m_minInvariantMass ||
377 m_minInvariantMass < invariantMass);
378
379 passInvariantMass &= (!m_maxInvariantMass ||
380 invariantMass < m_maxInvariantMass);
381
382 if (passInvariantMass) m_n_passInvariantMass++;
383 return passInvariantMass;
384
385}

◆ SubcutIsolation()

bool DerivationFramework::SkimmingToolHIGG1::SubcutIsolation ( ) const
private

Definition at line 366 of file SkimmingToolHIGG1.cxx.

366 {
367
368 // PLACEHOLDER!!!
370 return true;
371}

◆ SubcutKinematic()

bool DerivationFramework::SkimmingToolHIGG1::SubcutKinematic ( const LeadingPhotons_t & leadingPhotons,
double invariantMass ) const
private

Definition at line 333 of file SkimmingToolHIGG1.cxx.

333 {
334
335 bool passKinematic;
336 if (m_relativePtCuts) {
337 passKinematic = (leadingPhotons[0]->pt() > invariantMass * m_leadingPhotonPt);
338 passKinematic &= (leadingPhotons[1]->pt() > invariantMass * m_subleadingPhotonPt);
339 } else {
340 passKinematic = (leadingPhotons[0]->pt() > m_leadingPhotonPt);
341 passKinematic &= (leadingPhotons[1]->pt() > m_subleadingPhotonPt);
342 }
343
344 if (passKinematic) m_n_passKinematic++;
345 return passKinematic;
346
347}

◆ SubcutLArError()

bool DerivationFramework::SkimmingToolHIGG1::SubcutLArError ( const xAOD::EventInfo & eventInfo) const
private

Definition at line 216 of file SkimmingToolHIGG1.cxx.

216 {
217
220 return true;
221 }
222 else return false;
223}
@ LAr
The LAr calorimeter.
@ Error
The sub-detector issued an error.
EventFlagErrorState errorState(EventFlagSubDet subDet) const
Get the error state for a particular sub-detector.

◆ SubcutOneMergedElectron()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOneMergedElectron ( ) const
private

Definition at line 496 of file SkimmingToolHIGG1.cxx.

496 {
497
498 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
499
500 int nEle(0);
501 for(const auto *const el: *electrons){
502 if( el->pt() < m_minElectronPt)
503 continue;
504 //Count the number of Si tracks matching the electron
505 int nSiTrack(0);
506 int z0_1 = 1;
507 for( unsigned int trk_i(0); trk_i < el->nTrackParticles(); ++trk_i){
508 const auto *ele_tp = el->trackParticle(trk_i);
509 if(!ele_tp){
510 continue;
511 }
512 uint8_t nPixHits(0), nPixDead(0), nSCTHits(0), nSCTDead(0);
513 bool allFound = true;
514 allFound = allFound && ele_tp->summaryValue(nPixHits, xAOD::numberOfPixelHits);
515 allFound = allFound && ele_tp->summaryValue(nPixDead, xAOD::numberOfPixelDeadSensors);
516 allFound = allFound && ele_tp->summaryValue(nSCTHits, xAOD::numberOfSCTHits);
517 allFound = allFound && ele_tp->summaryValue(nSCTDead, xAOD::numberOfSCTDeadSensors);
518
519 // Require that the track be a reasonble silicon track
520 int nSiHitsPlusDeadSensors = nPixHits + nPixDead + nSCTHits + nSCTDead;
521 if(nSiHitsPlusDeadSensors >= 7)
522 {
523 //Ensure that the tracks come from roughly the same region of the detector
524 if(nSiTrack == 0)
525 z0_1 = ele_tp->z0();
526 else if( std::abs(z0_1 - ele_tp->z0()) > 10 )
527 continue;
528 ++nSiTrack;
529 }
530 }
531 //If 2 or more the electron is selected
532 if(nSiTrack>1)
533 ++nEle;
534 }
535 if(nEle>0){
537 return true;
538 }
539 return false;
540}
float nSCTHits(const U &p)
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].

◆ SubcutOnePhotonMergedElectrons()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOnePhotonMergedElectrons ( const xAOD::EventInfo & eventInfo) const
private

Definition at line 668 of file SkimmingToolHIGG1.cxx.

669{
670
671
672 bool passTrigger=false;
673 if(!m_mergedtriggers.empty()) {
674 for (unsigned int i = 0; i < m_mergedtriggers.size(); i++) {
675 ATH_MSG_DEBUG("TRIGGER = " << m_mergedtriggers.at(i));
676 if(m_trigDecisionTool->isPassed(m_mergedtriggers.at(i)))
677 passTrigger = true;
678 }
679 } else {
681 ATH_MSG_WARNING("Selecting Merged electrons but no Merged Triggers Selected ! -- was that intentional?");
682 passTrigger = true;
683 }
684 if(!passTrigger)
685 return false;
686
687
688 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
689
690 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
691
692 bool passSelection = false;
693
694 for(const auto *el : *electrons){
696 for(const auto *ph: *photons){
697 if(PhotonPreselect(ph)){
698 passSelection = true;
699 auto eph = ph->p4() + el->p4();
700 if(eph.M() > 90 * CLHEP::GeV)
701 {
702 break;
703 }
704 }
705 }
706 }
707 if(passSelection)
708 {
709 break;
710 }
711 }
712
713 if(passSelection){
714 ATH_MSG_DEBUG("Event selected with a photons and a merged electron");
716 return true;
717 } else {
718 return false;
719 }
720
721}
#define ATH_MSG_WARNING(x)
bool MergedElectronPreselect(const xAOD::Electron *el) const
bool eventType(EventType type) const
Check for one particular bitmask value.
@ IS_SIMULATION
true: simulation, false: data

◆ SubcutOnePhotonOneElectron()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOnePhotonOneElectron ( ) const
private

Definition at line 466 of file SkimmingToolHIGG1.cxx.

466 {
467
468 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
469
470 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
471 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
472
473 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
474
477
478 bool passSingleElectronPreselect = false;
479
480 for( ; ph_itr != ph_end; ++ph_itr){
481 if(PhotonPreselect(*ph_itr)){
482 for( ; el_itr != el_end; ++el_itr){
483 if(ElectronPreselect(*el_itr)){
484 passSingleElectronPreselect = true;
485 }
486 }
487 }
488 }
489
490
491 if(passSingleElectronPreselect) m_n_passSingleElectronPreselect++;
492 return passSingleElectronPreselect;
493}

◆ SubcutOnePhotonOneMuon()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOnePhotonOneMuon ( ) const
private

Definition at line 564 of file SkimmingToolHIGG1.cxx.

564 {
565
566 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
567
568 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
569 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
570
571 SG::ReadHandle<xAOD::MuonContainer> muons (m_muonKey);
572
573 xAOD::MuonContainer::const_iterator mu_itr(muons->begin());
574 xAOD::MuonContainer::const_iterator mu_end(muons->end());
575
576 bool passSingleMuonPreselect = false;
577
578 for( ; ph_itr != ph_end; ++ph_itr){
579 if(PhotonPreselect(*ph_itr)){
580 for( ; mu_itr != mu_end; ++mu_itr){
581 if(MuonPreselect(*mu_itr)){
582 passSingleMuonPreselect = true;
583 }
584 }
585 }
586 }
587
588
589 if(passSingleMuonPreselect) m_n_passSingleMuonPreselect++;
590 return passSingleMuonPreselect;
591}
bool MuonPreselect(const xAOD::Muon *mu) const

◆ SubcutOnePhotonTwoElectrons()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOnePhotonTwoElectrons ( ) const
private

Definition at line 631 of file SkimmingToolHIGG1.cxx.

632{
633 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
634
635 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
636 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
637
638 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
639
642
643 int nPhoton = 0;
644 int nElectron = 0;
645
646 for( ; ph_itr != ph_end; ++ph_itr){
647 if(PhotonPreselect(*ph_itr)){
648 ++nPhoton;
649 }
650 }
651
652 for( ; el_itr != el_end; ++el_itr){
653 if(ElectronPreselect(*el_itr)){
654 ++nElectron;
655 }
656 }
657
658 if(nPhoton >= 1 && nElectron >= 2){
659 ATH_MSG_DEBUG("Event selected with " << nPhoton << " photons and " << nElectron << " electrons");
661 return true;
662 } else {
663 return false;
664 }
665
666}

◆ SubcutOnePhotonTwoMuons()

bool DerivationFramework::SkimmingToolHIGG1::SubcutOnePhotonTwoMuons ( ) const
private

Definition at line 593 of file SkimmingToolHIGG1.cxx.

594{
595 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
596
597 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
598 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
599
600 SG::ReadHandle<xAOD::MuonContainer> muons (m_muonKey);
601
602 xAOD::MuonContainer::const_iterator mu_itr(muons->begin());
603 xAOD::MuonContainer::const_iterator mu_end(muons->end());
604
605 int nPhoton = 0;
606 int nMuon = 0;
607
608 for( ; ph_itr != ph_end; ++ph_itr){
609 if(PhotonPreselect(*ph_itr)){
610 ++nPhoton;
611 }
612 }
613
614 for( ; mu_itr != mu_end; ++mu_itr){
615 if(MuonPreselect(*mu_itr)){
616 ++nMuon;
617 }
618 }
619
620
621 if(nPhoton >= 1 && nMuon >= 2){
622 ATH_MSG_DEBUG("Event selected with " << nPhoton << " photons and " << nMuon << " muons");
624 return true;
625 } else {
626 return false;
627 }
628}

◆ SubcutPreselect()

std::optional< DerivationFramework::SkimmingToolHIGG1::LeadingPhotons_t > DerivationFramework::SkimmingToolHIGG1::SubcutPreselect ( ) const
private

Definition at line 246 of file SkimmingToolHIGG1.cxx.

246 {
247
248 SG::ReadHandle<xAOD::PhotonContainer> photons (m_photonKey);
249
250 xAOD::PhotonContainer::const_iterator ph_itr(photons->begin());
251 xAOD::PhotonContainer::const_iterator ph_end(photons->end());
252
253 int ph_pos_lead = -1;
254 int ph_pos_subl = -1;
255 int ph_pt_lead = 0;
256 int ph_pt_subl = 0;
257
258 for(int i = 0; ph_itr != ph_end; ++ph_itr, ++i) {
259
260 if (PhotonPreselect(*ph_itr)) {
261
262 if ((*ph_itr)->pt() > ph_pt_lead) {
263
264 ph_pos_subl = ph_pos_lead; ph_pos_lead = i;
265 ph_pt_subl = ph_pt_lead;
266 ph_pt_lead = (*ph_itr)->pt();
267
268 } else if ((*ph_itr)->pt() > ph_pt_subl) {
269 ph_pos_subl = i;
270 ph_pt_subl = (*ph_itr)->pt();
271 }
272 }
273 }
274
275 // save this for the derivation.
276 //std::vector<int> *leadingV = new std::vector<int>();
277 //leadingV->push_back(m_ph_pos_lead);
278 //leadingV->push_back(m_ph_pos_subl);
279 //if (!evtStore()->contains<std::vector<int> >("leadingV")) CHECK(evtStore()->record(leadingV, "leadingV"));
280
281 // save this for this code.
282 if (ph_pos_subl != -1) {
283 const xAOD::Photon* ph_lead = *(photons->begin() + ph_pos_lead);
284 const xAOD::Photon* ph_subl = *(photons->begin() + ph_pos_subl);
286
287 return LeadingPhotons_t{ph_lead,ph_subl};
288 }
289
290 return {};
291}
std::array< const xAOD::Photon *, 2 > LeadingPhotons_t
Leading and sub-leading photon (in that order)
Photon_v1 Photon
Definition of the current "egamma version".

◆ SubcutQuality()

bool DerivationFramework::SkimmingToolHIGG1::SubcutQuality ( const LeadingPhotons_t & leadingPhotons) const
private

Definition at line 349 of file SkimmingToolHIGG1.cxx.

349 {
350
351 bool val(0);
352 bool passQuality = false;
353 leadingPhotons[0]->passSelection(val, "Tight");
354 const int ph_tight_lead = val;
355
356 leadingPhotons[1]->passSelection(val, "Tight");
357 const int ph_tight_subl = val;
358
359 passQuality = (ph_tight_lead && ph_tight_subl);
360
361 if (passQuality) m_n_passQuality++;
362 return passQuality;
363
364}

◆ SubcutTrigger()

bool DerivationFramework::SkimmingToolHIGG1::SubcutTrigger ( ) const
private

Definition at line 226 of file SkimmingToolHIGG1.cxx.

226 {
227
228 //just for counting purposes
229 bool passTrigger = !m_reqTrigger;
230
231 if(m_triggers.empty()) passTrigger = true;
232
233 for (unsigned int i = 0; i < m_triggers.size(); i++) {
234 ATH_MSG_DEBUG("TRIGGER = " << m_triggers.at(i));
235 if(m_trigDecisionTool->isPassed(m_triggers.at(i)))
236 passTrigger = true;
237 }
238
239 if (passTrigger) m_n_passTrigger++;
240 return passTrigger;
241
242}

◆ SubcutTwoElectrons()

bool DerivationFramework::SkimmingToolHIGG1::SubcutTwoElectrons ( ) const
private

Definition at line 542 of file SkimmingToolHIGG1.cxx.

542 {
543
544 SG::ReadHandle<xAOD::ElectronContainer> electrons (m_electronKey);
545
548
549 int nEle(0);
550 bool passDoubleElectronPreselect = false;
551
552 for( ; el_itr != el_end; ++el_itr){
553 if(ElectronPreselect(*el_itr))
554 nEle++;
555 }
556
557 if(nEle >=2) passDoubleElectronPreselect = true;
558
559 if(passDoubleElectronPreselect) m_n_passDoubleElectronPreselect++;
560 return passDoubleElectronPreselect;
561}

Member Data Documentation

◆ m_defaultTrigger

std::string DerivationFramework::SkimmingToolHIGG1::m_defaultTrigger
private

Definition at line 97 of file SkimmingToolHIGG1.h.

◆ m_electronKey

SG::ReadHandleKey<xAOD::ElectronContainer > DerivationFramework::SkimmingToolHIGG1::m_electronKey { this, "ElectronKey", "Electrons", "" }
private

Definition at line 194 of file SkimmingToolHIGG1.h.

194{ this, "ElectronKey", "Electrons", "" };

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> DerivationFramework::SkimmingToolHIGG1::m_eventInfoKey { this, "EventInfoKey", "EventInfo", "" }
private

Definition at line 188 of file SkimmingToolHIGG1.h.

188{ this, "EventInfoKey", "EventInfo", "" };

◆ m_goodRunList

std::string DerivationFramework::SkimmingToolHIGG1::m_goodRunList
private

Definition at line 95 of file SkimmingToolHIGG1.h.

◆ m_incDoubleElectron

bool DerivationFramework::SkimmingToolHIGG1::m_incDoubleElectron
private

Definition at line 80 of file SkimmingToolHIGG1.h.

◆ m_incDoubleElectronPhoton

bool DerivationFramework::SkimmingToolHIGG1::m_incDoubleElectronPhoton
private

Definition at line 83 of file SkimmingToolHIGG1.h.

◆ m_incDoubleMuon

bool DerivationFramework::SkimmingToolHIGG1::m_incDoubleMuon
private

Definition at line 82 of file SkimmingToolHIGG1.h.

◆ m_incHighPtElectronPhoton

bool DerivationFramework::SkimmingToolHIGG1::m_incHighPtElectronPhoton
private

Definition at line 85 of file SkimmingToolHIGG1.h.

◆ m_incMergedElectron

bool DerivationFramework::SkimmingToolHIGG1::m_incMergedElectron
private

Definition at line 78 of file SkimmingToolHIGG1.h.

◆ m_incMergedElectronPhoton

bool DerivationFramework::SkimmingToolHIGG1::m_incMergedElectronPhoton
private

Definition at line 84 of file SkimmingToolHIGG1.h.

◆ m_incSingleElectron

bool DerivationFramework::SkimmingToolHIGG1::m_incSingleElectron
private

Definition at line 79 of file SkimmingToolHIGG1.h.

◆ m_incSingleMuon

bool DerivationFramework::SkimmingToolHIGG1::m_incSingleMuon
private

Definition at line 81 of file SkimmingToolHIGG1.h.

◆ m_incTwoPhotons

bool DerivationFramework::SkimmingToolHIGG1::m_incTwoPhotons
private

Definition at line 86 of file SkimmingToolHIGG1.h.

◆ m_leadingPhotonPt

double DerivationFramework::SkimmingToolHIGG1::m_leadingPhotonPt
private

Definition at line 106 of file SkimmingToolHIGG1.h.

◆ m_maxEta

double DerivationFramework::SkimmingToolHIGG1::m_maxEta
private

Definition at line 103 of file SkimmingToolHIGG1.h.

◆ m_maxInvariantMass

double DerivationFramework::SkimmingToolHIGG1::m_maxInvariantMass
private

Definition at line 110 of file SkimmingToolHIGG1.h.

◆ m_maxMuonEta

double DerivationFramework::SkimmingToolHIGG1::m_maxMuonEta
private

Definition at line 115 of file SkimmingToolHIGG1.h.

◆ m_mergedCutTools

ToolHandle<IAsgElectronIsEMSelector> DerivationFramework::SkimmingToolHIGG1::m_mergedCutTools
private

Definition at line 185 of file SkimmingToolHIGG1.h.

◆ m_mergedtriggers

std::vector<std::string> DerivationFramework::SkimmingToolHIGG1::m_mergedtriggers
private

Definition at line 99 of file SkimmingToolHIGG1.h.

◆ m_minElectronPt

double DerivationFramework::SkimmingToolHIGG1::m_minElectronPt
private

Definition at line 112 of file SkimmingToolHIGG1.h.

◆ m_minInvariantMass

double DerivationFramework::SkimmingToolHIGG1::m_minInvariantMass
private

Definition at line 109 of file SkimmingToolHIGG1.h.

◆ m_minMergedElectronPt

double DerivationFramework::SkimmingToolHIGG1::m_minMergedElectronPt
private

Definition at line 113 of file SkimmingToolHIGG1.h.

◆ m_minMuonPt

double DerivationFramework::SkimmingToolHIGG1::m_minMuonPt
private

Definition at line 114 of file SkimmingToolHIGG1.h.

◆ m_minPhotonPt

double DerivationFramework::SkimmingToolHIGG1::m_minPhotonPt
private

Definition at line 101 of file SkimmingToolHIGG1.h.

◆ m_muonKey

SG::ReadHandleKey<xAOD::MuonContainer > DerivationFramework::SkimmingToolHIGG1::m_muonKey { this, "MuonKey", "Muons", "" }
private

Definition at line 197 of file SkimmingToolHIGG1.h.

197{ this, "MuonKey", "Muons", "" };

◆ m_n_pass

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_pass {0}
mutableprivate

Definition at line 174 of file SkimmingToolHIGG1.h.

174{0};

◆ m_n_passDoubleElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passDoubleElectronPreselect {0}
mutableprivate

Definition at line 163 of file SkimmingToolHIGG1.h.

163{0};

◆ m_n_passGRL

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passGRL {0}
mutableprivate

Definition at line 158 of file SkimmingToolHIGG1.h.

158{0};

◆ m_n_passHighPtPhotonMergedElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passHighPtPhotonMergedElectronPreselect {0}
mutableprivate

Definition at line 168 of file SkimmingToolHIGG1.h.

168{0};

◆ m_n_passInvariantMass

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passInvariantMass {0}
mutableprivate

Definition at line 173 of file SkimmingToolHIGG1.h.

173{0};

◆ m_n_passIsolation

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passIsolation {0}
mutableprivate

Definition at line 172 of file SkimmingToolHIGG1.h.

172{0};

◆ m_n_passKinematic

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passKinematic {0}
mutableprivate

Definition at line 170 of file SkimmingToolHIGG1.h.

170{0};

◆ m_n_passLArError

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passLArError {0}
mutableprivate

Definition at line 159 of file SkimmingToolHIGG1.h.

159{0};

◆ m_n_passPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passPreselect {0}
mutableprivate

Definition at line 161 of file SkimmingToolHIGG1.h.

161{0};

◆ m_n_passQuality

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passQuality {0}
mutableprivate

Definition at line 171 of file SkimmingToolHIGG1.h.

171{0};

◆ m_n_passSingleElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSingleElectronPreselect {0}
mutableprivate

Definition at line 162 of file SkimmingToolHIGG1.h.

162{0};

◆ m_n_passSingleMergedElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSingleMergedElectronPreselect {0}
mutableprivate

Definition at line 169 of file SkimmingToolHIGG1.h.

169{0};

◆ m_n_passSingleMuonPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSingleMuonPreselect {0}
mutableprivate

Definition at line 164 of file SkimmingToolHIGG1.h.

164{0};

◆ m_n_passSinglePhotonDoubleElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSinglePhotonDoubleElectronPreselect {0}
mutableprivate

Definition at line 166 of file SkimmingToolHIGG1.h.

166{0};

◆ m_n_passSinglePhotonDoubleMuonPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSinglePhotonDoubleMuonPreselect {0}
mutableprivate

Definition at line 165 of file SkimmingToolHIGG1.h.

165{0};

◆ m_n_passSinglePhotonMergedElectronPreselect

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passSinglePhotonMergedElectronPreselect {0}
mutableprivate

Definition at line 167 of file SkimmingToolHIGG1.h.

167{0};

◆ m_n_passTrigger

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_passTrigger {0}
mutableprivate

Definition at line 160 of file SkimmingToolHIGG1.h.

160{0};

◆ m_n_tot

std::atomic<unsigned int> DerivationFramework::SkimmingToolHIGG1::m_n_tot {0}
mutableprivate

Definition at line 157 of file SkimmingToolHIGG1.h.

157{0};

◆ m_photonKey

SG::ReadHandleKey<xAOD::PhotonContainer > DerivationFramework::SkimmingToolHIGG1::m_photonKey { this, "PhotonKey", "Photons", "" }
private

Definition at line 191 of file SkimmingToolHIGG1.h.

191{ this, "PhotonKey", "Photons", "" };

◆ m_relativePtCuts

bool DerivationFramework::SkimmingToolHIGG1::m_relativePtCuts
private

Definition at line 105 of file SkimmingToolHIGG1.h.

◆ m_removeCrack

bool DerivationFramework::SkimmingToolHIGG1::m_removeCrack
private

Definition at line 102 of file SkimmingToolHIGG1.h.

◆ m_reqGRL

bool DerivationFramework::SkimmingToolHIGG1::m_reqGRL
private

Definition at line 74 of file SkimmingToolHIGG1.h.

◆ m_reqInvariantMass

bool DerivationFramework::SkimmingToolHIGG1::m_reqInvariantMass
private

Definition at line 90 of file SkimmingToolHIGG1.h.

◆ m_reqIsolation

bool DerivationFramework::SkimmingToolHIGG1::m_reqIsolation
private

Definition at line 89 of file SkimmingToolHIGG1.h.

◆ m_reqKinematic

bool DerivationFramework::SkimmingToolHIGG1::m_reqKinematic
private

Definition at line 87 of file SkimmingToolHIGG1.h.

◆ m_reqLArError

bool DerivationFramework::SkimmingToolHIGG1::m_reqLArError
private

Definition at line 75 of file SkimmingToolHIGG1.h.

◆ m_reqPreselection

bool DerivationFramework::SkimmingToolHIGG1::m_reqPreselection
private

Definition at line 77 of file SkimmingToolHIGG1.h.

◆ m_reqQuality

bool DerivationFramework::SkimmingToolHIGG1::m_reqQuality
private

Definition at line 88 of file SkimmingToolHIGG1.h.

◆ m_reqTrigger

bool DerivationFramework::SkimmingToolHIGG1::m_reqTrigger
private

Definition at line 76 of file SkimmingToolHIGG1.h.

◆ m_subleadingPhotonPt

double DerivationFramework::SkimmingToolHIGG1::m_subleadingPhotonPt
private

Definition at line 107 of file SkimmingToolHIGG1.h.

◆ m_trigDecisionTool

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

Definition at line 69 of file SkimmingToolHIGG1.h.

◆ m_triggers

std::vector<std::string> DerivationFramework::SkimmingToolHIGG1::m_triggers
private

Definition at line 98 of file SkimmingToolHIGG1.h.

◆ s_MZ

const double DerivationFramework::SkimmingToolHIGG1::s_MZ = 91187.6*CLHEP::MeV
staticprivate

Definition at line 180 of file SkimmingToolHIGG1.h.


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