]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskSAQA.C
Charged jets (pPb): Enhanced macro
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskSAQA.C
1 // $Id$
2
3 AliAnalysisTaskSAQA* AddTaskSAQA(
4   const char *ntracks            = "Tracks",
5   const char *nclusters          = "CaloClusters",
6   const char *ncells             = "EMCALCells",
7   const char *njets              = "Jets",
8   const char *nrho               = "Rho",
9   Double_t    jetradius          = 0.2,
10   Double_t    jetptcut           = 1,
11   Double_t    jetareacut         = 0.557,
12   Double_t    trackptcut         = 0.15,
13   Double_t    clusptcut          = 0.30,
14   const char *cutType            = "TPC",
15   const char *taskname           = "AliAnalysisTaskSAQA"
16 )
17 {  
18   // Get the pointer to the existing analysis manager via the static access method.
19   //==============================================================================
20   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21   if (!mgr)
22   {
23     ::Error("AddTaskSAQA", "No analysis manager to connect to.");
24     return NULL;
25   }  
26   
27   // Check the analysis type using the event handlers connected to the analysis manager.
28   //==============================================================================
29   if (!mgr->GetInputEventHandler())
30   {
31     ::Error("AddTaskSAQA", "This task requires an input event handler");
32     return NULL;
33   }
34   
35   //-------------------------------------------------------
36   // Init the task and do settings
37   //-------------------------------------------------------
38   
39   TString name(taskname);
40   if (strcmp(ntracks,"")) {
41     name += "_";
42     name += ntracks;
43   }
44   if (strcmp(nclusters,"")) {
45     name += "_";
46     name += nclusters;
47   }
48   if (strcmp(njets,"")) {
49     name += "_";
50     name += njets;
51   }
52   
53   name += "_";
54   name += cutType;
55
56   AliAnalysisTaskSAQA* qaTask = new AliAnalysisTaskSAQA(name);
57   qaTask->SetCaloCellsName(ncells);
58   qaTask->SetRhoName(nrho,-1);
59   qaTask->SetVzRange(-10,10);
60
61   AliParticleContainer *partCont = qaTask->AddParticleContainer(ntracks);
62   if (partCont) partCont->SetParticlePtCut(trackptcut);
63
64   AliClusterContainer *clusCont = qaTask->AddClusterContainer(nclusters);
65   if (clusCont) clusCont->SetClusPtCut(clusptcut);
66
67   AliJetContainer *jetCont = qaTask->AddJetContainer(njets,cutType,jetradius);
68   if (jetCont) {
69     jetCont->SetJetPtCut(jetptcut);
70     jetCont->SetPercAreaCut(jetareacut);
71     jetCont->SetRhoName(nrho);
72   }
73
74   //-------------------------------------------------------
75   // Final settings, pass to manager and set the containers
76   //-------------------------------------------------------
77
78   mgr->AddTask(qaTask);
79   
80   // Create containers for input/output
81   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
82
83   TString contName(name);
84   contName += "_histos";
85   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), 
86                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
87                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
88   mgr->ConnectInput  (qaTask, 0,  cinput1 );
89   mgr->ConnectOutput (qaTask, 1, coutput1 );
90
91   return qaTask;
92 }