ATLAS Offline Software
MuonSelectionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONSELECTORTOOLS_MUONSELECTIONTOOL_H
6 #define MUONSELECTORTOOLS_MUONSELECTIONTOOL_H
7 
9 #include "AsgTools/AsgTool.h"
13 #include "TF1.h"
14 #include "TFile.h"
15 #include "TH2D.h"
16 #include "TMVA/Reader.h"
17 #include "TSystem.h" // Replace with PathResolver
19 namespace CP {
20 
31  class MuonSelectionTool : public virtual IAsgSelectionTool, public virtual IMuonSelectionTool, public asg::AsgTool {
34 
35  public:
37  MuonSelectionTool(const std::string& name = "MuonSelection");
38 
39  virtual ~MuonSelectionTool();
40 
43 
45  virtual StatusCode initialize() override;
46 
48 
51 
53  virtual const asg::AcceptInfo& getAcceptInfo() const override;
54 
56  virtual asg::AcceptData accept(const xAOD::IParticle* p) const override;
57 
59 
62 
64  virtual asg::AcceptData accept(const xAOD::Muon& mu) const override;
65 
67  virtual void setPassesIDCuts(xAOD::Muon&) const override;
68 
70  // void setPassesLowPtEfficiencyCuts( xAOD::Muon& mu ) const;
71 
73  virtual void setQuality(xAOD::Muon& mu) const override;
74 
76  virtual bool passedIDCuts(const xAOD::Muon&) const override;
77 
79  virtual bool passedMuonCuts(const xAOD::Muon&) const override;
80 
82  virtual bool passedIDCuts(const xAOD::TrackParticle&) const override;
83 
85  virtual bool passedHighPtCuts(const xAOD::Muon&) const override;
86 
89  virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon&) const override;
90  virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon&, xAOD::Muon::Quality thisMu_quality) const override;
91 
93  virtual bool passedErrorCutCB(const xAOD::Muon&) const override;
94 
96  virtual bool isBadMuon(const xAOD::Muon&) const override;
97 
99  virtual xAOD::Muon::Quality getQuality(const xAOD::Muon& mu) const override;
100 
102  virtual bool passedCaloTagQuality(const xAOD::Muon& mu) const override;
103 
105  virtual bool passedCaloScore(const xAOD::Muon& mu) const override;
106 
108  virtual int getResolutionCategory(const xAOD::Muon&) const override;
110 
111  private:
112  bool passedLowPtEfficiencyMVACut(const xAOD::Muon&) const;
113 
115  bool passTight(const xAOD::Muon& mu, float rho, float oneOverPSig) const;
116 
119  bool passedBMVmimicCut(const xAOD::Muon&) const;
120 
122  std::vector<const xAOD::MuonSegment*> getSegmentsSorted(const xAOD::Muon& mu) const;
123 
126 
127  Gaudi::Property<double> m_maxEta{this, "MaxEta", 2.7, "Maximum eta range to select the muons"};
128  Gaudi::Property<int> m_quality{this, "MuQuality", 1,"Quality to select. Values correspond to 0=Tight, 1=Medium, 2=Loose, 3=VeryLoose (only for debug, not supported), 4=HighPt, 5=LowPtEfficiency"};
129  Gaudi::Property<bool> m_toroidOff{this, "ToroidOff", false, "Run the tool in Toroid off setup"};
130  Gaudi::Property<bool> m_isRun3{this, "IsRun3Geo", false, "Switch to toggle the run 2 & run 3 geometry cuts. The tool will throw an exception if the run number does not match the expectations later"};
131  Gaudi::Property<bool> m_excludeNSWFromPrecisionLayers{this, "ExcludeNSWFromPrecisionLayers", false, "Cut on the nprecisionlayers ignoring the NSW"};
132  Gaudi::Property<bool> m_recalcPrecisionLayerswNSW{this, "RecalcPrecisionLayerswNSW", true, "Recalculate nprecisionlayers with internal criteria for NSW"};
133  Gaudi::Property<bool> m_useCaloScore{this, "UseCaloScore", true, "Use CaloScore for calo-tags in the Loose working point. False will revert back to CaloMuonIDTag (not recommended in Rel.22)"};
134  Gaudi::Property<int> m_caloScoreWP{this, "CaloScoreWP", 4,"Currently there are 4 CaloScore WPs for testing; WP4 is the recommended one"};
135  Gaudi::Property<bool> m_useLRT{this, "UseLRT", false, "Enable support for LRT muons"};
136 
137  // Expert development options
138  Gaudi::Property<bool> m_turnOffMomCorr{this, "TurnOffMomCorr", false};
139  Gaudi::Property<bool> m_disablePtCuts{this, "DisablePtCuts", false};
140  Gaudi::Property<bool> m_developMode{this, "ExpertDevelopMode", false};
141  Gaudi::Property<bool> m_TrtCutOff{this, "TrtCutOff", true};
142  Gaudi::Property<bool> m_SctCutOff{this, "SctCutOff", false};
143  Gaudi::Property<bool> m_PixCutOff{this, "PixCutOff", false};
144  Gaudi::Property<bool> m_SiHolesCutOff{this, "SiHolesCutOff", false};
145  Gaudi::Property<bool> m_useAllAuthors{this, "UseAllAuthors", true};
146  Gaudi::Property<bool> m_use2stationMuonsHighPt{this, "Use2stationMuonsHighPt", true, "for users of high-pT working point to choose whether to include 'safe' 2-station muons"};
147  Gaudi::Property<bool> m_useMVALowPt{this, "UseMVALowPt", false, "for users of low-pT working point to choose whether to use MVA and whether to include MuTagIMO muons. Not yet supported in release 22, crrently only for development studies."};
148  Gaudi::Property<bool> m_useSegmentTaggedLowPt{this, "UseSegmentTaggedLowPt", false, "Use MVA low-pt WP. In development phase"};
149  Gaudi::Property<bool> m_geoOnTheFly{this, "AllowSettingGeometryOnTheFly", false,"avoids crash if run2/run3 geo is wrongly set"};
150  Gaudi::Property<bool> m_doBadMuonVetoMimic{this, "DoBadMuonVetoMimic", false}; // switch to cut away the tail of very large smearing in MC to mimic the effect of the bad muon veto for 2-station muons in the high-pT selection
151  Gaudi::Property<bool> m_allowComm{this, "AcceptCommChain", true, "Accepts muons from the EMEO chain if set to true"};
152  Gaudi::Property<bool> m_useBEEBISInHighPtRun3{this, "UseBEEBISInHighPtRun3", false, "Include BEE and BIS7/8 in high-pT WP in Run3"};
153 
154  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this, "EventInfoContName", "EventInfo", "event info key"};
155 
156  // MVA configs for low-pT working point. Expert use only!
157  Gaudi::Property<std::string> m_MVAreaderFile_EVEN_MuidCB{
158  this, "MVAreaderFile_EVEN_MuidCB",
159  "MuonSelectorTools/190118_PrelimLowPtMVA/LowPtMVA_Weights/BDTG_9JAN2019_MuidCB_EVEN.weights.xml"};
160  Gaudi::Property<std::string> m_MVAreaderFile_ODD_MuidCB{
161  this, "MVAreaderFile_ODD_MuidCB",
162  "MuonSelectorTools/190118_PrelimLowPtMVA/LowPtMVA_Weights/BDTG_9JAN2019_MuidCB_ODD.weights.xml"};
163 
164  Gaudi::Property<std::string> m_MVAreaderFile_EVEN_MuGirl{
165  this, "MVAreaderFile_EVEN_MuGirl",
166  "MuonSelectorTools/190118_PrelimLowPtMVA/LowPtMVA_Weights/BDTG_9JAN2019_MuGirl_EVEN.weights.xml"};
167  Gaudi::Property<std::string> m_MVAreaderFile_ODD_MuGirl{
168  this, "MVAreaderFile_ODD_MuGirl",
169  "MuonSelectorTools/190118_PrelimLowPtMVA/LowPtMVA_Weights/BDTG_9JAN2019_MuGirl_ODD.weights.xml"};
170 
171  Gaudi::Property<std::string> m_MVAreaderFile_MuTagIMO_etaBin1{
172  this, "MVAreaderFile_MuTagIMO_etaBin1", "dev/MuonSelectorTools/181121_MuTagIMO_BDT/BDT_NOV2021_MuTagIMO_etaBin1.weights.xml"};
173  Gaudi::Property<std::string> m_MVAreaderFile_MuTagIMO_etaBin2{
174  this, "MVAreaderFile_MuTagIMO_etaBin2", "dev/MuonSelectorTools/181121_MuTagIMO_BDT/BDT_NOV2021_MuTagIMO_etaBin2.weights.xml"};
175  Gaudi::Property<std::string> m_MVAreaderFile_MuTagIMO_etaBin3{
176  this, "MVAreaderFile_MuTagIMO_etaBin3", "dev/MuonSelectorTools/181121_MuTagIMO_BDT/BDT_NOV2021_MuTagIMO_etaBin3.weights.xml"};
177 
178  // subfolder to load from the calibration db
179  Gaudi::Property<std::string> m_calibration_version{this, "CalibrationRelease", "PreRec2016_2016-04-13"};
180 
181  // possible override for the calibration version
182  Gaudi::Property<std::string> m_custom_dir{this, "CustomInputFolder", ""};
183 
185  Gaudi::Property<std::string> m_BMVcutFile{this, "BMVcutFile",
186  "MuonSelectorTools/180620_BMVmimicCutFunctions/BMVmimicCutFunctions.root"};
187 
189  StatusCode getHist(TFile* file, const std::string& histName, std::unique_ptr<TH1>& hist) const;
190  //
191  std::unique_ptr<TH1> m_tightWP_lowPt_rhoCuts;
192  std::unique_ptr<TH1> m_tightWP_lowPt_qOverPCuts;
193  std::unique_ptr<TH1> m_tightWP_mediumPt_rhoCuts;
194  std::unique_ptr<TH1> m_tightWP_highPt_rhoCuts;
195  //
196  std::unique_ptr<TF1> m_BMVcutFunction_barrel;
197  std::unique_ptr<TF1> m_BMVcutFunction_endcap;
198 
199  // Need run number (or random run number) to apply period-dependent selections.
200  // If selection depends only on data taking year, this can be specified by passing
201  // argument needOnlyCorrectYear=true, in which case the random run number decoration
202  // from the pile-up reweighting tool is not needed.
203  unsigned int getRunNumber(bool needOnlyCorrectYear = false) const;
204 
205  // Check if muon eta/phi falls in BIS7/8, BEE, or BMG chambers
206  bool isBIS78(const float eta, const float phi) const;
207  bool isBEE(const float eta, const float phi) const;
208  bool isBMG(const float eta, const float phi) const;
209 
210  // TMVA readers for low-pT working point
211  std::unique_ptr<TMVA::Reader> m_readerE_MUID{nullptr};
212  std::unique_ptr<TMVA::Reader> m_readerO_MUID{nullptr};
213  std::unique_ptr<TMVA::Reader> m_readerE_MUGIRL{nullptr};
214  std::unique_ptr<TMVA::Reader> m_readerO_MUGIRL{nullptr};
215 
216  std::unique_ptr<TMVA::Reader> m_reader_MUTAGIMO_etaBin1{nullptr};
217  std::unique_ptr<TMVA::Reader> m_reader_MUTAGIMO_etaBin2{nullptr};
218  std::unique_ptr<TMVA::Reader> m_reader_MUTAGIMO_etaBin3{nullptr};
219 
220  // variables for the TMVA readers
222 
223  struct hitSummary {
241  };
242 
243  template <class P, class T, class S> inline void retrieveSummaryValue(const P& muon, T& value, const S type, bool ignoreMissing = false) const {
244  if (!muon.summaryValue(value, type) && !ignoreMissing) {
245  ATH_MSG_FATAL(__FILE__ << ":" << __LINE__ << " Failed to retrieve summary value " << type);
246  throw std::runtime_error("MuonSelectorTool summary retrieval failed");
247  }
248  }
249 
250  inline void fillSummary(const xAOD::Muon& muon, hitSummary& summary) const;
251 
252  inline void retrieveParam(const xAOD::Muon& muon, float& value, const xAOD::Muon::ParamDef param) const;
253 
254  inline float qOverPsignificance(const xAOD::Muon& muon) const;
255 
256  inline float rhoPrime(const xAOD::Muon& muon) const;
257 
258  inline void IdMsPt(const xAOD::Muon& muon, float& idPt, float& msPt) const;
259 
260  void checkSanity() const;
261 
262  bool isRun3(bool forceOnTheFly = false) const {
263  if (!m_geoOnTheFly && !forceOnTheFly) return m_isRun3;
264  int rn = getRunNumber(true);
265  return rn>=399999;
266  }
267  }; // class MuonSelectionTool
268 
269 } // namespace CP
270 
271 #endif // CPTOOLTESTS_MUONSELECTIONTOOL_H
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
CP::MuonSelectionTool::m_MVAreaderFile_MuTagIMO_etaBin2
Gaudi::Property< std::string > m_MVAreaderFile_MuTagIMO_etaBin2
Definition: MuonSelectionTool.h:173
CP::MuonSelectionTool
Implementation of the muon selector tool.
Definition: MuonSelectionTool.h:31
CP::MuonSelectionTool::passTight
bool passTight(const xAOD::Muon &mu, float rho, float oneOverPSig) const
Returns true if the muon passed the tight working point cuts.
Definition: MuonSelectionTool.cxx:1325
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
CP::MuonSelectionTool::m_acceptInfo
asg::AcceptInfo m_acceptInfo
Store selection information.
Definition: MuonSelectionTool.h:125
CP::MuonSelectionTool::hitSummary::extendedLargeHits
uint8_t extendedLargeHits
Definition: MuonSelectionTool.h:234
CP::MuonSelectionTool::m_use2stationMuonsHighPt
Gaudi::Property< bool > m_use2stationMuonsHighPt
Definition: MuonSelectionTool.h:146
CP::MuonSelectionTool::m_quality
Gaudi::Property< int > m_quality
Definition: MuonSelectionTool.h:128
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
CP::MuonSelectionTool::m_custom_dir
Gaudi::Property< std::string > m_custom_dir
Definition: MuonSelectionTool.h:182
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
CP::MuonSelectionTool::passedCaloTagQuality
virtual bool passedCaloTagQuality(const xAOD::Muon &mu) const override
Returns true if the muon passed additional calo-tag quality cuts.
Definition: MuonSelectionTool.cxx:1275
CP::MuonSelectionTool::m_MVAreaderFile_MuTagIMO_etaBin3
Gaudi::Property< std::string > m_MVAreaderFile_MuTagIMO_etaBin3
Definition: MuonSelectionTool.h:175
CP::MuonSelectionTool::getQuality
virtual xAOD::Muon::Quality getQuality(const xAOD::Muon &mu) const override
Returns the quality of the muon. To set the value on the muon, instead call setQuality(xAOD::Muon&) c...
Definition: MuonSelectionTool.cxx:414
CP::MuonSelectionTool::m_MVAreaderFile_EVEN_MuidCB
Gaudi::Property< std::string > m_MVAreaderFile_EVEN_MuidCB
Definition: MuonSelectionTool.h:157
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition: AsgToolMacros.h:77
CP::MuonSelectionTool::m_useAllAuthors
Gaudi::Property< bool > m_useAllAuthors
Definition: MuonSelectionTool.h:145
CP::MuonSelectionTool::m_reader_MUTAGIMO_etaBin3
std::unique_ptr< TMVA::Reader > m_reader_MUTAGIMO_etaBin3
Definition: MuonSelectionTool.h:218
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
CP::MuonSelectionTool::m_disablePtCuts
Gaudi::Property< bool > m_disablePtCuts
Definition: MuonSelectionTool.h:139
DMTest::P
P_v1 P
Definition: P.h:23
CP::MuonSelectionTool::m_readerE_MUID
std::unique_ptr< TMVA::Reader > m_readerE_MUID
Definition: MuonSelectionTool.h:211
plotmaker.hist
hist
Definition: plotmaker.py:148
CP::MuonSelectionTool::passedIDCuts
virtual bool passedIDCuts(const xAOD::Muon &) const override
Returns true if the muon passes the standard MCP ID cuts.
Definition: MuonSelectionTool.cxx:593
CP::MuonSelectionTool::m_BMVcutFunction_barrel
std::unique_ptr< TF1 > m_BMVcutFunction_barrel
Definition: MuonSelectionTool.h:196
CP::MuonSelectionTool::isBEE
bool isBEE(const float eta, const float phi) const
Definition: MuonSelectionTool.cxx:1601
CP::MuonSelectionTool::m_readerE_MUGIRL
std::unique_ptr< TMVA::Reader > m_readerE_MUGIRL
Definition: MuonSelectionTool.h:213
CP::MuonSelectionTool::m_turnOffMomCorr
Gaudi::Property< bool > m_turnOffMomCorr
Definition: MuonSelectionTool.h:138
CP::MuonSelectionTool::m_tightWP_highPt_rhoCuts
std::unique_ptr< TH1 > m_tightWP_highPt_rhoCuts
Definition: MuonSelectionTool.h:194
CP::MuonSelectionTool::getHist
StatusCode getHist(TFile *file, const std::string &histName, std::unique_ptr< TH1 > &hist) const
Checks for each histogram.
Definition: MuonSelectionTool.cxx:227
egammaParameters::ParamDef
ParamDef
Definition: egammaParamDefs.h:99
athena.value
value
Definition: athena.py:124
CP::MuonSelectionTool::passedLowPtEfficiencyCuts
virtual bool passedLowPtEfficiencyCuts(const xAOD::Muon &) const override
Returns true if the muon passes the standard MCP low pt cuts.
Definition: MuonSelectionTool.cxx:674
CP::MuonSelectionTool::m_PixCutOff
Gaudi::Property< bool > m_PixCutOff
Definition: MuonSelectionTool.h:143
CP::MuonSelectionTool::setPassesIDCuts
virtual void setPassesIDCuts(xAOD::Muon &) const override
set the passes ID cuts variable of the muon
Definition: MuonSelectionTool.cxx:591
CP::MuonSelectionTool::m_readerO_MUGIRL
std::unique_ptr< TMVA::Reader > m_readerO_MUGIRL
Definition: MuonSelectionTool.h:214
CP::MuonSelectionTool::hitSummary::middleSmallHits
uint8_t middleSmallHits
Definition: MuonSelectionTool.h:229
SG::ReadHandleKey< xAOD::EventInfo >
CP::MuonSelectionTool::retrieveParam
void retrieveParam(const xAOD::Muon &muon, float &value, const xAOD::Muon::ParamDef param) const
Definition: MuonSelectionTool.cxx:1450
CP::MuonSelectionTool::passedCaloScore
virtual bool passedCaloScore(const xAOD::Muon &mu) const override
Returns true if the muon passed the CaloScore calo-tag working point.
Definition: MuonSelectionTool.cxx:1296
IAsgSelectionTool
Definition: IAsgSelectionTool.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
IAsgSelectionTool.h
CP::MuonSelectionTool::m_isRun3
Gaudi::Property< bool > m_isRun3
Definition: MuonSelectionTool.h:130
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
CP::MuonSelectionTool::m_MVAreaderFile_ODD_MuGirl
Gaudi::Property< std::string > m_MVAreaderFile_ODD_MuGirl
Definition: MuonSelectionTool.h:167
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:48
CP::MuonSelectionTool::m_toroidOff
Gaudi::Property< bool > m_toroidOff
Definition: MuonSelectionTool.h:129
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
CP::MuonSelectionTool::passedHighPtCuts
virtual bool passedHighPtCuts(const xAOD::Muon &) const override
Returns true if the muon passes the standard MCP High Pt cuts.
Definition: MuonSelectionTool.cxx:916
CP::MuonSelectionTool::m_BMVcutFile
Gaudi::Property< std::string > m_BMVcutFile
file for bad muon veto mimic cut functions
Definition: MuonSelectionTool.h:185
CP::MuonSelectionTool::m_useMVALowPt
Gaudi::Property< bool > m_useMVALowPt
Definition: MuonSelectionTool.h:147
CP::MuonSelectionTool::m_BMVcutFunction_endcap
std::unique_ptr< TF1 > m_BMVcutFunction_endcap
Definition: MuonSelectionTool.h:197
CP::MuonSelectionTool::hitSummary::innerSmallHits
uint8_t innerSmallHits
Definition: MuonSelectionTool.h:227
CP::MuonSelectionTool::m_recalcPrecisionLayerswNSW
Gaudi::Property< bool > m_recalcPrecisionLayerswNSW
Definition: MuonSelectionTool.h:132
CP::MuonSelectionTool::m_developMode
Gaudi::Property< bool > m_developMode
Definition: MuonSelectionTool.h:140
CP::MuonSelectionTool::passedErrorCutCB
virtual bool passedErrorCutCB(const xAOD::Muon &) const override
Returns true if a CB muon passes a pt- and eta-dependent cut on the relative CB q/p error.
Definition: MuonSelectionTool.cxx:1094
IMuonSelectionTool.h
CP::MuonSelectionTool::hitSummary::nprecisionLayers
uint8_t nprecisionLayers
Definition: MuonSelectionTool.h:224
CP::MuonSelectionTool::setQuality
virtual void setQuality(xAOD::Muon &mu) const override
set the passes low pT cuts variable of the muon
Definition: MuonSelectionTool.cxx:356
CP::MuonSelectionTool::m_doBadMuonVetoMimic
Gaudi::Property< bool > m_doBadMuonVetoMimic
Definition: MuonSelectionTool.h:150
CP::MuonSelectionTool::m_eventInfo
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo
Definition: MuonSelectionTool.h:154
CP::MuonSelectionTool::passedBMVmimicCut
bool passedBMVmimicCut(const xAOD::Muon &) const
Returns true if the muon passes a cut which mimics the effect of the combined error cut This is neces...
Definition: MuonSelectionTool.cxx:1199
CP::MuonSelectionTool::qOverPsignificance
float qOverPsignificance(const xAOD::Muon &muon) const
Definition: MuonSelectionTool.cxx:379
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
CP::MuonSelectionTool::passedMuonCuts
virtual bool passedMuonCuts(const xAOD::Muon &) const override
Returns true if the muon passes a standardized loose preselection.
Definition: MuonSelectionTool.cxx:1224
CP::MuonSelectionTool::hitSummary::nprecisionHoleLayers
uint8_t nprecisionHoleLayers
Definition: MuonSelectionTool.h:225
CP::MuonSelectionTool::hitSummary::outerSmallHits
uint8_t outerSmallHits
Definition: MuonSelectionTool.h:231
asg::AcceptInfo
Definition: AcceptInfo.h:28
CP::MuonSelectionTool::hitSummary
Definition: MuonSelectionTool.h:223
CP::MuonSelectionTool::hitSummary::etaLayer2STGCHits
uint8_t etaLayer2STGCHits
Definition: MuonSelectionTool.h:239
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
CP::MuonSelectionTool::isBMG
bool isBMG(const float eta, const float phi) const
Definition: MuonSelectionTool.cxx:1619
CP::MuonSelectionTool::isBIS78
bool isBIS78(const float eta, const float phi) const
Definition: MuonSelectionTool.cxx:1583
CP::MuonSelectionTool::m_useLRT
Gaudi::Property< bool > m_useLRT
Definition: MuonSelectionTool.h:135
CP::MuonSelectionTool::m_caloScoreWP
Gaudi::Property< int > m_caloScoreWP
Definition: MuonSelectionTool.h:134
CP::MuonSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const override
Get an object describing the "selection steps" of the tool.
Definition: MuonSelectionTool.cxx:248
file
TFile * file
Definition: tile_monitor.h:29
python.BunchSpacingUtils.rn
rn
Definition: BunchSpacingUtils.py:87
CP::MuonSelectionTool::m_useSegmentTaggedLowPt
Gaudi::Property< bool > m_useSegmentTaggedLowPt
Definition: MuonSelectionTool.h:148
CP::MuonSelectionTool::hitSummary::nGoodPrecLayers
uint8_t nGoodPrecLayers
Definition: MuonSelectionTool.h:226
CP::MuonSelectionTool::getSegmentsSorted
std::vector< const xAOD::MuonSegment * > getSegmentsSorted(const xAOD::Muon &mu) const
Returns a vector of the muon's segments, sorted according to chamber index.
Definition: MuonSelectionTool.cxx:794
CP::MuonSelectionTool::m_calibration_version
Gaudi::Property< std::string > m_calibration_version
Definition: MuonSelectionTool.h:179
CP::MuonSelectionTool::m_excludeNSWFromPrecisionLayers
Gaudi::Property< bool > m_excludeNSWFromPrecisionLayers
Definition: MuonSelectionTool.h:131
CP::MuonSelectionTool::getRunNumber
unsigned int getRunNumber(bool needOnlyCorrectYear=false) const
Definition: MuonSelectionTool.cxx:1526
CP::MuonSelectionTool::hitSummary::etaLayer1STGCHits
uint8_t etaLayer1STGCHits
Definition: MuonSelectionTool.h:238
CP::MuonSelectionTool::m_low_pt_mva_mutex
std::mutex m_low_pt_mva_mutex
Definition: MuonSelectionTool.h:221
CP::MuonSelectionTool::hitSummary::outerLargeHits
uint8_t outerLargeHits
Definition: MuonSelectionTool.h:232
CP::MuonSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle *p) const override
Get the decision using a generic IParticle pointer.
Definition: MuonSelectionTool.cxx:250
CP::MuonSelectionTool::m_useBEEBISInHighPtRun3
Gaudi::Property< bool > m_useBEEBISInHighPtRun3
Definition: MuonSelectionTool.h:152
CP::IMuonSelectionTool
Interface for (a) muon selector tool(s)
Definition: IMuonSelectionTool.h:25
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
CP::MuonSelectionTool::m_reader_MUTAGIMO_etaBin1
std::unique_ptr< TMVA::Reader > m_reader_MUTAGIMO_etaBin1
Definition: MuonSelectionTool.h:216
CP::MuonSelectionTool::m_tightWP_mediumPt_rhoCuts
std::unique_ptr< TH1 > m_tightWP_mediumPt_rhoCuts
Definition: MuonSelectionTool.h:193
CP::MuonSelectionTool::m_readerO_MUID
std::unique_ptr< TMVA::Reader > m_readerO_MUID
Definition: MuonSelectionTool.h:212
CP::MuonSelectionTool::m_useCaloScore
Gaudi::Property< bool > m_useCaloScore
Definition: MuonSelectionTool.h:133
CP::MuonSelectionTool::checkSanity
void checkSanity() const
Definition: MuonSelectionTool.cxx:269
CP::MuonSelectionTool::m_SiHolesCutOff
Gaudi::Property< bool > m_SiHolesCutOff
Definition: MuonSelectionTool.h:144
CP::MuonSelectionTool::m_MVAreaderFile_MuTagIMO_etaBin1
Gaudi::Property< std::string > m_MVAreaderFile_MuTagIMO_etaBin1
Definition: MuonSelectionTool.h:171
EventInfo.h
CP::MuonSelectionTool::m_tightWP_lowPt_qOverPCuts
std::unique_ptr< TH1 > m_tightWP_lowPt_qOverPCuts
Definition: MuonSelectionTool.h:192
CP::MuonSelectionTool::initialize
virtual StatusCode initialize() override
Function initialising the tool.
Definition: MuonSelectionTool.cxx:58
CP::MuonSelectionTool::isBadMuon
virtual bool isBadMuon(const xAOD::Muon &) const override
Returns true if a CB muon fails some loose quaility requirements designed to remove pathological trac...
Definition: MuonSelectionTool.cxx:628
CP::MuonSelectionTool::m_reader_MUTAGIMO_etaBin2
std::unique_ptr< TMVA::Reader > m_reader_MUTAGIMO_etaBin2
Definition: MuonSelectionTool.h:217
CP::MuonSelectionTool::m_tightWP_lowPt_rhoCuts
std::unique_ptr< TH1 > m_tightWP_lowPt_rhoCuts
Definition: MuonSelectionTool.h:191
CP::MuonSelectionTool::MuonSelectionTool
MuonSelectionTool(const std::string &name="MuonSelection")
Create a proper constructor for Athena.
Definition: MuonSelectionTool.cxx:54
CP::MuonSelectionTool::hitSummary::extendedSmallHits
uint8_t extendedSmallHits
Definition: MuonSelectionTool.h:233
CP::MuonSelectionTool::isRun3
bool isRun3(bool forceOnTheFly=false) const
Definition: MuonSelectionTool.h:262
CP::MuonSelectionTool::m_maxEta
Gaudi::Property< double > m_maxEta
Definition: MuonSelectionTool.h:127
CP::MuonSelectionTool::hitSummary::MMHits
uint8_t MMHits
Definition: MuonSelectionTool.h:240
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CP::MuonSelectionTool::m_TrtCutOff
Gaudi::Property< bool > m_TrtCutOff
Definition: MuonSelectionTool.h:141
CP::MuonSelectionTool::hitSummary::innerLargeHits
uint8_t innerLargeHits
Definition: MuonSelectionTool.h:228
CP::MuonSelectionTool::hitSummary::extendedSmallHoles
uint8_t extendedSmallHoles
Definition: MuonSelectionTool.h:235
CP::MuonSelectionTool::IdMsPt
void IdMsPt(const xAOD::Muon &muon, float &idPt, float &msPt) const
Definition: MuonSelectionTool.cxx:360
CP::MuonSelectionTool::retrieveSummaryValue
void retrieveSummaryValue(const P &muon, T &value, const S type, bool ignoreMissing=false) const
Definition: MuonSelectionTool.h:243
CP::MuonSelectionTool::m_geoOnTheFly
Gaudi::Property< bool > m_geoOnTheFly
Definition: MuonSelectionTool.h:149
CP::MuonSelectionTool::~MuonSelectionTool
virtual ~MuonSelectionTool()
CP::MuonSelectionTool::m_allowComm
Gaudi::Property< bool > m_allowComm
Definition: MuonSelectionTool.h:151
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
CP::MuonSelectionTool::m_MVAreaderFile_ODD_MuidCB
Gaudi::Property< std::string > m_MVAreaderFile_ODD_MuidCB
Definition: MuonSelectionTool.h:160
CP::MuonSelectionTool::hitSummary::isSmallGoodSectors
uint8_t isSmallGoodSectors
Definition: MuonSelectionTool.h:236
AsgTool.h
CP::MuonSelectionTool::passedLowPtEfficiencyMVACut
bool passedLowPtEfficiencyMVACut(const xAOD::Muon &) const
Definition: MuonSelectionTool.cxx:810
asg::AcceptData
Definition: AcceptData.h:30
CP::MuonSelectionTool::fillSummary
void fillSummary(const xAOD::Muon &muon, hitSummary &summary) const
Definition: MuonSelectionTool.cxx:1398
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
CP::MuonSelectionTool::getResolutionCategory
virtual int getResolutionCategory(const xAOD::Muon &) const override
Returns an integer corresponding to categorization of muons with different resolutions.
Definition: MuonSelectionTool.cxx:1460
CP::MuonSelectionTool::m_SctCutOff
Gaudi::Property< bool > m_SctCutOff
Definition: MuonSelectionTool.h:142
CP::MuonSelectionTool::hitSummary::middleLargeHits
uint8_t middleLargeHits
Definition: MuonSelectionTool.h:230
CP::MuonSelectionTool::m_MVAreaderFile_EVEN_MuGirl
Gaudi::Property< std::string > m_MVAreaderFile_EVEN_MuGirl
Definition: MuonSelectionTool.h:164
fitman.rho
rho
Definition: fitman.py:532
CP::MuonSelectionTool::rhoPrime
float rhoPrime(const xAOD::Muon &muon) const
Definition: MuonSelectionTool.cxx:403
CP::MuonSelectionTool::hitSummary::cscUnspoiledEtaHits
uint8_t cscUnspoiledEtaHits
Definition: MuonSelectionTool.h:237
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65