AliPhysics  a56b849 (a56b849)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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;
179  THnSparseF **sESDMotherInvMassPtZM;
185  THnSparseF **sESDMotherDalitzPlot;
203  TH1F **hMCPi0Pt;
205  TH1F **hMCPi0GGPt;
206  TH1F **hMCEtaPt;
207  TH1F **hMCEtaGGPt;
211  THnSparseF **sMCPi0DalitzPlot;
213  TH1F **hMCChiCPt;
242  THnSparseF **sESDTruePi0DalitzPlot;
278  TProfile **hEtaShift;
285 
286  TRandom3 fRandom;
296 
313 
314  private:
317 
318  ClassDef( AliAnalysisTaskGammaConvDalitzV1, 8 );
319 };
320 
321 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H
322 
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