ATLAS Offline Software
SCTTracksMonTool.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
15 #ifndef SCTTRACKSMONTOOL_H
16 #define SCTTRACKSMONTOOL_H
17 
19 
21 
27 
28 #include "GaudiKernel/ToolHandle.h"
29 
30 //Standard C++
31 #include <bitset>
32 #include <string>
33 #include <vector>
34 
35 // Forward declarations
36 class TH1I;
37 class TH1F;
38 class TH2F;
39 class TProfile2D;
40 class TProfile;
41 class SCT_ID;
42 
44  public:
45  SCTTracksMonTool(const std::string& type, const std::string& name, const IInterface* parent);
46  virtual ~SCTTracksMonTool() = default;
47  //initialize
48  virtual StatusCode initialize() override final;
51  virtual StatusCode bookHistogramsRecurrent() override final;
53  virtual StatusCode bookHistograms() override final;
55  virtual StatusCode fillHistograms() override final;
57  virtual StatusCode procHistograms() override final;
59  virtual StatusCode checkHists(bool fromFinalize) override final;
61 
62  private:
65 
67  static const std::string s_triggerNames[N_TRIGGER_TYPES];
68 
69  // Data members, which are not changed after initialization
70  std::string m_gpath{""};
71 
72  // Data members, which are changed during event processing
73  // These have to be converted to local variables or be protected by std::atomic or std::mutex
74  // before or when this tool is migrated to the new AthenaMT compatible DQ framework.
75  std::vector<int> m_nTracks_buf{}; // This requires a care in AthenaMT.
76  int m_nTracks_pos{0}; // This requires a care in AthenaMT.
77  int m_numberOfEvents{0}; // This should be conveted to std::atomic_int in AthenaMT.
78 
79  //@name Histograms related members
81  TH1I* m_nTracks{nullptr};
82  TH1I* m_trackTrigger{nullptr};
85 
86 
87  // Pointer to 1D histogram of number of tracks in each LB
89 
90  //Pointer to profile histogram of track rates
91  TProfile* m_trackRate{nullptr};
92 
94  TH1F* m_trk_ncluHisto{nullptr};
95 
97  TH1F* m_trk_chi2{nullptr};
98 
99  TH1F* m_trk_N{nullptr};
100 
102  TH1F* m_trk_pt{nullptr};
103 
105  TH1F* m_trk_d0{nullptr};
106 
108  TH1F* m_trk_z0{nullptr};
109 
111  TH1F* m_trk_eta{nullptr};
112 
114  TH1F* m_trk_phi{nullptr};
115 
117 
119  IntegerProperty m_trackHitCut{this, "trackHitCut", 3};
121  IntegerProperty m_checkrate{this, "CheckRate", 1000};
123  IntegerProperty m_evtsbins{this, "EvtsBins", 5000};
124 
125  BooleanProperty m_useIDGlobal{this, "useIDGlobal", false};
126  BooleanProperty m_doTrigger{this, "doTrigger", false};
127  BooleanProperty m_doPositiveEndcap{this, "doPositiveEndcap", true};
128  BooleanProperty m_doNegativeEndcap{this, "doNegativeEndcap", true};
129  BooleanProperty m_doUnbiasedCalc{this, "doUnbiasedCalc", true};
130 
132  SG::ReadHandleKey<TrackCollection> m_tracksName{this, "tracksName", "CombinedInDetTracks"};
134  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo", "Key of xAOD::EventInfo"};
135 
136  //@name Tool and service members
138  ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator{this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
140  ToolHandle<Trk::IUpdator> m_updator{this, "KalmanUpdator", "Trk::KalmanUpdator/TrkKalmanUpdator", ""};
141 
143  const SCT_ID* m_pSCTHelper{nullptr};
144 
146  //@name Histograms related methods
148  // Book Track related Histograms
151 
152  //@name Trigger related methods
153  //{
155  StatusCode checkTriggers(std::bitset<N_TRIGGER_TYPES>& firedTriggers) const;
157  bool hasTriggerFired(const unsigned int trigger, const std::bitset<N_TRIGGER_TYPES>& firedTriggers) const;
159 
160  //@name Service methods
162  float calculatePull(const float, const float, const float) const;
164 
165 
167  StatusCode h1Factory(const std::string& name, const std::string& title, const float extent, MonGroup& registry, std::vector<TH1F*>& storageVector) const;
169 };
170 
171 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
python.Dso.registry
registry
Definition: Control/AthenaServices/python/Dso.py:159
SCTTracksMonTool::m_doUnbiasedCalc
BooleanProperty m_doUnbiasedCalc
Definition: SCTTracksMonTool.h:129
SCTTracksMonTool::procHistograms
virtual StatusCode procHistograms() override final
process histograms at the end (we only use 'isEndOfRun')
Definition: SCTTracksMonTool.cxx:331
SCTTracksMonTool::hasTriggerFired
bool hasTriggerFired(const unsigned int trigger, const std::bitset< N_TRIGGER_TYPES > &firedTriggers) const
Get the status of a particular trigger bit (trigger bit 0-7)
Definition: SCTTracksMonTool.cxx:484
SCTTracksMonTool::m_tracksName
SG::ReadHandleKey< TrackCollection > m_tracksName
Name of the Track collection to use.
Definition: SCTTracksMonTool.h:132
SCTTracksMonTool::m_tracksPerRegion
TH1F * m_tracksPerRegion
Definition: SCTTracksMonTool.h:88
SCT_Monitoring::N_REGIONS
@ N_REGIONS
Definition: SCT_MonitoringNumbers.h:19
SCTTracksMonTool::TriggerTypes
TriggerTypes
enumerated constant for the types of level 1 triggers, corresponds to the string m_triggerNames
Definition: SCTTracksMonTool.h:64
TH1I
Definition: rootspy.cxx:332
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
TH2F
Definition: rootspy.cxx:420
SCTTracksMonTool::BPTX
@ BPTX
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::m_trk_chi2
TH1F * m_trk_chi2
Pointer to 1D histogram of Track chi2.
Definition: SCTTracksMonTool.h:97
SCTTracksMonTool::checkHists
virtual StatusCode checkHists(bool fromFinalize) override final
helper function used in procHistograms
Definition: SCTTracksMonTool.cxx:345
SCTTracksMonTool::m_nTracks
TH1I * m_nTracks
Definition: SCTTracksMonTool.h:81
TProfile2D
Definition: rootspy.cxx:531
SCTTracksMonTool::s_triggerNames
static const std::string s_triggerNames[N_TRIGGER_TYPES]
Abbreviations for level 1 trigger types.
Definition: SCTTracksMonTool.h:67
SCTTracksMonTool::initialize
virtual StatusCode initialize() override final
Definition: SCTTracksMonTool.cxx:79
SCTTracksMonTool
Definition: SCTTracksMonTool.h:43
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
SCTTracksMonTool::m_trk_d0
TH1F * m_trk_d0
Pointer to 1D histogram of Track d0.
Definition: SCTTracksMonTool.h:105
IUpdator.h
SCTTracksMonTool::m_trk_z0
TH1F * m_trk_z0
Pointer to 1D histogram of Track z0.
Definition: SCTTracksMonTool.h:108
SCTTracksMonTool::RNDM
@ RNDM
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::m_checkrate
IntegerProperty m_checkrate
CheckHists() frequency.
Definition: SCTTracksMonTool.h:121
SCTTracksMonTool::m_updator
ToolHandle< Trk::IUpdator > m_updator
Definition: SCTTracksMonTool.h:140
ManagedMonitorToolBase.h
SCTTracksMonTool::m_gpath
std::string m_gpath
Definition: SCTTracksMonTool.h:70
SCTTracksMonTool::m_doPositiveEndcap
BooleanProperty m_doPositiveEndcap
Definition: SCTTracksMonTool.h:127
SCTTracksMonTool::SCTTracksMonTool
SCTTracksMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor, calls base class constructor with parameters.
Definition: SCTTracksMonTool.cxx:71
SCTTracksMonTool::CALIB
@ CALIB
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::N_TRIGGER_TYPES
@ N_TRIGGER_TYPES
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::fillHistograms
virtual StatusCode fillHistograms() override final
Fill histograms in each loop.
Definition: SCTTracksMonTool.cxx:130
SCTTracksMonTool::m_totalResidual
TH1F * m_totalResidual[SCT_Monitoring::N_REGIONS]
Definition: SCTTracksMonTool.h:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SCTTracksMonTool::TGC
@ TGC
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::calculatePull
float calculatePull(const float, const float, const float) const
Calculate Pull value for MeasuredAtPlane TrackStates.
Definition: SCTTracksMonTool.cxx:354
covarianceTool.title
title
Definition: covarianceTool.py:542
TrackCollection.h
SCTTracksMonTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
ReadHandleKey of EventInfo.
Definition: SCTTracksMonTool.h:134
SCTTracksMonTool::m_totalPull
TH1F * m_totalPull[SCT_Monitoring::N_REGIONS]
Definition: SCTTracksMonTool.h:84
test_pyathena.parent
parent
Definition: test_pyathena.py:15
SCTTracksMonTool::bookHistograms
virtual StatusCode bookHistograms() override final
An inheriting class should either override this function or bookHists().
Definition: SCTTracksMonTool.cxx:112
SCTTracksMonTool::m_evtsbins
IntegerProperty m_evtsbins
Tracks vs evt.
Definition: SCTTracksMonTool.h:123
SCTTracksMonTool::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent() override final
Book histograms in initialization.
Definition: SCTTracksMonTool.cxx:96
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SCTTracksMonTool::m_trackRate
TProfile * m_trackRate
Definition: SCTTracksMonTool.h:91
SCTTracksMonTool::~SCTTracksMonTool
virtual ~SCTTracksMonTool()=default
SCTTracksMonTool::m_trk_phi
TH1F * m_trk_phi
Pointer to 1D histogram of Track phi.
Definition: SCTTracksMonTool.h:114
TProfile
Definition: rootspy.cxx:515
SCTTracksMonTool::m_trk_N
TH1F * m_trk_N
Definition: SCTTracksMonTool.h:99
SCTTracksMonTool::m_numberOfEvents
int m_numberOfEvents
Definition: SCTTracksMonTool.h:77
SCT_MonitoringNumbers.h
EventInfo.h
IResidualPullCalculator.h
SCTTracksMonTool::m_residualPullCalculator
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
Kalman Updator for SCT Unbiased states in Residual calculation.
Definition: SCTTracksMonTool.h:139
SCTTracksMonTool::m_doNegativeEndcap
BooleanProperty m_doNegativeEndcap
Definition: SCTTracksMonTool.h:128
TH1F
Definition: rootspy.cxx:320
SCTTracksMonTool::m_nTracks_buf
std::vector< int > m_nTracks_buf
Definition: SCTTracksMonTool.h:75
SCTTracksMonTool::COSM
@ COSM
Definition: SCTTracksMonTool.h:64
SCT_ID
Definition: SCT_ID.h:68
SCTTracksMonTool::m_trk_ncluHisto
TH1F * m_trk_ncluHisto
Pointer to 1D histogram of Number of SCT Clusters per Track.
Definition: SCTTracksMonTool.h:94
SCTTracksMonTool::bookGeneralHistos
StatusCode bookGeneralHistos()
Definition: SCTTracksMonTool.cxx:369
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SCTTracksMonTool::checkTriggers
StatusCode checkTriggers(std::bitset< N_TRIGGER_TYPES > &firedTriggers) const
Fill the m_firedTriggers bitset according to event information.
Definition: SCTTracksMonTool.cxx:473
SCTTracksMonTool::m_trk_eta
TH1F * m_trk_eta
Pointer to 1D histogram of Track eta.
Definition: SCTTracksMonTool.h:111
SCTTracksMonTool::m_pSCTHelper
const SCT_ID * m_pSCTHelper
SCT Helper class.
Definition: SCTTracksMonTool.h:143
SCTTracksMonTool::m_useIDGlobal
BooleanProperty m_useIDGlobal
Definition: SCTTracksMonTool.h:125
SCTTracksMonTool::L1CAL
@ L1CAL
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::m_trackHitCut
IntegerProperty m_trackHitCut
Cut on number of SCT hits on track.
Definition: SCTTracksMonTool.h:119
SCTTracksMonTool::RPC
@ RPC
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::MBTS
@ MBTS
Definition: SCTTracksMonTool.h:64
SCTTracksMonTool::h1Factory
StatusCode h1Factory(const std::string &name, const std::string &title, const float extent, MonGroup &registry, std::vector< TH1F * > &storageVector) const
Factory + register for the 1D histograms, returns whether successfully registered.
Definition: SCTTracksMonTool.cxx:460
SCTTracksMonTool::m_trk_pt
TH1F * m_trk_pt
Pointer to 1D histogram of Track pt.
Definition: SCTTracksMonTool.h:102
SCTTracksMonTool::m_doTrigger
BooleanProperty m_doTrigger
Definition: SCTTracksMonTool.h:126
SCTTracksMonTool::m_nTracks_pos
int m_nTracks_pos
Definition: SCTTracksMonTool.h:76
PhysDESDM_Quirks.trigger
trigger
Definition: PhysDESDM_Quirks.py:27
SCTTracksMonTool::m_trackTrigger
TH1I * m_trackTrigger
Definition: SCTTracksMonTool.h:82