ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPerformanceAlg.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#ifndef MUONPERFORMANCEALG_H
6#define MUONPERFORMANCEALG_H
7
8#include <fstream>
9#include <string>
10#include <vector>
11
13#include "GaudiKernel/ToolHandle.h"
16#include "xAODMuon/Muon.h"
22
24public:
25 // Algorithm Constructor
26 MuonPerformanceAlg(const std::string& name, ISvcLocator* pSvcLocator);
27 virtual ~MuonPerformanceAlg() = default;
28 // Gaudi algorithm hooks
29 virtual StatusCode initialize() override;
30 virtual StatusCode execute() override;
31 virtual StatusCode finalize() override;
32
33 virtual unsigned int cardinality() const override final { return 1;}
34
35 // statistics to be counted
36 std::vector<std::string> m_muonLocationList;
37
38private:
39 bool passID(const xAOD::TrackParticle*, bool debug) const;
40
43 std::string m_fileName;
44
46 std::ofstream m_fileOutput;
47
48 // Containers
49 SG::ReadHandleKey<xAOD::MuonContainer> m_muonsNameKey{this, "MuonContainerName", "Muons", "muon container"};
50 SG::ReadDecorHandleKey<xAOD::MuonContainer> m_muonTruthParticleKey {this,"muonTruthParticleLinkKey", m_muonsNameKey, "truthParticleLink"};
51 unsigned int m_nevents;
52 std::vector<std::string> m_hitCutString;
53 std::vector<int> m_ntruth;
54 std::vector<int> m_ntruth5;
55 std::vector<int> m_ntruth10;
56 std::vector<int> m_nfound;
57 std::vector<int> m_nfound5;
58 std::vector<int> m_nfound10;
59 std::vector<int> m_nfoundr;
60 std::vector<int> m_nfoundr5;
61 std::vector<int> m_nfoundr10;
62 std::vector<int> m_nreco;
63 std::vector<int> m_nreco5;
64 std::vector<int> m_nreco10;
65
66 SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this, "EventInfo", "EventInfo", "event info"};
67 SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthMuons{this, "TruthMuons", "MuonTruthParticles", "truth muons"};
71
74
75 void print(const std::string& txt, const xAOD::TruthParticle* muon);
76 void print(const std::string& txt, const xAOD::Muon* muon);
77
78 IntegerArrayProperty m_pdgsToBeConsidered;
79 std::set<int> m_selectedPdgs; // set storing particle PDG's considered for matching
80 bool selectPdg(int pdg) const { return m_selectedPdgs.count(pdg); }
81};
82
83#endif // MUONPERFORMANCEALG
const bool debug
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::vector< int > m_nfound5
virtual StatusCode finalize() override
std::vector< int > m_nreco5
MuonPerformanceAlg(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< int > m_nreco10
virtual unsigned int cardinality() const override final
std::vector< int > m_ntruth10
virtual StatusCode initialize() override
std::set< int > m_selectedPdgs
std::vector< int > m_nfoundr5
std::vector< int > m_ntruth5
IntegerArrayProperty m_pdgsToBeConsidered
std::ofstream m_fileOutput
output file
std::vector< int > m_nfoundr
std::vector< int > m_ntruth
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo
bool selectPdg(int pdg) const
std::vector< int > m_nfoundr10
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthMuonRecoMuonLinkKey
virtual StatusCode execute() override
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthMuonTruthType
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsNameKey
std::vector< std::string > m_muonLocationList
std::vector< int > m_nreco
std::vector< std::string > m_hitCutString
virtual ~MuonPerformanceAlg()=default
std::vector< int > m_nfound10
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthMuons
bool passID(const xAOD::TrackParticle *, bool debug) const
std::vector< int > m_nfound
void print(const std::string &txt, const xAOD::TruthParticle *muon)
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthMuonTruthOrigin
SG::ReadDecorHandleKey< xAOD::MuonContainer > m_muonTruthParticleKey
bool m_writeToFile
name of external file to write statistics
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.
Muon_v1 Muon
Reference the current persistent version: