]>
Commit | Line | Data |
---|---|---|
3b61c716 | 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 */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | //------------------------------------------------------------------------ | |
9 | // | |
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. | |
13 | // | |
14 | // Main author: L. Gaudichet | |
15 | // Contact: andrea.dainese@lnl.infn.it | |
16 | // | |
17 | //------------------------------------------------------------------------ | |
18 | ||
19 | #include <TRandom3.h> | |
20 | #include <TString.h> | |
21 | #include <TClonesArray.h> | |
22 | ||
23 | ||
24 | //------------------------------------------------------------------------- | |
25 | class AliITSMisalignMaker : public TObject { | |
26 | ||
27 | public: | |
28 | AliITSMisalignMaker(); | |
29 | ||
30 | ~AliITSMisalignMaker() {}; | |
31 | ||
32 | TClonesArray* GetArray() {return &fAlobj;} | |
33 | ||
34 | void SetSeed(Int_t seed) {fRnd.SetSeed(seed); return;} | |
35 | ||
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, | |
38 | Bool_t unif); | |
39 | ||
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, | |
42 | Bool_t unif); | |
43 | ||
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, | |
46 | Bool_t unif); | |
47 | ||
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, | |
53 | Bool_t unif); | |
54 | ||
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); | |
60 | ||
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];} | |
64 | ||
65 | protected: | |
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 | |
77 | ||
78 | private: | |
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) | |
82 | ||
83 | ClassDef(AliITSMisalignMaker,1) //ITS Misalign Maker | |
84 | }; | |
85 | ||
86 | ||
87 | #endif | |
88 |