]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSMisalignMaker.h
removinf effc++ warnings (Marian)
[u/mrichter/AliRoot.git] / ITS / AliITSMisalignMaker.h
CommitLineData
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//-------------------------------------------------------------------------
25class AliITSMisalignMaker : public TObject {
26
27public:
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
65protected:
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
78private:
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