1 void runESDMCFilter(AliLog::EType_t debugRsn=AliLog::kInfo,Bool_t useKine = kTRUE)
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 AliESDInputHandler* inpHandler = new AliESDInputHandler();
8 AliAODHandler* aodHandler = new AliAODHandler();
9 aodHandler->SetOutputFileName("AliAODs.root");
11 AliMCEventHandler* mcHandler = new AliMCEventHandler();
13 if (useKine) mgr->SetMCtruthEventHandler(mcHandler);
14 mgr->SetInputEventHandler (inpHandler);
15 mgr->SetOutputEventHandler (aodHandler);
17 // Filtering of MC particles (decays conversions etc)
18 // this task is also needed to set the MCEventHandler
19 // to the AODHandler, this will not be needed when
20 // AODHandler goes to ANALYSISalice
21 AliAnalysisTaskMCParticleFilter *kinefilter = new AliAnalysisTaskMCParticleFilter("Particle Filter");
22 if (useKine) mgr->AddTask(kinefilter);
26 AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
27 esdTrackCutsL->SetMinNClustersTPC(50);
28 esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
29 esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
30 esdTrackCutsL->SetRequireTPCRefit(kTRUE);
31 esdTrackCutsL->SetMaxNsigmaToVertex(3);
32 esdTrackCutsL->SetRequireSigmaToVertex(kTRUE);
33 esdTrackCutsL->SetAcceptKinkDaughters(kTRUE);
36 AliESDtrackCuts* esdTrackCutsH = new AliESDtrackCuts("AliESDtrackCuts", "Hard");
37 esdTrackCutsH->SetMinNClustersTPC(100);
38 esdTrackCutsH->SetMaxChi2PerClusterTPC(2.0);
39 esdTrackCutsH->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
40 esdTrackCutsH->SetRequireTPCRefit(kTRUE);
41 esdTrackCutsH->SetMaxNsigmaToVertex(2);
42 esdTrackCutsH->SetRequireSigmaToVertex(kTRUE);
43 esdTrackCutsH->SetAcceptKinkDaughters(kTRUE);
45 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
46 trackFilter->AddCuts(esdTrackCutsL);
47 trackFilter->AddCuts(esdTrackCutsH);
49 AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
51 // comment it when you wanna have same number of tracks in AOD as in ESD (simply no cut on track)
52 esdfilter->SetTrackFilter(trackFilter);
54 mgr->AddTask(esdfilter);
57 // Create containers for input/output
58 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
59 AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
61 coutput1->SetSpecialOutput();
64 mgr->ConnectInput (kinefilter, 0, cinput1 );
65 mgr->ConnectOutput (kinefilter, 0, coutput1 );
68 mgr->ConnectInput (esdfilter, 0, cinput1 );
69 mgr->ConnectOutput (esdfilter, 0, coutput1 );