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