3 AliJJetTask* AddTaskJJet(
4 Int_t trigger = AliVEvent::kEMCEJE,
5 const char *taskname = "AliJJetTask",
10 // Get the pointer to the existing analysis manager via the static access method.
11 //==============================================================================
12 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15 ::Error("AddTaskJJet", "No analysis manager to connect to.");
19 // Check the analysis type using the event handlers connected to the analysis manager.
20 //==============================================================================
21 if (!mgr->GetInputEventHandler())
23 ::Error("AddTaskJJet", "This task requires an input event handler");
27 //-------------------------------------------------------
28 // Init the task and do settings
29 //-------------------------------------------------------
31 TString name(taskname);
34 //TString tracksName = "PicoTracks";
35 TString tracksName = "PicoTracks";
36 TString clustersName = "EmcCaloClusters";
37 TString clustersCorrName = "CaloClustersCorr";
41 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
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
51 char *ntracks = tracksName;
52 char *nclusters = clustersCorrName;
54 Printf("name: %s",name.Data());
56 AliJJetTask* jtTask = new AliJJetTask(name, nJetFinder);
57 jtTask->SetDebug(debug);
58 jtTask->SelectCollisionCandidates(trigger);
61 AliParticleContainer *trackCont = jtTask->AddParticleContainer(ntracks);
62 trackCont->SetClassName("AliVTrack");
63 AliClusterContainer *clusterCont = jtTask->AddClusterContainer(nclusters);
66 TString strType(type);
67 AliJetContainer *jetCont[nJetFinder];
69 for(int i=0; i<nJetFinder; i++){
70 jetCont[i] = jtTask->AddJetContainer(jetFinderTask[i]->GetName(),strType,aConeSizes[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);
82 //-------------------------------------------------------
83 // Final settings, pass to manager and set the containers
84 //-------------------------------------------------------
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()));
99 mgr->ConnectInput (jtTask, 0, cinput );
100 mgr->ConnectOutput (jtTask, 1, coutput ); // MUST HAVE IT, DON"T KNOW WHY ??? maybe from EMCALJET code