1 #ifndef ALIV0READERV1_H
2 #define ALIV0READERV1_H
4 #include "AliAnalysisTaskSE.h"
9 #include "AliExternalTrackParam.h"
11 #include "AliMCEvent.h"
12 #include "AliESDEvent.h"
13 #include "AliKFParticle.h"
14 #include "TParticle.h"
17 #include "AliESDpid.h"
20 #include "AliAnalysisManager.h"
38 class iterator :
public std::iterator<std::bidirectional_iterator_tag, AliConversionPhotonBase> {
41 kForwardDirection = 0,
42 kBackwardDirection = 1
49 bool operator!=(
iterator &other)
const;
65 void UserCreateOutputObjects();
67 virtual void UserExec(
Option_t *option);
71 Bool_t ProcessEvent (AliVEvent *inputEvent, AliMCEvent *mcEvent=NULL);
89 void CountTPCoutTracks();
90 void SetConversionCuts(
const TString cut);
92 void SetEventCuts(
const TString cut);
98 else { cout<<
"Setting Outputformat to AliKFConversionPhoton "<<endl;}
99 kUseAODConversionPhoton=b;
return;}
104 fRelabelAODs = kTRUE;
105 AliInfo(Form(
"Set DeltaAOD BranchName to: %s",fDeltaAODBranchName.Data()));
106 AliInfo(Form(
"Relabeling of AODs has automatically been switched ON!"));
114 AliInfo(Form(
"Set PeriodName to: %s",fPeriodName.Data()));
121 else { cout<<
"disable set mass to zero for AliAODConversionPhoton "<<endl;}
122 fUseMassToZero=b;
return;}
125 if(b) AliInfo(
"Enabled V0finding Efficiency");
131 if(b) AliInfo(
"Producing additional impact parameter histograms");
138 void CreatePureMCHistosForV0FinderEffiESD();
139 void FillRecMCHistosForV0FinderEffiESD( AliESDv0* currentV0);
140 void FillImpactParamHistograms(AliVTrack *ptrack, AliVTrack* ntrack, AliESDv0 *fCurrentV0,
AliKFConversionPhoton *fCurrentMotherKF);
141 Bool_t CheckVectorOnly(vector<Int_t> &vec,
Int_t tobechecked);
142 Bool_t CheckVectorForDoubleCount(vector<Int_t> &vec,
Int_t tobechecked);
155 void FillAODOutput();
156 void FindDeltaAODBranchName();
157 Bool_t GetAODConversionGammas();
160 const AliExternalTrackParam* GetExternalTrackParam(AliESDv0 *fCurrentV0,
Int_t &tracklabel,
Int_t charge);
161 const AliExternalTrackParam*
GetExternalTrackParamP(AliESDv0 *fCurrentV0,
Int_t &tracklabel) {
return GetExternalTrackParam(fCurrentV0,tracklabel,1);}
162 const AliExternalTrackParam*
GetExternalTrackParamN(AliESDv0 *fCurrentV0,
Int_t &tracklabel) {
return GetExternalTrackParam(fCurrentV0,tracklabel,-1);}
163 AliKFParticle* GetPositiveKFParticle(AliAODv0 *fCurrentV0,
Int_t fTrackLabel[2]);
164 AliKFParticle* GetNegativeKFParticle(AliAODv0 *fCurrentV0,
Int_t fTrackLabel[2]);
165 AliKFParticle* GetPositiveKFParticle(AliESDv0 *fCurrentV0,
Int_t fTrackLabel[2]);
166 AliKFParticle* GetNegativeKFParticle(AliESDv0 *fCurrentV0,
Int_t fTrackLabel[2]);
168 Bool_t GetConversionPoint(
const AliExternalTrackParam *pparam,
const AliExternalTrackParam *nparam,
Double_t convpos[3],
Double_t dca[2]);
169 Bool_t GetHelixCenter(
const AliExternalTrackParam *track,
Double_t center[2]);
170 Double_t GetPsiPair(
const AliESDv0* v0,
const AliExternalTrackParam *positiveparam,
const AliExternalTrackParam *negativeparam,
const Double_t convpos[3])
const;
252 if(fConversionCuts != NULL){
253 delete fConversionCuts;
254 fConversionCuts=NULL;
256 if(fConversionCuts == NULL){
258 fConversionCuts->InitializeCutsFromCutString(cut.Data());
263 if(fEventCuts != NULL){
267 if(fEventCuts == NULL){
269 fEventCuts->InitializeCutsFromCutString(cut.Data());
Int_t IsReaderPerformingRelabeling()
Direction_t fDirection
Iterator in forward direction.
void SetCreateAODs(Bool_t k=kTRUE)
TH1F * fHistoNegTrackImpactParamZ
TH2F * fHistoPosTrackImpactParamZvsPt
Bool_t fUseConstructGamma
TH2F * fHistoRecMCGammaPhivsEta
Int_t GetNReconstructedGammas() const
void SetConversionCuts(const TString cut)
TH2F * fHistoImpactParamZvsR
TH1F * fHistoPosTrackImpactParamX
TH1F * fHistoRviaAlphaRecalc
Bool_t AreAODsRelabeled()
const AliV0ReaderV1 * fkData
V0 reader used to iterate over.
TString fDeltaAODFilename
TH1F * fHistoRecMCGammaMultiPhi
Int_t fNumberOfPrimaryTracks
Int_t GetNumberOfPrimaryTracks()
Float_t fCurrentInvMassPair
TH2F * fHistoRecMCGammaPtvsR
TList * GetEventCutHistograms()
void SetUseOwnXYZCalculation(Bool_t flag)
TString GetCurrentFileName()
TH1F * fHistoPosTrackImpactParamY
TList * GetCutHistograms()
void SetProduceV0FindingEfficiency(Bool_t b)
TH1F * fHistoNegTrackImpactParamX
TH2F * fHistoMCGammaPhivsEta
AliConvEventCuts * fEventCuts
void SetImprovedPsiPair(Int_t p)
const AliExternalTrackParam * GetExternalTrackParamN(AliESDv0 *fCurrentV0, Int_t &tracklabel)
Int_t GetImprovedPsiPair()
TH2F * fHistoNegTrackImpactParamXvsPt
void SetConversionCuts(AliConversionPhotonCuts *cuts)
TH2F * fHistoRecMCGammaPtvsEta
Bool_t GetProduceV0FindingEfficiency()
Bool_t kUseAODConversionPhoton
Bool_t GetProduceImpactParamHistograms()
Int_t fNumberOfTPCoutTracks
int fCurrentIndex
Index of the current element.
AliConversionPhotonCuts * fConversionCuts
TH1F * fHistoPosTrackImpactParamZ
Bool_t fProduceImpactParamHistograms
void SetEventCuts(AliConvEventCuts *cuts)
Int_t GetNumberOfTPCoutTracks()
AliConversionPhotonCuts * GetConversionCuts()
TH1F * fHistoRecMCGammaMultiR
Class handling all kinds of selection cuts for Gamma Conversion analysis.
void SetUseAODConversionPhoton(Bool_t b)
TH1F * fHistoImpactParameterStudy
TH2F * fHistoNegTrackImpactParamZvsPt
Bool_t fUseImprovedVertex
void SetUseConstructGamma(Bool_t flag)
TH2F * fHistoRecMCGammaPtvsPhi
TString fDeltaAODBranchName
TH2F * fHistoPosTrackImpactParamXvsPt
TH1F * fHistoNegTrackImpactParamY
TH2F * fHistoMCGammaRvsEta
Int_t fPreviousV0ReaderPerformsAODRelabeling
TList * GetImpactParamHistograms()
vector< Int_t > fVectorFoundGammas
Bool_t fUseOwnXYZCalculation
TClonesArray * GetReconstructedGammas() const
Int_t GetPtHardFromFile()
void SetProduceImpactParamHistograms(Bool_t b)
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH2F * fHistoPosTrackImpactParamYvsPt
TH2F * fHistoRecMCGammaRvsPhi
Bool_t fProduceV0findingEffi
TH2F * fHistoNegTrackImpactParamYvsPt
TH1F * fHistoRecMCGammaMultiPt
AliConvEventCuts * GetEventCuts()
TList * fImpactParamHistograms
TClonesArray * fConversionGammas
const AliExternalTrackParam * GetExternalTrackParamP(AliESDv0 *fCurrentV0, Int_t &tracklabel)
void SetDeltaAODFilename(TString s)
TH2F * fHistoMCGammaRvsPhi
void SetDeltaAODBranchName(TString string)
TH2F * fHistoMCGammaPtvsPhi
TH2F * fHistoMCGammaPtvsR
void SetAddv0sInESDFilter(Bool_t addv0s)
void SetPeriodName(TString name)
void SetUseMassToZero(Bool_t b)
void SetEventCuts(const TString cut)
TH2F * fHistoMCGammaPtvsEta
void RelabelAODs(Bool_t relabel=kTRUE)
TH2F * fHistoImpactParamZvsR2
Bool_t kAddv0sInESDFilter
TH2F * fHistoRecMCGammaRvsEta
TList * GetV0FindingEfficiencyHistograms()
TH2F * fHistoRecMCGammaMultiPtvsEta