ATLAS Offline Software
Loading...
Searching...
No Matches
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
35
36namespace 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;
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
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Interface for tool used to fill an ntuple with useful information for debugging, etc.
virtual StatusCode finalize()
finalize method
Definition AlignAlg.cxx:415
StringProperty m_filename
Definition AlignAlg.h:109
std::ostream * m_logStream
logfile output stream
Definition AlignAlg.h:125
virtual StatusCode initialize()
initialize method
Definition AlignAlg.cxx:28
virtual StatusCode start()
set up geometry and prepare the tools
Definition AlignAlg.cxx:141
virtual StatusCode stop()
processes information accumulated in execute method to determine alignment parameters
Definition AlignAlg.cxx:343
BooleanProperty m_writeLogfile
Definition AlignAlg.h:121
StringProperty m_filepath
Definition AlignAlg.h:110
ToolHandle< ITrackCollectionProvider > m_trackCollectionProvider
Definition AlignAlg.h:70
StringProperty m_alignTracksName
Definition AlignAlg.h:134
int m_ntracksProc
number of tracks successfully processed
Definition AlignAlg.h:130
ToolHandle< IAlignTool > m_alignTool
Pointer to alignTool.
Definition AlignAlg.h:90
virtual ~AlignAlg()
destructor
Definition AlignAlg.cxx:17
int m_ntracksAccum
number of tracks successfully accumulated
Definition AlignAlg.h:132
int m_nevents
number of processed events
Definition AlignAlg.h:127
virtual StatusCode execute()
loops over tracks in event, and accumulates information necessary for alignmnet
Definition AlignAlg.cxx:181
int m_ntracksSel
number of selected tracks
Definition AlignAlg.h:129
BooleanProperty m_writeNtuple
Definition AlignAlg.h:114
int m_ntracks
number of processed tracks
Definition AlignAlg.h:128
void showStatistics()
dumps statistics accumulated in each event
StringProperty m_logfileName
Definition AlignAlg.h:123
ToolHandle< IAlignTrackPreProcessor > m_alignTrackPreProcessor
Pointer to AlignTrackPreProcessor, used to select hits on tracks and/or tracks before passing to Alig...
Definition AlignAlg.h:75
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor
BooleanProperty m_solveOnly
Definition AlignAlg.h:112
PublicToolHandle< IGeometryManagerTool > m_geometryManagerTool
Pointer to GeometryManagerTool, used to get lists of chambers for which alignment parameters will be ...
Definition AlignAlg.h:95
ToolHandle< IAlignTrackDresser > m_alignTrackDresser
Pointer to alignTrackDresser, used to add residuals, derivatives, etc.
Definition AlignAlg.h:85
ToolHandle< IFillNtupleTool > m_fillNtupleTool
Pointer to FillNtupleTool, used to write track information to ntuple.
Definition AlignAlg.h:104
int m_ntracksDress
number of tracks successfully dressed
Definition AlignAlg.h:131
TFile * m_ntuple
output ntuple
Definition AlignAlg.h:120
ToolHandle< ITrkAlignDBTool > m_trkAlignDBTool
Pointer to TrkAlignDBTool, used for reading/writing alignment parameters from/to the database.
Definition AlignAlg.h:100
ToolHandle< IAlignTrackCreator > m_alignTrackCreator
Pointer to alignTrackCreator, used to convert Trk::Track to vector of AlignTrack.
Definition AlignAlg.h:80
IntegerProperty m_alignSolveLevel
Definition AlignAlg.h:117
Ensure that the ATLAS eigen extensions are properly loaded.