]>
Commit | Line | Data |
---|---|---|
4d610fd5 | 1 | #ifndef ALIMUONALIGNMENTTASK_H |
2 | #define ALIMUONALIGNMENTTASK_H | |
81f1d3ae | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
4d610fd5 | 5 | |
81f1d3ae | 6 | // $Id$ |
7 | ||
8 | /// \ingroup calign | |
4d610fd5 | 9 | /// \class AliMUONAlignmentTask |
10 | /// \brief Task to align the muon spectrometer | |
11 | /// | |
12 | // Author Javier Castillo, CEA/Saclay - Irfu/SPhN | |
13 | ||
14 | class TList; | |
56218672 | 15 | class TString; |
4d610fd5 | 16 | class TGraphErrors; |
56218672 | 17 | class TClonesArray; |
4d610fd5 | 18 | class AliMUONAlignment; |
81f1d3ae | 19 | class AliMUONGeometryTransformer; |
4d610fd5 | 20 | |
56218672 | 21 | #include "AliAnalysisTaskSE.h" |
4d610fd5 | 22 | |
56218672 | 23 | class AliMUONAlignmentTask : public AliAnalysisTaskSE |
24 | { | |
25 | ||
26 | public: | |
27 | ||
28 | ||
29 | /// constructor | |
30 | AliMUONAlignmentTask(const char *name = "AliMUONAlignmentTask", const char *newalignocdb = "local://ReAlignOCDB", const char *oldalignocdb = "none", const char *defaultocdb = "raw://", const char *geofilename = "geometry.root"); | |
31 | ||
32 | /// copy constructor | |
4d610fd5 | 33 | AliMUONAlignmentTask(const AliMUONAlignmentTask& obj); |
56218672 | 34 | |
35 | /// asignment operator | |
36 | AliMUONAlignmentTask& operator=(const AliMUONAlignmentTask& other); | |
37 | ||
38 | /// destructor | |
4d610fd5 | 39 | virtual ~AliMUONAlignmentTask(); |
56218672 | 40 | |
4d610fd5 | 41 | virtual void LocalInit(); |
56218672 | 42 | |
43 | ///@name flags | |
44 | //@{ | |
45 | ||
46 | /// perform alignment from alignment records is true. Use ESD tracks otherwise | |
47 | void SetReadRecords( Bool_t value = kTRUE ) | |
48 | { fReadRecords = value; } | |
49 | ||
50 | /// write alignment records to AOD if true | |
51 | void SetWriteRecords( Bool_t value = kTRUE ) | |
52 | { fWriteRecords = value; } | |
53 | ||
54 | /// perform alignment (from either tracks or records depending on fReadRecords) | |
55 | void SetDoAlignment( Bool_t value ) | |
56 | { fDoAlignment = value; } | |
57 | ||
58 | //@} | |
59 | ||
60 | /// output data | |
61 | virtual void UserCreateOutputObjects(); | |
62 | ||
63 | /// per-event method | |
64 | virtual void UserExec(Option_t *option); | |
65 | virtual void NotifyRun(); | |
66 | ||
67 | /// termination cleanup | |
68 | virtual void Terminate(const Option_t*); | |
69 | ||
70 | /// end of task execution | |
71 | virtual void FinishTaskOutput(); | |
cd8521dd | 72 | |
73 | /// Set geoemetry file name | |
56218672 | 74 | void SetGeoFilename(const char* geoFilename) |
75 | {fGeoFilename = geoFilename;} | |
76 | ||
cd8521dd | 77 | /// Set default ocdb |
56218672 | 78 | void SetDefaultStorage(const char* defaultOCDB) |
79 | {fDefaultStorage = defaultOCDB;} | |
80 | ||
81 | /// Set mis align ocdb | |
82 | void SetOldAlignStorage(const char* oldalignOCDB) | |
83 | {fOldAlignStorage = oldalignOCDB;} | |
84 | ||
85 | /// Set mis align ocdb | |
86 | void SetNewAlignStorage(const char* newalignOCDB) | |
87 | {fNewAlignStorage = newalignOCDB;} | |
88 | ||
89 | /// Flag to set OCDB once at first notify | |
90 | void SetLoadOCDBOnce(Bool_t loadOCDBOnce = kTRUE) | |
91 | {fLoadOCDBOnce = loadOCDBOnce;} | |
92 | ||
93 | private: | |
94 | ||
95 | ///@name flags | |
96 | //@{ | |
97 | ||
98 | /// perform alignment from alignment records is true. Use ESD tracks otherwise | |
99 | Bool_t fReadRecords; | |
100 | ||
101 | /// write alignment records to AOD if true | |
102 | Bool_t fWriteRecords; | |
103 | ||
104 | /// perform alignment (from either tracks or records depending on fReadRecords) | |
105 | Bool_t fDoAlignment; | |
106 | ||
107 | //@} | |
108 | ||
109 | /// The MUON alignment object | |
110 | AliMUONAlignment *fAlign; | |
111 | ||
112 | /// Geometry file name | |
113 | TString fGeoFilename; | |
114 | ||
115 | /// location of the default OCDB storage | |
116 | TString fDefaultStorage; | |
117 | ||
118 | /// location of the OCDB storage where to find old MUON/Align/Data (use the default one if empty) | |
119 | TString fOldAlignStorage; | |
120 | ||
121 | /// location of the OCDB storage where to put new MUON/Align/Data (use the default one if empty) | |
122 | TString fNewAlignStorage; | |
123 | ||
124 | /// geometry transformer used to recontruct the present data | |
125 | AliMUONGeometryTransformer* fOldGeoTransformer; | |
126 | ||
127 | /// new geometry transformer containing the new alignment to be applied | |
128 | AliMUONGeometryTransformer* fNewGeoTransformer; | |
129 | ||
130 | Bool_t fLoadOCDBOnce; | |
131 | Bool_t fOCDBLoaded; | |
132 | ||
133 | /// Total number of track read | |
134 | Int_t fTrackTot; | |
135 | ||
136 | /// Number of tracks used for alignment | |
137 | Int_t fTrackOk; | |
138 | ||
139 | /// Last run number | |
140 | Int_t fLastRunNumber; | |
141 | ||
142 | /// Array of alignment parameters | |
143 | Double_t fParameters[4*156]; | |
144 | ||
145 | /// Array of alignment parameters errors | |
146 | Double_t fErrors[4*156]; | |
147 | ||
148 | /// Array of alignment parameters pulls | |
149 | Double_t fPulls[4*156]; | |
150 | ||
151 | /// Graph of translations along x | |
152 | TGraphErrors *fMSDEx ; | |
153 | ||
154 | /// Graph of translations along y | |
155 | TGraphErrors *fMSDEy ; | |
156 | ||
157 | /// Graph of translations along z | |
158 | TGraphErrors *fMSDEz ; | |
159 | ||
160 | /// Graph of rotation about z | |
161 | TGraphErrors *fMSDEp; | |
162 | ||
163 | /// list of graphs | |
164 | TList *fList; | |
165 | ||
166 | /// list of track records | |
167 | TClonesArray *fRecords; | |
168 | ||
169 | /// number of records | |
170 | Int_t fRecordCount; | |
171 | ||
172 | ClassDef(AliMUONAlignmentTask, 3) | |
173 | ||
4d610fd5 | 174 | }; |
175 | ||
176 | #endif |