]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/LRC/AliAnalysisTaskLRC.h
Code Migration PWG2/EBYE to PWGCF/EBYE + Creation of Balance Function Folder
[u/mrichter/AliRoot.git] / PWGCF / EBYE / LRC / AliAnalysisTaskLRC.h
1 #ifndef ALIANALYSISTASKLRC_H\r
2 #define ALIANALYSISTASKLRC_H\r
3 \r
4 // Analysis task for Long Range Correlation (LRC) analysis using TPC data\r
5 // This includes a TList of AliLRCProcess objects that are processing LRC analysis\r
6 // for a given Eta window \r
7 \r
8 // Author : Andrey Ivanov , St.Peterburg State University\r
9 // Email: Andrey.Ivanov@cern.ch\r
10 \r
11 /*  See cxx source for full Copyright notice */\r
12 \r
13 #include <AliAnalysisTaskSE.h>\r
14 class AliLRCProcess;\r
15 class AliLRCBase;\r
16 class AliESDtrackCuts;\r
17 class TH1D;\r
18 class TH2D;\r
19 \r
20 class AliAnalysisTaskLRC : public AliAnalysisTaskSE {\r
21 \r
22 public:\r
23    //Constructors \r
24   AliAnalysisTaskLRC(const char *name = "AliAnalysisTaskLRC",Bool_t runKine=kFALSE);\r
25   virtual ~AliAnalysisTaskLRC() {}\r
26   \r
27   //AliAnalysisTaskSE overloading\r
28   \r
29   virtual void   UserCreateOutputObjects();\r
30   virtual void   UserExec(Option_t *option);\r
31   virtual void   Terminate(Option_t *);\r
32   //----------------------------------  \r
33   \r
34   void AddLRCProcess(AliLRCBase *newProc); //Adds new AliLRCProcess to analysis task\r
35   \r
36   // Setters\r
37   \r
38   void SetMaxPtLimit(Double_t MaxPtLimit);   //Sets  Max Pt filter\r
39   void SetMinPtLimit(Double_t MinPtLimit);   //Sets  Min Pt filter \r
40   void SetCheckForkVtx(Bool_t CheckForkVtx){fCheckForkVtx=CheckForkVtx;} // Accept only events with veretex\r
41   void SetCheckForVtxPosition(Bool_t CheckForVtxPosition ){fCheckForVtxPosition=CheckForVtxPosition;} //Accept only events with veretex in slected range\r
42   void SetTrackCuts(AliESDtrackCuts* const cuts)  { fEsdTrackCuts = cuts; }\r
43   void SetShowEventStats(Bool_t ShowEventStats)  {fShowEventStats= ShowEventStats;}\r
44   void SetShowPerTrackStats(Bool_t ShowPerTrackStats) {fShowPerTrackStats=ShowPerTrackStats;}\r
45   void SetVtxDiamond(Double_t Vx, Double_t Vy, Double_t Vz) {fVxMax = Vx;fVyMax =Vy;fVzMax = Vz;}\r
46   void SetNchCuts(Int_t minNch, Int_t maxNch){fMinAceptedTracksCut=minNch; fMaxAceptedTracksCut=maxNch;}\r
47   \r
48 // Getters\r
49   TList* GetListOfProcessors() { return &fLRCproc;} // Returns list of included \r
50   AliESDtrackCuts* GetTrackCuts() const                         { return fEsdTrackCuts; }\r
51   AliLRCBase * Proc(Int_t index);// Get Processor i \r
52   \r
53   \r
54   \r
55 protected:\r
56 // Track cuts\r
57 \r
58   AliESDtrackCuts *fEsdTrackCuts;               // esd track cuts\r
59 \r
60 \r
61 \r
62 // Aceptance cuts\r
63 \r
64   Double_t fMaxPtLimit;  //Max Pt filter\r
65   Double_t fMinPtLimit;  // Min Pt filter \r
66 \r
67 // Nch cuts\r
68   Int_t fMinAceptedTracksCut;   //Minimum number of accepted tracks in event\r
69   Int_t fMaxAceptedTracksCut;   //Maximum number of accepted tracks in event\r
70   \r
71 // Vtx cuts\r
72   Bool_t fCheckForkVtx;         // Check for vertex\r
73   Bool_t fCheckForVtxPosition;  // Check if vertex position in range\r
74   Double_t fVxMax;      // X vrtx max\r
75   Double_t fVyMax;      // Y vrtx max\r
76   Double_t fVzMax;      // Z vrtx max\r
77 \r
78 \r
79   TList fLRCproc;       //  AliLRCProcess objects list\r
80   TList* fOutList;      //! Task Output data container \r
81   \r
82   Bool_t fRunKine;      // ESD/AOD  - KINE switch\r
83   Bool_t fShowEventStats; //  Allows per event debug output (trigger Nch, cuts etc)\r
84   Bool_t fShowPerTrackStats; // Allows per track debug output\r
85       \r
86 \r
87 // QA histos \r
88 \r
89   TH1D *fHistEventCutStats;  //! Event cut statistics\r
90   TH1D *fHistTrackCutStats;  //! Track cut statistics\r
91 \r
92   TH1D *fHistVx;  //!Vx hist\r
93   TH1D *fHistVy;  //!Vy hist\r
94   TH1D *fHistVz;  //!Vz hist\r
95 \r
96   TH2D *fHistEtaVsZvCoverage; //! Statistics on tracks Zv and Eta for all tracks\r
97   TH2D *fHistEtaVsZvCoverageAcepted; //!  Statistics on tracks Zv and Eta for acepted tracks\r
98 \r
99   TH1D *fHistAceptedMult;   //! Number of acepted tracks histo\r
100 \r
101 \r
102 \r
103   AliAnalysisTaskLRC(const AliAnalysisTaskLRC&); // not implemented\r
104   AliAnalysisTaskLRC& operator=(const AliAnalysisTaskLRC&); // not implemented\r
105   \r
106   ClassDef(AliAnalysisTaskLRC, 1); \r
107 };\r
108 \r
109 #endif\r