forked from ALICEHLT/AliRoot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAliTOFAlignment.h
More file actions
86 lines (70 loc) · 3.84 KB
/
AliTOFAlignment.h
File metadata and controls
86 lines (70 loc) · 3.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#ifndef ALITOFALIGNMENT_H
#define ALITOFALIGNMENT_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
//////////////////////////////////////////////////////////////////
// class for TOF Alignment:: //
//////////////////////////////////////////////////////////////////
//#include <TObject.h>
//#include <TString.h>
#include "TTask.h"
//#include "TGeoManager.h"
//#include "TGeoVolume.h"
//#include "TGeoBBox.h"
//#include "TGeoTrd1.h"
//#include "TGeoPhysicalNode.h"
//#include "TGeoNode.h"
//#include "TGeoMatrix.h"
class TGeoManager;
class TObjArray;
class TString;
class TGeoMatrix;
class TGeoManager;
class TGeoHMatrix;
class AliTOFAlignment :public TTask{
enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects
public:
AliTOFAlignment();
AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor
AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator
virtual ~AliTOFAlignment();
virtual void WriteParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
virtual void ReadParFromCDB(const Char_t *sel, Int_t nrun);
virtual void WriteSimParOnCDB(const Char_t *sel, Int_t minrun, Int_t maxrun);
virtual void ReadSimParFromCDB(const Char_t *sel, Int_t nrun);
virtual void Smear(Float_t * const tr=0, Float_t * const rot=0); // create a set of AlignObj for TOF
virtual void Align(Float_t * const tr=0, Float_t * const rot=0); // create a set of AlignObj for TOF
TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
//methods for survey
virtual void WriteOnCDBforDC();
virtual void ReadFromCDBforDC();
virtual void BuildGeomForSurvey(); //Build ideal geometry (FTOA in BTOF)
virtual void InsertMisAlignment(Float_t * const mis); //To test align. from Survey
virtual void MakeDefData(const Int_t nf,TString namefiles[]); //Combines survey data from different files
virtual void WriteCombData(const Char_t *nomefile, Int_t option); //Write combined data on a file
virtual void ReadSurveyDataAndAlign(); //Read survey data and call the right Alignement procedure
virtual void WriteSimSurveyData(const Char_t *nomefile); // Write sim data in standard format
private:
static const Double_t fgkRorigTOF; //Radius of the TOF ext. volume, cm
static const Double_t fgkX1BTOF; //x1 size of BTOF
static const Double_t fgkX2BTOF; //x2 size of BTOF
static const Double_t fgkYBTOF; //y size of BTOF
static const Double_t fgkZBTOF; //z size of BTOF
// Four fiducial marks on SM, expressed in local coordinates (origin=center of TOF SM)
// They are positioned at x=+/- 38 cm, y=+/- 457.3 cm, z=11.2 cm
static const Double_t fgkXFM; //x pos of FM in BTOF, cm
static const Double_t fgkYFM; //y pos of FM in BTOF, cm
static const Double_t fgkZFM; //z pos of FM in BTOF, cm
Int_t fNTOFAlignObj; //Number of Alignable Objects
TGeoManager *fTOFmgr; //Pointer to TGeoManager
TObjArray *fTOFAlignObjArray; //Pointer to the TOF alignable objects
TGeoHMatrix* fTOFMatrixId[18]; //Ideal Matrices of TOF Volumes in the GRS
Float_t fCombFMData[72][6]; //Combined survey data
Int_t fNFMforSM[18][5]; //Number of FM for each SM
void AlignFromSurveyABC(Int_t iSM); //From Survey data of FM ABC, derive the needed transformations to get the Alignment Objects.
void AlignFromSurveyABD(Int_t iSM); //From Survey data of FM ABD, derive the needed transformations to get the Alignment Objects.
void AlignFromSurveyACD(Int_t iSM); //From Survey data of FM ACD, derive the needed transformations to get the Alignment Objects.
void AlignFromSurveyBCD(Int_t iSM); //From Survey data of FM BCD, derive the needed transformations to get the Alignment Objects.
ClassDef(AliTOFAlignment,2) // TOF Alignment
};
#endif