ATLAS Offline Software
CSCSegmValAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /* **********************************************************************
6  * Program : CSCSegmValAlg
7  * Package : MuonSegmMonitoring
8  * Author : Jason Veatch <jason.veatch@cern.ch>
9  * Venkat Kaushik <Venkat.Kaushik@CERN.CH>
10  * Purpose : CSC segment DQ Monitoring
11  *----------------------------------------------------------------------
12  * # Date Comments By
13  *----------------------------------------------------------------------
14  * 0 28/08/2008 VSK
15  * 1 11/03/2009 Improved Software. Removed CSCSegmentTree VSK
16  * 2 17/03/2011 Access CSC segments from MuonSegments Jason
17  ************************************************************************/
18 
19 #ifndef CSCSegmValAlg_H
20 #define CSCSegmValAlg_H
21 
23 #include "GaudiKernel/ServiceHandle.h"
24 #include "GaudiKernel/ToolHandle.h"
25 
28 #include "TrkTrack/Track.h"
29 
34 
35 #include <vector>
36 #include <string>
37 #include <memory>
38 
39 class TH1;
40 class TH1F;
41 class TH2F;
42 
43 namespace Trk {
44  class MeasurementBase;
45 }
46 
48 
49  public:
51  CSCSegmValAlg( const std::string & type, const std::string & name, const IInterface* parent );
53  virtual ~CSCSegmValAlg()=default;
55  virtual StatusCode bookHistograms();
57  virtual StatusCode fillHistograms();
58  virtual StatusCode procHistograms();
59 
61 
62  private:
63 
64  typedef std::vector<TH1 *> SegmHistType;
65  typedef std::vector<TH1 *>::const_iterator SegmHistIter;
66 
67  typedef std::vector<const Trk::MeasurementBase*> TrkSegmType;
68  typedef std::vector<const Trk::MeasurementBase*>::const_iterator TrkSegmIter;
69 
70  std::unique_ptr<MonGroup> m_segmDetail_EA;
71  std::unique_ptr<MonGroup> m_segmDetail_EC;
72  std::unique_ptr<MonGroup> m_segmOview_EA;
73  std::unique_ptr<MonGroup> m_segmOview_EC;
74 
75  typedef enum EndCaps { ECA = 0, ECC } EndCapType;
76 
77  void bookSegmentHistograms();
78  bool isCscSegment( const Muon::MuonSegment* seg ) const;
79  unsigned int cscHits( const Muon::MuonSegment* seg ) const;
80  void setCSCLayerLabels(TH1 *h, int m_side);
81  void regCSCHist(TH1 *h, MonGroup *mg );
82  bool segmSlopeCut(float& csc_x, float& csc_ax, float& cut );
83  //Trigger aware monitoring
84  bool evtSelTriggersPassed();
85 
86 
88  ToolHandle<Trig::TrigDecisionTool> m_trigDec;
89 
90  std::vector<std::string> m_sampSelTriggers;
91  bool m_doEvtSel;
92 
93  SG::ReadHandleKey<Trk::SegmentCollection> m_segmKey{this,"SegmentKey","TrackMuonSegments","muon segments"};
94  double m_segmSlope = 0.0;
95 
96  bool m_debuglevel;
98 
99  std::vector<std::string> m_ecap, m_segcoll;
100 
103 
104  std::vector<std::string> m_clusStatWord;
105  std::vector<std::string> m_NClusWord;
106 
109 
112 
115 
118 
126 
134 
137 
140 
148 
156 
159 
161  "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
162  "Handle to the service providing the IMuonEDMHelperSvc interface" };
163  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
164 };
165 
166 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
CSCSegmValAlg::m_debuglevel
bool m_debuglevel
private member to control debug messages
Definition: CSCSegmValAlg.h:96
CSCSegmValAlg::m_h1CSC_Segm_TimeOfClus_Phi_EA
TH1F * m_h1CSC_Segm_TimeOfClus_Phi_EA
Definition: CSCSegmValAlg.h:146
CSCSegmValAlg::m_h1CSC_Segm_NumOfGoodClus_Phi_EC
TH1F * m_h1CSC_Segm_NumOfGoodClus_Phi_EC
Definition: CSCSegmValAlg.h:151
CSCSegmValAlg::regCSCHist
void regCSCHist(TH1 *h, MonGroup *mg)
Definition: CSCSegmValAlg.cxx:836
CSCSegmValAlg::m_segmKey
SG::ReadHandleKey< Trk::SegmentCollection > m_segmKey
Definition: CSCSegmValAlg.h:93
CSCSegmValAlg::m_clusStatWord
std::vector< std::string > m_clusStatWord
Definition: CSCSegmValAlg.h:104
CSCSegmValAlg::m_h2CSC_Segm_NumOfNClusSegs_Eta_EC
TH2F * m_h2CSC_Segm_NumOfNClusSegs_Eta_EC
Definition: CSCSegmValAlg.h:108
CSCSegmValAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: CSCSegmValAlg.h:163
CSCSegmValAlg::segmSlopeCut
bool segmSlopeCut(float &csc_x, float &csc_ax, float &cut)
Definition: CSCSegmValAlg.cxx:849
CSCSegmValAlg::m_h1CSC_Segm_StatOfClus_Phi_EC
TH1F * m_h1CSC_Segm_StatOfClus_Phi_EC
Definition: CSCSegmValAlg.h:149
CSCSegmValAlg::m_h1CSC_Segm_StatOfClus_Eta_EC
TH1F * m_h1CSC_Segm_StatOfClus_Eta_EC
Definition: CSCSegmValAlg.h:127
CSCSegmValAlg::m_h2CSC_Segm_NumOfNClusSegs_Eta_EA
TH2F * m_h2CSC_Segm_NumOfNClusSegs_Eta_EA
Definition: CSCSegmValAlg.h:107
CSCSegmValAlg::m_h1CSC_Segm_NumOfClus_Phi_EA
TH1F * m_h1CSC_Segm_NumOfClus_Phi_EA
Definition: CSCSegmValAlg.h:142
CSCSegmValAlg::bookSegmentHistograms
void bookSegmentHistograms()
Definition: CSCSegmValAlg.cxx:109
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
TH2F
Definition: rootspy.cxx:420
python.SystemOfUnits.mg
int mg
Definition: SystemOfUnits.py:171
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClusMap_Phi_EC
TH2F * m_h2CSC_Segm_QsumOfGoodClusMap_Phi_EC
Definition: CSCSegmValAlg.h:136
CSCSegmValAlg::evtSelTriggersPassed
bool evtSelTriggersPassed()
TDT handle.
Definition: CSCSegmValAlg.cxx:741
CSCSegmValAlg::m_h1CSC_Segm_QsumOfClus_Phi_EA
TH1F * m_h1CSC_Segm_QsumOfClus_Phi_EA
Definition: CSCSegmValAlg.h:144
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClus_PhiVsEta_EA
TH2F * m_h2CSC_Segm_QsumOfGoodClus_PhiVsEta_EA
Definition: CSCSegmValAlg.h:157
CSCSegmValAlg::~CSCSegmValAlg
virtual ~CSCSegmValAlg()=default
Destructor.
TrigDecisionTool.h
CSCSegmValAlg::m_h1CSC_Segm_Efficiency_Eta_EA
TH1F * m_h1CSC_Segm_Efficiency_Eta_EA
Definition: CSCSegmValAlg.h:110
CSCSegmValAlg::m_h2CSC_Segm_NumOfSegs_EA
TH2F * m_h2CSC_Segm_NumOfSegs_EA
Definition: CSCSegmValAlg.h:101
CSCSegmValAlg::TrkSegmIter
std::vector< const Trk::MeasurementBase * >::const_iterator TrkSegmIter
Definition: CSCSegmValAlg.h:68
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
CSCSegmValAlg::m_edmHelperSvc
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
Definition: CSCSegmValAlg.h:160
Track.h
CSCSegmValAlg::TrkSegmType
std::vector< const Trk::MeasurementBase * > TrkSegmType
Definition: CSCSegmValAlg.h:67
CSCSegmValAlg::cscHits
unsigned int cscHits(const Muon::MuonSegment *seg) const
Definition: CSCSegmValAlg.cxx:778
CSCSegmValAlg::m_sampSelTriggers
std::vector< std::string > m_sampSelTriggers
Definition: CSCSegmValAlg.h:90
CSCSegmValAlg::initialize
StatusCode initialize()
Definition: CSCSegmValAlg.cxx:57
ManagedMonitorToolBase.h
CSCSegmValAlg::CSCSegmValAlg
CSCSegmValAlg(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: CSCSegmValAlg.cxx:40
CSCSegmValAlg::EndCaps
EndCaps
Definition: CSCSegmValAlg.h:75
CSCSegmValAlg::m_ecap
std::vector< std::string > m_ecap
Definition: CSCSegmValAlg.h:99
CSCSegmValAlg::m_bookedhistos
bool m_bookedhistos
Definition: CSCSegmValAlg.h:97
CSCSegmValAlg::ECA
@ ECA
Definition: CSCSegmValAlg.h:75
CSCSegmValAlg::bookHistograms
virtual StatusCode bookHistograms()
Histogram booking method.
Definition: CSCSegmValAlg.cxx:373
CSCSegmValAlg::m_segcoll
std::vector< std::string > m_segcoll
Definition: CSCSegmValAlg.h:99
CSCSegmValAlg::m_h1CSC_Segm_StatOfClus_Phi_EA
TH1F * m_h1CSC_Segm_StatOfClus_Phi_EA
Definition: CSCSegmValAlg.h:141
CSCSegmValAlg::m_segmOview_EC
std::unique_ptr< MonGroup > m_segmOview_EC
Definition: CSCSegmValAlg.h:73
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CSCSegmValAlg::m_h1CSC_Segm_TimeOfGoodClus_Phi_EA
TH1F * m_h1CSC_Segm_TimeOfGoodClus_Phi_EA
Definition: CSCSegmValAlg.h:147
BindingsTest.cut
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
Definition: BindingsTest.py:13
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CSCSegmValAlg::isCscSegment
bool isCscSegment(const Muon::MuonSegment *seg) const
Definition: CSCSegmValAlg.cxx:756
CSCSegmValAlg::m_h1CSC_Segm_TimeOfGoodClus_Eta_EC
TH1F * m_h1CSC_Segm_TimeOfGoodClus_Eta_EC
Definition: CSCSegmValAlg.h:133
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClusMap_Eta_EA
TH2F * m_h2CSC_Segm_QsumOfGoodClusMap_Eta_EA
Definition: CSCSegmValAlg.h:113
CSCSegmValAlg::m_h1CSC_Segm_NumOfGoodClus_Eta_EA
TH1F * m_h1CSC_Segm_NumOfGoodClus_Eta_EA
Definition: CSCSegmValAlg.h:121
CSCSegmValAlg::m_h1CSC_Segm_QsumOfGoodClus_Eta_EC
TH1F * m_h1CSC_Segm_QsumOfGoodClus_Eta_EC
Definition: CSCSegmValAlg.h:131
CSCSegmValAlg::EndCapType
enum CSCSegmValAlg::EndCaps EndCapType
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClusMap_Phi_EA
TH2F * m_h2CSC_Segm_QsumOfGoodClusMap_Phi_EA
Definition: CSCSegmValAlg.h:135
CSCSegmValAlg::m_h1CSC_Segm_QsumOfGoodClus_Phi_EC
TH1F * m_h1CSC_Segm_QsumOfGoodClus_Phi_EC
Definition: CSCSegmValAlg.h:153
CSCSegmValAlg::m_h1CSC_Segm_TimeOfClus_Eta_EC
TH1F * m_h1CSC_Segm_TimeOfClus_Eta_EC
Definition: CSCSegmValAlg.h:132
CSCSegmValAlg::m_h1CSC_Segm_TimeOfClus_Phi_EC
TH1F * m_h1CSC_Segm_TimeOfClus_Phi_EC
Definition: CSCSegmValAlg.h:154
CSCSegmValAlg::m_NClusWord
std::vector< std::string > m_NClusWord
Definition: CSCSegmValAlg.h:105
CSCSegmValAlg::m_h2CSC_Segm_TimeOfGoodClusMap_Phi_EC
TH2F * m_h2CSC_Segm_TimeOfGoodClusMap_Phi_EC
Definition: CSCSegmValAlg.h:139
IMuonEDMHelperSvc.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
CSCSegmValAlg::m_h1CSC_Segm_QsumOfClus_Eta_EC
TH1F * m_h1CSC_Segm_QsumOfClus_Eta_EC
Definition: CSCSegmValAlg.h:130
CSCSegmValAlg::m_h1CSC_Segm_QsumOfGoodClus_Eta_EA
TH1F * m_h1CSC_Segm_QsumOfGoodClus_Eta_EA
Definition: CSCSegmValAlg.h:123
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CSCSegmValAlg::m_h1CSC_Segm_NumOfClus_Eta_EA
TH1F * m_h1CSC_Segm_NumOfClus_Eta_EA
Definition: CSCSegmValAlg.h:120
CSCSegmValAlg::SegmHistIter
std::vector< TH1 * >::const_iterator SegmHistIter
Definition: CSCSegmValAlg.h:65
CSCSegmValAlg::m_h1CSC_Segm_NumOfGoodClus_Eta_EC
TH1F * m_h1CSC_Segm_NumOfGoodClus_Eta_EC
Definition: CSCSegmValAlg.h:129
CSCSegmValAlg::m_segmSlope
double m_segmSlope
Definition: CSCSegmValAlg.h:94
CSCSegmValAlg::m_doEvtSel
bool m_doEvtSel
Definition: CSCSegmValAlg.h:91
CSCSegmValAlg::m_h1CSC_Segm_TimeOfClus_Eta_EA
TH1F * m_h1CSC_Segm_TimeOfClus_Eta_EA
Definition: CSCSegmValAlg.h:124
CSCSegmValAlg::m_segmDetail_EC
std::unique_ptr< MonGroup > m_segmDetail_EC
Definition: CSCSegmValAlg.h:71
CSCSegmValAlg
Definition: CSCSegmValAlg.h:47
CSCSegmValAlg::fillHistograms
virtual StatusCode fillHistograms()
Histogram filling method.
Definition: CSCSegmValAlg.cxx:388
CSCSegmValAlg::m_h1CSC_Segm_Efficiency_Eta_EC
TH1F * m_h1CSC_Segm_Efficiency_Eta_EC
Definition: CSCSegmValAlg.h:111
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClus_PhiVsEta_EC
TH2F * m_h2CSC_Segm_QsumOfGoodClus_PhiVsEta_EC
Definition: CSCSegmValAlg.h:158
CSCSegmValAlg::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: CSCSegmValAlg.cxx:730
CSCSegmValAlg::m_segmDetail_EA
std::unique_ptr< MonGroup > m_segmDetail_EA
Definition: CSCSegmValAlg.h:70
CSCSegmValAlg::ECC
@ ECC
Definition: CSCSegmValAlg.h:75
h
TH1F
Definition: rootspy.cxx:320
CSCSegmValAlg::m_h2CSC_Segm_TimeOfGoodClusMap_Phi_EA
TH2F * m_h2CSC_Segm_TimeOfGoodClusMap_Phi_EA
Definition: CSCSegmValAlg.h:138
CSCSegmValAlg::m_h1CSC_Segm_TimeOfGoodClus_Eta_EA
TH1F * m_h1CSC_Segm_TimeOfGoodClus_Eta_EA
Definition: CSCSegmValAlg.h:125
CSCSegmValAlg::SegmHistType
std::vector< TH1 * > SegmHistType
Definition: CSCSegmValAlg.h:64
CSCSegmValAlg::m_h1CSC_Segm_NumOfClus_Phi_EC
TH1F * m_h1CSC_Segm_NumOfClus_Phi_EC
Definition: CSCSegmValAlg.h:150
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TH1
Definition: rootspy.cxx:268
CSCSegmValAlg::m_h1CSC_Segm_NumOfGoodClus_Phi_EA
TH1F * m_h1CSC_Segm_NumOfGoodClus_Phi_EA
Definition: CSCSegmValAlg.h:143
CSCSegmValAlg::m_segmOview_EA
std::unique_ptr< MonGroup > m_segmOview_EA
Definition: CSCSegmValAlg.h:72
CSCSegmValAlg::m_h2CSC_Segm_QsumOfGoodClusMap_Eta_EC
TH2F * m_h2CSC_Segm_QsumOfGoodClusMap_Eta_EC
Definition: CSCSegmValAlg.h:114
CSCSegmValAlg::m_h2CSC_Segm_TimeOfGoodClusMap_Eta_EC
TH2F * m_h2CSC_Segm_TimeOfGoodClusMap_Eta_EC
Definition: CSCSegmValAlg.h:117
MuonSegment.h
CSCSegmValAlg::m_h1CSC_Segm_StatOfClus_Eta_EA
TH1F * m_h1CSC_Segm_StatOfClus_Eta_EA
Definition: CSCSegmValAlg.h:119
CSCSegmValAlg::m_h1CSC_Segm_QsumOfClus_Eta_EA
TH1F * m_h1CSC_Segm_QsumOfClus_Eta_EA
Definition: CSCSegmValAlg.h:122
Muon::MuonSegment
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonSegment/MuonSegment/MuonSegment.h:45
CSCSegmValAlg::m_h1CSC_Segm_TimeOfGoodClus_Phi_EC
TH1F * m_h1CSC_Segm_TimeOfGoodClus_Phi_EC
Definition: CSCSegmValAlg.h:155
CSCSegmValAlg::m_h2CSC_Segm_TimeOfGoodClusMap_Eta_EA
TH2F * m_h2CSC_Segm_TimeOfGoodClusMap_Eta_EA
Definition: CSCSegmValAlg.h:116
CSCSegmValAlg::m_h1CSC_Segm_QsumOfClus_Phi_EC
TH1F * m_h1CSC_Segm_QsumOfClus_Phi_EC
Definition: CSCSegmValAlg.h:152
CSCSegmValAlg::m_h2CSC_Segm_NumOfSegs_EC
TH2F * m_h2CSC_Segm_NumOfSegs_EC
Definition: CSCSegmValAlg.h:102
CSCSegmValAlg::m_trigDec
ToolHandle< Trig::TrigDecisionTool > m_trigDec
Definition: CSCSegmValAlg.h:88
CSCSegmValAlg::m_h1CSC_Segm_QsumOfGoodClus_Phi_EA
TH1F * m_h1CSC_Segm_QsumOfGoodClus_Phi_EA
Definition: CSCSegmValAlg.h:145
IMuonIdHelperSvc.h
SegmentCollection.h
CSCSegmValAlg::m_h1CSC_Segm_NumOfClus_Eta_EC
TH1F * m_h1CSC_Segm_NumOfClus_Eta_EC
Definition: CSCSegmValAlg.h:128
ServiceHandle< Muon::IMuonEDMHelperSvc >
CSCSegmValAlg::setCSCLayerLabels
void setCSCLayerLabels(TH1 *h, int m_side)
Definition: CSCSegmValAlg.cxx:800