1 AliESDtrackCuts *CreateCuts(Int_t iCut = 0); // create the standard cuts
\r
2 AliAnalysisTaskESDfilter *AddTaskESDfilter(bool bUseKineFilter = true)
\r
4 // Creates a jet fider task, configures it and adds it to the analysis manager.
\r
6 // Get the pointer to the existing analysis manager via the static access method.
\r
7 //==============================================================================
\r
8 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
10 ::Error("AddTaskESDFilter", "No analysis manager to connect to.");
\r
14 // Check the analysis type using the event handlers connected to the analysis manager.
\r
15 //==============================================================================
\r
16 if (!mgr->GetInputEventHandler()) {
\r
17 ::Error("AddTaskESDFilter", "This task requires an input event handler");
\r
21 // Check if MC handler is connected in case kine filter requested
\r
22 AliMCEventHandler *mcH = (AliMCEventHandler*)mgr->GetMCtruthEventHandler();
\r
23 if (!mcH && bUseKineFilter) {
\r
24 ::Error("AddTaskESDFilter", "No MC handler connected while kine filtering requested");
\r
29 // Create the task and configure it.
\r
30 //===========================================================================
\r
32 // this task is also needed to set the MCEventHandler
\r
33 // to the AODHandler, this will not be needed when
\r
34 // AODHandler goes to ANALYSISalice
\r
35 AliAnalysisTaskMCParticleFilter *kinefilter = 0;
\r
36 if (bUseKineFilter) {
\r
37 kinefilter = new AliAnalysisTaskMCParticleFilter("Particle Kine Filter");
\r
38 mgr->AddTask(kinefilter);
\r
42 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
\r
43 trackFilter->AddCuts(CreateCuts(0));
\r
44 trackFilter->AddCuts(CreateCuts(1));
\r
46 AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
\r
47 esdfilter->SetTrackFilter(trackFilter);
\r
48 mgr->AddTask(esdfilter);
\r
50 // Create ONLY the output containers for the data produced by the task.
\r
51 // Get and connect other common input/output containers via the manager as below
\r
52 //==============================================================================
\r
53 mgr->ConnectInput (esdfilter, 0, mgr->GetCommonInputContainer());
\r
54 mgr->ConnectOutput (esdfilter, 0, mgr->GetCommonOutputContainer());
\r
56 if (bUseKineFilter) {
\r
57 mgr->ConnectInput (kinefilter, 0, mgr->GetCommonInputContainer());
\r
58 mgr->ConnectOutput (kinefilter, 0, mgr->GetCommonOutputContainer());
\r
59 AliAnalysisDataContainer *coutputEx = mgr->CreateContainer("cFilterList", TList::Class(),
\r
60 AliAnalysisManager::kOutputContainer,"pyxsec_hists.root");
\r
61 mgr->ConnectOutput (kinefilter, 1,coutputEx);
\r
69 AliESDtrackCuts *CreateCuts(Int_t iCut){
\r
70 AliESDtrackCuts* esdTrackCuts = 0;
\r
72 esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
\r
73 esdTrackCuts->SetMinNClustersTPC(50);
\r
74 esdTrackCuts->SetMaxChi2PerClusterTPC(3.5);
\r
75 esdTrackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
\r
76 esdTrackCuts->SetRequireTPCRefit(kTRUE);
\r
77 esdTrackCuts->SetMaxDCAToVertexXY(2.4);
\r
78 esdTrackCuts->SetMaxDCAToVertexZ(3.2);
\r
79 esdTrackCuts->SetDCAToVertex2D(kTRUE);
\r
80 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
\r
81 // additional high pT cut
\r
82 esdTrackCuts->SetMaxRel1PtUncertainty(0.08);
\r
85 esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts", "Old loose cuts");
\r
86 esdTrackCuts->SetMinNClustersTPC(50);
\r
87 esdTrackCuts->SetMaxChi2PerClusterTPC(3.5);
\r
88 esdTrackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
\r
89 esdTrackCuts->SetRequireTPCRefit(kTRUE);
\r
90 esdTrackCuts->SetMaxNsigmaToVertex(3);
\r
91 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
\r
92 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
\r
97 return esdTrackCuts;
\r