]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSresponseSDD.h
In MUONmappingLinkDef.h:
[u/mrichter/AliRoot.git] / ITS / AliITSresponseSDD.h
1 #ifndef ALIITSRESPONSESDD_H
2 #define ALIITSRESPONSESDD_H
3  
4 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7
8 #include <TObject.h>
9 #include <AliLog.h>
10
11 /* $Id$ */
12
13 /////////////////////////////////////////////////////////////
14 //  Base settings for the ITS response classes.            //  
15 //  The data member of this class are static and set once  //
16 //  for all the modules.                                   //    
17 ///////////////////////////////////////////////////////////// 
18
19 class AliITSresponseSDD : public TObject {
20   public:
21
22     AliITSresponseSDD();
23     virtual ~AliITSresponseSDD(){};
24
25     virtual void SetSideATimeZero(Float_t tzero){
26       SetLayer3ATimeZero(tzero);
27       SetLayer4ATimeZero(tzero);
28     }
29     virtual void SetSideCTimeZero(Float_t tzero){
30       SetLayer3CTimeZero(tzero);
31       SetLayer4CTimeZero(tzero);
32     }
33     virtual void SetLayer3ATimeZero(Float_t tzero){
34       for(Int_t iLad=1; iLad<=kNLaddersLay3; iLad++) SetHalfLadderATimeZero(3,iLad,tzero);      
35     }
36     virtual void SetLayer3CTimeZero(Float_t tzero){
37       for(Int_t iLad=1; iLad<=kNLaddersLay3; iLad++) SetHalfLadderCTimeZero(3,iLad,tzero);
38     }
39     virtual void SetLayer4ATimeZero(Float_t tzero){
40       for(Int_t iLad=1; iLad<=kNLaddersLay4; iLad++) SetHalfLadderATimeZero(4,iLad,tzero);      
41     }
42     virtual void SetLayer4CTimeZero(Float_t tzero){
43       for(Int_t iLad=1; iLad<=kNLaddersLay4; iLad++) SetHalfLadderCTimeZero(4,iLad,tzero);
44     }
45     virtual void SetHalfLadderATimeZero(Int_t lay, Int_t lad, Float_t tzero);
46     virtual void SetHalfLadderCTimeZero(Int_t lay, Int_t lad, Float_t tzero);
47     virtual void SetModuleTimeZero(Int_t modIndex, Float_t tzero){
48       if(modIndex<kNSPDmods || modIndex>kNSPDmods+kNSDDmods) AliError(Form("SDD module number %d out of range",modIndex));
49       fTimeZero[modIndex-kNSPDmods]=tzero;
50     }
51
52     virtual void SetTimeOffset(Float_t to){fTimeOffset = to;}
53     virtual Float_t GetTimeOffset()const {return fTimeOffset;}
54     virtual Float_t GetTimeZero(Int_t modIndex){
55       if(modIndex<kNSPDmods || modIndex>kNSPDmods+kNSDDmods){
56         AliError(Form("SDD module number %d out of range",modIndex));
57         return 0.;
58       }
59       return fTimeZero[modIndex-kNSPDmods];
60     }
61     static Float_t DefaultTimeOffset() {return fgkTimeOffsetDefault;}
62
63     virtual void SetADC2keV(Float_t conv){fADC2keV=conv;}
64     virtual Float_t GetADC2keV()const {return fADC2keV;}
65     static Float_t DefaulttADC2keV() {return fgkADC2keVDefault;}
66
67     static Float_t GetCarlosRXClockPeriod() {return fgkCarlosRXClockPeriod;}
68  
69
70  protected:
71
72     enum {kNSPDmods = 240};
73     enum {kNSDDmods = 260};
74     enum {kNLaddersLay3 = 14};
75     enum {kNLaddersLay4 = 22};
76
77
78     static const Float_t fgkTimeOffsetDefault; // default for fTimeOffset
79     static const Float_t fgkADC2keVDefault; // default for fADC2keV
80     static const Float_t fgkCarlosRXClockPeriod;  // clock period for CarlosRX
81
82     Float_t  fTimeOffset;          // Time offset due to electronic delays 
83                                    // --> obsolete, kept for backw. comp. 
84     Float_t  fTimeZero[kNSDDmods]; // Time Zero for each module
85     Float_t  fADC2keV;             // Conversion factor from ADC to keV
86
87  private:
88
89    AliITSresponseSDD(const AliITSresponseSDD &ob); // copy constructor
90    AliITSresponseSDD& operator=(const AliITSresponseSDD & /* source */); // ass. op.
91
92     ClassDef(AliITSresponseSDD,16) 
93     
94     };
95 #endif