]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskSOH.C
updates salvatore
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskSOH.C
1 // $Id$
2
3 AliAnalysisTaskSOH* AddTaskSOH(const char *name, Bool_t ScaleFactorP=kFALSE, Bool_t ClusterP=kFALSE, Double_t Zvtx=10)
4 {
5   // Get the pointer to the existing analysis manager via the static access method.
6   //==============================================================================
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if (!mgr)
9   {
10     ::Error("AddTaskSOH", "No analysis manager to connect to.");
11     return NULL;
12   }  
13   
14   // Check the analysis type using the event handlers connected to the analysis manager.
15   //==============================================================================
16   if (!mgr->GetInputEventHandler())
17   {
18     ::Error("AddTaskSOH", "This task requires an input event handler");
19     return NULL;
20   }
21
22   //-------------------------------------------------------
23   // Init the task and do settings
24   //-------------------------------------------------------
25
26   AliAnalysisTaskSOH *taskSOH = new AliAnalysisTaskSOH(Form("QA_soh_%s",name));
27
28   AliESDtrackCuts *esdTrackCuts = 0x0;
29   AliESDtrackCuts *hybridTrackCuts1 = 0x0;
30   AliESDtrackCuts *hybridTrackCuts2 = 0x0;
31   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/macros/CreateTrackCutsPWGJE.C");
32
33   esdTrackCuts = CreateTrackCutsPWGJE(10001006);
34   hybridTrackCuts1 = CreateTrackCutsPWGJE(1006);
35   hybridTrackCuts2 = CreateTrackCutsPWGJE(10041006);
36   
37   taskSOH->SetEsdTrackCuts(esdTrackCuts);
38   taskSOH->SetHybridTrackCuts1(hybridTrackCuts1);
39   taskSOH->SetHybridTrackCuts2(hybridTrackCuts2);
40
41   taskSOH->SetMcProcess(kTRUE);
42   taskSOH->SetTrackProcess(kTRUE);
43   taskSOH->SetSFProcess(ScaleFactorP);
44   taskSOH->SetClusterProcess(ClusterP);
45   taskSOH->SetZvtx(Zvtx);
46
47   // Add task(s)
48   mgr->AddTask(taskSOH); 
49
50   // ESD handler
51   AliESDInputHandler* esdH = new AliESDInputHandler();
52   mgr->SetInputEventHandler(esdH);
53   
54   // MC truth handler
55   AliMCEventHandler* mcEvtHdl = new AliMCEventHandler();
56   mcEvtHdl->SetReadTR(kTRUE);
57   mgr->SetMCtruthEventHandler(mcEvtHdl); 
58
59   // Create containers for input/output
60   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
61   AliAnalysisDataContainer *coutputpt = mgr->CreateContainer(name, TList::Class(), AliAnalysisManager::kOutputContainer, "AnalysisResults_soh.root");
62
63   // Connect input/output
64   mgr->ConnectInput(taskSOH, 0, cinput);
65   mgr->ConnectOutput(taskSOH, 1, coutputpt);
66
67   return taskSOH;
68 }