Jet and Particle identification tasks moved to different directories
[u/mrichter/AliRoot.git] / PWG4 / PartCorr / AliAnalysisTaskGammaConversion.h
1 #ifndef ALIANALYSISTASKGAMMACONVERSION_H
2 #define ALIANALYSISTASKGAMMACONVERSION_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6  
7 #include "AliAnalysisTaskSE.h"
8 #include "AliV0Reader.h"
9 //#include "TH2F.h"
10 //#include "TH1F.h"
11 #include "AliGammaConversionHistograms.h"
12 #include "AliESDv0.h"
13 #include <vector>
14 //#include "TLorentzVector.h"
15 #include "AliKFParticle.h"
16
17 //class AliAnaGamma;
18 class AliESDInputHandler;
19 class AliESDEvent;
20 class AliAODEvent;
21 class TList;
22 class AliStack;
23
24 class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
25 {
26  public:
27     AliAnalysisTaskGammaConversion();
28     AliAnalysisTaskGammaConversion(const char* name);
29     virtual ~AliAnalysisTaskGammaConversion() ;// virtual destructor
30  
31     // Implementation of interface methods
32     virtual void UserCreateOutputObjects();
33     virtual void Init();
34     virtual void LocalInit() {Init();}
35     virtual void Exec(Option_t *option);
36     virtual void Terminate(Option_t *option);
37     virtual void ConnectInputData(Option_t *);
38         
39     void ProcessMCData();
40     void ProcessV0s();
41     void ProcessGammasForNeutralMesonAnalysis();
42     void SetHistograms(AliGammaConversionHistograms *histograms){fHistograms=histograms;}
43     void SetDoMCTruth(Bool_t flag){fDoMCTruth=flag;}
44     void SetElectronMass(Double_t electronMass){fElectronMass = electronMass;}
45     void SetGammaMass(Double_t gammaMass){fGammaMass = gammaMass;}
46     void SetGammaWidth(Double_t gammaWidth){fGammaWidth = gammaWidth;}
47     void SetPi0Mass(Double_t pi0Mass){fPi0Mass = pi0Mass;}
48     void SetPi0Width(Double_t pi0Width){fPi0Width = pi0Width;}
49     void SetEtaMass(Double_t etaMass){fEtaMass = etaMass;}
50     void SetEtaWidth(Double_t etaWidth){fEtaWidth = etaWidth;}
51     void SetV0Reader(AliV0Reader* reader){fV0Reader=reader;}
52     void SetCalculateBackground(Bool_t bg){fCalculateBackground=bg;}
53     void CalculateBackground();
54     Double_t GetMCOpeningAngle(TParticle* daughter0,TParticle* daughter1);
55
56  private:
57     AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
58     AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
59
60     AliV0Reader* fV0Reader;
61
62     AliStack * fStack;
63
64     TList * fOutputContainer ; // Histogram container
65
66     AliGammaConversionHistograms *fHistograms;
67
68     Bool_t fDoMCTruth;
69     
70     vector<TParticle*> fMCAllGammas;
71     vector<TParticle*> fMCPi0s;
72     vector<TParticle*> fMCEtas;
73     vector<TParticle*> fMCGammaChi_c;
74
75     vector<AliKFParticle> fKFReconstructedGammas;
76
77     //mass defines
78     Double_t fElectronMass;
79     Double_t fGammaMass;
80     Double_t fPi0Mass;
81     Double_t fEtaMass;
82
83     // width defines
84     Double_t fGammaWidth;
85     Double_t fPi0Width;
86     Double_t fEtaWidth;
87     Bool_t fCalculateBackground;
88
89
90     ClassDef(AliAnalysisTaskGammaConversion, 0); // Analysis task for gamma conversions
91 };
92  
93 #endif //ALIANALYSISTASKGAMMA_H