1 #if !defined(__CINT__) || defined(__MAKECINT__)
4 #include "AliAnalysisManager.h"
5 #include "AliESDInputHandler.h"
6 #include "AliAODHandler.h"
7 #include "AliAnalysisTaskESDfilter.h"
8 #include "AliAnalysisDataContainer.h"
11 void CreateStandardAODfromESD(const char *inFileName = "AliESDs.root",
12 const char *outFileName = "AliAOD.root",
13 Bool_t writeKineToAOD = kTRUE)
16 gSystem->Load("libTree");
17 gSystem->Load("libGeom");
18 gSystem->Load("libPhysics");
19 gSystem->Load("libVMC");
20 gSystem->Load("libSTEERBase");
21 gSystem->Load("libESD");
22 gSystem->Load("libAOD");
24 gSystem->Load("libANALYSIS");
25 gSystem->Load("libANALYSISalice");
26 gSystem->Load("libPWG3muon");
28 TChain *chain = new TChain("esdTree");
29 // Steering input chain
30 chain->Add(inFileName);
31 AliAnalysisManager *mgr = new AliAnalysisManager("ESD to AOD", "Analysis Manager");
34 AliESDInputHandler* inpHandler = new AliESDInputHandler();
35 mgr->SetInputEventHandler (inpHandler);
38 AliAODHandler* aodHandler = new AliAODHandler();
39 aodHandler->SetOutputFileName(outFileName);
40 mgr->SetOutputEventHandler(aodHandler);
43 AliMCEventHandler* mcHandler = new AliMCEventHandler();
44 if(writeKineToAOD) mgr->SetMCtruthEventHandler(mcHandler);
48 // Filtering of MC particles (decays conversions etc)
49 // this task is also needed to set the MCEventHandler
50 // to the AODHandler, this will not be needed when
51 // AODHandler goes to ANALYSISalice
52 AliAnalysisTaskMCParticleFilter *kinefilter = new AliAnalysisTaskMCParticleFilter("Particle Filter");
53 if(writeKineToAOD) mgr->AddTask(kinefilter);
56 AliAnalysisTaskESDfilter *filter = new AliAnalysisTaskESDfilter("Filter");
60 AliAnalysisTaskESDMuonFilter *esdmuonfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");
61 mgr->AddTask(esdmuonfilter);
63 AliESDtrackCuts* esdTrackCutsHF = new AliESDtrackCuts("AliESDtrackCuts", "Heavy flavour");
64 esdTrackCutsHF->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
66 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
67 trackFilter->AddCuts(esdTrackCutsHF);
69 filter->SetTrackFilter(trackFilter);
72 AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("cchain", TChain::Class(),
73 AliAnalysisManager::kInputContainer);
75 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("tree", TTree::Class(),
76 AliAnalysisManager::kOutputContainer,
80 mgr->ConnectInput(filter,0,cinput1);
81 mgr->ConnectOutput(filter,0,coutput1);
83 mgr->ConnectInput(esdmuonfilter,0,cinput1);
84 mgr->ConnectOutput(esdmuonfilter,0,coutput1);
87 mgr->ConnectInput(kinefilter,0,cinput1);
88 mgr->ConnectOutput(kinefilter,0,coutput1);
95 mgr->StartAnalysis("local",chain);