1 #ifndef ALIITSMISALIGNMAKER_H
2 #define ALIITSMISALIGNMAKER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //------------------------------------------------------------------------
10 // This class is a helper, producing ITS aligmnent objects.
11 // It provides also some useful functions
12 // See the parameters of the misalignment at the end of this script.
14 // Main author: L. Gaudichet
15 // Contact: andrea.dainese@lnl.infn.it
17 //------------------------------------------------------------------------
21 #include <TClonesArray.h>
24 //-------------------------------------------------------------------------
25 class AliITSMisalignMaker : public TObject {
28 AliITSMisalignMaker();
30 ~AliITSMisalignMaker() {};
32 TClonesArray* GetArray() {return &fAlobj;}
34 void SetSeed(Int_t seed) {fRnd.SetSeed(seed); return;}
36 Int_t AddAlignObj(char* name,Double_t dx,Double_t dy,Double_t dz,
37 Double_t dpsi,Double_t dtheta,Double_t dphi,
40 Int_t AddAlignObj(Int_t lay,Double_t dx,Double_t dy,Double_t dz,
41 Double_t dpsi,Double_t dtheta,Double_t dphi,
44 Int_t AddAlignObj(Int_t lay,Int_t ladd,Double_t dx,Double_t dy,Double_t dz,
45 Double_t dpsi,Double_t dtheta,Double_t dphi,
48 Int_t AddSectorAlignObj(Int_t sectMin,Int_t sectMax,
49 Double_t dx,Double_t dy,Double_t dz,
50 Double_t dpsi,Double_t dtheta,Double_t dphi,
51 Double_t xShift,Double_t yShift,Double_t zShift,
52 Double_t psiShift,Double_t thetaShift,Double_t phiShift,
55 TString GetSymbName(Int_t layer) const;
56 TString GetSymbName(Int_t layer,Int_t ladd) const;
57 TString GetHalfStaveLadderSymbName(Int_t layer,Int_t ladd,Int_t halfStave) const;
58 TString GetSymbName(Int_t layer,Int_t ladd,Int_t mod) const;
59 Double_t GaussCut(Double_t mean,Double_t sigma,Double_t cutn);
61 static Int_t GetNLayers() {return kNLayers;}
62 static Int_t GetNLadders(Int_t lay) {return fgkNLadders[lay];}
63 static Int_t GetNDetectors(Int_t lay) {return fgkNDetectors[lay];}
66 TRandom3 fRnd; // TRandom object
67 Int_t fInd; // index of current AliAlignObjParams in fAlobj
68 TClonesArray fAlobj; // array of AliAlignObjParams
69 TString fStrSPD; // name of SPD
70 TString fStrSDD; // name of SDD
71 TString fStrSSD; // name of SSD
72 TString fStrStave; // name of SPD stave
73 TString fStrHalfStave; // name of SPD half-stave
74 TString fStrLadder; // name of SPD ladder
75 TString fStrSector; // name of SPD sector
76 TString fStrSensor; // name of sensitive volume
79 enum {kNLayers = 6}; // The number of layers.
80 static const Int_t fgkNLadders[kNLayers]; // Array of the number of ladders/layer(layer)
81 static const Int_t fgkNDetectors[kNLayers];// Array of the number of detector/ladder(layer)
83 ClassDef(AliITSMisalignMaker,1) //ITS Misalign Maker