]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSOnlineSDDInjectors.h
First version of the SDD DA calibration classes. AliITSOnlineSDDBase - for measuremen...
[u/mrichter/AliRoot.git] / ITS / AliITSOnlineSDDInjectors.h
1 #ifndef ALIITSONLINESDDINJECTORS_H
2 #define ALIITSONLINESDDINJECTORS_H
3
4
5 ///////////////////////////////////////////////////////////////////
6 //                                                               //
7 // Class used for SDD injector analysis                           //
8 // Origin: F.Prino, Torino, prino@to.infn.it                     //
9 //                                                               //
10 ///////////////////////////////////////////////////////////////////
11 #include"AliITSOnlineSDD.h"
12
13 class TH2F;
14 class TGraphErrors;
15 class AliITSOnlineSDDInjectors : public AliITSOnlineSDD {
16
17  public:
18   AliITSOnlineSDDInjectors();      
19   AliITSOnlineSDDInjectors(Int_t mod, Int_t sid);
20   virtual ~AliITSOnlineSDDInjectors();
21
22   void SetSide(Int_t sid){fSide=sid;}
23   void SetThreshold(Float_t thr=75.){fThreshold=thr;}
24   void SetRangeLine1(Int_t tbmin=40, Int_t tbmax=90){
25     fTbMin[0]=tbmin; fTbMax[0]=tbmax; 
26   }
27   void SetRangeLine2(Int_t tbmin=90, Int_t tbmax=140){
28     fTbMin[1]=tbmin; fTbMax[1]=tbmax; 
29   }
30   void SetRangeLine3(Int_t tbmin=170, Int_t tbmax=220){
31     fTbMin[2]=tbmin; fTbMax[2]=tbmax; 
32   }
33   void SetPolOrder(Int_t n=3){fPolOrder=n;}
34   void SetMinDriftVel(Float_t vmin=4.){fMinDriftVel=vmin;}
35   void SetMaxDriftVel(Float_t vmax=9.){fMaxDriftVel=vmax;}
36
37   TGraphErrors* GetLineGraph(Int_t jlin);
38   TGraphErrors* GetDriftVelocityGraph();
39   Float_t* GetDriftVelFitParam()const{ return fParam;}
40   Float_t GetDriftVelocity(Int_t jlin) const{return fDriftVel[jlin];}
41   Float_t GetSigmaDriftVelocity(Int_t jlin) const{return fSigmaDriftVel[jlin];}
42   Float_t GetTimeBinZero() const{return fTbZero;}
43   Float_t GetDriftCoordinate(Float_t cAnode, Float_t cTimeBin);
44   Int_t GetAnodeNumber(Int_t iInjLine);
45
46   void PrintInjMap();
47   void PrintCentroids();
48   void WriteToFXS();
49
50   void Reset();      
51   void AnalyzeEvent(TH2F* his);      
52   void FindGoodInjectors();
53   void FindCentroids();
54   void CalcDriftVelocity(Int_t jlin);
55   void CalcTimeBinZero();
56   void FitDriftVelocityVsAnode();
57
58  protected:
59   void SetPositions();
60  private:
61
62   enum {
63     kNInjectors = 33
64   };
65
66   AliITSOnlineSDDInjectors(const AliITSOnlineSDDInjectors& source);
67   AliITSOnlineSDDInjectors& operator = (const AliITSOnlineSDDInjectors& source);
68   static const Float_t fgkSaturation;
69   static const Float_t fgkJitterTB;
70
71   TH2F* fHisto;
72   Float_t fTbZero;
73   Float_t fPosition[3];
74   UShort_t fTbMin[3];
75   UShort_t fTbMax[3];
76   Bool_t fGoodInj[kNInjectors][3];
77   Float_t fCentroid[kNInjectors][3];
78   Float_t fRMSCentroid[kNInjectors][3];
79   Float_t fDriftVel[kNInjectors];
80   Float_t fSigmaDriftVel[kNInjectors];
81   Float_t *fParam;
82   Int_t fPolOrder;
83   Float_t fMinDriftVel;
84   Float_t fMaxDriftVel;
85   Float_t fThreshold;
86
87   ClassDef(AliITSOnlineSDDInjectors,1)
88 };
89 #endif