ROOT logo
// $Id$

AliAnalysisTaskEmcalJetSample* AddTaskEmcalJetSample(
  const char *ntracks            = "Tracks",
  const char *nclusters          = "CaloClusters",
  const char *njets              = "Jets",
  const char *nrho               = "Rho",
  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           = "AliAnalysisTaskEmcalJetSample"
)
{
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskEmcalJetSample", "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("AddTaskEmcalJetSample", "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;
  }

  Printf("name: %s",name.Data());

  AliAnalysisTaskEmcalJetSample* jetTask = new AliAnalysisTaskEmcalJetSample(name);
  jetTask->SetCentRange(0.,100.);
  jetTask->SetNCentBins(nCentBins);

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

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

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

  mgr->AddTask(jetTask);

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

  return jetTask;
}

AliAnalysisTaskEmcalJetSample* AddTaskEmcalJetSample( AliEmcalJetTask* jetFinderTask,
  Int_t       nCentBins          = 1,
  Double_t    jetareacut         = 0.6,
  const char *type               = "EMCAL",
  Int_t       leadhadtype        = 0,
  const char *taskname           = "AliAnalysisTaskEmcalJetSample"
)
    {
    const char* ntracks            = jetFinderTask->GetTracksName();
    const char* nclusters          = jetFinderTask->GetClusName();
    const char* njets              = jetFinderTask->GetJetsName();
    const char* nrho               = jetFinderTask->GetRhoName();
    Double_t    jetradius          = jetFinderTask->GetRadius();
    Double_t    jetptcut           = jetFinderTask->GetMinJetPt();

    AliAnalysisTaskEmcalJetSample* jetTask = AddTaskEmcalJetSample(ntracks , nclusters, njets, nrho, nCentBins, jetradius, jetptcut, jetareacut, type, leadhadtype, taskname);

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