]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/AliAnalysisTaskGCPartToPWG4Part.h
Merging gsi train and aliroot trunk
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskGCPartToPWG4Part.h
1 #ifndef AliAnalysisTaskGCPartToPWG4Part_cxx\r
2 #define AliAnalysisTaskGCPartToPWG4Part_cxx\r
3 \r
4 // example of an analysis task creating a p_t spectrum\r
5 // Authors: Svein Lindal\r
6 \r
7 class TH1F;\r
8 class AliESDEvent;\r
9 class AliGammaConversionAODObject;\r
10 class AliAODConversionPhoton;\r
11 class AliAODPWG4ParticleCorrelation;\r
12 class AliAODPWG4Particle;\r
13 class TClonesArray;\r
14 class TString;\r
15 class AliMCAnalysisUtils;\r
16 class AliAODMCHeader;\r
17 \r
18 #include "AliAnalysisTaskSE.h"\r
19 \r
20 class AliAnalysisTaskGCPartToPWG4Part : public AliAnalysisTaskSE {\r
21 \r
22 public:\r
23 \r
24   AliAnalysisTaskGCPartToPWG4Part(); \r
25   AliAnalysisTaskGCPartToPWG4Part(const char *name);\r
26   virtual ~AliAnalysisTaskGCPartToPWG4Part();\r
27   \r
28   virtual void   UserCreateOutputObjects();\r
29   virtual void   UserExec(Option_t *option);\r
30   virtual void   Terminate(Option_t *);\r
31 \r
32   void SetDeltaAODFileName(TString string) { fDeltaAODFileName = string;}\r
33   void SetGammaBranchName(TString string) { fAODBranchName = string; }\r
34  \r
35 \r
36   void SetDebugLevel(Int_t debugLevel) { fDebugLevel = debugLevel; }\r
37   Int_t GetDebugLevel() const { return fDebugLevel; }\r
38 \r
39   void SetGammaCutId(TString cut) { fGammaCutString = Form("GammaConv_%s", cut.Data());}\r
40   void SetPionCutId(TString cut) { fPionCutString = Form("GammaConv_%s", cut.Data());}\r
41 \r
42   \r
43  private:\r
44 \r
45   //Clean up\r
46   void CleanUp();\r
47 \r
48   //Get the AOD event from whereever it might be accessible\r
49   AliAODEvent * GetAODEvent();\r
50 \r
51   Bool_t BothTracksPresent(const AliAODConversionPhoton * const photon, const TClonesArray * const tracks) const;\r
52   Bool_t BothGammaPresent(const AliAODConversionPhoton * const pion, const TClonesArray * const photons, const TClonesArray * const tracks) const;\r
53 \r
54   //Get Conversion gammas branch\r
55   TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent) const;\r
56   TClonesArray * GetPions(const AliAODEvent * aodEvent) const;\r
57   TClonesArray * GetAODBranch(const AliAODEvent * aodEvent, TString branchName) const;\r
58 \r
59   //Fill AOD tree with PWG4 particles\r
60   AliAODPWG4ParticleCorrelation * AddToAOD(AliGammaConversionAODObject * aodO, TClonesArray * branch, TString detector);\r
61   AliAODPWG4ParticleCorrelation * AddToAOD(AliAODConversionPhoton * aodO, TClonesArray * branch, TString detector);\r
62   AliAODPWG4ParticleCorrelation * AddPionToAOD(AliAODConversionPhoton * pion, TClonesArray * branch, TString detector, TClonesArray * photons);  \r
63   //Process conv gamma\r
64   void ProcessConvGamma( const AliAODEvent * const aodEvent );\r
65 \r
66   TString     fDeltaAODFileName;//! File where Gamma Conv AOD is located, if not in default AOD\r
67   TString     fGammaCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
68   TString     fPionCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
69   TString     fAODBranchName;\r
70   TClonesArray * fAODPWG4Photons;\r
71   TClonesArray * fAODPWG4Pi0;\r
72 \r
73 \r
74   Int_t fDebugLevel;\r
75 \r
76 \r
77   AliAnalysisTaskGCPartToPWG4Part(const AliAnalysisTaskGCPartToPWG4Part&); // not implemented\r
78   AliAnalysisTaskGCPartToPWG4Part& operator=(const AliAnalysisTaskGCPartToPWG4Part&); // not implemented\r
79 \r
80   //Int_t CheckTag(AliAODPWG4ParticleCorrelation * particle, TClonesArray * tracks, TClonesArray * arrayMC, AliAODMCHeader * mcHeader);\r
81   \r
82   ClassDef(AliAnalysisTaskGCPartToPWG4Part, 1); // example of analysis\r
83 };\r
84 \r
85 #endif\r