]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/macros/test/runESDMCFilter.C
Modifications in the balance function code + addition of the very first version of...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / macros / test / runESDMCFilter.C
1 void runESDMCFilter(AliLog::EType_t debugRsn=AliLog::kInfo,Bool_t useKine = kTRUE)
2 {
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 //   useKine = kTRUE;
5
6   AliESDInputHandler* inpHandler = new AliESDInputHandler();
7   // Output
8   AliAODHandler* aodHandler = new AliAODHandler();
9   aodHandler->SetOutputFileName("AliAODs.root");
10   // MC Truth
11   AliMCEventHandler* mcHandler = new AliMCEventHandler();
12
13   if (useKine) mgr->SetMCtruthEventHandler(mcHandler);
14   mgr->SetInputEventHandler  (inpHandler);
15   mgr->SetOutputEventHandler (aodHandler);
16
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);
23
24
25   // standard
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);
34
35   // hard
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);
44
45   AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
46   trackFilter->AddCuts(esdTrackCutsL);
47   trackFilter->AddCuts(esdTrackCutsH);
48
49   AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
50   
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);
53
54   mgr->AddTask(esdfilter);
55
56   //
57   // Create containers for input/output
58   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
59   AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
60
61   coutput1->SetSpecialOutput();
62
63   if (useKine) {
64     mgr->ConnectInput  (kinefilter,     0, cinput1  );
65     mgr->ConnectOutput (kinefilter,     0, coutput1 );
66   }
67
68   mgr->ConnectInput  (esdfilter,     0, cinput1  );
69   mgr->ConnectOutput (esdfilter,     0, coutput1 );  
70
71 }
72