]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnalysisTaskEtaToPiPlPiMiGamma.h
- fixed MC routines in CaloConv task, added corresponding addtasks
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskEtaToPiPlPiMiGamma.h
1 #ifndef ALIANALYSISTASKETATOPIPLPIMIGAMMA_H
2 #define ALIANALYSISTASKETATOPIPLPIMIGAMMA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // Analysis task for pi0->e+e-gamma (Dalitz decay)
8
9 #include "AliAnalysisTaskSE.h"
10 #include "AliV0ReaderV1.h"
11 #include "AliKFConversionPhoton.h"
12 #include "AliPrimaryPionSelector.h"
13 #include "AliConversionMesonCuts.h"
14 #include "AliConvEventCuts.h"
15 #include "AliGammaConversionAODBGHandler.h"
16 #include "TProfile2D.h"
17
18 class AliESDInputHandler;
19 class AliMCEventHandler;
20 class AliESDEvent;
21 class AliESDtrack;
22 class AliESDtrackCuts;
23 class AliESDpidCuts;
24 class AliV0Reader;
25 class AliTriggerAnalysis;
26
27 class AliAnalysisTaskEtaToPiPlPiMiGamma: public AliAnalysisTaskSE
28 {
29         public:
30
31                 AliAnalysisTaskEtaToPiPlPiMiGamma();
32                 AliAnalysisTaskEtaToPiPlPiMiGamma( const char* name );
33                 virtual ~AliAnalysisTaskEtaToPiPlPiMiGamma();
34
35                 virtual void UserExec(Option_t *);
36                 virtual void UserCreateOutputObjects();
37                 virtual Bool_t Notify();
38                 virtual void Terminate(const Option_t *);
39
40                         
41                 void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
42                         
43                 void SetIsHeavyIon(Int_t flag){
44                         if (flag == 1 || flag ==2 ){
45                                 fIsHeavyIon = 1;    
46                         } else {
47                                 fIsHeavyIon = 0;    
48                         }
49                 }
50                 
51                 void SetIsMC(Bool_t isMC){fIsMC=isMC;}
52                 void SetConversionCutList(Int_t nCuts, TList *CutArray){
53                         fnCuts= nCuts;
54                         fGammaCutArray = CutArray;
55                 }
56                 void SetEventCutList(Int_t nCuts, TList *CutArray){
57                         fnCuts= nCuts;
58                         fEventCutArray = CutArray;
59                 }
60
61                 void SetPionCutList(TList *CutArray){
62                         fPionCutArray = CutArray;
63                 }
64                 void SetMesonCutList(TList *CutArray){
65                         fMesonCutArray = CutArray;
66                 }
67                 void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
68         
69
70         private:
71
72                 void InitBack();
73                 void ProcessPhotonCandidates();
74                 void ProcessTruePhotonCandidates(AliAODConversionPhoton*);
75                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
76                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
77         void ProcessPionCandidates();
78                 void ProcessMCParticles();
79                 void CalculateMesonCandidates();
80         void CalculateBackground();
81                 void UpdateEventByEventData();
82         
83                 Bool_t IsPiPlPiMiGammaDecay(TParticle *fMCMother) const;
84                 Bool_t IsEtaPiPlPiMiGammaDaughter( Int_t label ) const;
85                 
86                 
87
88                 AliV0ReaderV1                                   *fV0Reader;                                                                     //
89                 AliPrimaryPionSelector                  *fPionSelector;                                                         //
90                 AliGammaConversionAODBGHandler  **fBGHandler;                                                           //
91                 AliESDEvent                                     *fESDEvent;                                                                     //
92                 AliMCEvent                                              *fMCEvent;                                                                      //
93                 AliStack                                                *fMCStack;                                                                      //
94                 TList                                                   **fCutFolder;                                                           //
95                 TList                                                   **fESDList;                                                                     //
96                 TList                                                   **fBackList;                                                            //
97                 TList                                                   **fMotherList;                                                          //
98                 TList                                                   **fTrueList;                                                            //
99                 TList                                                   **fMCList;                                                                      //
100                 TList                                                   *fOutputContainer;                                                      //
101                 TClonesArray                                    *fReaderGammas;                                                         //
102                 vector<Int_t>                                   fSelectorNegPionIndex;                                          //
103                 vector<Int_t>                                   fSelectorPosPionIndex;                                          //
104                 TList                                                   *fGoodGammas;                                                           //
105                 TList                                                   *fGoodVirtualParticles;                                         //
106                 TList                                                   *fEventCutArray;                                                        //
107                 TList                                                   *fGammaCutArray;                                                        //
108                 TList                                                   *fPionCutArray;                                                         //
109                 TList                                                   *fMesonCutArray;                                                        //
110                 AliConvEventCuts                                *fEventCuts;                                                            //
111                 AliConversionPhotonCuts                 *fConversionCuts;                                                       //
112                 
113                 // reconstructed particles
114                 TH1F                                                    **fHistoConvGammaPt;                                            //
115                 TH1F                                                    **fHistoConvGammaEta;                                           //
116                 TH1F                                                    **fHistoNegPionPt;                                                      //
117                 TH1F                                                    **fHistoPosPionPt;                                                      //
118                 TH1F                                                    **fHistoNegPionPhi;                                                     //
119                 TH1F                                                    **fHistoPosPionPhi;                                                     //
120                 TH1F                                                    **fHistoNegPionEta;                                                     //
121                 TH1F                                                    **fHistoPosPionEta;                                                     //
122                 TH2F                                                    **fHistoNegPionClsTPC;                                          //
123                 TH2F                                                    **fHistoPosPionClsTPC;                                          //
124                 TH2F                                                    **fHistoPionDCAxy;                                                      //
125                 TH2F                                                    **fHistoPionDCAz;                                                       //
126                 TH2F                                                    **fHistoPionTPCdEdxNSigma;                                      //
127                 TH2F                                                    **fHistoPionTPCdEdx;                                            //
128                 TH2F                                                    **fHistoPionPionInvMassPt;                                      //
129                 TH2F                                                    **fHistoMotherInvMassPt;                                        //
130                 THnSparseF                                              **fTHnSparseMotherInvMassPtZM;                          //
131                 TH2F                                                    **fHistoMotherBackInvMassPt;                            //
132                 THnSparseF                                              **fTHnSparseMotherBackInvMassPtZM;                      //
133                 
134                 // pure MC properties
135                 TH1F                                                    **fHistoMCAllGammaPt;                                           //
136                 TH1F                                                    **fHistoMCConvGammaPt;                                          //
137                 TH1F                                                    **fHistoMCAllPosPionsPt;                                        //
138                 TH1F                                                    **fHistoMCAllNegPionsPt;                                        //
139                 TH1F                                                    **fHistoMCGammaFromEtaPt;                                       //
140                 TH1F                                                    **fHistoMCPosPionsFromEtaPt;                            //
141                 TH1F                                                    **fHistoMCNegPionsFromEtaPt;                            //
142                 TH1F                                                    **fHistoMCEtaPiPlPiMiGammaPt;                           //
143                 TH1F                                                    **fHistoMCEtaGGPt;                                                      //
144                 TH1F                                                    **fHistoMCEtaDalitzPt;                                          //
145                 TH1F                                                    **fHistoMCEtaPiPlPiMiGammaInAccPt;                      //
146
147                 // reconstructed particles MC validated
148                 TH2F                                                    **fHistoTrueMotherPiPlPiMiGammaInvMassPt;       //
149                 TH2F                                                    **fHistoTrueMotherGammaGammaInvMassPt;          //
150                 TH2F                                                    **fHistoTrueMotherDalitzInvMassPt;                      //
151                 TH1F                                                    **fHistoTrueConvGammaPt;                                        //
152                 TH1F                                                    **fHistoTrueConvGammaFromEtaPt;                         //
153                 TH1F                                                    **fHistoTruePosPionPt;                                          //
154                 TH1F                                                    **fHistoTruePosPionFromEtaPt;                           //
155                 TH1F                                                    **fHistoTrueNegPionPt;                                          //
156                 TH1F                                                    **fHistoTrueNegPionFromEtaPt;                           //
157                 TH2F                                                    **fHistoTruePionPionInvMassPt;                          //
158                 TH2F                                                    **fHistoTruePionPionFromEtaInvMassPt;           //
159                 // Event properties
160                 TH1I                                                    **fHistoNEvents;                                                        //
161                 TH1I                                                    **fHistoNGoodESDTracks;                                         //
162                 TProfile                                                **fProfileEtaShift;                                                     //
163                         
164                 TRandom3                                                fRandom;
165                 Int_t                                                   fnCuts;
166                 Int_t                                                   fiCut;
167                 Int_t                                                   fNumberOfESDTracks;
168                 Bool_t                                                  fMoveParticleAccordingToVertex;
169                 Bool_t                                                  fIsHeavyIon;
170                 Bool_t                                                  fDoMesonAnalysis;
171                 Bool_t                                                  fDoMesonQA;
172                 Bool_t                                                  fIsFromMBHeader;
173                 Bool_t                                                  fIsMC;
174                 Bool_t                                                  fIsGammaEtaCand;
175         private:
176                 AliAnalysisTaskEtaToPiPlPiMiGamma( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
177                 AliAnalysisTaskEtaToPiPlPiMiGamma& operator=( const AliAnalysisTaskEtaToPiPlPiMiGamma& ); // Not implemented
178
179                 ClassDef( AliAnalysisTaskEtaToPiPlPiMiGamma, 2 );
180 };
181
182 #endif // ALIANALYSISTASKETATOPIPLPIMIGAMMA_H
183