#include "AliHFEsignalCuts.h"
#include "AliHFEtaggedTrackAnalysis.h"
#include "AliHFEtools.h"
+#include "AliHFEV0taginfo.h"
#include "AliHFEvarManager.h"
#include "AliAnalysisTaskHFE.h"
#include "AliAODMCHeader.h"
, fBackgroundSubtraction(NULL)
, fTRDTrigger(kFALSE)
, fWhichTRDTrigger(0)
+ , fV0Tagger(NULL)
, fQA(NULL)
, fOutput(NULL)
, fHistMCQA(NULL)
, fBackgroundSubtraction(NULL)
, fTRDTrigger(kFALSE)
, fWhichTRDTrigger(0)
+ , fV0Tagger(NULL)
, fQA(NULL)
, fOutput(NULL)
, fHistMCQA(NULL)
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
+ fV0Tagger = new AliHFEV0taginfo("Tagger");
fPID = new AliHFEpid("hfePid");
fPIDqa = new AliHFEpidQAmanager;
fVarManager = new AliHFEvarManager("hfeVarManager");
, fBackgroundSubtraction(NULL)
, fTRDTrigger(ref.fTRDTrigger)
, fWhichTRDTrigger(ref.fWhichTRDTrigger)
+ , fV0Tagger(NULL)
, fQA(NULL)
, fOutput(NULL)
, fHistMCQA(NULL)
target.fBackgroundSubtraction = fBackgroundSubtraction;
target.fTRDTrigger = fTRDTrigger;
target.fWhichTRDTrigger = fWhichTRDTrigger;
+ target.fV0Tagger = fV0Tagger;
target.fQA = fQA;
target.fOutput = fOutput;
target.fHistMCQA = fHistMCQA;
if(fBackgroundSubtraction) delete fBackgroundSubtraction;
if(fSpecialTrigger) delete fSpecialTrigger;
if(fAnalysisUtils) delete fAnalysisUtils;
+ if(fV0Tagger) delete fV0Tagger;
// Delete output objects only if we are not running in PROOF mode because otherwise this produces a crash during merging
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if(mgr && mgr->GetAnalysisType() != AliAnalysisManager::kProofAnalysis){
return;
}
+ // Tag all v0s in current event
+ if(fV0Tagger){
+ fV0Tagger->Reset();
+ fV0Tagger->TagV0Tracks(fESD);
+ }
// Set magnetic field if V0 task on
if(fTaggedTrackAnalysis) {
fTaggedTrackAnalysis->SetMagneticField(fESD->GetMagneticField());
track->SetESDEvent(fESD);
// fill counts of v0-identified particles
- Int_t v0pid = -1;
- if(track->TestBit(BIT(14))) v0pid = AliPID::kElectron;
- else if(track->TestBit(BIT(15))) v0pid = AliPID::kPion;
- else if(track->TestBit(BIT(16))) v0pid = AliPID::kProton;
+ AliPID::EParticleType v0pid = fV0Tagger->GetV0Info(track->GetID());
// here the tagged track analysis will run
- if(fTaggedTrackAnalysis && v0pid > -1){
+ if(fTaggedTrackAnalysis && v0pid != AliPID::kUnknown){
AliDebug(1, Form("Track identified as %s", AliPID::ParticleName(v0pid)));
fTaggedTrackAnalysis->ProcessTrack(track, v0pid);
AliDebug(1, "V0 PID done");