New class for MC AOD analysis (B.Polishchuk)
[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 protected: // Override:
24   virtual void UserCreateOutputObjects();
25   virtual void UserExec(Option_t *option);
26   // Pi0FlowTask
27   virtual void SelectPhotonClusters();
28   virtual void FillSelectedClusterHistograms();
29   virtual void ConsiderPi0s();
30   virtual void ConsiderPi0sMix();
31   virtual void ProcessMC();
32
33 protected: // member functions:
34   AliAnalysisTaskPi0FlowMCAOD(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
35   AliAnalysisTaskPi0FlowMCAOD& operator=(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
36   
37   TClonesArray* GetMCArray();
38   AliAODMCParticle* GetParticle(Int_t); //Returns particle at given position for AOD
39
40 protected: // member variables:
41   TClonesArray* fMcArray; //mcArray for AOD MC particles 
42   
43   void FillMCHist();
44   Double32_t R(AliAODMCParticle* p);
45   
46   virtual Double_t PrimaryWeight(Int_t primary);
47   virtual Double_t PrimaryParticleWeight(AliAODMCParticle * particle);
48   void FillSecondaries() ;
49   Int_t FindPrimary(AliVCluster* clu,  Bool_t& sure);
50   Int_t FindCommonParent(Int_t iPart, Int_t jPart) ;
51   Bool_t HaveParent(Int_t iPart, Int_t pdgParent);
52   Bool_t InPi0mass(Double_t m, Double_t pt);
53
54   void FillAllHistograms(const char* particleName, AliCaloPhoton* ph1);
55
56   static const Double_t kRCut;
57   enum ParticleID {kEta=221};
58
59
60   ClassDef(AliAnalysisTaskPi0FlowMCAOD, 1); // PHOS analysis task
61 };
62
63 #endif // ALIANALYSISTASKPI0FLOWMCAOD_H