]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/macros/jcorran/AddTaskJJet.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / jcorran / AddTaskJJet.C
1 // $Id$
2
3 AliJJetTask* AddTaskJJet(
4   Int_t       trigger            = AliVEvent::kEMCEJE,
5   const char *taskname           = "AliJJetTask",
6   int       debug                = 1    
7 )
8 {  
9
10     // Get the pointer to the existing analysis manager via the static access method.
11     //==============================================================================
12     AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13     if (!mgr)
14     {
15         ::Error("AddTaskJJet", "No analysis manager to connect to.");
16         return NULL;
17     }  
18
19     // Check the analysis type using the event handlers connected to the analysis manager.
20     //==============================================================================
21     if (!mgr->GetInputEventHandler())
22     {
23         ::Error("AddTaskJJet", "This task requires an input event handler");
24         return NULL;
25     }
26
27     //-------------------------------------------------------
28     // Init the task and do settings
29     //-------------------------------------------------------
30
31     TString name(taskname);
32     //name += trigger;
33
34     //TString tracksName = "PicoTracks";
35     TString tracksName = "PicoTracks";
36     TString clustersName = "EmcCaloClusters";
37     TString clustersCorrName = "CaloClustersCorr";
38     TString rhoName = "";
39
40
41     gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
42
43     const int nJetFinder=6;     
44     AliEmcalJetTask* jetFinderTask[nJetFinder];
45     double aConeSizes[nJetFinder]={0.4,0.5,0.6,0.4,0.5,0.6};
46     int aJetType[nJetFinder]={0,0,0,1,1,1}; // 0 :FullJet  1:Charged
47     for (int i=0; i<nJetFinder; i++){
48         jetFinderTask[i] = AddTaskEmcalJet(tracksName,clustersCorrName,1,aConeSizes[i],aJetType[i],0.15,0.300,0.005,1,"Jet",5.); // anti-kt
49     }
50
51     char *ntracks = tracksName;
52     char *nclusters = clustersCorrName;
53     char *nrho = rhoName;
54     Printf("name: %s",name.Data());
55
56     AliJJetTask* jtTask = new AliJJetTask(name, nJetFinder);
57     jtTask->SetDebug(debug);
58     jtTask->SelectCollisionCandidates(trigger);
59
60
61     AliParticleContainer *trackCont  = jtTask->AddParticleContainer(ntracks);
62     trackCont->SetClassName("AliVTrack");
63     AliClusterContainer *clusterCont = jtTask->AddClusterContainer(nclusters);
64
65     char *type="EMCAL";  
66     TString strType(type);
67     AliJetContainer *jetCont[nJetFinder];
68
69     for(int i=0; i<nJetFinder; i++){
70         jetCont[i] = jtTask->AddJetContainer(jetFinderTask[i]->GetName(),strType,aConeSizes[i]);
71         if(jetCont[i]) {
72             jetCont[i]->SetRhoName(nrho);
73             jetCont[i]->ConnectParticleContainer(trackCont);
74             jetCont[i]->ConnectClusterContainer(clusterCont);
75             jetCont[i]->SetZLeadingCut(0.98,0.98);
76             jetCont[i]->SetPercAreaCut(0.6);
77             jetCont[i]->SetJetPtCut(5);    
78             jetCont[i]->SetLeadingHadronType(0);
79         }
80     }
81
82     //-------------------------------------------------------
83     // Final settings, pass to manager and set the containers
84     //-------------------------------------------------------
85
86     mgr->AddTask(jtTask);
87
88
89
90     // Create containers for input/output
91     AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer()  ;
92    TString contname(name);
93     contname += "_histos";
94     cout << "Create container " << contname << endl;
95     AliAnalysisDataContainer *coutput = mgr->CreateContainer(contname.Data(),
96                         TList::Class(),AliAnalysisManager::kOutputContainer,
97                         Form("%s", AliAnalysisManager::GetCommonFileName()));
98
99         mgr->ConnectInput  (jtTask, 0,  cinput );
100         mgr->ConnectOutput (jtTask, 1, coutput ); // MUST HAVE IT, DON"T KNOW WHY ??? maybe from EMCALJET code
101
102         return jtTask;
103 }