]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TOF/AliTOFAlignment.h
Memory leak corrected (Ch. Klein-Boesing)
[u/mrichter/AliRoot.git] / TOF / AliTOFAlignment.h
CommitLineData
b33ed6c7 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"
5398b994 12#include "TGeoManager.h"
13#include "TGeoVolume.h"
14#include "TGeoBBox.h"
15#include "TGeoPhysicalNode.h"
16#include "TGeoNode.h"
0e46b9ae 17
18class TObjArray;
b33ed6c7 19
20class AliTOFAlignment :public TTask{
21
e78d8265 22 enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects
b33ed6c7 23
e78d8265 24 public:
b33ed6c7 25
e78d8265 26 AliTOFAlignment();
27 AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor
28 AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator
29 virtual ~AliTOFAlignment();
b33ed6c7 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
28dd10b6 36 virtual void WriteOnCDBforDC();
37 virtual void ReadFromCDBforDC();
7bce547d 38 virtual void BuildGeomForSurvey(); //Generate ideal volumes for Survey
5398b994 39 virtual void AlignFromSurvey(); //Prototype to get Align Obj from Survey
7bce547d 40 virtual void InsertMisAlignment( Float_t *mis); //To test align. from Survey
28dd10b6 41 TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
b33ed6c7 42
43private:
44
5398b994 45
7bce547d 46 // This is the extended box (the TOF master sensitive volume+services)
5398b994 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
7bce547d 52 // Four fiducial marks on SM, expressed in local coordinates (origin=center of TOF SM)
5398b994 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
7bce547d 63 TGeoManager *fTOFmgr; //pointer to TGeoManager
7aeeaf38 64 TObjArray *fTOFAlignObjArray; // Pointer to the TOF alignable objects
7bce547d 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)
5398b994 67 ClassDef(AliTOFAlignment,2) // TOF Alignment
b33ed6c7 68};
69
70#endif