ATLAS Offline Software
AlignAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKALIGNGENALGS_ALIGNALG_H
6 #define TRKALIGNGENALGS_ALIGNALG_H
7 
8 #include "GaudiKernel/ToolHandle.h"
10 
19 
20 
21 #include <string>
22 #include <fstream>
23 
36 namespace Trk {
37 
38  class IFillNtupleTool;
39 
40  class AlignAlg : public AthAlgorithm {
41 
42  public:
43 
46 
48  virtual ~AlignAlg();
49 
51  virtual StatusCode initialize();
52 
54  virtual StatusCode start();
55 
57  virtual StatusCode execute();
58 
60  virtual StatusCode stop();
61 
63  virtual StatusCode finalize();
64 
67 
68  private:
69 
70  ToolHandle <ITrackCollectionProvider> m_trackCollectionProvider{
71  this, "TrackCollectionProvider", "Trk::TrackCollectionProvider",
72  "tool for getting track collection from StoreGate"};
73 
75  ToolHandle<IAlignTrackPreProcessor> m_alignTrackPreProcessor{
76  this, "AlignTrackPreProcessor", "Trk::AlignTrackPreProcessor",
77  "tool for converting Trk::Track to AlignTrack after processing if necessary"};
78 
80  ToolHandle <IAlignTrackCreator> m_alignTrackCreator{
81  this, "AlignTrackCreator", "Trk::AlignTrackCreator",
82  "tool for creating AlignTSOSCollection to store on AlignTrack"};
83 
85  ToolHandle <IAlignTrackDresser> m_alignTrackDresser{
86  this, "AlignTrackDresser", "Trk::AlignTrackDresser",
87  "tool for dressing AlignTrack with residuals, derivatives, etc."};
88 
90  ToolHandle <IAlignTool> m_alignTool{
91  this, "AlignTool", "Trk::GlobalChi2AlignTool",
92  "alignment algorithm-specific tool"};
93 
95  PublicToolHandle <IGeometryManagerTool> m_geometryManagerTool{
96  this, "GeometryManagerTool", "InDet::InDetGeometryManagerTool",
97  "tool for configuring geometry"};
98 
100  ToolHandle <ITrkAlignDBTool> m_trkAlignDBTool{
101  this, "AlignDBTool", "Trk::TrkAlignDBTool", "tool for handling DB stuff"};
102 
104  ToolHandle <IFillNtupleTool> m_fillNtupleTool{
105  this, "FillNtupleTool", "",
106  "tool for storing Trk::Track information into the ntuple"};
107 
108  // various job options
109  StringProperty m_filename{this, "FileName", "Align.root", "name of ntuple file"};
110  StringProperty m_filepath{this, "FilePath", "./", "path to ntuple file"};
111 
112  BooleanProperty m_solveOnly{this, "SolveOnly", false,
113  "only do the solving (accumulate from binaries)"};
114  BooleanProperty m_writeNtuple{this, "WriteNtuple", true,
115  "write track and event information to ntuple"};
116 
117  IntegerProperty m_alignSolveLevel{this, "AlignSolveLevel", 3,
118  "Set the Alignment Solve Level"};
119 
120  TFile* m_ntuple = nullptr;
121  BooleanProperty m_writeLogfile{this, "WriteLogFile", true,
122  "write a logfile for solving"};
123  StringProperty m_logfileName{this, "LogFileName", "alignlogfile.txt",
124  "name of the logfile"};
125  std::ostream * m_logStream = nullptr;
126 
127  int m_nevents = 0;
128  int m_ntracks = 0;
129  int m_ntracksSel = 0;
130  int m_ntracksProc = 0;
131  int m_ntracksDress = 0;
132  int m_ntracksAccum = 0;
133 
134  StringProperty m_alignTracksName{this, "AlignTracksName", "AlignTracks",
135  "name of the AlignTrack collection in the StoreGate"};
136 
137  };
138 
139 } // end namespace
140 
141 #endif // TRKALIGNGENALGS_ALIGNALG_H
IAlignTrackDresser.h
Trk::AlignAlg::m_ntracksSel
int m_ntracksSel
number of selected tracks
Definition: AlignAlg.h:129
Trk::AlignAlg::m_geometryManagerTool
PublicToolHandle< IGeometryManagerTool > m_geometryManagerTool
Pointer to GeometryManagerTool, used to get lists of chambers for which alignment parameters will be ...
Definition: AlignAlg.h:95
Trk::AlignAlg::m_ntracksProc
int m_ntracksProc
number of tracks successfully processed
Definition: AlignAlg.h:130
Trk::AlignAlg::m_writeNtuple
BooleanProperty m_writeNtuple
Definition: AlignAlg.h:114
Trk::AlignAlg::m_fillNtupleTool
ToolHandle< IFillNtupleTool > m_fillNtupleTool
Pointer to FillNtupleTool, used to write track information to ntuple.
Definition: AlignAlg.h:104
IAlignTrackPreProcessor.h
Trk::AlignAlg::m_filepath
StringProperty m_filepath
Definition: AlignAlg.h:110
Trk::AlignAlg::finalize
virtual StatusCode finalize()
finalize method
Definition: AlignAlg.cxx:415
IFillNtupleTool.h
Trk::AlignAlg::m_ntracksDress
int m_ntracksDress
number of tracks successfully dressed
Definition: AlignAlg.h:131
IAlignTool.h
Trk::AlignAlg::start
virtual StatusCode start()
set up geometry and prepare the tools
Definition: AlignAlg.cxx:141
Trk::AlignAlg::initialize
virtual StatusCode initialize()
initialize method
Definition: AlignAlg.cxx:28
Trk::AlignAlg::stop
virtual StatusCode stop()
processes information accumulated in execute method to determine alignment parameters
Definition: AlignAlg.cxx:343
IAlignTrackCreator.h
Trk::AlignAlg::m_alignTrackCreator
ToolHandle< IAlignTrackCreator > m_alignTrackCreator
Pointer to alignTrackCreator, used to convert Trk::Track to vector of AlignTrack.
Definition: AlignAlg.h:80
Trk::AlignAlg::m_ntracksAccum
int m_ntracksAccum
number of tracks successfully accumulated
Definition: AlignAlg.h:132
ITrkAlignDBTool.h
Trk::AlignAlg::m_ntuple
TFile * m_ntuple
output ntuple
Definition: AlignAlg.h:120
AthAlgorithm.h
Trk::AlignAlg::m_trackCollectionProvider
ToolHandle< ITrackCollectionProvider > m_trackCollectionProvider
Definition: AlignAlg.h:70
Trk::AlignAlg::m_solveOnly
BooleanProperty m_solveOnly
Definition: AlignAlg.h:112
Trk::AlignAlg::m_trkAlignDBTool
ToolHandle< ITrkAlignDBTool > m_trkAlignDBTool
Pointer to TrkAlignDBTool, used for reading/writing alignment parameters from/to the database.
Definition: AlignAlg.h:100
Trk::AlignAlg::m_logStream
std::ostream * m_logStream
logfile output stream
Definition: AlignAlg.h:125
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IFillNtupleTool
Interface for tool used to fill an ntuple with useful information for debugging, etc....
Trk::AlignAlg::m_alignTrackDresser
ToolHandle< IAlignTrackDresser > m_alignTrackDresser
Pointer to alignTrackDresser, used to add residuals, derivatives, etc.
Definition: AlignAlg.h:85
Trk::AlignAlg::m_ntracks
int m_ntracks
number of processed tracks
Definition: AlignAlg.h:128
AthAlgorithm
Definition: AthAlgorithm.h:47
Trk::AlignAlg::m_writeLogfile
BooleanProperty m_writeLogfile
Definition: AlignAlg.h:121
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::AlignAlg::~AlignAlg
virtual ~AlignAlg()
destructor
Definition: AlignAlg.cxx:17
Trk::AlignAlg::execute
virtual StatusCode execute()
loops over tracks in event, and accumulates information necessary for alignmnet
Definition: AlignAlg.cxx:181
Trk::AlignAlg::m_alignSolveLevel
IntegerProperty m_alignSolveLevel
Definition: AlignAlg.h:117
IGeometryManagerTool.h
Trk::AlignAlg::m_alignTool
ToolHandle< IAlignTool > m_alignTool
Pointer to alignTool.
Definition: AlignAlg.h:90
Trk::AlignAlg
Definition: AlignAlg.h:40
ITrackCollectionProvider.h
Trk::AlignAlg::m_alignTrackPreProcessor
ToolHandle< IAlignTrackPreProcessor > m_alignTrackPreProcessor
Pointer to AlignTrackPreProcessor, used to select hits on tracks and/or tracks before passing to Alig...
Definition: AlignAlg.h:75
Trk::AlignAlg::m_alignTracksName
StringProperty m_alignTracksName
Definition: AlignAlg.h:134
Trk::AlignAlg::m_logfileName
StringProperty m_logfileName
Definition: AlignAlg.h:123
Trk::AlignAlg::showStatistics
void showStatistics()
dumps statistics accumulated in each event
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
Trk::AlignAlg::m_nevents
int m_nevents
number of processed events
Definition: AlignAlg.h:127
Trk::AlignAlg::m_filename
StringProperty m_filename
Definition: AlignAlg.h:109