ROOT logo
AliAnalysisTaskJetShapeGR *AddTaskJetShapeGR(const char * njetsBase,
					     const char * njetsSub,
					     const char * njetsTrue,
					     const Double_t R,
					     const char * nrhoBase,
					     const char * nrhoMass,
					     const char * ntracks,
					     const char * nclusters,
					     const char * ntracksTrue,
					     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("AddTaskJetShapeGR","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("AddTaskJetShapeGR", "This task requires an input event handler");
      return NULL;
    }

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

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

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

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

  Int_t ic = 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->SetJetContainerBase(ic);
    ic++;
  }
  AliJetContainer *jetContSub = task->AddJetContainer(njetsSub,strType,R);
  if(jetContSub) {
    jetContSub->SetRhoName(nrhoBase);
    jetContSub->SetRhoMassName(nrhoMass);
    jetContSub->ConnectParticleContainer(trackCont);
    jetContSub->ConnectClusterContainer(clusterCont);
    jetContSub->SetPercAreaCut(0.6);
    jetContSub->SetJetPtCut(-1e6);
    task->SetJetContainerSub(ic);
    ic++;
  }
  AliJetContainer *jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
  if(jetContTrue) {
    jetContTrue->ConnectParticleContainer(trackContTrue);
    jetContTrue->SetPercAreaCut(0.6);
    jetContTrue->SetJetPtCut(0.1);
    task->SetJetContainerTrue(ic);
    ic++;
  }

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

  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;



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