ATLAS Offline Software
TRTCalibrator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRT_CALIBTOOLS__TRTCALIBRATOR_H
6 #define TRT_CALIBTOOLS__TRTCALIBRATOR_H
7 
8 /********************************************************************
9 
10  NAME: TRTCalibrator.h
11 PACKAGE: TRTCalibTools
12 
13 AUTHORS: Johan Lundquist
14 CREATED: 27-03-2009
15 
16 PURPOSE: Tool for calibrating the TRT
17 
18 ********************************************************************/
19 
20 
26 #include "GaudiKernel/ToolHandle.h"
27 #include "GaudiKernel/ServiceHandle.h"
28 
29 #include <string>
30 #include <vector>
31 #include <map>
32 #include <set>
33 
34 class AtlasDetectorID;
35 class TRT_ID;
36 class TFile;
37 namespace InDetDD{
38  class TRT_DetectorManager;
39 }
40 
44 class TRTCalibrator : virtual public ITRTCalibrator, public AthAlgTool {
45 public:
46 
50  TRTCalibrator(const std::string& type, const std::string& name, const IInterface* parent);
51 
55  virtual ~TRTCalibrator() {}
56 
75  virtual StatusCode initialize() override;
76  virtual StatusCode finalize() override;
77 
78  virtual bool fill(const Trk::Track* aTrack, TRT::TrackInfo* output) override;
79 
80  bool IncludedLevels(std::string, int*);
81 
85  std::string SubLev(std::string, int);
86 
90  bool IsSubLev(const std::string&, int, const std::string&);
91 
95  void DumpStrawData(int);
96 
100  int GetSubLevels(const std::string&, int, std::set<int>*);
101 
105  void MakeBDKeys(int, int, int, int, int, int);
106 
110  virtual bool calibrate ATLAS_NOT_THREAD_SAFE () override;
111 
112 private:
114  const TRT_ID* m_TRTID;
116  ToolHandle<ITRT_CalDbTool> m_trtcaldbTool ;
118  ToolHandle<ITRT_StrawStatusSummaryTool> m_TRTStrawSummaryTool;
123  unsigned int m_numOfHitsTotal ;
124  unsigned int m_numOfHitsAccepted ;
125  unsigned int m_numOfProcessedTracks ;
126 
127 
128  std::string m_comTimeName;
129  int m_minrt; int m_mint0; int m_nevents; float m_t0offset;
134 
135  std::string m_calsub;
136  std::string m_rtbinning;
137  std::string m_selstring;
138  std::string m_options;
139  std::string m_hittuple; std::string m_rtrel;
141  std::string m_ntrtmanager;
142  std::vector<std::string> m_doRt;
143  std::vector<std::string> m_doT0;
144  std::vector<std::string> m_doRes;
145  std::vector<std::string> m_beQuiet;
146  std::vector<std::string> m_useBoardRef;
148  bool m_useP0;
149  bool m_floatP3;
152  std::vector<std::string> m_doLogPrint;
153  std::vector<std::string> m_doOutPrint;
154  std::vector<std::string> m_doRtPrint;
155 
157  class BDzero{public: int z;}; class BDstraw{public: std::map<std::string,BDzero> s;}; class BDchip{public: std::map<std::string,BDstraw> c;}; class BDboard{public: std::map<std::string,BDchip> b;}; class BDmodule{public: std::map<std::string,BDboard> m;}; class BDlayer{public: std::map<std::string,BDmodule> l;}; class BDdetector{public: std::map<std::string,BDlayer> d;}; class BDTRT{public: std::map<std::string,BDdetector> t;}; BDTRT m_trt;
167  BDTRT m_trt_acc;
169 
170 
171  class epdata{
172  public:
174  };
175 
176  struct conf {
177  std::string Selstring, Options;
179  std::map< std::string,std::set<int> > selections;//TRTsel, detsel, laysel, modsel, brdsel, chpsel, stwsel;
180  };
181  std::map<std::string,conf> m_config;
182 
183  enum {CALIB_ALL=-3, CALIB_NONE=-4};
184 
185 
186 };
187 
188 #endif // TRT_CALIBTOOLS__TRTCALIBRATOR_H
TRTCalibrator::m_maxTimeResidual
float m_maxTimeResidual
Definition: TRTCalibrator.h:120
TRTCalibrator::CALIB_ALL
@ CALIB_ALL
Definition: TRTCalibrator.h:183
TRTCalibrator::epdata
Definition: TRTCalibrator.h:171
TRTCalibrator::m_calsub
std::string m_calsub
Definition: TRTCalibrator.h:135
TRTCalibrator::BDmodule::m
std::map< std::string, BDboard > m
Definition: TRTCalibrator.h:162
TRTCalibrator::epdata::track
float track
Definition: TRTCalibrator.h:173
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
TRTCalibrator::m_beQuiet
std::vector< std::string > m_beQuiet
Definition: TRTCalibrator.h:145
TRTCalibrator::finalize
virtual StatusCode finalize() override
Definition: TRTCalibrator.cxx:255
TRTCalibrator::epdata::ttrack
float ttrack
Definition: TRTCalibrator.h:173
TRTCalibrator::m_floatP3
bool m_floatP3
Definition: TRTCalibrator.h:149
TRTCalibrator::conf::selections
std::map< std::string, std::set< int > > selections
Definition: TRTCalibrator.h:179
TRTCalibrator::BDTRT::t
std::map< std::string, BDdetector > t
Definition: TRTCalibrator.h:165
TRTCalibrator::m_TRTID
const TRT_ID * m_TRTID
Definition: TRTCalibrator.h:114
TRTCalibrator::BDstraw::s
std::map< std::string, BDzero > s
Definition: TRTCalibrator.h:159
TRTCalibrator::m_Dkey
std::string m_Dkey
Definition: TRTCalibrator.h:156
TRTCalibrator::m_Dkey_acc
std::string m_Dkey_acc
Definition: TRTCalibrator.h:156
TRTCalibrator::BDdetector::d
std::map< std::string, BDlayer > d
Definition: TRTCalibrator.h:164
TRTCalibrator::m_minTimebinsOverThreshold
int m_minTimebinsOverThreshold
Definition: TRTCalibrator.h:121
TRTCalibrator::m_t0offset
float m_t0offset
The t0 offset.
Definition: TRTCalibrator.h:133
TRTCalibrator::BDzero
dummy dictionary class
Definition: TRTCalibrator.h:158
TRTCalibrator::m_maxTrackChisquarePerDof
float m_maxTrackChisquarePerDof
Definition: TRTCalibrator.h:122
TRTCalibrator::m_doOutPrint
std::vector< std::string > m_doOutPrint
Definition: TRTCalibrator.h:153
TRTCalibrator::epdata::nhits
float nhits
Definition: TRTCalibrator.h:173
TRTCalibrator::m_trt_acc
BDTRT m_trt_acc
instance if the dictionary class for the full TRT
Definition: TRTCalibrator.h:168
TRTCalibrator::m_DetID
const AtlasDetectorID * m_DetID
Definition: TRTCalibrator.h:113
TRTCalibrator::ATLAS_NOT_THREAD_SAFE
virtual bool calibrate ATLAS_NOT_THREAD_SAFE() override
Method for doing the actual calibration.
TRTCalibrator::epdata::t0
float t0
Definition: TRTCalibrator.h:173
TRTCalibrator::m_config
std::map< std::string, conf > m_config
Definition: TRTCalibrator.h:181
TRTCalibrator::conf::Options
std::string Options
Definition: TRTCalibrator.h:177
TRT::TrackInfo
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:83
TRTCalibrator::BDchip::c
std::map< std::string, BDstraw > c
Definition: TRTCalibrator.h:160
TRTCalibrator::m_DoArXenonSep
bool m_DoArXenonSep
Definition: TRTCalibrator.h:151
TRTCalibrator::m_rtrel
std::string m_rtrel
the rt relation to use
Definition: TRTCalibrator.h:140
TRTCalibrator::m_useP0
bool m_useP0
Definition: TRTCalibrator.h:148
TRTCalibrator::m_rtbinning
std::string m_rtbinning
Definition: TRTCalibrator.h:136
ITRTCalibrator
Definition: ITRTCalibrator.h:29
TRTCalibrator::m_nevents
int m_nevents
The number of hits or histograms read from the input file.
Definition: TRTCalibrator.h:132
TRTCalibrator::m_comTimeName
std::string m_comTimeName
Definition: TRTCalibrator.h:128
TRTCalibrator::m_minrt
int m_minrt
minimum number of hits required to do R-t calibration
Definition: TRTCalibrator.h:130
ITRT_StrawStatusSummaryTool.h
abstract interface to TRT straw status constants
TRTCalibrator::m_mint0
int m_mint0
minimum number of hits required to do T0 calibration
Definition: TRTCalibrator.h:131
TRTCalibrator::BDlayer::l
std::map< std::string, BDmodule > l
Definition: TRTCalibrator.h:163
TRTCalibrator::conf::Selstring
std::string Selstring
Definition: TRTCalibrator.h:177
TRTCalibrator::MakeBDKeys
void MakeBDKeys(int, int, int, int, int, int)
makes the key strings for a sub-module
Definition: TRTCalibrator.cxx:350
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRTCalibrator::conf
Definition: TRTCalibrator.h:176
AthAlgTool.h
TRTCalibrator::epdata::ephase1
float ephase1
Definition: TRTCalibrator.h:173
TRTCalibrator::m_TRTStrawSummaryTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawSummaryTool
The ConditionsSummaryTool.
Definition: TRTCalibrator.h:118
TRTCalibrator::m_Skey
std::string m_Skey
Definition: TRTCalibrator.h:156
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TRTCalibrator::m_doT0
std::vector< std::string > m_doT0
Definition: TRTCalibrator.h:143
TRTCalibrator::m_doRtPrint
std::vector< std::string > m_doRtPrint
Definition: TRTCalibrator.h:154
TRTCalibrator::m_SplitBarrel
bool m_SplitBarrel
Definition: TRTCalibrator.h:147
TRTCalibrator::conf::PrintLog
std::vector< std::string > PrintLog
Definition: TRTCalibrator.h:178
TRTCalibrator::m_doLogPrint
std::vector< std::string > m_doLogPrint
Definition: TRTCalibrator.h:152
TRTCalibrator::m_selstring
std::string m_selstring
Definition: TRTCalibrator.h:137
TRTCalibrator::BDzero::z
int z
Definition: TRTCalibrator.h:158
TRTCalibrator::SubLev
std::string SubLev(std::string, int)
return sub-level i from a selection string with the form _X_X_X_X_X_X_X
Definition: TRTCalibrator.cxx:261
ITRT_CalDbTool.h
abstract interface to TRT calibration constants
TRTCalibrator::IncludedLevels
bool IncludedLevels(std::string, int *)
TRTCalibrator::m_numOfProcessedTracks
unsigned int m_numOfProcessedTracks
Definition: TRTCalibrator.h:125
merge.output
output
Definition: merge.py:17
TRTCalibrator::conf::FitResidual
std::vector< std::string > FitResidual
Definition: TRTCalibrator.h:178
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TRTCalibrator::m_doRes
std::vector< std::string > m_doRes
Definition: TRTCalibrator.h:144
TRTCalibrator::m_maxDistance
float m_maxDistance
Definition: TRTCalibrator.h:119
TRTCalibrator::conf::CalibrateRt
std::vector< std::string > CalibrateRt
Definition: TRTCalibrator.h:178
TRTCalibrator::conf::PrintRtOut
std::vector< std::string > PrintRtOut
Definition: TRTCalibrator.h:178
TRTCalibrator::m_trtmanager
const InDetDD::TRT_DetectorManager * m_trtmanager
Definition: TRTCalibrator.h:115
TRTCalibrator::m_ntrtmanager
std::string m_ntrtmanager
Definition: TRTCalibrator.h:141
TRTCalibrator::epdata::event
float event
Definition: TRTCalibrator.h:173
ITRT_StrawNeighbourSvc.h
Abstract interface to information on straws electronic grouping.
TRTCalibrator::m_neighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_neighbourSvc
Definition: TRTCalibrator.h:117
TRTCalibrator::m_numOfHitsAccepted
unsigned int m_numOfHitsAccepted
Definition: TRTCalibrator.h:124
TRT_ID
Definition: TRT_ID.h:84
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
TRTCalibrator::m_doRt
std::vector< std::string > m_doRt
Definition: TRTCalibrator.h:142
TRTCalibrator::m_trt
BDTRT m_trt
instance if the dictionary class for the full TRT
Definition: TRTCalibrator.h:166
TRTCalibrator::m_Mkey
std::string m_Mkey
Definition: TRTCalibrator.h:156
TRTCalibrator::epdata::run
float run
Definition: TRTCalibrator.h:173
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
TRTCalibrator::CALIB_NONE
@ CALIB_NONE
Definition: TRTCalibrator.h:183
TRTCalibrator::m_Bkey
std::string m_Bkey
Definition: TRTCalibrator.h:156
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TRTCalibrator::m_Tkey
std::string m_Tkey
Definition: TRTCalibrator.h:156
TRTCalibrator::m_Ckey
std::string m_Ckey
Definition: TRTCalibrator.h:156
TRTCalibrator::m_DoShortStrawCorrection
bool m_DoShortStrawCorrection
Definition: TRTCalibrator.h:150
TRTCalibrator::m_options
std::string m_options
Definition: TRTCalibrator.h:138
TRTCalibrator::~TRTCalibrator
virtual ~TRTCalibrator()
Destructor.
Definition: TRTCalibrator.h:55
TRTCalibrator::m_numOfHitsTotal
unsigned int m_numOfHitsTotal
Definition: TRTCalibrator.h:123
ITRTCalibrator.h
TRTCalibrator::conf::CalibrateT0
std::vector< std::string > CalibrateT0
Definition: TRTCalibrator.h:178
TRTCalibrator::conf::PrintT0Out
std::vector< std::string > PrintT0Out
Definition: TRTCalibrator.h:178
TRTCalibrator::BDboard::b
std::map< std::string, BDchip > b
Definition: TRTCalibrator.h:161
TRTCalibrator::initialize
virtual StatusCode initialize() override
Pre-define standard calibration configuration.
Definition: TRTCalibrator.cxx:112
TRTCalibrator::m_hittuple
std::string m_hittuple
Definition: TRTCalibrator.h:139
TRTCalibrator::m_useBoardRef
std::vector< std::string > m_useBoardRef
Definition: TRTCalibrator.h:146
TRTCalibrator::DumpStrawData
void DumpStrawData(int)
returns true if the ...
Definition: TRTCalibrator.cxx:273
TRTCalibrator::TRTCalibrator
TRTCalibrator(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: TRTCalibrator.cxx:44
TRTCalibrator::fill
virtual bool fill(const Trk::Track *aTrack, TRT::TrackInfo *output) override
Definition: TRTCalibrator.cxx:1036
TRTCalibrator::GetSubLevels
int GetSubLevels(const std::string &, int, std::set< int > *)
fills a set of integers with the indexes af the sub-modules that are conatined in a selection
Definition: TRTCalibrator.cxx:305
TRTCalibrator::m_trtcaldbTool
ToolHandle< ITRT_CalDbTool > m_trtcaldbTool
Definition: TRTCalibrator.h:116
AthAlgTool
Definition: AthAlgTool.h:26
TRTCalibrator::m_Lkey
std::string m_Lkey
Definition: TRTCalibrator.h:156
TRTCalibrator::conf::NoHistograms
std::vector< std::string > NoHistograms
Definition: TRTCalibrator.h:178
TRTCalibrator::IsSubLev
bool IsSubLev(const std::string &, int, const std::string &)
returns true if the ...
Definition: TRTCalibrator.cxx:290
TRTCalibrator::epdata::t
float t
Definition: TRTCalibrator.h:173
TRTCalibrator
The TRTCalibrator is called from TRTCalibrationMgr.
Definition: TRTCalibrator.h:44
TRTCalibrator::m_Lkey_acc
std::string m_Lkey_acc
Definition: TRTCalibrator.h:156
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
TRTCalibrator::epdata::ephase2
float ephase2
Definition: TRTCalibrator.h:173
ServiceHandle< ITRT_StrawNeighbourSvc >