]>
Commit | Line | Data |
---|---|---|
784b6a81 | 1 | /************************************************************************* |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | // | |
16 | // Example analysis for diffractive studies | |
17 | // | |
18 | // Author: | |
19 | // Felix Reidt <Felix.Reidt@cern.ch> | |
20 | ||
21 | #ifndef ALIANALYSISTASKCDEX_H | |
22 | #define ALIANALYSISTASKCDEX_H | |
23 | ||
24 | #ifndef ALIANALYSISTASK_H | |
25 | #include "AliAnalysisTaskSE.h" | |
26 | #endif | |
27 | ||
28 | class AliESDEvent; | |
29 | class AliVTrack; | |
30 | class AliPIDResponse; | |
31 | class AliPhysicsSelection; | |
32 | ||
33 | class TH1I; | |
34 | class TH1F; | |
35 | class TH2I; | |
36 | class TH2F; | |
37 | class TH2D; | |
38 | class TList; | |
39 | class THnSparse; | |
40 | class TObjString; | |
41 | ||
42 | class AliCDMesonTracks; | |
43 | ||
44 | class AliAnalysisTaskCDex : public AliAnalysisTaskSE | |
45 | { | |
46 | public: | |
47 | ||
48 | AliAnalysisTaskCDex(const char* name); | |
49 | virtual ~AliAnalysisTaskCDex(); | |
50 | ||
51 | virtual void UserCreateOutputObjects(); | |
52 | virtual void UserExec(Option_t *); | |
53 | ||
54 | private: | |
55 | enum { // | |
56 | kV0 = 0, | |
57 | kFMD, | |
58 | kSPD, | |
59 | kTPC, | |
60 | kV0FMD, | |
61 | kV0FMDSPD, | |
62 | kV0FMDSPDTPC, | |
63 | kMax | |
64 | }; | |
65 | ||
66 | AliAnalysisTaskCDex(const AliAnalysisTaskCDex &p); | |
67 | AliAnalysisTaskCDex& operator=(const AliAnalysisTaskCDex &p); | |
68 | ||
69 | void FillEtaPhiMaps() const; // controls which event contributes to which map | |
70 | ||
71 | ||
72 | // functions called by the UserExec(...), not to be called elsewhere! | |
73 | //------------------------------------------------------------------- | |
74 | Bool_t CheckInput(); | |
75 | void PostOutputs(); // cares about posting the output before exiting UserExec, | |
76 | // WARNING: PostOutputs should only be used directly in the UserExec!! | |
77 | Bool_t DetermineGap(); // determines the gap of all available detectors | |
78 | void AnalyzeVtx(); // calcs the distance of the pri. vertex from tracks and SPD | |
79 | void DoMultiplicityStudy(); // multiplicity distributions for different gaps | |
80 | ||
81 | // analysis task status | |
82 | //--------------------- | |
83 | Bool_t fDoAOD; // true for running on AODs | |
84 | Double_t fMaxVtxDst; // maximum distance of the track and SPD vertex | |
85 | ||
86 | // event information | |
87 | //------------------ | |
88 | AliESDEvent *fESDEvent; // esd event object | |
89 | AliAODEvent *fAODEvent; // esd event object | |
90 | AliPIDResponse *fPIDResponse; // pid object (for ESDs and AODs) | |
91 | AliCDMesonTracks *fTracks; // object taking care about the track cuts | |
92 | Double_t fVtxDst; // distance of the primary vertex from tracks and from SPD | |
93 | Double_t fVtxZ; // z-position of the primary vertex from tracks | |
94 | Int_t fResidualTracks; // tracks rejected by cuts within the event | |
95 | Int_t fResidualTracklets; // SPD tracklets not assigned to tracks | |
96 | Int_t fMCprocessType; // MC process type, 0 for data | |
97 | Int_t fMCprocess; // detailed MC sub process information | |
98 | ||
99 | Int_t fRun; // number of the run which is about to be processed | |
100 | Int_t fCurrentGapCondition; // gap condition of the current event | |
101 | Int_t fGapInformation[kMax]; // gap condition for different detectors | |
102 | // individually and their combinations | |
103 | ||
104 | // output objects | |
105 | //--------------- | |
106 | ||
107 | TList *fHist; // output list (contains all histograms) | |
108 | ||
109 | // Multiplicity distributions for the different gap conditions | |
110 | TH2D *fv0ntrk; //v0bit vs. nch | |
111 | TH2D *fv0fmdntrk; //v0fmdbit vs. nch | |
112 | TH2D *fv0fmdspdntrk; //v0fmdspdbit vs. nch | |
113 | TH2D *fv0fmdspdtpcntrk; //v0fmdspdtpcbit vs. nch | |
114 | ||
115 | // Statistics flow diagrams | |
116 | TH1F *fhStatsFlow; // stepwise statistics flow | |
117 | ||
118 | ClassDef(AliAnalysisTaskCDex, 1); | |
119 | }; | |
120 | ||
121 | ||
122 | #endif |