Added possibility to set on/off cut on off-vertex photons.
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_PbPb / AliAnalysisTaskPi0FlowMCAOD.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // Authors: Henrik Qvigstad, Dmitri Peressounko
5 // Date   : 20.06.2013
6 // Adopted for AOD analysis by Boris Polishchuk (10.03.2014)
7 /* $Id$ */
8
9
10 #ifndef ALIANALYSISTASKPI0FLOWMCAOD_H
11 #define ALIANALYSISTASKPI0FLOWMCAOD_H
12
13 class AliAODMCParticle;
14
15 #include "AliAnalysisTaskPi0Flow.h"
16
17 class AliAnalysisTaskPi0FlowMCAOD : public AliAnalysisTaskPi0Flow
18 {
19 public:
20   AliAnalysisTaskPi0FlowMCAOD(const char* name = "AliAnalysisTaskPi0Flow", Period period = kUndefinedPeriod);
21   virtual ~AliAnalysisTaskPi0FlowMCAOD();
22     
23   void SetOffVertexPhotonCut(Bool_t setCut=kTRUE) { kOffVertexCutSet=setCut; }
24     
25 protected: // Override:
26   virtual void UserCreateOutputObjects();
27   virtual void UserExec(Option_t *option);
28   // Pi0FlowTask
29   virtual void SelectPhotonClusters();
30   virtual void FillSelectedClusterHistograms();
31   virtual void ConsiderPi0s();
32   virtual void ConsiderPi0sMix();
33   virtual void ProcessMC();
34
35 protected: // member functions:
36   AliAnalysisTaskPi0FlowMCAOD(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
37   AliAnalysisTaskPi0FlowMCAOD& operator=(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
38   
39   TClonesArray* GetMCArray();
40   AliAODMCParticle* GetParticle(Int_t); //Returns particle at given position for AOD
41
42 protected: // member variables:
43   TClonesArray* fMcArray; //mcArray for AOD MC particles
44   Bool_t kOffVertexCutSet;
45     
46   void FillMCHist();
47   Double32_t R(AliAODMCParticle* p);
48   
49   virtual Double_t PrimaryWeight(Int_t primary);
50   virtual Double_t PrimaryParticleWeight(AliAODMCParticle * particle);
51   void FillSecondaries() ;
52   Int_t FindPrimary(AliVCluster* clu,  Bool_t& sure);
53   Int_t FindCommonParent(Int_t iPart, Int_t jPart) ;
54   Bool_t HaveParent(Int_t iPart, Int_t pdgParent);
55   Bool_t InPi0mass(Double_t m, Double_t pt);
56
57   void FillAllHistograms(const char* particleName, AliCaloPhoton* ph1);
58
59   static const Double_t kRCut;
60   enum ParticleID {kEta=221};
61
62
63   ClassDef(AliAnalysisTaskPi0FlowMCAOD, 1); // PHOS analysis task
64 };
65
66 #endif // ALIANALYSISTASKPI0FLOWMCAOD_H