ROOT logo
#ifndef AliAnalysisTaskGCPartToPWG4Part_cxx
#define AliAnalysisTaskGCPartToPWG4Part_cxx

// example of an analysis task creating a p_t spectrum
// Authors: Svein Lindal

class TH1F;
class AliESDEvent;
class AliAODConversionPhoton;
class AliAODPWG4ParticleCorrelation;
class AliAODPWG4Particle;
class TClonesArray;
class TString;
class AliMCAnalysisUtils;
class AliAODMCHeader;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskGCPartToPWG4Part : public AliAnalysisTaskSE {

public:

  AliAnalysisTaskGCPartToPWG4Part(); 
  AliAnalysisTaskGCPartToPWG4Part(const char *name);
  virtual ~AliAnalysisTaskGCPartToPWG4Part();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);

  void SetDeltaAODFileName(TString string) { fDeltaAODFileName = string;}
  void SetGammaBranchName(TString string) { fAODBranchName = string; }
 

  void SetDebugLevel(Int_t debugLevel) { fDebugLevel = debugLevel; }
  Int_t GetDebugLevel() const { return fDebugLevel; }

  void SetGammaCutId(TString cut) { fGammaCutString = Form("GammaConv_%s", cut.Data());}
  void SetPionCutId(TString cut) { fPionCutString = Form("GammaConv_%s", cut.Data());}

  
 private:

  //Clean up
  void CleanUp();

  //Get the AOD event from whereever it might be accessible
  AliAODEvent * GetAODEvent();

  Bool_t BothTracksPresent(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks) const;
  Bool_t BothGammaPresent(const AliAODConversionPhoton * const pion, const TClonesArray * const photons, const TClonesArray * const tracks) const;

  //Get Conversion gammas branch
  TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent) const;
  TClonesArray * GetPions(const AliAODEvent * aodEvent) const;
  TClonesArray * GetAODBranch(const AliAODEvent * aodEvent, TString branchName) const;

  //Fill AOD tree with PWG4 particles
  AliAODPWG4ParticleCorrelation * AddToAOD(AliAODConversionPhoton * aodO, TClonesArray * branch, Int_t detector);
  AliAODPWG4ParticleCorrelation * AddPionToAOD(AliAODConversionPhoton * pion, TClonesArray * branch, Int_t detector);
  //Process conv gamma
  void ProcessConvGamma( const AliAODEvent * const aodEvent );

  TString     fDeltaAODFileName;//! File where Gamma Conv AOD is located, if not in default AOD
  TString     fGammaCutString;   //! The cut string of the conversion analysis used to produce input AOD
  TString     fPionCutString;   //! The cut string of the conversion analysis used to produce input AOD
  TString     fAODBranchName;
  TClonesArray * fAODPWG4Photons;
  TClonesArray * fAODPWG4Pi0;


  Int_t fDebugLevel;


  AliAnalysisTaskGCPartToPWG4Part(const AliAnalysisTaskGCPartToPWG4Part&); // not implemented
  AliAnalysisTaskGCPartToPWG4Part& operator=(const AliAnalysisTaskGCPartToPWG4Part&); // not implemented

  //Int_t CheckTag(AliAODPWG4ParticleCorrelation * particle, TClonesArray * tracks, TClonesArray * arrayMC, AliAODMCHeader * mcHeader);
  
  ClassDef(AliAnalysisTaskGCPartToPWG4Part, 1); // example of analysis
};

#endif
 AliAnalysisTaskGCPartToPWG4Part.h:1
 AliAnalysisTaskGCPartToPWG4Part.h:2
 AliAnalysisTaskGCPartToPWG4Part.h:3
 AliAnalysisTaskGCPartToPWG4Part.h:4
 AliAnalysisTaskGCPartToPWG4Part.h:5
 AliAnalysisTaskGCPartToPWG4Part.h:6
 AliAnalysisTaskGCPartToPWG4Part.h:7
 AliAnalysisTaskGCPartToPWG4Part.h:8
 AliAnalysisTaskGCPartToPWG4Part.h:9
 AliAnalysisTaskGCPartToPWG4Part.h:10
 AliAnalysisTaskGCPartToPWG4Part.h:11
 AliAnalysisTaskGCPartToPWG4Part.h:12
 AliAnalysisTaskGCPartToPWG4Part.h:13
 AliAnalysisTaskGCPartToPWG4Part.h:14
 AliAnalysisTaskGCPartToPWG4Part.h:15
 AliAnalysisTaskGCPartToPWG4Part.h:16
 AliAnalysisTaskGCPartToPWG4Part.h:17
 AliAnalysisTaskGCPartToPWG4Part.h:18
 AliAnalysisTaskGCPartToPWG4Part.h:19
 AliAnalysisTaskGCPartToPWG4Part.h:20
 AliAnalysisTaskGCPartToPWG4Part.h:21
 AliAnalysisTaskGCPartToPWG4Part.h:22
 AliAnalysisTaskGCPartToPWG4Part.h:23
 AliAnalysisTaskGCPartToPWG4Part.h:24
 AliAnalysisTaskGCPartToPWG4Part.h:25
 AliAnalysisTaskGCPartToPWG4Part.h:26
 AliAnalysisTaskGCPartToPWG4Part.h:27
 AliAnalysisTaskGCPartToPWG4Part.h:28
 AliAnalysisTaskGCPartToPWG4Part.h:29
 AliAnalysisTaskGCPartToPWG4Part.h:30
 AliAnalysisTaskGCPartToPWG4Part.h:31
 AliAnalysisTaskGCPartToPWG4Part.h:32
 AliAnalysisTaskGCPartToPWG4Part.h:33
 AliAnalysisTaskGCPartToPWG4Part.h:34
 AliAnalysisTaskGCPartToPWG4Part.h:35
 AliAnalysisTaskGCPartToPWG4Part.h:36
 AliAnalysisTaskGCPartToPWG4Part.h:37
 AliAnalysisTaskGCPartToPWG4Part.h:38
 AliAnalysisTaskGCPartToPWG4Part.h:39
 AliAnalysisTaskGCPartToPWG4Part.h:40
 AliAnalysisTaskGCPartToPWG4Part.h:41
 AliAnalysisTaskGCPartToPWG4Part.h:42
 AliAnalysisTaskGCPartToPWG4Part.h:43
 AliAnalysisTaskGCPartToPWG4Part.h:44
 AliAnalysisTaskGCPartToPWG4Part.h:45
 AliAnalysisTaskGCPartToPWG4Part.h:46
 AliAnalysisTaskGCPartToPWG4Part.h:47
 AliAnalysisTaskGCPartToPWG4Part.h:48
 AliAnalysisTaskGCPartToPWG4Part.h:49
 AliAnalysisTaskGCPartToPWG4Part.h:50
 AliAnalysisTaskGCPartToPWG4Part.h:51
 AliAnalysisTaskGCPartToPWG4Part.h:52
 AliAnalysisTaskGCPartToPWG4Part.h:53
 AliAnalysisTaskGCPartToPWG4Part.h:54
 AliAnalysisTaskGCPartToPWG4Part.h:55
 AliAnalysisTaskGCPartToPWG4Part.h:56
 AliAnalysisTaskGCPartToPWG4Part.h:57
 AliAnalysisTaskGCPartToPWG4Part.h:58
 AliAnalysisTaskGCPartToPWG4Part.h:59
 AliAnalysisTaskGCPartToPWG4Part.h:60
 AliAnalysisTaskGCPartToPWG4Part.h:61
 AliAnalysisTaskGCPartToPWG4Part.h:62
 AliAnalysisTaskGCPartToPWG4Part.h:63
 AliAnalysisTaskGCPartToPWG4Part.h:64
 AliAnalysisTaskGCPartToPWG4Part.h:65
 AliAnalysisTaskGCPartToPWG4Part.h:66
 AliAnalysisTaskGCPartToPWG4Part.h:67
 AliAnalysisTaskGCPartToPWG4Part.h:68
 AliAnalysisTaskGCPartToPWG4Part.h:69
 AliAnalysisTaskGCPartToPWG4Part.h:70
 AliAnalysisTaskGCPartToPWG4Part.h:71
 AliAnalysisTaskGCPartToPWG4Part.h:72
 AliAnalysisTaskGCPartToPWG4Part.h:73
 AliAnalysisTaskGCPartToPWG4Part.h:74
 AliAnalysisTaskGCPartToPWG4Part.h:75
 AliAnalysisTaskGCPartToPWG4Part.h:76
 AliAnalysisTaskGCPartToPWG4Part.h:77
 AliAnalysisTaskGCPartToPWG4Part.h:78
 AliAnalysisTaskGCPartToPWG4Part.h:79
 AliAnalysisTaskGCPartToPWG4Part.h:80
 AliAnalysisTaskGCPartToPWG4Part.h:81
 AliAnalysisTaskGCPartToPWG4Part.h:82
 AliAnalysisTaskGCPartToPWG4Part.h:83