]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/macros/AddTaskEsdSkim.C
consistently figure out track cuts (from Ruediger)
[u/mrichter/AliRoot.git] / PWG / EMCAL / macros / AddTaskEsdSkim.C
1 // $Id$
2
3 AliEsdSkimTask* AddTaskEsdSkim(
4   Bool_t tof       = kFALSE,
5   Bool_t emc       = kFALSE,
6   Bool_t emt       = kFALSE,
7   Bool_t phc       = kFALSE,
8   Bool_t pht       = kFALSE,
9   Bool_t clus      = kFALSE,
10   Bool_t tracks    = kFALSE,
11   Bool_t mtracks   = kFALSE,
12   Bool_t ptracks   = kFALSE,
13   Bool_t remcov    = kFALSE,
14   Bool_t rescov    = kFALSE,
15   Bool_t sbytes    = kFALSE,
16   Bool_t phosclus  = kFALSE,
17   Bool_t emcclus   = kFALSE,
18   Bool_t muons     = kFALSE,
19   const char *tname = "Tracks",
20   const char *filename = "AliSkimmedESD.root"
21 )
22 {  
23   // Get the pointer to the existing analysis manager via the static access method.
24   //==============================================================================
25   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
26   if (!mgr)
27   {
28     ::Error("AddTaskEmcalSetup", "No analysis manager to connect to.");
29     return NULL;
30   }  
31   
32   // Check the analysis type using the event handlers connected to the analysis manager.
33   //==============================================================================
34   if (!mgr->GetInputEventHandler())
35   {
36     ::Error("AddTaskEmcalSetup", "This task requires an input event handler");
37     return NULL;
38   }
39   
40   //-------------------------------------------------------
41   // Init the task and do settings
42   //-------------------------------------------------------
43   AliEsdSkimTask *task = new AliEsdSkimTask("EmcalSkimTask");
44   task->SetDoClus(clus);
45   task->SetDoEmC(emc);
46   task->SetDoEmT(emt);
47   task->SetDoMiniTracks(mtracks);
48   task->SetDoMuonTracks(muons);
49   task->SetDoPhC(phc);
50   task->SetDoPhT(pht);
51   task->SetDoPicoTracks(ptracks);
52   task->SetDoSaveBytes(sbytes);
53   task->SetDoTof(tof);
54   task->SetDoTracks(tracks);
55   task->SetEmcalClusOnly(emcclus);
56   task->SetPhosClusOnly(phosclus);
57   task->SetRemoveCP(remcov);
58   task->SetResetCov(rescov);
59   task->SetTracks(tname);
60
61   //-------------------------------------------------------
62   // Final settings, pass to manager and set the containers
63   //-------------------------------------------------------
64
65   mgr->AddTask(task);
66   
67   // Create containers for input/output
68   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
69   mgr->ConnectInput(task, 0, cinput);
70
71   AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("EsdSkimTree"),
72                                                            TTree::Class(),   
73                                                            AliAnalysisManager::kOutputContainer, 
74                                                            filename);
75   mgr->ConnectOutput(task, 1, coutput);
76
77   return task;
78 }