]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDCalibTask.h
Restored compilation and functionallity (Ruben)
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibTask.h
CommitLineData
6d3c5222 1#ifndef ALITRDCALIBTASK_H
2#define ALITRDCALIBTASK_H
3
4///////////////////////////////////////////////////////////////////////////////
5// //
6// TRD calibration task for offline calibration //
7// //
8///////////////////////////////////////////////////////////////////////////////
9
10
11class TList;
12class TObject;
13class TObjArray;
14class TH2F;
15class TH1F;
16class TH1I;
54f2ff1c 17class TH2S;
6d3c5222 18class TProfile2D;
19class TH2I;
20class TTree;
21class AliESDEvent;
22class AliESDfriend;
23class AliESDtrack;
24class AliESDfriendTrack;
25class AliTRDtrackV1;
54f2ff1c 26class AliTRDseedV1;
6d3c5222 27class AliTRDCalibraFillHisto;
28class AliTRDcluster;
29class AliESDtrackCuts;
30class AliTRDCalDet;
31
32#include "TObjString.h"
01239968 33#include "AliAnalysisTaskSE.h"
98937691 34#include "TMath.h"
6d3c5222 35
01239968 36class AliTRDCalibTask : public AliAnalysisTaskSE {
6d3c5222 37 public:
38 AliTRDCalibTask(const char *name = "AliTRDCalibTask");
39 virtual ~AliTRDCalibTask();
40
01239968 41 // virtual void ConnectInputData(Option_t *);
42 virtual void UserCreateOutputObjects();
43 virtual void UserExec(Option_t *);
6d3c5222 44 virtual void Terminate(Option_t *);
45 virtual Bool_t Load(const Char_t *filename);
57185ead 46 virtual Bool_t Load(TList *lister);
6d3c5222 47 void Plot();
57185ead 48 virtual Long64_t Merge(TCollection *li);
49 void AddTask(const AliTRDCalibTask * calibTask);
54f2ff1c 50 Bool_t FindP1TrackPHtrackletV1Test(const AliTRDseedV1 *tracklet, Int_t nbclusters);
57185ead 51 TList *GetList() const {return fListHist;};
6d3c5222 52
54f2ff1c 53 void SetOnInstance(Bool_t onInstance) {fOnInstance=onInstance;};
6d3c5222 54 void SetHisto2d(Bool_t histo2d) {fHisto2d=histo2d;};
55 void SetVector2d(Bool_t vector2d) {fVector2d=vector2d;};
56 void SetVdriftLinear(Bool_t vdriftLinear) {fVdriftLinear = vdriftLinear;};
57 void SetNbTimeBins(Int_t nbTimeBins) {fNbTimeBins=nbTimeBins;};
58
59 void SetNz(Short_t nz, Int_t i) {fNz[i]=nz;};
60 void SetNrphi(Short_t nrphi, Int_t i) {fNrphi[i]=nrphi;};
61
62 void AddSelectedTriggerClass(const char*name) {fSelectedTrigger->Add(new TObjString(name));};
63 void SetReject(Bool_t rejected) {fRejected = rejected;};
64
98937691 65 void SetESDtrackCuts(AliESDtrackCuts * const esdtrackCuts) {fEsdTrackCuts = esdtrackCuts;};
6d3c5222 66 void SetRequirePrimaryVertex(Bool_t requirePrimaryVertex) {fRequirePrimaryVertex = requirePrimaryVertex;};
67 void SetUseTPCVertex() {fVtxTPC=kTRUE ; fVtxSPD=kFALSE;}
68 void SetUseSPDVertex() {fVtxTPC=kFALSE; fVtxSPD=kTRUE ;}
69 void SetMinNbOfContributors(Int_t minNbOfContributors) {fMinNbContributors = minNbOfContributors;};
c1105918 70 void SetRangePrimaryVertexZ(Double_t rangePrimaryVertexZ) {fRangePrimaryVertexZ = TMath::Abs(rangePrimaryVertexZ);};
71 void SetMinNbTracks(Int_t minNbTracks) {fMinNbTracks = minNbTracks;};
72 void SetMaxNbTracks(Int_t maxNbTracks) {fMaxNbTracks = maxNbTracks;};
73
4c865c34 74 void SetVersionGainUsed(Int_t versionGainUsed) { fVersionGainUsed = versionGainUsed; }
75 void SetSubVersionGainUsed(Int_t subVersionGainUsed) { fSubVersionGainUsed = subVersionGainUsed; }
a2a4ec8e 76 void SetVersionGainLocalUsed(Int_t versionGainLocalUsed) { fVersionGainLocalUsed = versionGainLocalUsed; }
77 void SetSubVersionGainLocalUsed(Int_t subVersionGainLocalUsed) { fSubVersionGainLocalUsed = subVersionGainLocalUsed; }
4c865c34 78 void SetVersionVdriftUsed(Int_t versionVdriftUsed) { fVersionVdriftUsed = versionVdriftUsed; }
79 void SetSubVersionVdriftUsed(Int_t subVersionVdriftUsed) { fSubVersionVdriftUsed = subVersionVdriftUsed; }
6d3c5222 80
81 void SetLow(Int_t low) {fLow=low;};
82 void SetHigh(Int_t high) {fHigh=high;};
83 void SetFillZero(Bool_t fillZero) {fFillZero = fillZero;};
84 void SetNormalizeNbOfCluster(Bool_t normalizeNbOfCluster = kTRUE) {fNormalizeNbOfCluster = normalizeNbOfCluster;};
85 void SetMaxCluster(Float_t maxCluster) {fMaxCluster = maxCluster; };
86 void SetNbMaxCluster(Short_t nbMaxCluster) {fNbMaxCluster = nbMaxCluster; };
87 void SetOfflineTracks() {fOfflineTracks=kTRUE; fStandaloneTracks=kFALSE; };
88 void SetStandaloneTracks() {fStandaloneTracks=kTRUE; fOfflineTracks=kFALSE; };
4c865c34 89
90 void SetCalDetGain(AliTRDCalDet * const calDetGain) {fCalDetGain = calDetGain;};
6d3c5222 91
92 void SetMaxEvent(Int_t nbevents) { fMaxEvent = nbevents; };
93 void SetDebug(Int_t debug) { fDebug = debug; };
94
95 private:
a2a4ec8e 96 Bool_t SetVersionSubversion();
c1105918 97 Bool_t ParticleGood(int i) const;
a2a4ec8e 98
6d3c5222 99 AliESDEvent *fESD; //! ESD object
100 AliESDfriend *fESDfriend; //! ESD friend
101 const AliESDtrack *fkEsdTrack; //! ESD track
102 AliESDfriendTrack *fFriendTrack; //! ESD friend track
103 TObject *fCalibObject; //! calibration objects attached to the ESD friend
104 AliTRDtrackV1 *fTrdTrack; //! trdtrack
105 AliTRDcluster *fCl; //! cluster
106
107 TList *fListHist; //! list of histograms
108
109 AliTRDCalibraFillHisto *fTRDCalibraFillHisto; //! calibration analyse object
110
111 TH1I *fNEvents; //! counter
a5dcf618 112 TH1I *fNEventsInput; //! counter
6d3c5222 113
114 TH1F *fNbTRDTrack; //! nb ESD tracks with TRD clusters
115 TH1F *fNbTRDTrackOffline; //! nb ESD tracks with TRD clusters
116 TH1F *fNbTRDTrackStandalone; //! nb ESD tracks with TRD clusters
117 TH2F *fNbTPCTRDtrack; //! nb TPC and TRD tracks when problems
c1105918 118 TH2F *fNbGoodTracks; //! nb of good tracks
6d3c5222 119
120 TH1F *fNbTimeBin; //! nb Time Bin
121 TH1F *fNbTimeBinOffline; //! nb Time Bin offline
122 TH1F *fNbTimeBinStandalone; //! nb Time Bin standalone
123 TH1F *fNbClusters; //! nb Clusters
124 TH1F *fNbClustersOffline; //! nb Clusters offline
125 TH1F *fNbClustersStandalone; //! nb Clusters standalone
126 TH1F *fNbTracklets; //! nb Tracklets
127 TH1F *fNbTrackletsOffline; //! nb Tracklets offline
128 TH1F *fNbTrackletsStandalone; //! nb Tracklets standalone
129
98937691 130 TH2F *fAbsoluteGain; //! Absolute Gain without AliESDfriend
6d3c5222 131 TH2I *fCH2dSum; //! CH2d charge all
132 TProfile2D *fPH2dSum; //! PH2d PH all
133 TH2I *fCH2dSM; //! CH2d per SM
134 TProfile2D *fPH2dSM; //! PH2d per SM
54f2ff1c 135 TH2I *fCH2dTest; //! CH2d for test
136 TProfile2D *fPH2dTest; //! PH2d for test
137 TH2S *fLinearVdriftTest; //! VdriftLinear for test
6d3c5222 138
54f2ff1c 139 Bool_t fOnInstance; // On Instance
98937691 140 Bool_t fHisto2d; // histo
141 Bool_t fVector2d; // vector
142 Bool_t fVdriftLinear; // vdrift Linear
6d3c5222 143
98937691 144 Int_t fNbTimeBins; // number of timebins
6d3c5222 145
146 Short_t fNz[3]; // Nz mode
147 Short_t fNrphi[3]; // Nrphi mode
148
149 TObjArray *fSelectedTrigger; // Trigger class names accepted/rejected
150 Bool_t fRejected; // Reject the selected trigger class
151
152 AliESDtrackCuts *fEsdTrackCuts; // Quality cut on the AliESDtrack
153 Bool_t fRequirePrimaryVertex; // Primary Vertex
154 Bool_t fVtxTPC; // Flag for use of TPC vertex
155 Bool_t fVtxSPD; // Flag for use of SPD vertex
156 Int_t fMinNbContributors; // Min number of contributors
98937691 157 Double_t fRangePrimaryVertexZ; // Were the primary vertex is
c1105918 158 Int_t fMinNbTracks; // Min Nb Tracks
159 Int_t fMaxNbTracks; // Max Nb Tracks
6d3c5222 160
161 Int_t fLow; // lower limit of nb of TRD clusters per tracklet
162 Int_t fHigh; // higher limit of nb of TRD clusters per tracklet
163 Bool_t fFillZero; // fill zero
164 Bool_t fNormalizeNbOfCluster; // normalize with number of clusters (per default not)
165 Float_t fRelativeScale; // relative scale for gas gain
166 Float_t fMaxCluster; // Maxcluster
167 Short_t fNbMaxCluster; // Number of tb at the end
168 Bool_t fOfflineTracks; // Only Offline refitted tracks
169 Bool_t fStandaloneTracks; // Take only standalone tracks
170
d085ba91 171 Int_t fFirstRunGain; // FirstRunGainUsed
4c865c34 172 Int_t fVersionGainUsed; // VersionGainUsed
173 Int_t fSubVersionGainUsed; // SubVersionGainUsed
d085ba91 174 Int_t fFirstRunGainLocal; // FirstRunGainLocalUsed
a2a4ec8e 175 Int_t fVersionGainLocalUsed; // VersionGainLocalUsed
176 Int_t fSubVersionGainLocalUsed; // SubVersionGainLocalUsed
d085ba91 177 Int_t fFirstRunVdrift; // FirstRunVdriftUsed
4c865c34 178 Int_t fVersionVdriftUsed; // VersionVdriftUsed
179 Int_t fSubVersionVdriftUsed; // SubVersionVdriftUsed
180
6d3c5222 181 AliTRDCalDet *fCalDetGain; // Calib object gain
182
183 Int_t fMaxEvent; // max events
184 Int_t fCounter; // max events
98937691 185 Int_t fDebug; // fDebug
6d3c5222 186
187 AliTRDCalibTask(const AliTRDCalibTask&);
188 AliTRDCalibTask& operator=(const AliTRDCalibTask&);
189
190 ClassDef(AliTRDCalibTask, 1);
191};
192
21185a48 193#endif
01239968 194
c1105918 195