ATLAS Offline Software
Loading...
Searching...
No Matches
DQTGlobalWZFinderAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5// ********************************************************************
6//
7// NAME: DQTGlobalWZFinderAlg.h
8// PACKAGE: DataQualityTools
9//
10// AUTHORS: Jahred Adelman (jahred.adelman@cern.ch)
11// Simon Viel (svielcern.ch)
12// Koos van Nieuwkoop (jvannieu@cern.ch)
13// Samuel Alibocus (salibocu@cern.ch)
14//
15// ********************************************************************
16#ifndef DQTGlobalWZFinderAlg_H
17#define DQTGlobalWZFinderAlg_H
18
19#include "GaudiKernel/ToolHandle.h"
21
29
32
36
38
40{
41
42 public:
43
44 DQTGlobalWZFinderAlg(const std::string& name, ISvcLocator* pSvcLocator );
45
46 virtual ~DQTGlobalWZFinderAlg() = default;
47
48 virtual StatusCode initialize() override;
49
50 virtual StatusCode fillHistograms(const EventContext& ctx) const override;
51
52private:
53
54 Gaudi::Property<float_t> m_electronEtCut {this, "electronEtCut", 27};
55 Gaudi::Property<float_t> m_muonPtCut {this, "muonPtCut", 27};
56 Gaudi::Property<float_t> m_zCutLow {this, "zCutLow", 66.0};
57 Gaudi::Property<float_t> m_zCutHigh {this, "zCutHigh", 116.0};
58 Gaudi::Property<float_t> m_muonMaxEta {this, "muonMaxEta", 2.4};
59
60 Gaudi::Property<std::vector<std::string>> m_Z_ee_trigger {this, "Z_ee_trigger", {"HLT_e26_lhtight_ivarloose_L1EM22VHI", "HLT_e60_lhmedium_L1EM22VHI"}};
61 Gaudi::Property<std::vector<std::string>> m_Z_mm_trigger {this, "Z_mm_trigger", {"HLT_mu24_ivarmedium_L1MU14FCH", "HLT_mu50_L1MU14FCH"}};
62
63 BooleanProperty m_doRunBeam{this, "doRunBeam", true};
64 BooleanProperty m_doTrigger{this, "doTrigger", false};
65 BooleanProperty m_do_BCID{this, "do_BCID", false};
66
67 bool kinematicCuts(const xAOD::Egamma* particle) const;
68 bool goodElectrons(const xAOD::Electron* electron_itr, const xAOD::Vertex* pVtx, const EventContext& ctx) const;
69 bool antiGoodElectrons(const xAOD::Electron* electron_itr, const xAOD::Vertex* pVtx, const EventContext& ctx) const;
70 void fillEleEffHistos(bool tag_good, bool probe_good, bool probe_anti_good, bool os, double el_mass) const;
71
72 void doEleTriggerTP(const xAOD::Electron* el1, const xAOD::Electron* el2, const EventContext& ctx, bool writeTTrees, const float evtWeight, bool osel, bool ssel) const;
73 void doEleTP(const xAOD::Electron* leadingAllEle, const xAOD::Electron* subleadingAllEle, const xAOD::Vertex* pVtx, const EventContext& ctx, bool writeTTrees, bool isSimulation, const float evtWeight) const;
74 void doEleContainerTP(std::vector<const xAOD::Electron*>& allElectrons, std::vector<const xAOD::Electron*>& goodelectrons, const EventContext& ctx) const;
75
76 void doMuonTriggerTP(const xAOD::Muon* mu1, const xAOD::Muon* mu2, const EventContext& ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const;
77 void doMuonTruthEff(std::vector<const xAOD::Muon*>& goodmuonsZ, const EventContext& ctx) const;
78 void doMuonLooseTP(std::vector<const xAOD::Muon*>& goodmuonsZ, const xAOD::Vertex* pVtx, const EventContext& ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const;
79 void doMuonInDetTP(std::vector<const xAOD::Muon*>& goodmuonsZ, const xAOD::Vertex* pVtx, const EventContext& ctx, bool isSimulation, bool writeTTrees, const float evtWeight) const;
80
81 bool checkTruthElectron(const xAOD::Electron* electron) const;
82 bool checkTruthMuon(const xAOD::Muon* muon) const;
83 bool checkTruthTrack(const xAOD::TrackParticle* trk) const;
84
85 ToolHandle<CP::IMuonSelectionTool> m_muonSelectionTool{this,"MuonSelectionTool","CP::MuonSelectionTool/MuonSelectionTool","MuonSelectionTool"};
86 ToolHandle<Trig::R3MatchingTool> m_r3MatchingTool{this, "R3MatchingTool", "Trig::R3MatchingTool", "R3MatchingTool"};
87
88 ToolHandle<IMCTruthClassifier> m_truthClassifier{this, "MCTruthClassifier", "MCTruthClassifier/MCTruthClassifier", "MCTruthClassifier"};
89
91 { this, "ElectronContainerName", "Electrons", "" };
93 { this, "MuonContainerName", "Muons", "" };
95 { this, "PhotonContainerName", "Photons", ""};
97 { this, "PrimaryVertexContainerName", "PrimaryVertices" };
99 {this, "TruthParticleContainerName", "TruthParticles", "" };
101 {this, "MuonInDetTrackParticleContainerName", "InDetTrackParticles", ""};
103 {this, "MuonExtrapolatedTrackParticleContainerName", "ExtrapolatedMuonTrackParticles", ""};
104
106 {this, "IsoMuonVariableNames", {"Muons.ptcone20"}, "Isolation decoration for muon container"};
108 {this, "IsoElectronVariableNames", {"Electrons.ptcone20"}, "Isolation decoration for electron container"};
109};
110#endif
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Gaudi::Property< float_t > m_electronEtCut
Gaudi::Property< std::vector< std::string > > m_Z_mm_trigger
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_idTrackParticleContainerKey
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_VertexContainerKey
SG::ReadDecorHandleKeyArray< xAOD::MuonContainer > m_isoMuonContainerKey
Gaudi::Property< float_t > m_muonMaxEta
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_msTrackParticleContainerKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_TruthParticleContainerKey
Gaudi::Property< float_t > m_zCutLow
ToolHandle< Trig::R3MatchingTool > m_r3MatchingTool
Gaudi::Property< float_t > m_zCutHigh
ToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
SG::ReadDecorHandleKeyArray< xAOD::ElectronContainer > m_isoElectronContainerKey
ToolHandle< IMCTruthClassifier > m_truthClassifier
Gaudi::Property< std::vector< std::string > > m_Z_ee_trigger
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainerKey
virtual ~DQTGlobalWZFinderAlg()=default
Gaudi::Property< float_t > m_muonPtCut
Property holding a SG store/key/clid from which a ReadHandle is made.
DecorHandleKeyArray< ReadDecorHandle< T, S >, ReadDecorHandleKey< T >, Gaudi::DataHandle::Reader > ReadDecorHandleKeyArray
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
Egamma_v1 Egamma
Definition of the current "egamma version".
Definition Egamma.h:17
Muon_v1 Muon
Reference the current persistent version:
Electron_v1 Electron
Definition of the current "egamma version".
void initialize()