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 CreateAODfromESD(const char *inFileName = "AliESDs.root",
12 const char *outFileName = "AliAODs.root") {
14 gSystem->Load("libTree");
15 gSystem->Load("libGeom");
16 gSystem->Load("libPhysics");
17 gSystem->Load("libVMC");
18 gSystem->Load("libSTEERBase");
19 gSystem->Load("libESD");
20 gSystem->Load("libAOD");
22 gSystem->Load("libANALYSIS");
23 gSystem->Load("libANALYSISalice");
24 gSystem->Load("libPWG3muon");
26 TChain *chain = new TChain("esdTree");
27 // Steering input chain
28 chain->Add(inFileName);
29 AliAnalysisManager *mgr = new AliAnalysisManager("ESD to AOD", "Analysis Manager");
32 AliESDInputHandler* inpHandler = new AliESDInputHandler();
33 inpHandler->SetReadTags();
34 mgr->SetInputEventHandler (inpHandler);
37 AliAODHandler* aodHandler = new AliAODHandler();
38 aodHandler->SetOutputFileName(outFileName);
39 mgr->SetOutputEventHandler(aodHandler);
43 AliAnalysisTaskESDfilter *filter = new AliAnalysisTaskESDfilter("Filter");
46 AliAnalysisTaskESDMuonFilter *esdmuonfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");
47 mgr->AddTask(esdmuonfilter);
49 // Cuts on primary tracks
50 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard");
51 esdTrackCutsL->SetMinNClustersTPC(50);
52 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
53 esdTrackCutsL->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2);
54 esdTrackCutsL->SetRequireTPCRefit(kTRUE);
55 esdTrackCutsL->SetMaxDCAToVertexXY(3.0);
56 esdTrackCutsL->SetRequireSigmaToVertex(kFALSE);
57 esdTrackCutsL->SetAcceptKingDaughters(kFALSE);
59 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
60 trackFilter->AddCuts(esdTrackCutsL);
63 AliESDv0Cuts* esdV0Cuts = new AliESDv0Cuts("AliESDv0Cuts", "Standard pp");
64 esdV0Cuts->SetMinRadius(0.2);
65 esdV0Cuts->SetMaxRadius(100);
66 esdV0Cuts->SetMinDcaPosToVertex(0.05);
67 esdV0Cuts->SetMinDcaNegToVertex(0.05);
68 esdV0Cuts->SetMaxDcaV0Daughters(0.5);
69 esdV0Cuts->SetMinCosinePointingAngle(0.99);
70 AliAnalysisFilter* v0Filter = new AliAnalysisFilter("v0Filter");
71 v0Filter->AddCuts(esdV0Cuts);
75 filter->SetTrackFilter(trackFilter);
76 filter->SetV0Filter(v0Filter);
80 AliAnalysisTaskTagCreator* tagTask = new AliAnalysisTaskTagCreator("AOD Tag Creator");
81 mgr->AddTask(tagTask);
84 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
85 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
86 AliAnalysisDataContainer *coutputT
87 = mgr->CreateContainer("cTag", TTree::Class(), AliAnalysisManager::kOutputContainer, "AOD.tag.root");
89 mgr->ConnectInput (filter, 0, cinput1 );
90 mgr->ConnectOutput(filter, 0, coutput1);
92 mgr->ConnectInput (esdmuonfilter, 0, cinput1 );
93 // mgr->ConnectOutput(esdmuonfilter, 0, coutput1);
95 mgr->ConnectInput (tagTask, 0, cinput1);
96 mgr->ConnectOutput(tagTask, 1, coutputT);
103 mgr->StartAnalysis("local", chain);