]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TPC/AliTPCcalibTracks.h
Fixing Coverity 10889 (B.Hippolyte)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTracks.h
... / ...
CommitLineData
1#ifndef AliTPCCALIBTRACKS_H
2#define AliTPCCALIBTRACKS_H
3
4
5///////////////////////////////////////////////////////////////////////////////
6// //
7// Class to analyse tracks for calibration //
8// to be used as a component in AliTPCSelectorTracks //
9// In the constructor you have to specify name and title //
10// to get the Object out of a file. //
11// The parameter 'clusterParam', a AliTPCClusterParam object //
12// (needed for TPC cluster error and shape parameterization) //
13// Normally you get this object out of the file 'TPCClusterParam.root' //
14// In the parameter 'cuts' the cuts are specified, that decide //
15// weather a track will be accepted for calibration or not. //
16// //
17// //
18///////////////////////////////////////////////////////////////////////////////
19
20
21
22#include <AliTPCcalibBase.h>
23class TF2;
24class TH3F;
25class TH1F;
26class TH1I;
27class TH2I;
28class TH2D;
29class TCollection;
30class TTreeSRedirector;
31class TLinearFitter;
32class AliTPCClusterParam;
33class TTreeSRedirector;
34class AliTPCROC;
35class AliTPCseed;
36class AliESDtrack;
37class AliTPCclusterMI;
38class AliTPCcalibTracksCuts;
39class AliTPCCalPad;
40class TChain;
41class TTree;
42class TMutex;
43class AliESDEvent;
44
45using namespace std;
46
47class AliTPCcalibTracks : public AliTPCcalibBase {
48public :
49 AliTPCcalibTracks(); // default constructor
50 AliTPCcalibTracks(const AliTPCcalibTracks&calibTracks); // copy constructor
51 AliTPCcalibTracks(const Text_t *name, const Text_t *title, AliTPCClusterParam *clusterParam, AliTPCcalibTracksCuts* cuts, Int_t logLevel = 0);
52 AliTPCcalibTracks & operator=(const AliTPCcalibTracks& calibTracks);
53
54 virtual ~AliTPCcalibTracks(); // destructor
55
56 virtual void Process(AliTPCseed *track); // to be called by the Selector
57 void Process(AliESDEvent *event) {AliTPCcalibBase::Process(event);};
58 void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
59 virtual Long64_t Merge(TCollection *li);
60 void AddHistos(AliTPCcalibTracks* calib);
61 void MakeResPlotsQTree(Int_t minEntries = 100, const char* pathName = "plots");
62 void MakeReport(Int_t stat, const char* pathName = "plots"); // calls all functions that procude pictures, results are written to pathName, stat is the minimal statistic threshold
63 //
64 Int_t AcceptTrack(AliTPCseed * track);
65 void FillResolutionHistoLocal(AliTPCseed * track); // the MAIN-FUNCTION, called for each track to fill the histograms, called by Process(...)
66
67
68 void SetStyle() const;
69
70 TObjArray* GetfArrayQDY() const {return fArrayQDY;}
71 TObjArray* GetfArrayQDZ() const {return fArrayQDZ;}
72 TObjArray* GetfArrayQRMSY() const {return fArrayQRMSY;}
73 TObjArray* GetfArrayQRMSZ() const {return fArrayQRMSZ;}
74 TObjArray* GetfResolY() const {return fResolY;}
75 TObjArray* GetfResolZ() const {return fResolZ;}
76 TObjArray* GetfRMSY() const {return fRMSY;}
77 TObjArray* GetfRMSZ() const {return fRMSZ;}
78 TH1I* GetfRejectedTracksHisto() const {return fRejectedTracksHisto;}
79 TH2I* GetfClusterCutHisto() const {return fClusterCutHisto;}
80 AliTPCCalPad* GetfCalPadClusterPerPad() const {return fCalPadClusterPerPad; }
81 AliTPCCalPad* GetfCalPadClusterPerPadRaw() const {return fCalPadClusterPerPadRaw;}
82 AliTPCcalibTracksCuts* GetCuts() {return fCuts;}
83 void MakeHistos(); //make THnSparse
84 static void MakeSummaryTree(THnSparse *hisInput, TTreeSRedirector *pcstream, Int_t ptype);
85protected:
86
87private:
88
89 static Int_t GetBin(Float_t q, Int_t pad);
90 static Int_t GetBin(Int_t iq, Int_t pad);
91 static Float_t GetQ(Int_t bin);
92 static Float_t GetPad(Int_t bin);
93 AliTPCClusterParam *fClusterParam; // pointer to cluster parameterization
94 AliTPCROC *fROC; //!
95public:
96 THnSparse *fHisDeltaY; // THnSparse - delta Y
97 THnSparse *fHisDeltaZ; // THnSparse - delta Z
98 THnSparse *fHisRMSY; // THnSparse - rms Y
99 THnSparse *fHisRMSZ; // THnSparse - rms Z
100 THnSparse *fHisQmax; // THnSparse - qmax
101 THnSparse *fHisQtot; // THnSparse - qtot
102
103private:
104 TObjArray *fArrayQDY; // q binned delta Y histograms
105 TObjArray *fArrayQDZ; // q binned delta Z histograms
106 TObjArray *fArrayQRMSY; // q binned delta Y histograms
107 TObjArray *fArrayQRMSZ; // q binned delta Z histograms
108
109 TObjArray *fResolY; // array of resolution histograms Y
110 TObjArray *fResolZ; // array of resolution histograms Z
111 TObjArray *fRMSY; // array of RMS histograms Y
112 TObjArray *fRMSZ; // array of RMS histograms Z
113 AliTPCcalibTracksCuts *fCuts; // object with cuts, that is passed to the constructor
114 TH1I *fRejectedTracksHisto; // histogram of rejecteced tracks, the number coresponds to the failed cut
115 TH2I *fClusterCutHisto; // histogram showing in which padRow the clusters were cutted by which criterium
116 AliTPCCalPad *fCalPadClusterPerPad; // AliTPCCalPad showing the number of clusters per Pad
117 AliTPCCalPad *fCalPadClusterPerPadRaw; // AliTPCCalPad showing the number of clusters per Pad before cuts on clusters are applied
118 ClassDef(AliTPCcalibTracks,2)
119
120};
121
122#endif