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