ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Authors: Henrik Qvigstad, Dmitri Peressounko
// Date   : 20.06.2013
// Adopted for AOD analysis by Boris Polishchuk (10.03.2014)
/* $Id$ */


#ifndef ALIANALYSISTASKPI0FLOWMCAOD_H
#define ALIANALYSISTASKPI0FLOWMCAOD_H

class AliAODMCParticle;

#include "AliAnalysisTaskPi0Flow.h"

class AliAnalysisTaskPi0FlowMCAOD : public AliAnalysisTaskPi0Flow
{
public:
  AliAnalysisTaskPi0FlowMCAOD(const char* name = "AliAnalysisTaskPi0Flow", Period period = kUndefinedPeriod);
  virtual ~AliAnalysisTaskPi0FlowMCAOD();
    
  void SetOffVertexPhotonCut(Bool_t setCut=kTRUE) { kOffVertexCutSet=setCut; }
    
protected: // Override:
  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  // Pi0FlowTask
  virtual void SelectPhotonClusters();
  virtual void FillSelectedClusterHistograms();
  virtual void ConsiderPi0s();
  virtual void ConsiderPi0sMix();
  virtual void ProcessMC();

protected: // member functions:
  AliAnalysisTaskPi0FlowMCAOD(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
  AliAnalysisTaskPi0FlowMCAOD& operator=(const AliAnalysisTaskPi0FlowMCAOD&); // not implemented
  
  TClonesArray* GetMCArray();
  AliAODMCParticle* GetParticle(Int_t); //Returns particle at given position for AOD

protected: // member variables:
  TClonesArray* fMcArray; //mcArray for AOD MC particles
  Bool_t kOffVertexCutSet;
    
  void FillMCHist();
  Double32_t R(AliAODMCParticle* p);
  
  virtual Double_t PrimaryWeight(Int_t primary);
  virtual Double_t PrimaryParticleWeight(AliAODMCParticle * particle);
  void FillSecondaries() ;
  Int_t FindPrimary(AliVCluster* clu,  Bool_t& sure);
  Int_t FindCommonParent(Int_t iPart, Int_t jPart) ;
  Bool_t HaveParent(Int_t iPart, Int_t pdgParent);
  Bool_t InPi0mass(Double_t m, Double_t pt);

  void FillAllHistograms(const char* particleName, AliCaloPhoton* ph1);

  static const Double_t kRCut;
  enum ParticleID {kEta=221};


  ClassDef(AliAnalysisTaskPi0FlowMCAOD, 1); // PHOS analysis task
};

#endif // ALIANALYSISTASKPI0FLOWMCAOD_H
 AliAnalysisTaskPi0FlowMCAOD.h:1
 AliAnalysisTaskPi0FlowMCAOD.h:2
 AliAnalysisTaskPi0FlowMCAOD.h:3
 AliAnalysisTaskPi0FlowMCAOD.h:4
 AliAnalysisTaskPi0FlowMCAOD.h:5
 AliAnalysisTaskPi0FlowMCAOD.h:6
 AliAnalysisTaskPi0FlowMCAOD.h:7
 AliAnalysisTaskPi0FlowMCAOD.h:8
 AliAnalysisTaskPi0FlowMCAOD.h:9
 AliAnalysisTaskPi0FlowMCAOD.h:10
 AliAnalysisTaskPi0FlowMCAOD.h:11
 AliAnalysisTaskPi0FlowMCAOD.h:12
 AliAnalysisTaskPi0FlowMCAOD.h:13
 AliAnalysisTaskPi0FlowMCAOD.h:14
 AliAnalysisTaskPi0FlowMCAOD.h:15
 AliAnalysisTaskPi0FlowMCAOD.h:16
 AliAnalysisTaskPi0FlowMCAOD.h:17
 AliAnalysisTaskPi0FlowMCAOD.h:18
 AliAnalysisTaskPi0FlowMCAOD.h:19
 AliAnalysisTaskPi0FlowMCAOD.h:20
 AliAnalysisTaskPi0FlowMCAOD.h:21
 AliAnalysisTaskPi0FlowMCAOD.h:22
 AliAnalysisTaskPi0FlowMCAOD.h:23
 AliAnalysisTaskPi0FlowMCAOD.h:24
 AliAnalysisTaskPi0FlowMCAOD.h:25
 AliAnalysisTaskPi0FlowMCAOD.h:26
 AliAnalysisTaskPi0FlowMCAOD.h:27
 AliAnalysisTaskPi0FlowMCAOD.h:28
 AliAnalysisTaskPi0FlowMCAOD.h:29
 AliAnalysisTaskPi0FlowMCAOD.h:30
 AliAnalysisTaskPi0FlowMCAOD.h:31
 AliAnalysisTaskPi0FlowMCAOD.h:32
 AliAnalysisTaskPi0FlowMCAOD.h:33
 AliAnalysisTaskPi0FlowMCAOD.h:34
 AliAnalysisTaskPi0FlowMCAOD.h:35
 AliAnalysisTaskPi0FlowMCAOD.h:36
 AliAnalysisTaskPi0FlowMCAOD.h:37
 AliAnalysisTaskPi0FlowMCAOD.h:38
 AliAnalysisTaskPi0FlowMCAOD.h:39
 AliAnalysisTaskPi0FlowMCAOD.h:40
 AliAnalysisTaskPi0FlowMCAOD.h:41
 AliAnalysisTaskPi0FlowMCAOD.h:42
 AliAnalysisTaskPi0FlowMCAOD.h:43
 AliAnalysisTaskPi0FlowMCAOD.h:44
 AliAnalysisTaskPi0FlowMCAOD.h:45
 AliAnalysisTaskPi0FlowMCAOD.h:46
 AliAnalysisTaskPi0FlowMCAOD.h:47
 AliAnalysisTaskPi0FlowMCAOD.h:48
 AliAnalysisTaskPi0FlowMCAOD.h:49
 AliAnalysisTaskPi0FlowMCAOD.h:50
 AliAnalysisTaskPi0FlowMCAOD.h:51
 AliAnalysisTaskPi0FlowMCAOD.h:52
 AliAnalysisTaskPi0FlowMCAOD.h:53
 AliAnalysisTaskPi0FlowMCAOD.h:54
 AliAnalysisTaskPi0FlowMCAOD.h:55
 AliAnalysisTaskPi0FlowMCAOD.h:56
 AliAnalysisTaskPi0FlowMCAOD.h:57
 AliAnalysisTaskPi0FlowMCAOD.h:58
 AliAnalysisTaskPi0FlowMCAOD.h:59
 AliAnalysisTaskPi0FlowMCAOD.h:60
 AliAnalysisTaskPi0FlowMCAOD.h:61
 AliAnalysisTaskPi0FlowMCAOD.h:62
 AliAnalysisTaskPi0FlowMCAOD.h:63
 AliAnalysisTaskPi0FlowMCAOD.h:64
 AliAnalysisTaskPi0FlowMCAOD.h:65
 AliAnalysisTaskPi0FlowMCAOD.h:66