]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskJetJTJT.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetJTJT.C
1 // $Id$
2
3 AliAnalysisTaskJetJTJT* AddTaskJetJTJT(
4   const char *runPeriod          = "LHC13b",
5   const char *ntracks            = "Tracks",
6   const char *nclusters          = "CaloClusters",
7   const char *njets              = "Jets",
8   const char *nrho               = "Rho",
9   Int_t       trigger            = AliVEvent::kMB,
10   Int_t       nCentBins          = 1,
11   Double_t    jetradius          = 0.2,
12   Double_t    jetptcut           = 1,
13   Double_t    jetareacut         = 0.6,
14   const char *type               = "EMCAL",
15   Int_t       leadhadtype        = 0,
16   const char *taskname           = "AliAnalysisTaskJetJTJT",
17   Int_t       debug              = 0    
18 )
19 {  
20   // Get the pointer to the existing analysis manager via the static access method.
21   //==============================================================================
22   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23   if (!mgr)
24   {
25     ::Error("AddTaskJetJTJT", "No analysis manager to connect to.");
26     return NULL;
27   }  
28   
29   // Check the analysis type using the event handlers connected to the analysis manager.
30   //==============================================================================
31   if (!mgr->GetInputEventHandler())
32   {
33     ::Error("AddTaskJetJTJT", "This task requires an input event handler");
34     return NULL;
35   }
36   
37   //-------------------------------------------------------
38   // Init the task and do settings
39   //-------------------------------------------------------
40
41   TString name(taskname);
42   if (strcmp(njets,"")) {
43     name += "_";
44     name += njets;
45   }
46   if (strcmp(nrho,"")) {
47     name += "_";
48     name += nrho;
49   }
50   if (strcmp(type,"")) {
51     name += "_";
52     name += type;
53   }
54     name += "_R";
55     name += jetradius*10;
56     name += "_T";
57     name += trigger;
58
59   TString tracksName = "PicoTracks";
60   TString clustersName = "EmcCaloClusters";
61   TString clustersCorrName = "CaloClustersCorr";
62   TString rhoName = "";
63
64
65   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
66   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(tracksName,clustersCorrName,1,0.4,1,0.15,0.300); // anti-kt
67
68   ntracks = tracksName;
69   nclusters = clustersCorrName;
70   nrho = rhoName;
71   Printf("name: %s",name.Data());
72
73   AliAnalysisTaskJetJTJT* jtTask = new AliAnalysisTaskJetJTJT(name);
74   jtTask->SetCentRange(0.,100.);
75   jtTask->SetNCentBins(nCentBins);
76   if(debug > 1){
77   cout << "SetTrackArrayName: " << ntracks << endl;
78   }
79   jtTask->SetTrackArrayName(ntracks);
80   jtTask->setDebug(debug);
81   jtTask->setRunPeriod(runPeriod);
82   Double_t borders[5] = {0,10,20,40,100};
83   Double_t triggpt[8] = {0,5,10,20,40,80,100,150};
84   Double_t triggpta[2] = {0,100};
85   //cout << "Size of {0,10,20,40,100}: " << borders->size() << endl;
86   jtTask->setCentBinBorders(5,borders);
87   jtTask->setTriggPtBorders(8,triggpt);
88   jtTask->setAssocPtBorders(2,triggpta);
89   jtTask->SelectCollisionCandidates(trigger);
90
91   AliParticleContainer *trackCont  = jtTask->AddParticleContainer(ntracks);
92   trackCont->SetClassName("AliVTrack");
93   AliClusterContainer *clusterCont = jtTask->AddClusterContainer(nclusters);
94
95   TString strType(type);
96   AliJetContainer *jetCont = jtTask->AddJetContainer(jetFinderTask->GetName(),strType,jetradius);
97   if(jetCont) {
98           jetCont->SetRhoName(nrho);
99           jetCont->ConnectParticleContainer(trackCont);
100           jetCont->ConnectClusterContainer(clusterCont);
101           jetCont->SetZLeadingCut(0.98,0.98);
102           jetCont->SetPercAreaCut(0.6);
103           jetCont->SetJetPtCut(jetptcut);    
104           jetCont->SetLeadingHadronType(leadhadtype);
105   }
106
107   //-------------------------------------------------------
108   // Final settings, pass to manager and set the containers
109   //-------------------------------------------------------
110
111   mgr->AddTask(jtTask);
112
113   // Create containers for input/output
114   AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
115   TString contname(name);
116   contname += "_histos";
117   cout << "Create container " << contname << endl;
118   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
119                   TList::Class(),AliAnalysisManager::kOutputContainer,
120                   Form("%s", AliAnalysisManager::GetCommonFileName()));
121
122   mgr->ConnectInput  (jtTask, 0,  cinput1 );
123   mgr->ConnectOutput (jtTask, 1, coutput1 );
124
125   return jtTask;
126 }