AliPhysics  2b88e80 (2b88e80)
AliAnalysisTaskGammaConvDalitzV1.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKGAMMACONVDALITZV1_H
2 #define ALIANALYSISTASKGAMMACONVDALITZV1_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"
13 #include "AliConvEventCuts.h"
14 #include "AliConversionMesonCuts.h"
16 #include "TProfile2D.h"
17 #include <vector>
18 
19 class AliESDInputHandler;
20 class AliMCEventHandler;
21 class AliESDEvent;
22 class AliESDtrack;
23 class AliESDtrackCuts;
24 class AliESDpidCuts;
25 class AliV0Reader;
26 class AliGammaConversionHistograms;
27 class AliTriggerAnalysis;
28 
30 {
31  public:
32 
34  AliAnalysisTaskGammaConvDalitzV1( const char* name );
36 
37  virtual void UserExec(Option_t *);
38  virtual void UserCreateOutputObjects();
39  virtual Bool_t Notify();
40  virtual void Terminate(const Option_t *);
41 
42  void SetLogBinningXTH2(TH2* histoRebin);
43 
44  void SetV0ReaderName(TString name){fV0ReaderName=name; return;}
46 
47  void SetIsHeavyIon(Int_t flag){
48  fIsHeavyIon = flag;
49  }
50 
52  void SetEventCutList(Int_t nCuts, TList *CutArray){
53  fnCuts= nCuts;
54  fCutEventArray = CutArray;
55  }
56  void SetConversionCutList(Int_t nCuts, TList *CutArray){
57  fnCuts= nCuts;
58  fCutGammaArray = CutArray;
59  }
60  void SetElectronCutList(TList *CutArray){
61  fCutElectronArray = CutArray;
62  }
63  void SetMesonCutList(TList *CutArray){
64  fCutMesonArray = CutArray;
65  }
67  void SetDoMesonQA(Int_t flag){ fDoMesonQA = flag; }
68  void SetDoTHnSparse(Bool_t flag){fDoTHnSparse = flag;}
72 
73 
74  private:
75  void InitBack();
78  void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
79  void ProcessTrueChicCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TruejpsiCandidate);
80  void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
84  void ProcessMCParticles();
85  void CountESDTracks();
87  void CalculateBackground();
89  void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
90  Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
91  Double_t GetPsiPairMC(const TParticle *fMCPosParticle, const TParticle *fMCNegParticle) const;
92 
93  Bool_t IsDalitz(TParticle *fMCMother) const;
94  Bool_t IsPi0DalitzDaughter( Int_t label ) const;
95  Bool_t CheckVectorForDoubleCount(vector<Int_t> &vec, Int_t tobechecked);
96 
102  AliMCEvent *fMCEvent;
111  TClonesArray *fReaderGammas;
112  vector<Int_t> fSelectorElectronIndex;
113  vector<Int_t> fSelectorPositronIndex;
122  //TList **fGammasPool;
127  //TH2F **hESDConvGammaZR;
128  THnSparseF **sESDConvGammaZR;
129  THnSparseF **sESDConvGammaXY;
180  THnSparseF **sESDMotherInvMassPtZM;
186  THnSparseF **sESDMotherDalitzPlot;
204  TH1F **hMCPi0Pt;
206  TH1F **hMCPi0GGPt;
207  TH1F **hMCEtaPt;
208  TH1F **hMCEtaGGPt;
212  THnSparseF **sMCPi0DalitzPlot;
214  TH1F **hMCChiCPt;
243  THnSparseF **sESDTruePi0DalitzPlot;
279  TProfile **hEtaShift;
286 
287  TRandom3 fRandom;
297 
314 
315  private:
318 
319  ClassDef( AliAnalysisTaskGammaConvDalitzV1, 8 );
320 };
321 
322 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
323 
void ProcessTruePhotonCandidates(AliAODConversionPhoton *)
AliAnalysisTaskGammaConvDalitzV1 & operator=(const AliAnalysisTaskGammaConvDalitzV1 &)
vector< Int_t > fVectorDoubleCountTruePi0s
array of histos with double counted photons, R, pT
double Double_t
Definition: External.C:58
Definition: External.C:236
Double_t GetPsiPair(const AliESDtrack *trackPos, const AliESDtrack *trackNeg) const
void MoveParticleAccordingToVertex(AliAODConversionPhoton *particle, const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex)
TH2F ** fHistoDoubleCountTrueEtaInvMassPt
array of histos with double counted pi0s, invMass, pT
void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP)
TRandom3 fRandom
vector containing labels of validated photons
void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const
vector< Int_t > fVectorDoubleCountTrueEtas
vector containing labels of validated pi0
int Int_t
Definition: External.C:63
Definition: External.C:204
void SetEventCutList(Int_t nCuts, TList *CutArray)
TH2F ** fHistoDoubleCountTrueConvGammaRPt
array of histos with double counted etas, invMass, pT
TH1I ** hNV0Tracks
array of histos with SPD tracklets vs SPD clusters for background rejection
vector< Int_t > fVectorDoubleCountTrueConvGammas
vector containing labels of validated eta
Class handling all kinds of selection cuts for Gamma Conversion analysis.
void SetConversionCutList(Int_t nCuts, TList *CutArray)
Bool_t isMC
Definition: External.C:220
Class handling all kinds of selection cuts for Gamma Conversion analysis.
Bool_t IsDalitz(TParticle *fMCMother) const
const char Option_t
Definition: External.C:48
void ProcessTrueChicCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TruejpsiCandidate)
bool Bool_t
Definition: External.C:53
Bool_t CheckVectorForDoubleCount(vector< Int_t > &vec, Int_t tobechecked)
void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate)
Double_t GetPsiPairMC(const TParticle *fMCPosParticle, const TParticle *fMCNegParticle) const
AliGammaConversionAODBGHandler ** fBGHandler