1 #ifndef AliTRDCALSTACKPOS_H
2 #define AliTRDCALSTACKPOS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 ///////////////////////////////////////////////////////////////////////////////
10 // TRD calibration class for position parameters of the stacks and chambers //
12 ///////////////////////////////////////////////////////////////////////////////
16 class AliTRDCalStackPos : public TNamed {
18 enum { kNdet = 540, kNstacks = 90, kNcham = 5, kNsect = 18 };
21 AliTRDCalStackPos(const Text_t* name, const Text_t* title);
23 const Float_t* GetStackPos(Int_t chamber, Int_t sector) const { return fStackPos[GetStackNumber(chamber, sector)]; };
24 const Float_t* GetStackRot(Int_t chamber, Int_t sector) const { return fStackPos[GetStackNumber(chamber, sector)]; };
26 inline void SetPos(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z);
27 void SetPos(Int_t chamber, Int_t sector, Float_t* xyz) { SetPos(chamber, sector, xyz[0], xyz[1], xyz[2]); };
29 inline void SetRot(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z);
30 void SetRot(Int_t chamber, Int_t sector, Float_t* xyz) { SetRot(chamber, sector, xyz[0], xyz[1], xyz[2]); };
33 static Int_t GetStackNumber(Int_t chamber, Int_t sector) { return chamber+sector*kNcham; };
35 Float_t fStackPos[kNstacks][3]; // Deviations of the positions of the stacks from the ideal position
36 Float_t fStackRot[kNstacks][3]; // Rotation of the stacks in respect to the ideal position
38 ClassDef(AliTRDCalStackPos,1)
41 void AliTRDCalStackPos::SetPos(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z)
43 Int_t stack = GetStackNumber(chamber, sector);
44 fStackPos[stack][0] = x;
45 fStackPos[stack][1] = y;
46 fStackPos[stack][2] = z;
49 void AliTRDCalStackPos::SetRot(Int_t chamber, Int_t sector, Float_t x, Float_t y, Float_t z)
51 Int_t stack = GetStackNumber(chamber, sector);
52 fStackRot[stack][0] = x;
53 fStackRot[stack][1] = y;
54 fStackRot[stack][2] = z;