]>
Commit | Line | Data |
---|---|---|
6d3c5222 | 1 | #ifndef ALITRDCALIBTASK_H |
2 | #define ALITRDCALIBTASK_H | |
3 | ||
4 | /////////////////////////////////////////////////////////////////////////////// | |
5 | // // | |
6 | // TRD calibration task for offline calibration // | |
7 | // // | |
8 | /////////////////////////////////////////////////////////////////////////////// | |
9 | ||
10 | ||
11 | class TList; | |
12 | class TObject; | |
13 | class TObjArray; | |
14 | class TH2F; | |
15 | class TH1F; | |
16 | class TH1I; | |
17 | class TProfile2D; | |
18 | class TH2I; | |
19 | class TTree; | |
20 | class AliESDEvent; | |
21 | class AliESDfriend; | |
22 | class AliESDtrack; | |
23 | class AliESDfriendTrack; | |
24 | class AliTRDtrackV1; | |
25 | class AliTRDCalibraFillHisto; | |
26 | class AliTRDcluster; | |
27 | class AliESDtrackCuts; | |
28 | class AliTRDCalDet; | |
29 | ||
30 | #include "TObjString.h" | |
31 | #include "AliAnalysisTask.h" | |
32 | ||
33 | class AliTRDCalibTask : public AliAnalysisTask { | |
34 | public: | |
35 | AliTRDCalibTask(const char *name = "AliTRDCalibTask"); | |
36 | virtual ~AliTRDCalibTask(); | |
37 | ||
38 | virtual void ConnectInputData(Option_t *); | |
39 | virtual void CreateOutputObjects(); | |
40 | virtual void Exec(Option_t *option); | |
41 | virtual void Terminate(Option_t *); | |
42 | virtual Bool_t Load(const Char_t *filename); | |
43 | void Plot(); | |
44 | ||
45 | void SetHisto2d(Bool_t histo2d) {fHisto2d=histo2d;}; | |
46 | void SetVector2d(Bool_t vector2d) {fVector2d=vector2d;}; | |
47 | void SetVdriftLinear(Bool_t vdriftLinear) {fVdriftLinear = vdriftLinear;}; | |
48 | void SetNbTimeBins(Int_t nbTimeBins) {fNbTimeBins=nbTimeBins;}; | |
49 | ||
50 | void SetNz(Short_t nz, Int_t i) {fNz[i]=nz;}; | |
51 | void SetNrphi(Short_t nrphi, Int_t i) {fNrphi[i]=nrphi;}; | |
52 | ||
53 | void AddSelectedTriggerClass(const char*name) {fSelectedTrigger->Add(new TObjString(name));}; | |
54 | void SetReject(Bool_t rejected) {fRejected = rejected;}; | |
55 | ||
56 | void SetESDtrackCuts(AliESDtrackCuts * const esdtrackCuts) {fEsdTrackCuts = esdtrackCuts;}; | |
57 | void SetRequirePrimaryVertex(Bool_t requirePrimaryVertex) {fRequirePrimaryVertex = requirePrimaryVertex;}; | |
58 | void SetUseTPCVertex() {fVtxTPC=kTRUE ; fVtxSPD=kFALSE;} | |
59 | void SetUseSPDVertex() {fVtxTPC=kFALSE; fVtxSPD=kTRUE ;} | |
60 | void SetMinNbOfContributors(Int_t minNbOfContributors) {fMinNbContributors = minNbOfContributors;}; | |
61 | ||
62 | void SetLow(Int_t low) {fLow=low;}; | |
63 | void SetHigh(Int_t high) {fHigh=high;}; | |
64 | void SetFillZero(Bool_t fillZero) {fFillZero = fillZero;}; | |
65 | void SetNormalizeNbOfCluster(Bool_t normalizeNbOfCluster = kTRUE) {fNormalizeNbOfCluster = normalizeNbOfCluster;}; | |
66 | void SetMaxCluster(Float_t maxCluster) {fMaxCluster = maxCluster; }; | |
67 | void SetNbMaxCluster(Short_t nbMaxCluster) {fNbMaxCluster = nbMaxCluster; }; | |
68 | void SetOfflineTracks() {fOfflineTracks=kTRUE; fStandaloneTracks=kFALSE; }; | |
69 | void SetStandaloneTracks() {fStandaloneTracks=kTRUE; fOfflineTracks=kFALSE; }; | |
70 | ||
71 | void SetCalDetGain(AliTRDCalDet * const calDetGain) {fCalDetGain = calDetGain;}; | |
72 | ||
73 | void SetMaxEvent(Int_t nbevents) { fMaxEvent = nbevents; }; | |
74 | void SetDebug(Int_t debug) { fDebug = debug; }; | |
75 | ||
76 | private: | |
77 | AliESDEvent *fESD; //! ESD object | |
78 | AliESDfriend *fESDfriend; //! ESD friend | |
79 | const AliESDtrack *fkEsdTrack; //! ESD track | |
80 | AliESDfriendTrack *fFriendTrack; //! ESD friend track | |
81 | TObject *fCalibObject; //! calibration objects attached to the ESD friend | |
82 | AliTRDtrackV1 *fTrdTrack; //! trdtrack | |
83 | AliTRDcluster *fCl; //! cluster | |
84 | ||
85 | TList *fListHist; //! list of histograms | |
86 | ||
87 | AliTRDCalibraFillHisto *fTRDCalibraFillHisto; //! calibration analyse object | |
88 | ||
89 | TH1I *fNEvents; //! counter | |
90 | ||
91 | TH1F *fNbTRDTrack; //! nb ESD tracks with TRD clusters | |
92 | TH1F *fNbTRDTrackOffline; //! nb ESD tracks with TRD clusters | |
93 | TH1F *fNbTRDTrackStandalone; //! nb ESD tracks with TRD clusters | |
94 | TH2F *fNbTPCTRDtrack; //! nb TPC and TRD tracks when problems | |
95 | ||
96 | TH1F *fNbTimeBin; //! nb Time Bin | |
97 | TH1F *fNbTimeBinOffline; //! nb Time Bin offline | |
98 | TH1F *fNbTimeBinStandalone; //! nb Time Bin standalone | |
99 | TH1F *fNbClusters; //! nb Clusters | |
100 | TH1F *fNbClustersOffline; //! nb Clusters offline | |
101 | TH1F *fNbClustersStandalone; //! nb Clusters standalone | |
102 | TH1F *fNbTracklets; //! nb Tracklets | |
103 | TH1F *fNbTrackletsOffline; //! nb Tracklets offline | |
104 | TH1F *fNbTrackletsStandalone; //! nb Tracklets standalone | |
105 | ||
106 | TH2I *fCH2dSum; //! CH2d charge all | |
107 | TProfile2D *fPH2dSum; //! PH2d PH all | |
108 | TH2I *fCH2dSM; //! CH2d per SM | |
109 | TProfile2D *fPH2dSM; //! PH2d per SM | |
110 | ||
111 | Bool_t fHisto2d; //! histo | |
112 | Bool_t fVector2d; //! vector | |
113 | Bool_t fVdriftLinear; //! vdrift Linear | |
114 | ||
115 | Int_t fNbTimeBins; //! number of timebins | |
116 | ||
117 | Short_t fNz[3]; // Nz mode | |
118 | Short_t fNrphi[3]; // Nrphi mode | |
119 | ||
120 | TObjArray *fSelectedTrigger; // Trigger class names accepted/rejected | |
121 | Bool_t fRejected; // Reject the selected trigger class | |
122 | ||
123 | AliESDtrackCuts *fEsdTrackCuts; // Quality cut on the AliESDtrack | |
124 | Bool_t fRequirePrimaryVertex; // Primary Vertex | |
125 | Bool_t fVtxTPC; // Flag for use of TPC vertex | |
126 | Bool_t fVtxSPD; // Flag for use of SPD vertex | |
127 | Int_t fMinNbContributors; // Min number of contributors | |
128 | ||
129 | Int_t fLow; // lower limit of nb of TRD clusters per tracklet | |
130 | Int_t fHigh; // higher limit of nb of TRD clusters per tracklet | |
131 | Bool_t fFillZero; // fill zero | |
132 | Bool_t fNormalizeNbOfCluster; // normalize with number of clusters (per default not) | |
133 | Float_t fRelativeScale; // relative scale for gas gain | |
134 | Float_t fMaxCluster; // Maxcluster | |
135 | Short_t fNbMaxCluster; // Number of tb at the end | |
136 | Bool_t fOfflineTracks; // Only Offline refitted tracks | |
137 | Bool_t fStandaloneTracks; // Take only standalone tracks | |
138 | ||
139 | AliTRDCalDet *fCalDetGain; // Calib object gain | |
140 | ||
141 | Int_t fMaxEvent; // max events | |
142 | Int_t fCounter; // max events | |
143 | Int_t fDebug; //! fDebug | |
144 | ||
145 | AliTRDCalibTask(const AliTRDCalibTask&); | |
146 | AliTRDCalibTask& operator=(const AliTRDCalibTask&); | |
147 | ||
148 | ClassDef(AliTRDCalibTask, 1); | |
149 | }; | |
150 | ||
151 | #endif | |
152 |