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