]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCcalibLaser.h
Updated flags for low flux case (A. Dainese)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibLaser.h
1 #ifndef ALITPCCALIBLASER_H
2 #define ALITPCCALIBLASER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////
8 ////
9 ////
10
11 #include "TObject.h"
12 #include "TObjArray.h"
13 #include "TLinearFitter.h"
14 #include "AliTPCcalibBase.h"
15 #include "TH1.h"
16 #include "TH2F.h"
17
18
19 class AliExternalTrackParam;
20 class AliESDtrack;
21 class AliESDEvent;
22 class AliESDfriend;
23 class TGraphErrors;
24 class TTree;
25 class TH2F;
26 class AliTPCLaserTrack;
27
28 class AliTPCcalibLaser:public AliTPCcalibBase {
29 public:
30   AliTPCcalibLaser();
31   AliTPCcalibLaser(const Text_t *name, const Text_t *title, Bool_t full=kTRUE);
32   AliTPCcalibLaser(const AliTPCcalibLaser& laser);
33   AliTPCcalibLaser & operator=(const AliTPCcalibLaser& calibLaser);
34   virtual ~AliTPCcalibLaser();
35   virtual void     Process(AliESDEvent *event);
36   virtual void Analyze();
37   virtual Long64_t Merge(TCollection *li);
38   virtual void DumpMeanInfo(Float_t bfield, Int_t run=-1);
39   static  void DumpScanInfo(TTree * tree);
40   static  void DumpFitInfo(TTree * chainFit, Int_t id);
41   static  TH1* GetLaserProjection(TH2F* his, Int_t laser){return his->ProjectionY("aaa",laser+1,laser+1);}
42   //
43   //
44   virtual void DumpLaser(Int_t id);
45   virtual void RefitLaserJW(Int_t id);
46   void         FitDriftV();
47   void         MakeDistHisto(Int_t id);
48   void         AddCut(Double_t xcut, Double_t ycut, Double_t ncl){fEdgeXcuts[fNcuts]=xcut; fEdgeYcuts[fNcuts]=ycut; fNClCuts[fNcuts]=ncl; fNcuts++;}
49
50   Int_t  FindMirror(AliESDtrack *track, AliTPCseed *seed);
51   Bool_t AcceptLaser(Int_t id);
52   Float_t GetDistance(AliExternalTrackParam *track, AliTPCLaserTrack *ltrp);
53   void   MakeFitHistos();
54   void   MergeFitHistos(AliTPCcalibLaser * add);
55   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
56   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
57   //
58
59   AliESDEvent  * fESD;             //! ESD event  - not OWNER
60   AliESDfriend * fESDfriend;       //! ESD event  - not OWNER
61   TObjArray      fTracksMirror;    //! tracks with mirror information
62   TObjArray      fTracksEsd;       //! tracks with reconstructed information - 
63   //                               not owner ESD
64   TObjArray      fTracksEsdParam;  //! tracks with reconstructed information - 
65   //                               is owner ESD at mirror
66   TObjArray      fTracksTPC;       //! tracks with reconstructed information - TPC
67   Int_t          fCounter[336];    //! counter of usage
68   Float_t        fClusterCounter[336]; //!couter of clusters in "sensitive are"
69   Float_t        fClusterSatur[336];   //!couter of saturated clusters in "sensitive are"
70   Bool_t         fFullCalib;            // do full calibrration
71   Float_t        fFitZ[336];           //fitted z position
72   //
73   TObjArray      fDeltaZ;          //-> array of histograms of delta z for each track
74   TObjArray      fDeltaP3;         //-> array of histograms of P3      for each track
75   TObjArray      fDeltaP4;         //-> array of histograms of P4      for each track
76   TObjArray      fDeltaPhi;        //-> array of histograms of delta z for each track
77   TObjArray      fDeltaPhiP;       //-> array of histograms of delta z for each track
78   TObjArray      fSignals;         //->Array of dedx signals
79   //
80   // Refit residuals histogram
81   //
82   TH2F           *fHisNclIn;      //->Number of clusters inner
83   TH2F           *fHisNclOut;     //->Number of clusters outer
84   TH2F           *fHisNclIO;      //->Number of cluster inner outer
85   TH2F           *fHisLclIn;      //->Level arm inner
86   TH2F           *fHisLclOut;     //->Level arm outer
87   TH2F           *fHisLclIO;      //->Level aram inner outer
88
89   TH2F           *fHisdEdx;       //->dEdx histo
90   TH2F           *fHisdZfit;      //->distance to the mirror after linear fit
91   //
92   //
93   TH2F           *fHisChi2YIn1;      //->chi2 y inner - line
94   TH2F           *fHisChi2YOut1;     //->chi2 y inner - line
95   TH2F           *fHisChi2YIn2;      //->chi2 y inner - parabola
96   TH2F           *fHisChi2YOut2;     //->chi2 y inner - parabola
97   TH2F           *fHisChi2YIO1;      //->chi2 y IO    - common
98   TH2F           *fHisChi2ZIn1;      //->chi2 z inner - line
99   TH2F           *fHisChi2ZOut1;     //->chi2 z inner - line
100   TH2F           *fHisChi2ZIn2;      //->chi2 z inner - parabola
101   TH2F           *fHisChi2ZOut2;     //->chi2 z inner - parabola
102   TH2F           *fHisChi2ZIO1;      //->chi2 z IO    - common
103   //
104   //
105   TH2F           *fHisPy1vP0;     //-> delta y   P0outer-P0inner - line
106   TH2F           *fHisPy2vP0;     //-> delta y   P0outer-P0inner - parabola
107   TH2F           *fHisPy3vP0;     //-> delta y   P0outer-P0inner - common parabola
108   TH2F           *fHisPy1vP1;     //-> delta ky  P1outer-P1inner - line
109   TH2F           *fHisPy2vP1;     //-> delta ky  P1outer-P1inner - parabola
110   TH2F           *fHisPy3vP1;     //-> delta ky  P1outer-P1inner - common parabola
111   TH2F           *fHisPy2vP2In;   //-> Curv  P2inner - parabola
112   TH2F           *fHisPy2vP2Out;  //-> Curv  P2outer - parabola
113   TH2F           *fHisPy3vP2IO;   //-> Curv  P2outerinner - common parabola
114   //
115   //
116   TH2F           *fHisPz1vP0;     //-> delta z   P0outer-P0inner - line
117   TH2F           *fHisPz2vP0;     //-> delta z   P0outer-P0inner - parabola
118   TH2F           *fHisPz3vP0;     //-> delta z   P0outer-P0inner - common parabola
119   TH2F           *fHisPz1vP1;     //-> delta kz  P1outer-P1inner - line
120   TH2F           *fHisPz2vP1;     //-> delta kz  P1outer-P1inner - parabola
121   TH2F           *fHisPz3vP1;     //-> delta kz  P1outer-P1inner - common parabola
122   TH2F           *fHisPz2vP2In;   //-> Curv  P2inner - parabola
123   TH2F           *fHisPz2vP2Out;  //-> Curv  P2outer - parabola
124   TH2F           *fHisPz3vP2IO;   //-> Curv  P2outerinner - common parabola
125   //
126   // Residual histograms
127   //
128   TObjArray      fDeltaYres;       //-> array of histograms of delta y residuals for each track
129   TObjArray      fDeltaZres;       //-> array of histograms of delta z residuals for each track
130   TObjArray      fDeltaYres2;       //-> array of histograms of delta y residuals for each track
131   TObjArray      fDeltaZres2;       //-> array of histograms of delta z residuals for each track
132   //  TObjArray      fDeltaYres3;       //-> array of histograms of delta y residuals for each track
133   //TObjArray      fDeltaZres3;       //-> array of histograms of delta z residuals for each track
134
135   //
136   TVectorD*      fFitAside;        //! drift fit - A side
137   TVectorD*      fFitCside;        //! drift fit - C- side
138   TVectorD*      fFitACside;        //! drift fit - A+C- side
139   //
140   TVectorD       fEdgeXcuts;       //! cuts in local x direction; used in the refit of the laser tracks
141   TVectorD       fEdgeYcuts;       //! cuts in local y direction; used in the refit of the laser tracks
142   TVectorD       fNClCuts;         //! cuts on the number of clusters per tracklet; used in the refit of the laser tracks
143   Int_t          fNcuts;           //! number of cuts
144   //
145 private:
146   ClassDef(AliTPCcalibLaser,3)
147 };
148
149
150
151
152
153 #endif