ROOT logo
// $Id$

AliAnalysisTaskJetJTJT* AddTaskJetJTJT(
  const char *runPeriod 	 = "LHC13b",
  const char *ntracks            = "Tracks",
  const char *nclusters          = "CaloClusters",
  const char *njets              = "Jets",
  const char *nrho               = "Rho",
  Int_t       trigger            = AliVEvent::kMB,
  Int_t       nCentBins          = 1,
  Double_t    jetradius          = 0.2,
  Double_t    jetptcut           = 1,
  Double_t    jetareacut         = 0.6,
  const char *type               = "EMCAL",
  Int_t       leadhadtype        = 0,
  const char *taskname           = "AliAnalysisTaskJetJTJT",
  Int_t       debug 		 = 0	
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskJetJTJT", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler())
  {
    ::Error("AddTaskJetJTJT", "This task requires an input event handler");
    return NULL;
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  TString name(taskname);
  if (strcmp(njets,"")) {
    name += "_";
    name += njets;
  }
  if (strcmp(nrho,"")) {
    name += "_";
    name += nrho;
  }
  if (strcmp(type,"")) {
    name += "_";
    name += type;
  }
    name += "_R";
    name += jetradius*10;
    name += "_T";
    name += trigger;

  TString tracksName = "PicoTracks";
  TString clustersName = "EmcCaloClusters";
  TString clustersCorrName = "CaloClustersCorr";
  TString rhoName = "";


  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
  AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(tracksName,clustersCorrName,1,0.4,1,0.15,0.300); // anti-kt

  ntracks = tracksName;
  nclusters = clustersCorrName;
  nrho = rhoName;
  Printf("name: %s",name.Data());

  AliAnalysisTaskJetJTJT* jtTask = new AliAnalysisTaskJetJTJT(name);
  jtTask->SetCentRange(0.,100.);
  jtTask->SetNCentBins(nCentBins);
  if(debug > 1){
  cout << "SetTrackArrayName: " << ntracks << endl;
  }
  jtTask->SetTrackArrayName(ntracks);
  jtTask->setDebug(debug);
  jtTask->setRunPeriod(runPeriod);
  Double_t borders[5] = {0,10,20,40,100};
  Double_t triggpt[8] = {0,5,10,20,40,80,100,150};
  Double_t triggpta[2] = {0,100};
  //cout << "Size of {0,10,20,40,100}: " << borders->size() << endl;
  jtTask->setCentBinBorders(5,borders);
  jtTask->setTriggPtBorders(8,triggpt);
  jtTask->setAssocPtBorders(2,triggpta);
  jtTask->SelectCollisionCandidates(trigger);

  AliParticleContainer *trackCont  = jtTask->AddParticleContainer(ntracks);
  trackCont->SetClassName("AliVTrack");
  AliClusterContainer *clusterCont = jtTask->AddClusterContainer(nclusters);

  TString strType(type);
  AliJetContainer *jetCont = jtTask->AddJetContainer(jetFinderTask->GetName(),strType,jetradius);
  if(jetCont) {
	  jetCont->SetRhoName(nrho);
	  jetCont->ConnectParticleContainer(trackCont);
	  jetCont->ConnectClusterContainer(clusterCont);
	  jetCont->SetZLeadingCut(0.98,0.98);
	  jetCont->SetPercAreaCut(0.6);
	  jetCont->SetJetPtCut(jetptcut);    
	  jetCont->SetLeadingHadronType(leadhadtype);
  }

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------

  mgr->AddTask(jtTask);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer()  ;
  TString contname(name);
  contname += "_histos";
  cout << "Create container " << contname << endl;
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(), 
		  TList::Class(),AliAnalysisManager::kOutputContainer,
		  Form("%s", AliAnalysisManager::GetCommonFileName()));

  mgr->ConnectInput  (jtTask, 0,  cinput1 );
  mgr->ConnectOutput (jtTask, 1, coutput1 );

  return jtTask;
}
 AddTaskJetJTJT.C:1
 AddTaskJetJTJT.C:2
 AddTaskJetJTJT.C:3
 AddTaskJetJTJT.C:4
 AddTaskJetJTJT.C:5
 AddTaskJetJTJT.C:6
 AddTaskJetJTJT.C:7
 AddTaskJetJTJT.C:8
 AddTaskJetJTJT.C:9
 AddTaskJetJTJT.C:10
 AddTaskJetJTJT.C:11
 AddTaskJetJTJT.C:12
 AddTaskJetJTJT.C:13
 AddTaskJetJTJT.C:14
 AddTaskJetJTJT.C:15
 AddTaskJetJTJT.C:16
 AddTaskJetJTJT.C:17
 AddTaskJetJTJT.C:18
 AddTaskJetJTJT.C:19
 AddTaskJetJTJT.C:20
 AddTaskJetJTJT.C:21
 AddTaskJetJTJT.C:22
 AddTaskJetJTJT.C:23
 AddTaskJetJTJT.C:24
 AddTaskJetJTJT.C:25
 AddTaskJetJTJT.C:26
 AddTaskJetJTJT.C:27
 AddTaskJetJTJT.C:28
 AddTaskJetJTJT.C:29
 AddTaskJetJTJT.C:30
 AddTaskJetJTJT.C:31
 AddTaskJetJTJT.C:32
 AddTaskJetJTJT.C:33
 AddTaskJetJTJT.C:34
 AddTaskJetJTJT.C:35
 AddTaskJetJTJT.C:36
 AddTaskJetJTJT.C:37
 AddTaskJetJTJT.C:38
 AddTaskJetJTJT.C:39
 AddTaskJetJTJT.C:40
 AddTaskJetJTJT.C:41
 AddTaskJetJTJT.C:42
 AddTaskJetJTJT.C:43
 AddTaskJetJTJT.C:44
 AddTaskJetJTJT.C:45
 AddTaskJetJTJT.C:46
 AddTaskJetJTJT.C:47
 AddTaskJetJTJT.C:48
 AddTaskJetJTJT.C:49
 AddTaskJetJTJT.C:50
 AddTaskJetJTJT.C:51
 AddTaskJetJTJT.C:52
 AddTaskJetJTJT.C:53
 AddTaskJetJTJT.C:54
 AddTaskJetJTJT.C:55
 AddTaskJetJTJT.C:56
 AddTaskJetJTJT.C:57
 AddTaskJetJTJT.C:58
 AddTaskJetJTJT.C:59
 AddTaskJetJTJT.C:60
 AddTaskJetJTJT.C:61
 AddTaskJetJTJT.C:62
 AddTaskJetJTJT.C:63
 AddTaskJetJTJT.C:64
 AddTaskJetJTJT.C:65
 AddTaskJetJTJT.C:66
 AddTaskJetJTJT.C:67
 AddTaskJetJTJT.C:68
 AddTaskJetJTJT.C:69
 AddTaskJetJTJT.C:70
 AddTaskJetJTJT.C:71
 AddTaskJetJTJT.C:72
 AddTaskJetJTJT.C:73
 AddTaskJetJTJT.C:74
 AddTaskJetJTJT.C:75
 AddTaskJetJTJT.C:76
 AddTaskJetJTJT.C:77
 AddTaskJetJTJT.C:78
 AddTaskJetJTJT.C:79
 AddTaskJetJTJT.C:80
 AddTaskJetJTJT.C:81
 AddTaskJetJTJT.C:82
 AddTaskJetJTJT.C:83
 AddTaskJetJTJT.C:84
 AddTaskJetJTJT.C:85
 AddTaskJetJTJT.C:86
 AddTaskJetJTJT.C:87
 AddTaskJetJTJT.C:88
 AddTaskJetJTJT.C:89
 AddTaskJetJTJT.C:90
 AddTaskJetJTJT.C:91
 AddTaskJetJTJT.C:92
 AddTaskJetJTJT.C:93
 AddTaskJetJTJT.C:94
 AddTaskJetJTJT.C:95
 AddTaskJetJTJT.C:96
 AddTaskJetJTJT.C:97
 AddTaskJetJTJT.C:98
 AddTaskJetJTJT.C:99
 AddTaskJetJTJT.C:100
 AddTaskJetJTJT.C:101
 AddTaskJetJTJT.C:102
 AddTaskJetJTJT.C:103
 AddTaskJetJTJT.C:104
 AddTaskJetJTJT.C:105
 AddTaskJetJTJT.C:106
 AddTaskJetJTJT.C:107
 AddTaskJetJTJT.C:108
 AddTaskJetJTJT.C:109
 AddTaskJetJTJT.C:110
 AddTaskJetJTJT.C:111
 AddTaskJetJTJT.C:112
 AddTaskJetJTJT.C:113
 AddTaskJetJTJT.C:114
 AddTaskJetJTJT.C:115
 AddTaskJetJTJT.C:116
 AddTaskJetJTJT.C:117
 AddTaskJetJTJT.C:118
 AddTaskJetJTJT.C:119
 AddTaskJetJTJT.C:120
 AddTaskJetJTJT.C:121
 AddTaskJetJTJT.C:122
 AddTaskJetJTJT.C:123
 AddTaskJetJTJT.C:124
 AddTaskJetJTJT.C:125
 AddTaskJetJTJT.C:126
 AddTaskJetJTJT.C:127