3 #include "AliAnalysisManager.h"
4 #include "AliESDInputHandler.h"
5 #include "AliAODHandler.h"
6 #include "AliAnalysisTaskESDfilter.h"
7 #include "AliAnalysisDataContainer.h"
9 void CreateAODfromESD(const char *inFileName = "AliESDs.root",
10 const char *outFileName = "AliAOD.root",
11 Bool_t bKineFilter = kTRUE)
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("libCORRFW");
25 // gSystem->Load("libPWGHFbase");
26 // gSystem->Load("libPWGmuon");
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 inpHandler->SetReadFriends(kFALSE);
36 inpHandler->SetReadTags();
37 mgr->SetInputEventHandler (inpHandler);
39 AliAODHandler* aodHandler = new AliAODHandler();
40 aodHandler->SetOutputFileName(outFileName);
41 mgr->SetOutputEventHandler(aodHandler);
45 AliMCEventHandler* mcHandler = new AliMCEventHandler();
46 mgr->SetMCtruthEventHandler(mcHandler);
51 // Filtering of MC particles (decays conversions etc)
52 // this task is also needed to set the MCEventHandler
53 // to the AODHandler, this will not be needed when
54 // AODHandler goes to ANALYSISalice
57 AliAnalysisTaskESDfilter *filter = new AliAnalysisTaskESDfilter("Filter");
59 AliAnalysisTaskMCParticleFilter *kinefilter = new AliAnalysisTaskMCParticleFilter("Particle Filter");
60 if (bKineFilter) mgr->AddTask(kinefilter);
62 AliAnalysisTaskESDMuonFilter *esdmuonfilter = new AliAnalysisTaskESDMuonFilter("ESD Muon Filter");
63 mgr->AddTask(esdmuonfilter);
65 // Cuts on primary tracks
66 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Standard");
67 esdTrackCutsL->SetMinNClustersTPC(50);
68 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
69 esdTrackCutsL->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2);
70 esdTrackCutsL->SetRequireTPCRefit(kTRUE);
71 esdTrackCutsL->SetMaxDCAToVertexXY(3.0);
72 esdTrackCutsL->SetMaxDCAToVertexZ(3.0);
73 esdTrackCutsL->SetDCAToVertex2D(kTRUE);
74 esdTrackCutsL->SetRequireSigmaToVertex(kFALSE);
75 esdTrackCutsL->SetAcceptKinkDaughters(kFALSE);
76 // ITS stand-alone tracks
77 AliESDtrackCuts* esdTrackCutsITSsa = new AliESDtrackCuts("AliESDtrackCuts", "ITS stand-alone");
78 esdTrackCutsITSsa->SetRequireITSStandAlone(kTRUE);
80 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
81 trackFilter->AddCuts(esdTrackCutsL);
82 trackFilter->AddCuts(esdTrackCutsITSsa);
85 AliESDv0Cuts* esdV0Cuts = new AliESDv0Cuts("AliESDv0Cuts", "Standard pp");
86 esdV0Cuts->SetMinRadius(0.2);
87 esdV0Cuts->SetMaxRadius(200);
88 esdV0Cuts->SetMinDcaPosToVertex(0.05);
89 esdV0Cuts->SetMinDcaNegToVertex(0.05);
90 esdV0Cuts->SetMaxDcaV0Daughters(1.0);
91 esdV0Cuts->SetMinCosinePointingAngle(0.99);
92 AliAnalysisFilter* v0Filter = new AliAnalysisFilter("v0Filter");
93 v0Filter->AddCuts(esdV0Cuts);
97 filter->SetTrackFilter(trackFilter);
98 filter->SetV0Filter(v0Filter);
102 AliAnalysisTaskTagCreator* tagTask = new AliAnalysisTaskTagCreator("AOD Tag Creator");
103 mgr->AddTask(tagTask);
106 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
107 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
110 AliAnalysisDataContainer *coutputT
111 = mgr->CreateContainer("cTag", TTree::Class(), AliAnalysisManager::kOutputContainer, "AOD.tag.root");
113 coutput1->SetSpecialOutput();
114 coutputT->SetSpecialOutput();
117 mgr->ConnectInput (kinefilter, 0, cinput1 );
118 mgr->ConnectOutput (kinefilter, 0, coutput1 );
121 mgr->ConnectInput (filter, 0, cinput1 );
122 mgr->ConnectOutput(filter, 0, coutput1);
124 mgr->ConnectInput (esdmuonfilter, 0, cinput1 );
125 // mgr->ConnectOutput(esdmuonfilter, 0, coutput1);
127 mgr->ConnectInput (tagTask, 0, cinput1);
128 mgr->ConnectOutput(tagTask, 1, coutputT);
135 mgr->StartAnalysis("local", chain);