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

// Inclusion of AliPHOSHijingEfficiency,
// by Dmitri Peressounko, 05.02.2013
// Authors: Henrik Qvigstad, Dmitri Peressounko
// Date   : 20.06.2013
/* $Id$ */


#ifndef ALIANALYSISTASKPI0FLOWMC_H
#define ALIANALYSISTASKPI0FLOWMC_H

class TParticle;

#include "AliAnalysisTaskPi0Flow.h"


class AliAnalysisTaskPi0FlowMC : public AliAnalysisTaskPi0Flow
{
public:
  AliAnalysisTaskPi0FlowMC(const char* name = "AliAnalysisTaskPi0Flow", Period period = kUndefinedPeriod);
  virtual ~AliAnalysisTaskPi0FlowMC();
    
  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:
  AliAnalysisTaskPi0FlowMC(const AliAnalysisTaskPi0FlowMC&); // not implemented
  AliAnalysisTaskPi0FlowMC& operator=(const AliAnalysisTaskPi0FlowMC&); // not implemented
  
  AliStack* GetMCStack();

protected: // member variables:
  AliStack* fStack;
  Bool_t kOffVertexCutSet;
    
  void FillMCHist();
  
  virtual Double_t PrimaryWeight(Int_t primary);
  virtual Double_t PrimaryParticleWeight(TParticle * 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(AliAnalysisTaskPi0FlowMC, 1); // PHOS analysis task
};

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