ROOT logo
AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
						     const char * njetsTrue,
						     const Double_t R,
						     const char * nrhoBase, 
						     const char * ntracks, 
						     const char * nclusters,
						     const char * ntracksTrue,
						     const char *type,				      
						     const char *CentEst,
						     Int_t       pSel,
						     TString     trigClass      = "",
						     TString     kEmcalTriggers = "",
						     TString     tag            = "",
						     AliAnalysisTaskEmcalQGTagging::JetShapeType jetShapeType, AliAnalysisTaskEmcalQGTagging::JetShapeSub jetShapeSub ) {
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
    {
      Error("AddTaskEmcalQGTagging","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("AddTaskEmcalQGTagging", "This task requires an input event handler");
      return NULL;
    }

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

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

  //task->SetNCentBins(4);
  task->SetJetShapeType(jetShapeType);
  task->SetJetShapeSub(jetShapeSub);
  
  TString thename(njetsBase);
  //if(thename.Contains("Sub")) task->SetIsConstSub(kTRUE);
  //task->SetVzRange(-10.,10.);

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

  AliJetContainer *jetContBase=0x0;
  AliJetContainer *jetContTrue=0x0;

  TString strType(type);

  if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrue) {
    jetContBase = task->AddJetContainer(njetsBase,strType,R);
    if(jetContBase) {
      jetContBase->SetRhoName(nrhoBase);
      jetContBase->ConnectParticleContainer(trackCont);
      jetContBase->ConnectClusterContainer(clusterCont);
      jetContBase->SetPercAreaCut(0.6);
      jetContBase->SetPythiaInfoName("PythiaInfo");
    }
  }
  
  if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrueDet){
    
    jetContBase = task->AddJetContainer(njetsBase,strType,R);
    if(jetContBase) {
      jetContBase->SetRhoName(nrhoBase);
      jetContBase->ConnectParticleContainer(trackCont);
      jetContBase->ConnectClusterContainer(clusterCont);
      jetContBase->SetPercAreaCut(0.6);
      jetContBase->SetPythiaInfoName("PythiaInfo");
    }

    jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
    if(jetContTrue) {
      jetContTrue->SetRhoName(nrhoBase);
      jetContTrue->ConnectParticleContainer(trackContTrue);
      jetContTrue->SetPercAreaCut(0.6); 
      jetContTrue->SetPythiaInfoName("PythiaInfo");
    }
  }  

  if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kData){
    jetContBase = task->AddJetContainer(njetsBase,strType,R);
    if(jetContBase) {
      jetContBase->SetRhoName(nrhoBase);
      jetContBase->ConnectParticleContainer(trackCont);
      jetContBase->ConnectClusterContainer(clusterCont);
      jetContBase->SetPercAreaCut(0.6);
    }    
  }
  
  if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kDetEmb){
    jetContBase = task->AddJetContainer(njetsBase,strType,R);
    if(jetContBase) {
      jetContBase->SetRhoName(nrhoBase);
      jetContBase->ConnectParticleContainer(trackCont);
      jetContBase->ConnectClusterContainer(clusterCont);
      jetContBase->SetPercAreaCut(0.6);
      jetContBase->SetPythiaInfoName("PythiaInfo");
    }

    jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
    if(jetContTrue) {
      jetContTrue->SetRhoName(nrhoBase);
      jetContTrue->ConnectParticleContainer(trackContTrue);
      jetContTrue->SetPercAreaCut(0.6); 
      jetContTrue->SetPythiaInfoName("PythiaInfo");
    }
    
  }
  
  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 contName1(wagonName);

  if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrue) contName1 += "_True"; 
  if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrueDet) contName1 += "_TrueDet"; 
  if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kData) contName1 += "_Data"; 
  if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kDetEmb) contName1 += "_DetEmb"; 
 
  if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kNoSub) contName1 += "_NoSub"; 
  if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kConstSub) contName1 += "_ConstSub"; 
  if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kDerivSub) contName1 += "_DerivSub"; 


  TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName1.Data(), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
    
  mgr->ConnectOutput(task,1,coutput1);

  return task;  

}

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