ROOT logo
AliAnalysisTaskEmcalJetMassResponse* AddTaskEmcalJetMassResponse(const char * njetsBase,
								 const Double_t R,
								 const char * nrhoBase, 
								 const char * nrhoMass, 
								 const char * ntracks, 
								 const char * nclusters,
								 TF1        * fBkgMass,
								 const char * type           = "TPC",					     
								 const char * CentEst        = "V0M",
								 Int_t        pSel           = AliVEvent::kAny,
								 TString      trigClass      = "",
								 TString      kEmcalTriggers = "",
								 TString      tag            = "MCMatch") {

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
    {
      Error("AddTaskEmcalJetMassResponse","No analysis manager found.");
      return 0;
    }
  Bool_t ismc=kFALSE;
  ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;

  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler())
    {
      ::Error("AddTaskEmcalJetMassResponse", "This task requires an input event handler");
      return NULL;
    }

  TString wagonName = Form("JetMassResponse_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());

  //Configure jet tagger task
  AliAnalysisTaskEmcalJetMassResponse *task = new AliAnalysisTaskEmcalJetMassResponse(wagonName.Data());

  task->SetNCentBins(4);
  //task->SetVzRange(-10.,10.);

  AliParticleContainer *trackCont  = task->AddParticleContainer(ntracks);
  AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);

  task->SetJetContainerBase(0);

  TString strType(type);
  AliJetContainer *jetContBase = task->AddJetContainer(njetsBase,strType,R);
  if(jetContBase) {
    jetContBase->SetRhoName(nrhoBase);
    jetContBase->SetRhoMassName(nrhoMass);
    jetContBase->ConnectParticleContainer(trackCont);
    jetContBase->ConnectClusterContainer(clusterCont);
    jetContBase->SetPercAreaCut(0.6);
  }

  task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
  task->SetCentralityEstimator(CentEst);
  task->SelectCollisionCandidates(pSel);
  task->SetUseAliAnaUtils(kFALSE);
  task->SetJetMassAverageFunc(fBkgMass);

  mgr->AddTask(task);

  //Connnect input
  mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );

  //Connect output
  TString contName(wagonName);
  TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
  mgr->ConnectOutput(task,1,coutput1);
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("%sTree",contName.Data()), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
  mgr->ConnectOutput(task,2,coutput2);

  return task;  

}

 AddTaskEmcalJetMassResponse.C:1
 AddTaskEmcalJetMassResponse.C:2
 AddTaskEmcalJetMassResponse.C:3
 AddTaskEmcalJetMassResponse.C:4
 AddTaskEmcalJetMassResponse.C:5
 AddTaskEmcalJetMassResponse.C:6
 AddTaskEmcalJetMassResponse.C:7
 AddTaskEmcalJetMassResponse.C:8
 AddTaskEmcalJetMassResponse.C:9
 AddTaskEmcalJetMassResponse.C:10
 AddTaskEmcalJetMassResponse.C:11
 AddTaskEmcalJetMassResponse.C:12
 AddTaskEmcalJetMassResponse.C:13
 AddTaskEmcalJetMassResponse.C:14
 AddTaskEmcalJetMassResponse.C:15
 AddTaskEmcalJetMassResponse.C:16
 AddTaskEmcalJetMassResponse.C:17
 AddTaskEmcalJetMassResponse.C:18
 AddTaskEmcalJetMassResponse.C:19
 AddTaskEmcalJetMassResponse.C:20
 AddTaskEmcalJetMassResponse.C:21
 AddTaskEmcalJetMassResponse.C:22
 AddTaskEmcalJetMassResponse.C:23
 AddTaskEmcalJetMassResponse.C:24
 AddTaskEmcalJetMassResponse.C:25
 AddTaskEmcalJetMassResponse.C:26
 AddTaskEmcalJetMassResponse.C:27
 AddTaskEmcalJetMassResponse.C:28
 AddTaskEmcalJetMassResponse.C:29
 AddTaskEmcalJetMassResponse.C:30
 AddTaskEmcalJetMassResponse.C:31
 AddTaskEmcalJetMassResponse.C:32
 AddTaskEmcalJetMassResponse.C:33
 AddTaskEmcalJetMassResponse.C:34
 AddTaskEmcalJetMassResponse.C:35
 AddTaskEmcalJetMassResponse.C:36
 AddTaskEmcalJetMassResponse.C:37
 AddTaskEmcalJetMassResponse.C:38
 AddTaskEmcalJetMassResponse.C:39
 AddTaskEmcalJetMassResponse.C:40
 AddTaskEmcalJetMassResponse.C:41
 AddTaskEmcalJetMassResponse.C:42
 AddTaskEmcalJetMassResponse.C:43
 AddTaskEmcalJetMassResponse.C:44
 AddTaskEmcalJetMassResponse.C:45
 AddTaskEmcalJetMassResponse.C:46
 AddTaskEmcalJetMassResponse.C:47
 AddTaskEmcalJetMassResponse.C:48
 AddTaskEmcalJetMassResponse.C:49
 AddTaskEmcalJetMassResponse.C:50
 AddTaskEmcalJetMassResponse.C:51
 AddTaskEmcalJetMassResponse.C:52
 AddTaskEmcalJetMassResponse.C:53
 AddTaskEmcalJetMassResponse.C:54
 AddTaskEmcalJetMassResponse.C:55
 AddTaskEmcalJetMassResponse.C:56
 AddTaskEmcalJetMassResponse.C:57
 AddTaskEmcalJetMassResponse.C:58
 AddTaskEmcalJetMassResponse.C:59
 AddTaskEmcalJetMassResponse.C:60
 AddTaskEmcalJetMassResponse.C:61
 AddTaskEmcalJetMassResponse.C:62
 AddTaskEmcalJetMassResponse.C:63
 AddTaskEmcalJetMassResponse.C:64
 AddTaskEmcalJetMassResponse.C:65
 AddTaskEmcalJetMassResponse.C:66
 AddTaskEmcalJetMassResponse.C:67
 AddTaskEmcalJetMassResponse.C:68
 AddTaskEmcalJetMassResponse.C:69
 AddTaskEmcalJetMassResponse.C:70
 AddTaskEmcalJetMassResponse.C:71
 AddTaskEmcalJetMassResponse.C:72
 AddTaskEmcalJetMassResponse.C:73
 AddTaskEmcalJetMassResponse.C:74
 AddTaskEmcalJetMassResponse.C:75
 AddTaskEmcalJetMassResponse.C:76
 AddTaskEmcalJetMassResponse.C:77
 AddTaskEmcalJetMassResponse.C:78