]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TOF/AliTOFAlignment.h
Some code cleanup
[u/mrichter/AliRoot.git] / TOF / AliTOFAlignment.h
... / ...
CommitLineData
1#ifndef ALITOFALIGNMENT_H
2#define ALITOFALIGNMENT_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//////////////////////////////////////////////////////////////////
8// class for TOF Alignment:: //
9//////////////////////////////////////////////////////////////////
10
11#include "TTask.h"
12#include "TGeoManager.h"
13#include "TGeoVolume.h"
14#include "TGeoBBox.h"
15#include "TGeoPhysicalNode.h"
16#include "TGeoNode.h"
17
18class TObjArray;
19
20class AliTOFAlignment :public TTask{
21
22 enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects
23
24 public:
25
26 AliTOFAlignment();
27 AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor
28 AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator
29 virtual ~AliTOFAlignment();
30 virtual void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
31 virtual void ReadParFromCDB(Char_t *sel, Int_t nrun);
32 virtual void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
33 virtual void ReadSimParFromCDB(Char_t *sel, Int_t nrun);
34 virtual void Smear(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF
35 virtual void Align(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF
36 virtual void WriteOnCDBforDC();
37 virtual void ReadFromCDBforDC();
38 virtual void BuildGeomForSurvey(); //Generate ideal volumes for Survey
39 virtual void AlignFromSurvey(); //Prototype to get Align Obj from Survey
40 virtual void InsertMisAlignment( Float_t *mis); //To test align. from Survey
41 TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
42
43private:
44
45
46 // This is the extended box (the TOF master sensitive volume+services)
47 static const Double_t fgkXsizeTOF; // x size of the TOF ext. volume, cm
48 static const Double_t fgkYsizeTOF; // y size of the TOF ext. volume, cm
49 static const Double_t fgkZsizeTOF; // x size of the TOF ext. volume, cm
50 static const Double_t fgkRorigTOF; // Radius of the TOF ext. volume, cm
51
52 // Four fiducial marks on SM, expressed in local coordinates (origin=center of TOF SM)
53 // They are positioned at x=+/- 38 cm, y=11.2, z=+/- 456.94 cm
54
55 static const Double_t fgkXFM; //x FM pos, cm
56 static const Double_t fgkYFM; //y FM pos, cm
57 static const Double_t fgkZFM; //z FM pos, cm
58
59 // This is the z size of the TOF master sensitive volume (it is shorter)
60 static const Double_t fgkZsizeTOFSens; //cm
61
62 Int_t fNTOFAlignObj; // Number of Alignable Objects
63 TGeoManager *fTOFmgr; //pointer to TGeoManager
64 TObjArray *fTOFAlignObjArray; // Pointer to the TOF alignable objects
65 TGeoHMatrix* fTOFMatrixId[18]; // Ideal Matrices of TOF Volumes in the GRS
66 Float_t fTOFSurveyFM[18][4][3]; // Temporary container for Survey data xyz (4/TOF SuperModule)
67 ClassDef(AliTOFAlignment,2) // TOF Alignment
68};
69
70#endif