ATLAS Offline Software
CaloMuonTag.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALOTRKMUIDTOOLS_CALOMUONTAG_H
6 #define CALOTRKMUIDTOOLS_CALOMUONTAG_H
7 
8 #include <TFile.h>
9 #include <TH2.h>
10 
11 #include <atomic>
12 
14 #include "GaudiKernel/MsgStream.h"
15 #include "GaudiKernel/ToolHandle.h"
17 
18 class CaloMuonTag : public AthAlgTool, virtual public ICaloMuonTag {
47 public:
48  CaloMuonTag(const std::string& type, const std::string& name, const IInterface* pInterface);
49  virtual ~CaloMuonTag();
50  virtual StatusCode initialize() override;
51  virtual StatusCode finalize() override;
52  int caloMuonTag(const std::vector<DepositInCalo>& deposits, double eta, double pt) const override;
53 
54 private:
55  double interpolate(const std::string& cutName, double pt) const;
56  int getPtBinLow(double pt) const;
57  int getCutBin(const std::string& cutName) const;
58 
59  std::unique_ptr<TH2> m_hist{nullptr};
60  std::string m_tagMode;
61  StatusCode getHist(TFile* file, const std::string& histName, std::unique_ptr<TH2>& hist);
62 
63  std::vector<std::string> m_vecCutNames;
64  std::vector<int> m_vecPtBins;
65  int m_numCuts{0};
66  int m_numPtBins{0};
67 
68  mutable std::atomic_int m_numTagged{0};
69  mutable std::atomic_int m_numRejected{0};
70 };
71 
72 #endif
CaloMuonTag::interpolate
double interpolate(const std::string &cutName, double pt) const
Definition: CaloMuonTag.cxx:184
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
CaloMuonTag::CaloMuonTag
CaloMuonTag(const std::string &type, const std::string &name, const IInterface *pInterface)
Definition: CaloMuonTag.cxx:14
CaloMuonTag::caloMuonTag
int caloMuonTag(const std::vector< DepositInCalo > &deposits, double eta, double pt) const override
Returns the Tag.
Definition: CaloMuonTag.cxx:85
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
plotmaker.hist
hist
Definition: plotmaker.py:148
CaloMuonTag::m_numRejected
std::atomic_int m_numRejected
Definition: CaloMuonTag.h:69
test_pyathena.pt
pt
Definition: test_pyathena.py:11
CaloMuonTag::m_vecCutNames
std::vector< std::string > m_vecCutNames
Definition: CaloMuonTag.h:63
CaloMuonTag::finalize
virtual StatusCode finalize() override
Definition: CaloMuonTag.cxx:75
CaloMuonTag::m_vecPtBins
std::vector< int > m_vecPtBins
Definition: CaloMuonTag.h:64
CaloMuonTag::getPtBinLow
int getPtBinLow(double pt) const
Definition: CaloMuonTag.cxx:209
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ICaloMuonTag
Definition: ICaloMuonTag.h:15
CaloMuonTag::initialize
virtual StatusCode initialize() override
Definition: CaloMuonTag.cxx:28
AthAlgTool.h
CaloMuonTag
Definition: CaloMuonTag.h:18
file
TFile * file
Definition: tile_monitor.h:29
CaloMuonTag::m_numPtBins
int m_numPtBins
Definition: CaloMuonTag.h:66
CaloMuonTag::m_numCuts
int m_numCuts
Definition: CaloMuonTag.h:65
CaloMuonTag::m_numTagged
std::atomic_int m_numTagged
Definition: CaloMuonTag.h:68
CaloMuonTag::getCutBin
int getCutBin(const std::string &cutName) const
Definition: CaloMuonTag.cxx:217
ICaloMuonTag.h
CaloMuonTag::m_tagMode
std::string m_tagMode
Definition: CaloMuonTag.h:60
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloMuonTag::getHist
StatusCode getHist(TFile *file, const std::string &histName, std::unique_ptr< TH2 > &hist)
Definition: CaloMuonTag.cxx:55
AthAlgTool
Definition: AthAlgTool.h:26
CaloMuonTag::~CaloMuonTag
virtual ~CaloMuonTag()
CaloMuonTag::m_hist
std::unique_ptr< TH2 > m_hist
Definition: CaloMuonTag.h:59