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