ROOT logo
AliAnalysisTaskJetShapeDeriv *AddTaskJetShapeDeriv(const char * njetsBase,
						   const char * njetsNoEmb,
						   const Double_t R,
						   const char * nrhoBase,
						   const char * nrhoMass,
						   const char * ntracks,
						   const char * nclusters,
						   const char * type           = "TPC",
						   const char * CentEst        = "V0M",
						   Int_t        pSel           = AliVEvent::kAny,
						   TString      trigClass      = "",
						   TString      kEmcalTriggers = "",
						   TString      tag            = "MCMatch",
						   Bool_t       bCreateTree    = kFALSE)
{

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
    {
      Error("AddTaskJetShapeDeriv","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("AddTaskJetShapeDeriv", "This task requires an input event handler");
      return NULL;
    }

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

  //Configure jet tagger task
  AliAnalysisTaskJetShapeDeriv *task = new AliAnalysisTaskJetShapeDeriv(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);
  }

  AliJetContainer *jetContNoEmb = task->AddJetContainer(njetsNoEmb,strType,R);
  if(jetContNoEmb) {
    jetContNoEmb->SetRhoName(nrhoBase);
    jetContNoEmb->SetRhoMassName(nrhoMass);
    jetContNoEmb->ConnectParticleContainer(trackCont);
    jetContNoEmb->ConnectClusterContainer(clusterCont);
    jetContNoEmb->SetPercAreaCut(0.6);
    jetContNoEmb->SetJetPtCut(-1e6);
  }

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

  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);
  if(bCreateTree) {
    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("%sTree",contName.Data()), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
    mgr->ConnectOutput(task,2,coutput2);
  }

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