]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskHFEQA.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFEQA.h
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 // Flow task class for the ALICE HFE group
17 //
18 //
19 #ifndef ALIANALYSISTASKHFEQA_H
20 #define ALIANALYSISTASKHFEQA_H
21
22
23 #ifndef ALIANALYSISTASKSE_H
24 #include "AliAnalysisTaskSE.h"
25 #endif
26
27 #ifndef ROOT_TString
28 #include <TString.h>
29 #endif
30
31 #ifndef ROOT_TBits
32 #include <TBits.h>
33 #endif
34
35
36 class TList;
37 class AliHFEcuts;
38 class AliHFEpid;
39 class AliHFEpidQAmanager;
40 class AliAODMCHeader;
41 class TClonesArray;
42 class TH1F;
43
44
45 class AliAnalysisTaskHFEQA: public AliAnalysisTaskSE {
46 public:
47
48   typedef enum{
49     kpp = 0,
50     kpPb = 1,
51     kPbPb = 2
52   } ESystem_t;
53   
54
55   AliAnalysisTaskHFEQA();
56   AliAnalysisTaskHFEQA(const char *name);
57   AliAnalysisTaskHFEQA(const AliAnalysisTaskHFEQA &ref);
58   AliAnalysisTaskHFEQA& operator=(const AliAnalysisTaskHFEQA &ref);
59   virtual void Copy(TObject &o) const;
60   virtual ~AliAnalysisTaskHFEQA();
61   
62   virtual void  UserExec(Option_t */*option*/);
63   virtual void  UserCreateOutputObjects();
64
65   void SetDoTPConly(Bool_t tpconlydo)   { fTPConlydo = tpconlydo; };
66   void SetDoTRDonly(Bool_t trdonlydo)   { fTRDonlydo = trdonlydo; };
67   void SetDoTOFTPC(Bool_t toftpcdo)   { fTOFTPCdo = toftpcdo; };
68   void SetDoTPCTRD(Bool_t tpctrddo)   { fTPCTRDdo = tpctrddo; };
69   void SetDoTPCEMCal(Bool_t tpcemcaldo)   { fTPCEMCaldo = tpcemcaldo; };
70   void SetAODAnalysis(Bool_t aodAnalysis)   { fAODAnalysis = aodAnalysis; };
71   void SetCentralityEstimator(const char *estimator) { fCentralityEstimator = estimator; }
72   void SetppAnalysis(){
73     fCollisionSystem.SetBitNumber(kpPb, kFALSE); 
74     fCollisionSystem.SetBitNumber(kPbPb, kFALSE); 
75     fCollisionSystem.SetBitNumber(kpp, kTRUE); 
76   }
77   void SetpPbAnalysis() {
78     fCollisionSystem.SetBitNumber(kpp, kFALSE); 
79     fCollisionSystem.SetBitNumber(kPbPb, kFALSE); 
80     fCollisionSystem.SetBitNumber(kpPb, kTRUE); 
81   }
82   void SetPbPbAnalysis() { 
83     fCollisionSystem.SetBitNumber(kpp, kFALSE); 
84     fCollisionSystem.SetBitNumber(kpPb, kFALSE); 
85     fCollisionSystem.SetBitNumber(kPbPb, kTRUE); 
86   };
87   Bool_t Ispp() const { return fCollisionSystem.TestBitNumber(kpp); }
88   Bool_t IsPbPb() const { return fCollisionSystem.TestBitNumber(kPbPb); }
89   Bool_t IspPb() const { return fCollisionSystem.TestBitNumber(kpPb); }
90   
91   AliHFEpid *GetPIDTPConly() const { return fPIDTPConly; }
92   AliHFEpid *GetPIDTRDonly() const { return fPIDTRDonly; }
93   AliHFEpid *GetPIDTOFTPC() const { return fPIDTOFTPC; }
94   AliHFEpid *GetPIDTPCTRD() const { return fPIDTPCTRD; }
95   AliHFEpid *GetPIDTPCEMCal() const { return fPIDTPCEMCal; }
96   AliHFEpidQAmanager *GetPIDQAManagerTRDonly() const { return fPIDqaTRDonly; }
97   AliHFEpidQAmanager *GetPIDQAManagerTOFTPC() const { return fPIDqaTOFTPC; }
98   AliHFEpidQAmanager *GetPIDQAManagerTPCTRD() const { return fPIDqaTPCTRD; }
99   AliHFEpidQAmanager *GetPIDQAManagerTPCEMCal() const { return fPIDqaTPCEMCal; }
100  
101
102   void SetHFECuts(AliHFEcuts * const cuts) { fHFECuts = cuts; };
103  
104  private:
105   TList     *fListHist;         //! TH list
106   Bool_t    fAODAnalysis;       // AOD analysis
107   AliAODMCHeader *fAODMCHeader;         // ! MC info AOD
108   TClonesArray *fAODArrayMCInfo;        // ! MC info particle AOD
109  
110   // Cuts for HFE
111   AliHFEcuts *fHFECuts;                   // HFE cuts
112   AliHFEpid  *fPIDTPConly;                // PID cuts 
113   AliHFEpid  *fPIDTRDonly;                // PID cuts 
114   AliHFEpid  *fPIDTOFTPC;                 // PID cuts TOF-TPC only
115   AliHFEpid  *fPIDTPCTRD;                 // PID cuts TPC-TRD 
116   AliHFEpid  *fPIDTPCEMCal;                 // PID cuts TPC-EMCal 
117   AliHFEpidQAmanager *fPIDqaTRDonly;       // QA Manager TOF TPC
118   AliHFEpidQAmanager *fPIDqaTOFTPC;       // QA Manager TOF TPC
119   AliHFEpidQAmanager *fPIDqaTPCTRD;       // QA Manager TPC TRD
120   AliHFEpidQAmanager *fPIDqaTPCEMCal;       // QA Manager TPC EMCal
121   TString fCentralityEstimator;         // Centrality Estimator
122   TBits fCollisionSystem;              // Collision System;
123
124   // Histo yields
125   TH1F *fNbEvent;                      // Number of events
126   TH1F *fTPConly;                      // TPC only electron yield
127   TH1F *fTOFTPC;                      // TOF TPC  electron yield
128   TH1F *fTPCTRD;                      // TPC TRD  electron yield
129   TH1F *fTPCEMCal;                      // TPC EMCal electron yield
130
131   // Do PID or not
132   Bool_t fTPConlydo;                   // Do TPC only PID
133   Bool_t fTRDonlydo;                   // Do TRD only PID
134   Bool_t fTOFTPCdo;                    // Do TOF TPC 
135   Bool_t fTPCTRDdo;                    // Do TPC TRD 
136   Bool_t fTPCEMCaldo;                    // Do TPC EMCal 
137
138   
139   // Debuging Cuts step by step all centrality together: pt, step (6)
140   //THnSparseF *fTrackingCuts; //! Tracking Cuts
141
142   
143   
144   ClassDef(AliAnalysisTaskHFEQA, 3); // analysisclass
145 };
146
147 #endif