ROOT logo
enum AlgoType {kKT, kANTIKT};
enum JetType  {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};

AliAnalysisTaskEmcalJetTagger* AddTaskEmcalJetTagger(const char * njetsBase, 
						     const char * njetsTag, 
						     const Double_t R,
						     const char * nrhoBase, 
						     const char * nrhoTag, 
						     const char * ntracks, 
						     const char * nclusters,
						     const char *type,
						     const char *CentEst,
						     Int_t       pSel,
						     TString     trigClass      = "",
						     TString     kEmcalTriggers = "");

AliAnalysisTaskEmcalJetTagger* AddTaskEmcalJetTagger(TString     kTracksName         = "PicoTracks", 
						     TString     kClusName           = "caloClustersCorr",
						     Double_t    R                   = 0.4, 
						     Double_t    ptminTrack          = 0.15, 
						     Double_t    etminClus           = 0.3, 
						     Double_t    ptminTag            = 4.,
						     Int_t       rhoType             = 1,
						     const char *type                = "EMCAL",
						     const char *CentEst             = "V0M",
						     Int_t       pSel                = AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kMB,
						     TString     trigClass           = "",
						     TString     kEmcalTriggers      = "",
						     TString     kPeriod             = "LHC11h",
						     Int_t       recombScheme        = 0,
						     TString     tag1                = "Jet",
						     TString     tag2                = ""
						     ) {
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
    {
      Error("AddTaskEmcalJetTagger","No analysis manager found.");
      return 0;
    }

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

  // #### Add necessary jet finder tasks
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");

  if(tag2.IsNull()) tag2=tag1;

  AliEmcalJetTask* jetFinderTaskBase = 0x0;
  if (strcmp(type,"TPC")==0)
    jetFinderTaskBase = AddTaskEmcalJet(kTracksName, "", kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,recombScheme,tag1.Data(),1.);
  else if (strcmp(type,"EMCAL")==0)
    jetFinderTaskBase = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus,0.005,recombScheme,tag1.Data(),1.);
  jetFinderTaskBase->SelectCollisionCandidates(AliVEvent::kAny);

  AliEmcalJetTask* jetFinderTaskTag  = AddTaskEmcalJet(kTracksName, "", kANTIKT, R, kCHARGEDJETS, ptminTag, etminClus,0.005,recombScheme,tag2.Data(),1.);
  jetFinderTaskTag->SelectCollisionCandidates(AliVEvent::kAny);

  if(tag1.EqualTo("JetPythia"))
    jetFinderTaskBase->SelectConstituents(TObject::kBitMask, 0);
  if(tag2.EqualTo("JetPythia"))
    jetFinderTaskTag->SelectConstituents(TObject::kBitMask, 0);
  
  TString strJetsBase = jetFinderTaskBase->GetName();
  TString strJetsTag  = jetFinderTaskTag->GetName();

  AliAnalysisTaskRhoBase *rhoTaskBase;
  AliAnalysisTaskRhoBase *rhoTaskTag;
  TString rhoNameBase = "";
  TString rhoNameTag  = "";
  if(rhoType==1) {
    rhoTaskBase = AttachRhoTaskTagger(kPeriod,kTracksName,kClusName,R,ptminTrack,etminClus,recombScheme,tag1);
    if(rhoTaskBase) {
      rhoTaskBase->SetCentralityEstimator(CentEst);  
      rhoTaskBase->SelectCollisionCandidates(AliVEvent::kAny);
      if (strcmp(type,"TPC")==0)
	rhoNameBase = rhoTaskBase->GetOutRhoName();    
      if (strcmp(type,"EMCAL")==0)
	rhoNameBase = rhoTaskBase->GetOutRhoScaledName();
    }
    if(rhoTaskTag) {
      rhoTaskTag = AttachRhoTaskTagger(kPeriod,kTracksName,kClusName,R,ptminTag,0.,recombScheme,tag2);
      rhoTaskTag->SetCentralityEstimator(CentEst); 
      rhoTaskTag->SelectCollisionCandidates(AliVEvent::kAny);
      rhoNameTag  = rhoTaskTag->GetOutRhoName();
    }
  }

  //Configure jet tagger task
  AliAnalysisTaskEmcalJetTagger *task = AddTaskEmcalJetTagger(jetFinderTaskBase->GetName(),
							      jetFinderTaskTag->GetName(),
							      R,
							      rhoNameBase,
							      rhoNameTag,
							      kTracksName.Data(),
							      kClusName.Data(),
							      type,
							      CentEst,
							      pSel,
							      trigClass,
							      kEmcalTriggers
							      );
  
  return task;  

}

AliAnalysisTaskEmcalJetTagger* AddTaskEmcalJetTagger(const char * njetsBase, 
						     const char * njetsTag,
						     const Double_t R,
						     const char * nrhoBase, 
						     const char * nrhoTag, 
						     const char * ntracks, 
						     const char * nclusters,
						     const char * type,
						     const char * CentEst,
						     Int_t        pSel,
						     TString      trigClass,
						     TString      kEmcalTriggers
						     ) {

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
    {
      Error("AddTaskEmcalJetTagger","No analysis manager found.");
      return 0;
    }

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

  TString wagonName = Form("JetTagger_%s_%s_TC%s",njetsBase,njetsTag,trigClass.Data());

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

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

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

  task->SetJetContainerBase(0);
  task->SetJetContainerTag(1);

  TString strType(type);
  AliJetContainer *jetContBase = task->AddJetContainer(njetsBase,strType,R);
  if(jetContBase) {
    jetContBase->SetRhoName(nrhoBase);
    jetContBase->ConnectParticleContainer(trackCont);
    jetContBase->ConnectClusterContainer(clusterCont);
    jetContBase->SetMaxTrackPt(10000.);
  }

  AliJetContainer *jetContTag = task->AddJetContainer(njetsTag,"TPC",R);
  if(jetContTag) {
    jetContTag->SetRhoName(nrhoTag);
    jetContTag->ConnectParticleContainer(trackCont);
    jetContTag->ConnectClusterContainer(clusterCont);
    jetContTag->SetMaxTrackPt(10000.);
  }
  for(Int_t i=0; i<2; i++) {
    task->SetPercAreaCut(0.6, i); //keep?
  }
  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);

  return task;  
}

//Attach rho task
AliAnalysisTaskRhoBase *AttachRhoTaskTagger(TString     kPeriod             = "LHC13b",
					    TString     kTracksName         = "PicoTracks", 
					    TString     kClusName           = "caloClustersCorr",
					    Double_t    R                   = 0.4, 
					    Double_t    ptminTrack          = 0.15, 
					    Double_t    etminClus           = 0.3,
					    Int_t       recombScheme        = 0,
					    TString     tag                 = "Jet"
					    ) {
  
  AliAnalysisTaskRhoBase *rhoTaskBase;

  kPeriod.ToLower();

  // Add kt jet finder and rho task in case we want background subtraction
  gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");  
  AliEmcalJetTask *jetFinderKt;
  AliEmcalJetTask *jetFinderAKt;
  jetFinderAKt  = AddTaskEmcalJet(kTracksName, "", kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,recombScheme,tag.Data(),1.);
  jetFinderAKt->SelectCollisionCandidates(AliVEvent::kAny);
  if(kPeriod.EqualTo("lhc13b") || kPeriod.EqualTo("lhc13c") || kPeriod.EqualTo("lhc13d") || kPeriod.EqualTo("lhc13e") || kPeriod.EqualTo("lhc13f")) {
    jetFinderKt   = AddTaskEmcalJet(kTracksName, "", kKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,recombScheme,tag.Data(),0.);

    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");  
    TF1 *fScale = new TF1("fScale","1.42",0.,100.); //scale factor for pPb
    AliAnalysisTaskRhoSparse *rhoTaskSparse = AddTaskRhoSparse(
			       jetFinderKt->GetName(),
			       jetFinderAKt->GetName(),
			       kTracksName,
			       kClusName,
			       Form("RhoSparseR%03d",(int)(100*R)),
			       R,
			       "TPC",
			       0.01,
			       0.15,
			       0,
			       fScale,
			       0,
			       kTRUE,
			       Form("RhoSparseR%03d",(int)(100*R)),
			       kTRUE
			       );
    rhoTaskSparse->SetUseAliAnaUtils(kTRUE);
    rhoTaskBase = dynamic_cast<AliAnalysisTaskRhoBase*>rhoTaskSparse;
  }
  else if(kPeriod.EqualTo("lhc10h") || kPeriod.EqualTo("lhc11h") ) {
    jetFinderKt   = AddTaskEmcalJet(kTracksName, "", kKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,recombScheme,tag.Data(),0.1);

    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRho.C");
    TF1* sfunc = new TF1("sfunc","[0]*x*x+[1]*x+[2]",-1,100);
    sfunc->SetParameter(2,1.76458);
    sfunc->SetParameter(1,-0.0111656);
    sfunc->SetParameter(0,0.000107296);
    TString rhoname = Form("%sRhoR%03dptmin%3.0f%s",tag.Data(),(int)(100*R),ptminTrack*1000.0,kTracksName.Data());
    Printf("rhoname: %s",rhoname.Data());
    AliAnalysisTaskRho *rhoTask = AddTaskRho(
					     jetFinderKt->GetName(), 
					     kTracksName, 
					     kClusName, 
					     rhoname, 
					     R, 
					     "TPC", 
					     0.01, 
					     0, 
					     sfunc, 
					     2, 
					     kTRUE);
    rhoTask->SetHistoBins(100,0,250);

    rhoTaskBase = dynamic_cast<AliAnalysisTaskRhoBase*>rhoTask;
  }
  jetFinderKt->SelectCollisionCandidates(AliVEvent::kAny);
  if(tag.EqualTo("JetPythia")) {
    jetFinderKt->SelectConstituents(TObject::kBitMask, 0);
    jetFinderAKt->SelectConstituents(TObject::kBitMask, 0);
  }


  return rhoTaskBase;
}
 AddTaskEmcalJetTagger.C:1
 AddTaskEmcalJetTagger.C:2
 AddTaskEmcalJetTagger.C:3
 AddTaskEmcalJetTagger.C:4
 AddTaskEmcalJetTagger.C:5
 AddTaskEmcalJetTagger.C:6
 AddTaskEmcalJetTagger.C:7
 AddTaskEmcalJetTagger.C:8
 AddTaskEmcalJetTagger.C:9
 AddTaskEmcalJetTagger.C:10
 AddTaskEmcalJetTagger.C:11
 AddTaskEmcalJetTagger.C:12
 AddTaskEmcalJetTagger.C:13
 AddTaskEmcalJetTagger.C:14
 AddTaskEmcalJetTagger.C:15
 AddTaskEmcalJetTagger.C:16
 AddTaskEmcalJetTagger.C:17
 AddTaskEmcalJetTagger.C:18
 AddTaskEmcalJetTagger.C:19
 AddTaskEmcalJetTagger.C:20
 AddTaskEmcalJetTagger.C:21
 AddTaskEmcalJetTagger.C:22
 AddTaskEmcalJetTagger.C:23
 AddTaskEmcalJetTagger.C:24
 AddTaskEmcalJetTagger.C:25
 AddTaskEmcalJetTagger.C:26
 AddTaskEmcalJetTagger.C:27
 AddTaskEmcalJetTagger.C:28
 AddTaskEmcalJetTagger.C:29
 AddTaskEmcalJetTagger.C:30
 AddTaskEmcalJetTagger.C:31
 AddTaskEmcalJetTagger.C:32
 AddTaskEmcalJetTagger.C:33
 AddTaskEmcalJetTagger.C:34
 AddTaskEmcalJetTagger.C:35
 AddTaskEmcalJetTagger.C:36
 AddTaskEmcalJetTagger.C:37
 AddTaskEmcalJetTagger.C:38
 AddTaskEmcalJetTagger.C:39
 AddTaskEmcalJetTagger.C:40
 AddTaskEmcalJetTagger.C:41
 AddTaskEmcalJetTagger.C:42
 AddTaskEmcalJetTagger.C:43
 AddTaskEmcalJetTagger.C:44
 AddTaskEmcalJetTagger.C:45
 AddTaskEmcalJetTagger.C:46
 AddTaskEmcalJetTagger.C:47
 AddTaskEmcalJetTagger.C:48
 AddTaskEmcalJetTagger.C:49
 AddTaskEmcalJetTagger.C:50
 AddTaskEmcalJetTagger.C:51
 AddTaskEmcalJetTagger.C:52
 AddTaskEmcalJetTagger.C:53
 AddTaskEmcalJetTagger.C:54
 AddTaskEmcalJetTagger.C:55
 AddTaskEmcalJetTagger.C:56
 AddTaskEmcalJetTagger.C:57
 AddTaskEmcalJetTagger.C:58
 AddTaskEmcalJetTagger.C:59
 AddTaskEmcalJetTagger.C:60
 AddTaskEmcalJetTagger.C:61
 AddTaskEmcalJetTagger.C:62
 AddTaskEmcalJetTagger.C:63
 AddTaskEmcalJetTagger.C:64
 AddTaskEmcalJetTagger.C:65
 AddTaskEmcalJetTagger.C:66
 AddTaskEmcalJetTagger.C:67
 AddTaskEmcalJetTagger.C:68
 AddTaskEmcalJetTagger.C:69
 AddTaskEmcalJetTagger.C:70
 AddTaskEmcalJetTagger.C:71
 AddTaskEmcalJetTagger.C:72
 AddTaskEmcalJetTagger.C:73
 AddTaskEmcalJetTagger.C:74
 AddTaskEmcalJetTagger.C:75
 AddTaskEmcalJetTagger.C:76
 AddTaskEmcalJetTagger.C:77
 AddTaskEmcalJetTagger.C:78
 AddTaskEmcalJetTagger.C:79
 AddTaskEmcalJetTagger.C:80
 AddTaskEmcalJetTagger.C:81
 AddTaskEmcalJetTagger.C:82
 AddTaskEmcalJetTagger.C:83
 AddTaskEmcalJetTagger.C:84
 AddTaskEmcalJetTagger.C:85
 AddTaskEmcalJetTagger.C:86
 AddTaskEmcalJetTagger.C:87
 AddTaskEmcalJetTagger.C:88
 AddTaskEmcalJetTagger.C:89
 AddTaskEmcalJetTagger.C:90
 AddTaskEmcalJetTagger.C:91
 AddTaskEmcalJetTagger.C:92
 AddTaskEmcalJetTagger.C:93
 AddTaskEmcalJetTagger.C:94
 AddTaskEmcalJetTagger.C:95
 AddTaskEmcalJetTagger.C:96
 AddTaskEmcalJetTagger.C:97
 AddTaskEmcalJetTagger.C:98
 AddTaskEmcalJetTagger.C:99
 AddTaskEmcalJetTagger.C:100
 AddTaskEmcalJetTagger.C:101
 AddTaskEmcalJetTagger.C:102
 AddTaskEmcalJetTagger.C:103
 AddTaskEmcalJetTagger.C:104
 AddTaskEmcalJetTagger.C:105
 AddTaskEmcalJetTagger.C:106
 AddTaskEmcalJetTagger.C:107
 AddTaskEmcalJetTagger.C:108
 AddTaskEmcalJetTagger.C:109
 AddTaskEmcalJetTagger.C:110
 AddTaskEmcalJetTagger.C:111
 AddTaskEmcalJetTagger.C:112
 AddTaskEmcalJetTagger.C:113
 AddTaskEmcalJetTagger.C:114
 AddTaskEmcalJetTagger.C:115
 AddTaskEmcalJetTagger.C:116
 AddTaskEmcalJetTagger.C:117
 AddTaskEmcalJetTagger.C:118
 AddTaskEmcalJetTagger.C:119
 AddTaskEmcalJetTagger.C:120
 AddTaskEmcalJetTagger.C:121
 AddTaskEmcalJetTagger.C:122
 AddTaskEmcalJetTagger.C:123
 AddTaskEmcalJetTagger.C:124
 AddTaskEmcalJetTagger.C:125
 AddTaskEmcalJetTagger.C:126
 AddTaskEmcalJetTagger.C:127
 AddTaskEmcalJetTagger.C:128
 AddTaskEmcalJetTagger.C:129
 AddTaskEmcalJetTagger.C:130
 AddTaskEmcalJetTagger.C:131
 AddTaskEmcalJetTagger.C:132
 AddTaskEmcalJetTagger.C:133
 AddTaskEmcalJetTagger.C:134
 AddTaskEmcalJetTagger.C:135
 AddTaskEmcalJetTagger.C:136
 AddTaskEmcalJetTagger.C:137
 AddTaskEmcalJetTagger.C:138
 AddTaskEmcalJetTagger.C:139
 AddTaskEmcalJetTagger.C:140
 AddTaskEmcalJetTagger.C:141
 AddTaskEmcalJetTagger.C:142
 AddTaskEmcalJetTagger.C:143
 AddTaskEmcalJetTagger.C:144
 AddTaskEmcalJetTagger.C:145
 AddTaskEmcalJetTagger.C:146
 AddTaskEmcalJetTagger.C:147
 AddTaskEmcalJetTagger.C:148
 AddTaskEmcalJetTagger.C:149
 AddTaskEmcalJetTagger.C:150
 AddTaskEmcalJetTagger.C:151
 AddTaskEmcalJetTagger.C:152
 AddTaskEmcalJetTagger.C:153
 AddTaskEmcalJetTagger.C:154
 AddTaskEmcalJetTagger.C:155
 AddTaskEmcalJetTagger.C:156
 AddTaskEmcalJetTagger.C:157
 AddTaskEmcalJetTagger.C:158
 AddTaskEmcalJetTagger.C:159
 AddTaskEmcalJetTagger.C:160
 AddTaskEmcalJetTagger.C:161
 AddTaskEmcalJetTagger.C:162
 AddTaskEmcalJetTagger.C:163
 AddTaskEmcalJetTagger.C:164
 AddTaskEmcalJetTagger.C:165
 AddTaskEmcalJetTagger.C:166
 AddTaskEmcalJetTagger.C:167
 AddTaskEmcalJetTagger.C:168
 AddTaskEmcalJetTagger.C:169
 AddTaskEmcalJetTagger.C:170
 AddTaskEmcalJetTagger.C:171
 AddTaskEmcalJetTagger.C:172
 AddTaskEmcalJetTagger.C:173
 AddTaskEmcalJetTagger.C:174
 AddTaskEmcalJetTagger.C:175
 AddTaskEmcalJetTagger.C:176
 AddTaskEmcalJetTagger.C:177
 AddTaskEmcalJetTagger.C:178
 AddTaskEmcalJetTagger.C:179
 AddTaskEmcalJetTagger.C:180
 AddTaskEmcalJetTagger.C:181
 AddTaskEmcalJetTagger.C:182
 AddTaskEmcalJetTagger.C:183
 AddTaskEmcalJetTagger.C:184
 AddTaskEmcalJetTagger.C:185
 AddTaskEmcalJetTagger.C:186
 AddTaskEmcalJetTagger.C:187
 AddTaskEmcalJetTagger.C:188
 AddTaskEmcalJetTagger.C:189
 AddTaskEmcalJetTagger.C:190
 AddTaskEmcalJetTagger.C:191
 AddTaskEmcalJetTagger.C:192
 AddTaskEmcalJetTagger.C:193
 AddTaskEmcalJetTagger.C:194
 AddTaskEmcalJetTagger.C:195
 AddTaskEmcalJetTagger.C:196
 AddTaskEmcalJetTagger.C:197
 AddTaskEmcalJetTagger.C:198
 AddTaskEmcalJetTagger.C:199
 AddTaskEmcalJetTagger.C:200
 AddTaskEmcalJetTagger.C:201
 AddTaskEmcalJetTagger.C:202
 AddTaskEmcalJetTagger.C:203
 AddTaskEmcalJetTagger.C:204
 AddTaskEmcalJetTagger.C:205
 AddTaskEmcalJetTagger.C:206
 AddTaskEmcalJetTagger.C:207
 AddTaskEmcalJetTagger.C:208
 AddTaskEmcalJetTagger.C:209
 AddTaskEmcalJetTagger.C:210
 AddTaskEmcalJetTagger.C:211
 AddTaskEmcalJetTagger.C:212
 AddTaskEmcalJetTagger.C:213
 AddTaskEmcalJetTagger.C:214
 AddTaskEmcalJetTagger.C:215
 AddTaskEmcalJetTagger.C:216
 AddTaskEmcalJetTagger.C:217
 AddTaskEmcalJetTagger.C:218
 AddTaskEmcalJetTagger.C:219
 AddTaskEmcalJetTagger.C:220
 AddTaskEmcalJetTagger.C:221
 AddTaskEmcalJetTagger.C:222
 AddTaskEmcalJetTagger.C:223
 AddTaskEmcalJetTagger.C:224
 AddTaskEmcalJetTagger.C:225
 AddTaskEmcalJetTagger.C:226
 AddTaskEmcalJetTagger.C:227
 AddTaskEmcalJetTagger.C:228
 AddTaskEmcalJetTagger.C:229
 AddTaskEmcalJetTagger.C:230
 AddTaskEmcalJetTagger.C:231
 AddTaskEmcalJetTagger.C:232
 AddTaskEmcalJetTagger.C:233
 AddTaskEmcalJetTagger.C:234
 AddTaskEmcalJetTagger.C:235
 AddTaskEmcalJetTagger.C:236
 AddTaskEmcalJetTagger.C:237
 AddTaskEmcalJetTagger.C:238
 AddTaskEmcalJetTagger.C:239
 AddTaskEmcalJetTagger.C:240
 AddTaskEmcalJetTagger.C:241
 AddTaskEmcalJetTagger.C:242
 AddTaskEmcalJetTagger.C:243
 AddTaskEmcalJetTagger.C:244
 AddTaskEmcalJetTagger.C:245
 AddTaskEmcalJetTagger.C:246
 AddTaskEmcalJetTagger.C:247
 AddTaskEmcalJetTagger.C:248
 AddTaskEmcalJetTagger.C:249
 AddTaskEmcalJetTagger.C:250
 AddTaskEmcalJetTagger.C:251
 AddTaskEmcalJetTagger.C:252
 AddTaskEmcalJetTagger.C:253
 AddTaskEmcalJetTagger.C:254
 AddTaskEmcalJetTagger.C:255
 AddTaskEmcalJetTagger.C:256
 AddTaskEmcalJetTagger.C:257
 AddTaskEmcalJetTagger.C:258
 AddTaskEmcalJetTagger.C:259
 AddTaskEmcalJetTagger.C:260
 AddTaskEmcalJetTagger.C:261
 AddTaskEmcalJetTagger.C:262
 AddTaskEmcalJetTagger.C:263
 AddTaskEmcalJetTagger.C:264
 AddTaskEmcalJetTagger.C:265
 AddTaskEmcalJetTagger.C:266
 AddTaskEmcalJetTagger.C:267
 AddTaskEmcalJetTagger.C:268
 AddTaskEmcalJetTagger.C:269
 AddTaskEmcalJetTagger.C:270
 AddTaskEmcalJetTagger.C:271
 AddTaskEmcalJetTagger.C:272
 AddTaskEmcalJetTagger.C:273
 AddTaskEmcalJetTagger.C:274
 AddTaskEmcalJetTagger.C:275
 AddTaskEmcalJetTagger.C:276