AliPhysics  9b6b435 (9b6b435)
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  public:
31 
33  AliAnalysisTaskGammaConvDalitzV1( const char* name );
35 
36  virtual void UserExec(Option_t *);
37  virtual void UserCreateOutputObjects();
38  virtual Bool_t Notify();
39  virtual void Terminate(const Option_t *);
40 
41  void SetLogBinningXTH2(TH2* histoRebin);
42 
43  void SetV0ReaderName(TString name){fV0ReaderName=name; return;}
45 
46  void SetIsHeavyIon(Int_t flag){
47  fIsHeavyIon = flag;
48  }
49 
51  void SetEventCutList(Int_t nCuts, TList *CutArray){
52  fnCuts= nCuts;
53  fCutEventArray = CutArray;
54  }
55  void SetConversionCutList(Int_t nCuts, TList *CutArray){
56  fnCuts= nCuts;
57  fCutGammaArray = CutArray;
58  }
59  void SetElectronCutList(TList *CutArray){
60  fCutElectronArray = CutArray;
61  }
62  void SetMesonCutList(TList *CutArray){
63  fCutMesonArray = CutArray;
64  }
66  void SetDoMesonQA(Int_t flag){ fDoMesonQA = flag; }
67  void SetDoTHnSparse(Bool_t flag){fDoTHnSparse = flag;}
71 
72  private:
73  void InitBack();
76  void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
77  void ProcessTrueChicCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TruejpsiCandidate);
78  void RotateParticleAccordingToEP(AliAODConversionPhoton *gamma, Double_t previousEventEP, Double_t thisEventEP);
82  void ProcessMCParticles();
83  void CountESDTracks();
85  void CalculateBackground();
87  void FillElectronQAHistos(AliAODConversionPhoton *Vgamma) const;
88  Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
89  Double_t GetPsiPairMC(const TParticle *fMCPosParticle, const TParticle *fMCNegParticle) const;
90 
91  Bool_t IsDalitz(TParticle *fMCMother) const;
92  Bool_t IsPi0DalitzDaughter( Int_t label ) const;
93  Bool_t CheckVectorForDoubleCount(vector<Int_t> &vec, Int_t tobechecked);
94 
100  AliMCEvent *fMCEvent;
109  TClonesArray *fReaderGammas;
110  vector<Int_t> fSelectorElectronIndex;
111  vector<Int_t> fSelectorPositronIndex;
120  //TList **fGammasPool;
125  //TH2F **hESDConvGammaZR;
126  THnSparseF **sESDConvGammaZR;
127  THnSparseF **sESDConvGammaXY;
178  THnSparseF **sESDMotherInvMassPtZM;
184  THnSparseF **sESDMotherDalitzPlot;
202  TH1F **hMCPi0Pt;
204  TH1F **hMCPi0GGPt;
205  TH1F **hMCEtaPt;
206  TH1F **hMCEtaGGPt;
210  THnSparseF **sMCPi0DalitzPlot;
212  TH1F **hMCChiCPt;
241  THnSparseF **sESDTruePi0DalitzPlot;
277  TProfile **hEtaShift;
284 
285  TRandom3 fRandom;
295 
312 
313  private:
316 
317  ClassDef( AliAnalysisTaskGammaConvDalitzV1, 8 );
318 };
319 
320 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
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