]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetSample.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetSample.C
1 // $Id$
2
3 AliAnalysisTaskEmcalJetSample* AddTaskEmcalJetSample(
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    jetptcut           = 1,
10   Double_t    jetareacut         = 0.6,
11   const char *type               = "EMCAL",
12   Int_t       leadhadtype        = 0,
13   const char *taskname           = "AliAnalysisTaskEmcalJetSample"
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("AddTaskEmcalJetSample", "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("AddTaskEmcalJetSample", "This task requires an input event handler");
30     return NULL;
31   }
32   
33   //-------------------------------------------------------
34   // Init the task and do settings
35   //-------------------------------------------------------
36
37   TString name(taskname);
38   if (strcmp(njets,"")) {
39     name += "_";
40     name += njets;
41   }
42   if (strcmp(nrho,"")) {
43     name += "_";
44     name += nrho;
45   }
46   if (strcmp(type,"")) {
47     name += "_";
48     name += type;
49   }
50
51   Printf("name: %s",name.Data());
52
53   AliAnalysisTaskEmcalJetSample* jetTask = new AliAnalysisTaskEmcalJetSample(name);
54
55   AliParticleContainer *trackCont  = jetTask->AddParticleContainer(ntracks);
56   AliClusterContainer *clusterCont = jetTask->AddClusterContainer(nclusters);
57
58   TString strType(type);
59   AliJetContainer *jetCont = jetTask->AddJetContainer(njets,strType,jetradius);
60   if(jetCont) {
61     jetCont->SetRhoName(nrho);
62     jetCont->ConnectParticleContainer(trackCont);
63     jetCont->ConnectClusterContainer(clusterCont);
64     jetCont->SetZLeadingCut(0.98,0.98);
65     jetCont->SetPercAreaCut(0.6);
66     jetCont->SetJetPtCut(jetptcut);    
67     jetCont->SetLeadingHadronType(leadhadtype);
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 }