]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskDcalDijetPerf.C
add Dcal dijet performance task (Rosi)
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskDcalDijetPerf.C
1 // $Id$
2
3 AliAnalysisTaskDcalDijetPerf* AddTaskDcalDijetPerf(
4                                                    const char *ntracks            = "Tracks",
5                                                    const char *nclusters          = "CaloClusters",
6                                                    const char *njets              = "Jets",
7                                                    const char *njets2             = "Jets2",
8                                                    const char *nrho               = "Rho",
9                                                    Int_t       nCentBins          = 1,
10                                                    Double_t    jetradius          = 0.2,
11                                                    Double_t    jetradius2         = 0.2,
12                                                    Double_t    jetptcut           = 1,
13                                                    Double_t    jetareacut         = 0.6,
14                                                    const char *type               = "TPC",
15                                                    Int_t       leadhadtype        = 0,
16                                                    const char *taskname           = "AliAnalysisTaskDcalDijetPerf"
17 )
18 {  
19   // Get the pointer to the existing analysis manager via the static access method.
20   //==============================================================================
21   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22   if (!mgr)
23   {
24     ::Error("AddTaskDcalDijetPerf", "No analysis manager to connect to.");
25     return NULL;
26   }  
27   
28   // Check the analysis type using the event handlers connected to the analysis manager.
29   //==============================================================================
30   if (!mgr->GetInputEventHandler())
31   {
32     ::Error("AddTaskDcalDijetPerf", "This task requires an input event handler");
33     return NULL;
34   }
35   
36   //-------------------------------------------------------
37   // Init the task and do settings
38   //-------------------------------------------------------
39
40   TString name(taskname);
41   if (strcmp(njets,"")) {
42     name += "_";
43     name += njets;
44   }
45   if (strcmp(njets,"")) {
46     name += "_";
47     name += njets2;
48   }
49   if (strcmp(nrho,"")) {
50     name += "_";
51     name += nrho;
52   }
53   if (strcmp(type,"")) {
54     name += "_";
55     name += type;
56   }
57
58   Printf("name: %s",name.Data());
59
60   AliAnalysisTaskDcalDijetPerf* jetTask = new AliAnalysisTaskDcalDijetPerf(name);
61   jetTask->SetCentRange(0.,100.);
62   jetTask->SetNCentBins(nCentBins);
63
64   AliParticleContainer *trackCont  = jetTask->AddParticleContainer(ntracks);
65   trackCont->SetClassName("AliVTrack");
66   AliClusterContainer *clusterCont = jetTask->AddClusterContainer(nclusters);
67
68   TString strType(type);
69   AliJetContainer *jetCont = jetTask->AddJetContainer(njets,strType,jetradius);
70   AliJetContainer *jetCont2 = jetTask->AddJetContainer(njets2,strType,jetradius2);
71   if(jetCont) {
72     jetCont->SetRhoName(nrho);
73     jetCont->ConnectParticleContainer(trackCont);
74     jetCont->ConnectClusterContainer(clusterCont);
75     //jetCont->SetZLeadingCut(0.98,0.98);
76     //jetCont->SetPercAreaCut(0.6);
77     jetCont->SetJetPtCut(jetptcut);    
78     jetCont->SetLeadingHadronType(leadhadtype);
79   }
80   if(jetCont2) {
81     jetCont2->SetRhoName(nrho);
82     jetCont2->ConnectParticleContainer(trackCont);
83     jetCont2->ConnectClusterContainer(clusterCont);
84     //jetCont->SetZLeadingCut(0.98,0.98);
85     //jetCont->SetPercAreaCut(0.6);
86     jetCont2->SetJetPtCut(jetptcut);
87     jetCont2->SetLeadingHadronType(leadhadtype);
88   }
89   
90   //-------------------------------------------------------
91   // Final settings, pass to manager and set the containers
92   //-------------------------------------------------------
93   
94   mgr->AddTask(jetTask);
95   
96   // Create containers for input/output
97   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
98   TString contname(name);
99   contname += "_histos";
100   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
101                                                             TList::Class(),AliAnalysisManager::kOutputContainer,
102                                                             Form("%s", AliAnalysisManager::GetCommonFileName()));
103   mgr->ConnectInput  (jetTask, 0,  cinput1 );
104   mgr->ConnectOutput (jetTask, 1, coutput1 );
105   
106   return jetTask;
107 }
108
109 AliAnalysisTaskDcalDijetPerf* AddTaskDcalDijetPerf( AliEmcalJetTask* jetFinderTask,
110                                                     Int_t       nCentBins          = 1,
111                                                     Double_t    jetareacut         = 0.6,
112                                                     const char *type               = "EMCAL",
113                                                     Int_t       leadhadtype        = 0,
114                                                     const char *taskname           = "AliAnalysisTaskDcalDijetPerf"
115                                                     )
116 {
117   const char* ntracks            = jetFinderTask->GetTracksName();
118   const char* nclusters          = jetFinderTask->GetClusName();
119   const char* njets              = jetFinderTask->GetJetsName();
120   const char* nrho               = jetFinderTask->GetRhoName();
121   Double_t    jetradius          = jetFinderTask->GetRadius();
122   Double_t    jetptcut           = jetFinderTask->GetMinJetPt();
123   
124   AliAnalysisTaskDcalDijetPerf* jetTask = AddTaskDcalDijetPerf(ntracks , nclusters, njets, nrho, nCentBins, jetradius, jetptcut, jetareacut, type, leadhadtype, taskname);
125   
126   return jetTask;
127 }