ROOT logo
Bool_t  kBackgroundMode = 0; // 0/1 =  bkg subtraction (off/on)

AliAnalysisDataContainer* cin_jet_cont = 0x0;

void SetJetFinderExchangeContainer(AliAnalysisDataContainer* acont) {
  cin_jet_cont = acont;

}

AliAnalysisDataContainer* GetJetFinderExchangeContainer() {return cin_jet_cont;}

AliJetFinder *CreateJetFinder(AliAnalysisDataContainer* contname,Char_t *jf,Float_t radius = -1);

AliAnalysisTaskJetsFinder *AddTaskJetsFinder(AliAnalysisDataContainer* contname,Char_t *jf,Float_t radius = -1,Int_t iBack = 0); // for the new AF
Int_t AddTaskJetsFinderDelta(AliAnalysisDataContainer* contname,char *nonStdFile = "",Bool_t kUseAODMC = kTRUE,UInt_t runFlag = 1|4|32|128|256);     
AliAnalysisTaskJetsFinder *AddTaskJetsFinder(AliAnalysisDataContainer* contname);

AliAnalysisTaskJetsFinder *AddTaskJetsFinder(const char* contname,Char_t *jf = "", Float_t radius = 0.4,Int_t iBack = 0) // LEGO trains
{
  AliAnalysisDataContainer* cont = ((AliAnalysisDataContainer*)AliAnalysisManager::GetAnalysisManager()->GetContainers()->FindObject(contname));

  if (jf != "") {
    return AddTaskJetsFinder(cont,jf,radius,iBack); 
  } else {
    return AddTaskJetsFinder(cont);
  }

}

AliAnalysisTaskJetsFinder *AddTaskJetsFinder(AliAnalysisDataContainer* contname){
  // Reads the standard input "jets" branch in the AOD
  // UA1 as standard chosen, since it is the most robust and simple JF
  // R = 0.4 suffficient to provide accurate jet axis for correlation studies
  // energy resolution suffers a little
  // Acceptance of jets not limited by the Jet Finder but should be done
  // by user to abs(eta) < 0.5 


  return AddTaskJetsFinder(contname,"UA1",0.4);


}



Int_t AddTaskJetsFinderDelta(AliAnalysisDataContainer* contname,char *nonStdFile,Bool_t kUseAODMC,UInt_t runFlag){

  // Adds a whole set of jet finders  all to be written
  // to a delta AOD
  
  // this can in principle be done also with on the fly 
  // if we have an ESD input jet fidner task does automatically fetch the ouput aod

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

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


  AliAODHandler *aodh = (AliAODHandler*)mgr->GetOutputEventHandler();
  if (!aodh) {
    ::Error("AddTaskJetsFinderDelta", "This task needs an output event handler");
    return 0;
  }   


  TString outFile(nonStdFile);


  AliAnalysisTaskJetsFinder *taskjetsFinder = 0;
  Int_t iCount = 0;

  // Jet Fidners Selected by run flag first bit 2^0 second by 2^1 etc
  const char *cJF[14]      = {"UA1","UA1","UA1", "CDF", "CDF","DA","DA","SISCONE","SISCONE","FASTJET","FASTJET","FASTKT","FASTKT","UA1LO"};
  const Float_t radius[14] = { 0.4,  0.7,  1.0,  0.4,   0.7,  0.4, 0.7,     0.4,     0.7,      0.4,       0.7,     0.4,     0.7,    0.4};
  UInt_t  flag[14]         = {  7,    7,    7,    7,      7,   7,   7,        7,       7,        7,         7,       7,       7,      7};

  // flag[5] = 0; // set siscone to 0 for proof mode...
  // flag first bit AOD, second bit AODMC2 third bit AODMC2 third (8) bit AOODMC2b (limited acceptance)
  // i.e. 7 all, 6 only MC2 and MC
  // this stay at three

  


  //  for(int i = 0; i< 17;i++){
  for(int i = 0; i< 14;i++){
    if(!(runFlag&(1<<i)))continue;
    cout << ", cJF[" << i << "]: " << cJF[i] << ", radius[" << i << "]: " << radius[i] << endl;
    taskjetsFinder = AddTaskJetsFinder(contname,cJF[i],radius[i]);
    //	if(i==4 || i==5) taskjetsFinder = AddTaskJetsFinder(cJF[i],radius[i]);
    //	if(kMergeAODs) 
    // To be commented for no pythia/hijing merging
    //taskjetsFinder->ReadAODFromOutput();
    //	taskjetsFinder->SetDetConfig(1);
    //	if(i==4 || i==5) taskjetsFinder->SetDetConfig(3);
    //	else taskjetsFinder->SetDetConfig(1);
    cout << "taskjetsFinder: " << taskjetsFinder << endl;
    if(taskjetsFinder){

      char *cRadius = "";
      if(radius[i]>0)cRadius = Form("%02d",(int)((radius[i]+0.01)*10.)); // add an offset beacuse of precision
      cout << "cRadius: " << cRadius << endl;
      //	  taskjetsFinder->SetNonStdBranch(Form("jets%s_%s%s",cReader[ib],cJF[i],cRadius)); // done in addtask jets
      if(outFile.Length()>0)taskjetsFinder->SetNonStdOutputFile(outFile.Data());
      iCount++;
    }
  }
  Printf("Added %d JetFinders",iCount);
  return 0;
}

AliAnalysisTaskJetsFinder *AddTaskJetsFinder(AliAnalysisDataContainer* contname,Char_t *jf, Float_t radius,Int_t iBack)
{
  // Creates a jet finder task, configures it and adds it to the analysis manager.
  kBackgroundMode = iBack;

  SetJetFinderExchangeContainer(contname);

  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    ::Error("AddTaskJetsFinder", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskJetsFinder", "This task requires an input event handler");
    return NULL;
  }

  AliAODHandler *aodh = (AliAODHandler*)mgr->GetOutputEventHandler();
  if (!aodh) {
    ::Error("AddTaskJetsFinder", "This task needs an output event handler");
    return NULL;
  }   


  // Create the task and configure it.
  //===========================================================================
  
  Bool_t  kIsreaderOptionsValid = 0;
  TString readerOptions =  mgr->GetGlobalStr(cin_jet_cont->GetName(), kIsreaderOptionsValid);
  if(!kIsreaderOptionsValid) {  ::Error("AddTaskJetsFinder", "This task needs a to be associated with a Jet Reader Task."); }

  AliAnalysisTaskJetsFinder *taskjetsFinder;
  // Define jet header and jet finder
  AliJetFinder *jetFinder = CreateJetFinder(contname,jf,radius);

  TString jr = readerOptions.Tokenize("#")->At(0)->GetName();
  TString cAdd = "";
  cAdd += Form("%02d",(int)((radius+0.01)*10.));
  cAdd += Form("_B%d",(int)((kBackgroundMode)));
  cAdd += readerOptions.Tokenize("#")->At(1)->GetName(); //returns Form("_Filter%05d_Cut%05d",filterMask,(int)((1000.*ptTrackMin)))
  Printf("%s",cAdd.Data());

  taskjetsFinder = new AliAnalysisTaskJetsFinder(Form("JetAnalysis%s_%s%s",jr.Data(),jf,cAdd.Data()));

  TString c_jr(jr);
  c_jr.ToLower();
  TString c_jf(jf);
  c_jf.ToLower();
  

  TString bName =  Form("jets%s_%s%s",jr.Data(),jf,cAdd.Data());
  taskjetsFinder->SetNonStdBranch(bName.Data());
  Printf("Set jet branchname \"%s\"",bName.Data());


  // Connect jet finder to task.
  taskjetsFinder->SetJetFinder(jetFinder);
  taskjetsFinder->SetConfigFile("");
  taskjetsFinder->SetDebugLevel(-1);
  taskjetsFinder->SetFilterPt(0.1);
  //taskjetsFinder->SetBookAODBackground(1);
  mgr->AddTask(taskjetsFinder);
 
  cin_jet_cont = GetJetFinderExchangeContainer();
  if (! cin_jet_cont) { ::Error("AddTaskJetFinder", "This task needs an Exchange container and none were explicitly defined, taking the default one"); cin_jet_cont = mgr->GetContainers()->At(2); }
  if (! cin_jet_cont) { ::Error("AddTaskJetFinder", "This task needs an Exchange container"); return NULL;}

  AliAnalysisDataContainer *cout_jet = mgr->CreateContainer(Form("jethist_%s_%s%s",c_jr.Data(),c_jf.Data(),cAdd.Data()), TList::Class(),
							    AliAnalysisManager::kOutputContainer, Form("%s:PWGJE_jethist_%s_%s%s",
                                                            AliAnalysisManager::GetCommonFileName(),c_jr.Data(),c_jf.Data(),cAdd.Data()));
  
  // Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //==============================================================================

  mgr->ConnectInput  (taskjetsFinder, 0, mgr->GetCommonInputContainer());
  mgr->ConnectInput  (taskjetsFinder, 1, cin_jet_cont);
  mgr->ConnectOutput (taskjetsFinder, 0, mgr->GetCommonOutputContainer());
  mgr->ConnectOutput (taskjetsFinder, 1, cout_jet);
   

  return taskjetsFinder;
}

AliJetFinder *CreateJetFinder(AliAnalysisDataContainer* contname,Char_t *jf,Float_t radius){
  AliJetFinder *jetFinder = 0;

  switch (jf) {
    // CDF Jet finder ------------------------------------------------
  case "CDF":
    AliCdfJetHeader *jh = new AliCdfJetHeader();
    jh->SetRadius(0.7);
    if(radius>0)jh->SetRadius(radius);    
    jh->SetAODwrite(kTRUE);
    jh->SetAODtracksWrite(kTRUE);
    jh->SetDebug(-1);
    jh->SetAnalyseJets(kTRUE);
    jetFinder = new AliCdfJetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

    // DA Jet finder ------------------------------------------------
  case "DA":
    AliDAJetHeader *jh=new AliDAJetHeader();
    jh->SetComment("DA jet code with default parameters");
    jh->SelectJets(kTRUE);
    jh->SetDebug(-1);
    //  jh->SetNeff(200);
    //  jh->SetEtaEff(2.2);
    if(radius>0)jh->SetRadius(radius);
    jh->SetEtMin(5.);
    jh->SetFiducialEtaMin(-0.9);
    jh->SetFiducialEtaMax(0.9);
    jetFinder = new AliDAJetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

    // Anti Kt Jet finder ------------------------------------------------
  case "FASTJET":
    // ANTI KT
    AliFastJetHeaderV1 *jh = new AliFastJetHeaderV1();
    jh->SetRparam(0.4); // setup parameters                                  
    if(radius>0)jh->SetRparam(radius);
    jh->SetJetEtaMax(0.9 - radius);
    jh->SetJetEtaMin(-0.9 + radius);
    jh->SetJetPhiMin( 0.);
    jh->SetJetPhiMax(2.*TMath::Pi());
    jh->SetAlgorithm(2); // antikt from fastjet/JetDefinition.hh
    jh->SetDebug(-1);
    /*
      $FASTJET/include/fastjet/JetDefinition.hh
      enum JetAlgorithm {kt_algorithm, cambridge_algorithm,
      antikt_algorithm, genkt_algorithm,
      ee_kt_algorithm, ee_genkt_algorithm, ...};

    */
    jetFinder = new AliFastJetFinder();
    jh->SetPtMin(5);
    // Background
    jh->SetBGMode(kBackgroundMode);
    Double_t rBkg = 0.4;
    jh->SetBGAlgorithm(1);
    jh->SetRparamBkg(rBkg);
    jh->SetGhostEtaMax(0.9);
    jh->SetGhostArea(0.005);                            // area of a ghost
    jh->SetRapRange( -0.9+rBkg, 0.9-rBkg);              // rapidity range for subtracting background must be < ghostmaxrap-0.95*R
    jh->SetPhiRange(0 , 2*TMath::Pi());                 // phi range for subtracting background

    // Additional background
    jh->SetBkgFastJetb(1);
    jh->SetBkgFastJetWoHardest(1); 
    if (jh) jetFinder->SetJetHeader(jh);
    break;

    // Fast Kt Jet finder ------------------------------------------------
  case "FASTKT":
    AliFastJetHeaderV1 *jh = new AliFastJetHeaderV1();
    jh->SetRparam(0.4); // setup parameters                                  
    if(radius>0)jh->SetRparam(radius);
    jh->SetAlgorithm(0); // kt from fastjet/JetDefinition.hh
    jh->SetDebug(-1);
    jh->SetPtMin(5);
    jh->SetJetEtaMax(0.9 - radius);
    jh->SetJetEtaMin(-0.9 + radius);
    jh->SetJetPhiMin( 0.);
    jh->SetJetPhiMax(2.*TMath::Pi());
    // Background
    jh->SetBGMode(kBackgroundMode);
    jh->SetBGAlgorithm(1);
    Double_t rBkg = 0.4;
    jh->SetRparamBkg(rBkg);
    jh->SetGhostEtaMax(0.9);
    jh->SetGhostArea(0.005);                            // area of a ghost
    jh->SetRapRange( -0.9+rBkg, 0.9-rBkg);              // rapidity range for subtracting background must be < ghostmaxrap-0.95*R
    jh->SetPhiRange(0 , 2*TMath::Pi());                 // phi range for subtracting background

    jetFinder = new AliFastJetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

    // SISCone Jet finder ------------------------------------------------
  case "SISCONE":
    AliSISConeJetHeader * jh = new AliSISConeJetHeader();

    //siscone parameters
    jh->SetConeRadius(0.4);                   // default cone radius
    if(radius>0)jh->SetConeRadius(radius);    // cone radius
    jh->SetDebug(-1);
    jh->SetJetEtaMax(0.9 - radius);
    jh->SetJetEtaMin(-0.9 + radius);
    jh->SetJetPhiMin( 0.);
    jh->SetJetPhiMax(2.*TMath::Pi());

    jh->SetOverlapThreshold(0.75);            // overlap parameter, between 0 and 1 excluded!! 0.75 value is advised
    jh->SetPtProtojetMin(0);                  // pt min of protojets
    jh->SetMinJetPt(5);                       // Ptmin of jets (GeV)

    // Background
    //do you want to subtract BG (0 = no, 1 = yes)
    jh->SetBGMode(kBackgroundMode);

    //for background
    Double_t rBkg = 0.4;
    jh->SetRapRange( -0.9+rBkg, 0.9-rBkg);              // rapidity range for subtracting background must be < ghostmaxrap-0.95*R
    jh->SetPhiRange(0 , 2*TMath::Pi());       // phi range for subtracting background
    
    //to determine jets area
    jh->SetBGAlgorithm(1);                    // algorithm for rho calculation : 0 = kT, 1 = Cambridge
    jh->SetGhostEtaMax(0.9);                  // eta max where ghosts are generated
    jh->SetGhostArea(0.005);                  // area of a ghost 
    jh->SetMeanGhostKt(1e-100);               // average transverse momentum of the ghosts.
    jh->SetAreaTypeNumber(4);                 // from 1 to 5 : 1 = active_area, 2 = active_area_explicit_ghosts, 3 = one_ghost_passive_area, 4 = passive_area, 5 = voronoi_area
    jetFinder = new AliSISConeJetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

    // UA1 Jet finder ------------------------------------------------
  case "UA1":
    AliUA1JetHeader *jh=new AliUA1JetHeader();
    jh->SetComment("UA1 jet code with default parameters");
    jh->SetRadius(0.4);
    if(radius>0)jh->SetRadius(radius);
    jh->SetDebug(-1);
    jh->SetEtSeed(2.); 
    jh->SetNAcceptJets(6);
    jh->SetLegoNbinPhi(432);
    jh->SetLegoNbinEta(274);
    jh->SetLegoEtaMin(-0.9);
    jh->SetLegoEtaMax(+0.9);
    jh->SetMinJetEt(5.);
    jh->SetJetEtaMax(0.9 - radius);
    jh->SetJetEtaMin(-0.9 + radius);
    jh->SetJetPhiMin(0.);
    jh->SetJetPhiMax(2.*TMath::Pi());
    jh->BackgMode(kBackgroundMode);

    jetFinder = new AliUA1JetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

  case "UA1LO":
    AliUA1JetHeader *jh=new AliUA1JetHeader();
    jh->SetComment("UA1 jet code with Lo Pt settings parameters");
    jh->BackgMode(kBackgroundMode);
    jh->SetRadius(0.4);
    if(radius>0)jh->SetRadius(radius);
    jh->SetDebug(-1);
    jh->SetEtSeed(1.);
    jh->SetNAcceptJets(6);
    jh->SetLegoNbinPhi(432);
    jh->SetLegoNbinEta(274);
    jh->SetLegoEtaMin(-2);
    jh->SetLegoEtaMax(+2);
    jh->SetMinJetEt(1.);
    jh->SetJetEtaMax(1.5);
    jh->SetJetEtaMin(-1.5);

    jetFinder = new AliUA1JetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

  case "UA1MC":
    AliUA1JetHeader *jh=new AliUA1JetHeader();
    jh->SetComment("UA1 jet code with default MC parameters");
    jh->BackgMode(kBackgroundMode);
    jh->SetRadius(1.0);
    if(radius>0)jh->SetRadius(radius);
    jh->SetDebug(-1); 
    jh->SetEtSeed(4.);
    jh->SetNAcceptJets(6);
    jh->SetLegoNbinPhi(432);
    jh->SetLegoNbinEta(274);
    jh->SetLegoEtaMin(-2);
    jh->SetLegoEtaMax(+2);
    jh->SetMinJetEt(5.);
    jh->SetJetEtaMax(1.5);
    jh->SetJetEtaMin(-1.5);
    jetFinder = new AliUA1JetFinder();
    if (jh) jetFinder->SetJetHeader(jh);
    break;

  default:
    ::Error("AddTaskJetsReader",Form("Wrong jet finder selected: %s\n",jf));
    return 0x0; 
    break;
  }

  return jetFinder;

}
 AddTaskJetsFinder.C:1
 AddTaskJetsFinder.C:2
 AddTaskJetsFinder.C:3
 AddTaskJetsFinder.C:4
 AddTaskJetsFinder.C:5
 AddTaskJetsFinder.C:6
 AddTaskJetsFinder.C:7
 AddTaskJetsFinder.C:8
 AddTaskJetsFinder.C:9
 AddTaskJetsFinder.C:10
 AddTaskJetsFinder.C:11
 AddTaskJetsFinder.C:12
 AddTaskJetsFinder.C:13
 AddTaskJetsFinder.C:14
 AddTaskJetsFinder.C:15
 AddTaskJetsFinder.C:16
 AddTaskJetsFinder.C:17
 AddTaskJetsFinder.C:18
 AddTaskJetsFinder.C:19
 AddTaskJetsFinder.C:20
 AddTaskJetsFinder.C:21
 AddTaskJetsFinder.C:22
 AddTaskJetsFinder.C:23
 AddTaskJetsFinder.C:24
 AddTaskJetsFinder.C:25
 AddTaskJetsFinder.C:26
 AddTaskJetsFinder.C:27
 AddTaskJetsFinder.C:28
 AddTaskJetsFinder.C:29
 AddTaskJetsFinder.C:30
 AddTaskJetsFinder.C:31
 AddTaskJetsFinder.C:32
 AddTaskJetsFinder.C:33
 AddTaskJetsFinder.C:34
 AddTaskJetsFinder.C:35
 AddTaskJetsFinder.C:36
 AddTaskJetsFinder.C:37
 AddTaskJetsFinder.C:38
 AddTaskJetsFinder.C:39
 AddTaskJetsFinder.C:40
 AddTaskJetsFinder.C:41
 AddTaskJetsFinder.C:42
 AddTaskJetsFinder.C:43
 AddTaskJetsFinder.C:44
 AddTaskJetsFinder.C:45
 AddTaskJetsFinder.C:46
 AddTaskJetsFinder.C:47
 AddTaskJetsFinder.C:48
 AddTaskJetsFinder.C:49
 AddTaskJetsFinder.C:50
 AddTaskJetsFinder.C:51
 AddTaskJetsFinder.C:52
 AddTaskJetsFinder.C:53
 AddTaskJetsFinder.C:54
 AddTaskJetsFinder.C:55
 AddTaskJetsFinder.C:56
 AddTaskJetsFinder.C:57
 AddTaskJetsFinder.C:58
 AddTaskJetsFinder.C:59
 AddTaskJetsFinder.C:60
 AddTaskJetsFinder.C:61
 AddTaskJetsFinder.C:62
 AddTaskJetsFinder.C:63
 AddTaskJetsFinder.C:64
 AddTaskJetsFinder.C:65
 AddTaskJetsFinder.C:66
 AddTaskJetsFinder.C:67
 AddTaskJetsFinder.C:68
 AddTaskJetsFinder.C:69
 AddTaskJetsFinder.C:70
 AddTaskJetsFinder.C:71
 AddTaskJetsFinder.C:72
 AddTaskJetsFinder.C:73
 AddTaskJetsFinder.C:74
 AddTaskJetsFinder.C:75
 AddTaskJetsFinder.C:76
 AddTaskJetsFinder.C:77
 AddTaskJetsFinder.C:78
 AddTaskJetsFinder.C:79
 AddTaskJetsFinder.C:80
 AddTaskJetsFinder.C:81
 AddTaskJetsFinder.C:82
 AddTaskJetsFinder.C:83
 AddTaskJetsFinder.C:84
 AddTaskJetsFinder.C:85
 AddTaskJetsFinder.C:86
 AddTaskJetsFinder.C:87
 AddTaskJetsFinder.C:88
 AddTaskJetsFinder.C:89
 AddTaskJetsFinder.C:90
 AddTaskJetsFinder.C:91
 AddTaskJetsFinder.C:92
 AddTaskJetsFinder.C:93
 AddTaskJetsFinder.C:94
 AddTaskJetsFinder.C:95
 AddTaskJetsFinder.C:96
 AddTaskJetsFinder.C:97
 AddTaskJetsFinder.C:98
 AddTaskJetsFinder.C:99
 AddTaskJetsFinder.C:100
 AddTaskJetsFinder.C:101
 AddTaskJetsFinder.C:102
 AddTaskJetsFinder.C:103
 AddTaskJetsFinder.C:104
 AddTaskJetsFinder.C:105
 AddTaskJetsFinder.C:106
 AddTaskJetsFinder.C:107
 AddTaskJetsFinder.C:108
 AddTaskJetsFinder.C:109
 AddTaskJetsFinder.C:110
 AddTaskJetsFinder.C:111
 AddTaskJetsFinder.C:112
 AddTaskJetsFinder.C:113
 AddTaskJetsFinder.C:114
 AddTaskJetsFinder.C:115
 AddTaskJetsFinder.C:116
 AddTaskJetsFinder.C:117
 AddTaskJetsFinder.C:118
 AddTaskJetsFinder.C:119
 AddTaskJetsFinder.C:120
 AddTaskJetsFinder.C:121
 AddTaskJetsFinder.C:122
 AddTaskJetsFinder.C:123
 AddTaskJetsFinder.C:124
 AddTaskJetsFinder.C:125
 AddTaskJetsFinder.C:126
 AddTaskJetsFinder.C:127
 AddTaskJetsFinder.C:128
 AddTaskJetsFinder.C:129
 AddTaskJetsFinder.C:130
 AddTaskJetsFinder.C:131
 AddTaskJetsFinder.C:132
 AddTaskJetsFinder.C:133
 AddTaskJetsFinder.C:134
 AddTaskJetsFinder.C:135
 AddTaskJetsFinder.C:136
 AddTaskJetsFinder.C:137
 AddTaskJetsFinder.C:138
 AddTaskJetsFinder.C:139
 AddTaskJetsFinder.C:140
 AddTaskJetsFinder.C:141
 AddTaskJetsFinder.C:142
 AddTaskJetsFinder.C:143
 AddTaskJetsFinder.C:144
 AddTaskJetsFinder.C:145
 AddTaskJetsFinder.C:146
 AddTaskJetsFinder.C:147
 AddTaskJetsFinder.C:148
 AddTaskJetsFinder.C:149
 AddTaskJetsFinder.C:150
 AddTaskJetsFinder.C:151
 AddTaskJetsFinder.C:152
 AddTaskJetsFinder.C:153
 AddTaskJetsFinder.C:154
 AddTaskJetsFinder.C:155
 AddTaskJetsFinder.C:156
 AddTaskJetsFinder.C:157
 AddTaskJetsFinder.C:158
 AddTaskJetsFinder.C:159
 AddTaskJetsFinder.C:160
 AddTaskJetsFinder.C:161
 AddTaskJetsFinder.C:162
 AddTaskJetsFinder.C:163
 AddTaskJetsFinder.C:164
 AddTaskJetsFinder.C:165
 AddTaskJetsFinder.C:166
 AddTaskJetsFinder.C:167
 AddTaskJetsFinder.C:168
 AddTaskJetsFinder.C:169
 AddTaskJetsFinder.C:170
 AddTaskJetsFinder.C:171
 AddTaskJetsFinder.C:172
 AddTaskJetsFinder.C:173
 AddTaskJetsFinder.C:174
 AddTaskJetsFinder.C:175
 AddTaskJetsFinder.C:176
 AddTaskJetsFinder.C:177
 AddTaskJetsFinder.C:178
 AddTaskJetsFinder.C:179
 AddTaskJetsFinder.C:180
 AddTaskJetsFinder.C:181
 AddTaskJetsFinder.C:182
 AddTaskJetsFinder.C:183
 AddTaskJetsFinder.C:184
 AddTaskJetsFinder.C:185
 AddTaskJetsFinder.C:186
 AddTaskJetsFinder.C:187
 AddTaskJetsFinder.C:188
 AddTaskJetsFinder.C:189
 AddTaskJetsFinder.C:190
 AddTaskJetsFinder.C:191
 AddTaskJetsFinder.C:192
 AddTaskJetsFinder.C:193
 AddTaskJetsFinder.C:194
 AddTaskJetsFinder.C:195
 AddTaskJetsFinder.C:196
 AddTaskJetsFinder.C:197
 AddTaskJetsFinder.C:198
 AddTaskJetsFinder.C:199
 AddTaskJetsFinder.C:200
 AddTaskJetsFinder.C:201
 AddTaskJetsFinder.C:202
 AddTaskJetsFinder.C:203
 AddTaskJetsFinder.C:204
 AddTaskJetsFinder.C:205
 AddTaskJetsFinder.C:206
 AddTaskJetsFinder.C:207
 AddTaskJetsFinder.C:208
 AddTaskJetsFinder.C:209
 AddTaskJetsFinder.C:210
 AddTaskJetsFinder.C:211
 AddTaskJetsFinder.C:212
 AddTaskJetsFinder.C:213
 AddTaskJetsFinder.C:214
 AddTaskJetsFinder.C:215
 AddTaskJetsFinder.C:216
 AddTaskJetsFinder.C:217
 AddTaskJetsFinder.C:218
 AddTaskJetsFinder.C:219
 AddTaskJetsFinder.C:220
 AddTaskJetsFinder.C:221
 AddTaskJetsFinder.C:222
 AddTaskJetsFinder.C:223
 AddTaskJetsFinder.C:224
 AddTaskJetsFinder.C:225
 AddTaskJetsFinder.C:226
 AddTaskJetsFinder.C:227
 AddTaskJetsFinder.C:228
 AddTaskJetsFinder.C:229
 AddTaskJetsFinder.C:230
 AddTaskJetsFinder.C:231
 AddTaskJetsFinder.C:232
 AddTaskJetsFinder.C:233
 AddTaskJetsFinder.C:234
 AddTaskJetsFinder.C:235
 AddTaskJetsFinder.C:236
 AddTaskJetsFinder.C:237
 AddTaskJetsFinder.C:238
 AddTaskJetsFinder.C:239
 AddTaskJetsFinder.C:240
 AddTaskJetsFinder.C:241
 AddTaskJetsFinder.C:242
 AddTaskJetsFinder.C:243
 AddTaskJetsFinder.C:244
 AddTaskJetsFinder.C:245
 AddTaskJetsFinder.C:246
 AddTaskJetsFinder.C:247
 AddTaskJetsFinder.C:248
 AddTaskJetsFinder.C:249
 AddTaskJetsFinder.C:250
 AddTaskJetsFinder.C:251
 AddTaskJetsFinder.C:252
 AddTaskJetsFinder.C:253
 AddTaskJetsFinder.C:254
 AddTaskJetsFinder.C:255
 AddTaskJetsFinder.C:256
 AddTaskJetsFinder.C:257
 AddTaskJetsFinder.C:258
 AddTaskJetsFinder.C:259
 AddTaskJetsFinder.C:260
 AddTaskJetsFinder.C:261
 AddTaskJetsFinder.C:262
 AddTaskJetsFinder.C:263
 AddTaskJetsFinder.C:264
 AddTaskJetsFinder.C:265
 AddTaskJetsFinder.C:266
 AddTaskJetsFinder.C:267
 AddTaskJetsFinder.C:268
 AddTaskJetsFinder.C:269
 AddTaskJetsFinder.C:270
 AddTaskJetsFinder.C:271
 AddTaskJetsFinder.C:272
 AddTaskJetsFinder.C:273
 AddTaskJetsFinder.C:274
 AddTaskJetsFinder.C:275
 AddTaskJetsFinder.C:276
 AddTaskJetsFinder.C:277
 AddTaskJetsFinder.C:278
 AddTaskJetsFinder.C:279
 AddTaskJetsFinder.C:280
 AddTaskJetsFinder.C:281
 AddTaskJetsFinder.C:282
 AddTaskJetsFinder.C:283
 AddTaskJetsFinder.C:284
 AddTaskJetsFinder.C:285
 AddTaskJetsFinder.C:286
 AddTaskJetsFinder.C:287
 AddTaskJetsFinder.C:288
 AddTaskJetsFinder.C:289
 AddTaskJetsFinder.C:290
 AddTaskJetsFinder.C:291
 AddTaskJetsFinder.C:292
 AddTaskJetsFinder.C:293
 AddTaskJetsFinder.C:294
 AddTaskJetsFinder.C:295
 AddTaskJetsFinder.C:296
 AddTaskJetsFinder.C:297
 AddTaskJetsFinder.C:298
 AddTaskJetsFinder.C:299
 AddTaskJetsFinder.C:300
 AddTaskJetsFinder.C:301
 AddTaskJetsFinder.C:302
 AddTaskJetsFinder.C:303
 AddTaskJetsFinder.C:304
 AddTaskJetsFinder.C:305
 AddTaskJetsFinder.C:306
 AddTaskJetsFinder.C:307
 AddTaskJetsFinder.C:308
 AddTaskJetsFinder.C:309
 AddTaskJetsFinder.C:310
 AddTaskJetsFinder.C:311
 AddTaskJetsFinder.C:312
 AddTaskJetsFinder.C:313
 AddTaskJetsFinder.C:314
 AddTaskJetsFinder.C:315
 AddTaskJetsFinder.C:316
 AddTaskJetsFinder.C:317
 AddTaskJetsFinder.C:318
 AddTaskJetsFinder.C:319
 AddTaskJetsFinder.C:320
 AddTaskJetsFinder.C:321
 AddTaskJetsFinder.C:322
 AddTaskJetsFinder.C:323
 AddTaskJetsFinder.C:324
 AddTaskJetsFinder.C:325
 AddTaskJetsFinder.C:326
 AddTaskJetsFinder.C:327
 AddTaskJetsFinder.C:328
 AddTaskJetsFinder.C:329
 AddTaskJetsFinder.C:330
 AddTaskJetsFinder.C:331
 AddTaskJetsFinder.C:332
 AddTaskJetsFinder.C:333
 AddTaskJetsFinder.C:334
 AddTaskJetsFinder.C:335
 AddTaskJetsFinder.C:336
 AddTaskJetsFinder.C:337
 AddTaskJetsFinder.C:338
 AddTaskJetsFinder.C:339
 AddTaskJetsFinder.C:340
 AddTaskJetsFinder.C:341
 AddTaskJetsFinder.C:342
 AddTaskJetsFinder.C:343
 AddTaskJetsFinder.C:344
 AddTaskJetsFinder.C:345
 AddTaskJetsFinder.C:346
 AddTaskJetsFinder.C:347
 AddTaskJetsFinder.C:348
 AddTaskJetsFinder.C:349
 AddTaskJetsFinder.C:350
 AddTaskJetsFinder.C:351
 AddTaskJetsFinder.C:352
 AddTaskJetsFinder.C:353
 AddTaskJetsFinder.C:354
 AddTaskJetsFinder.C:355
 AddTaskJetsFinder.C:356
 AddTaskJetsFinder.C:357
 AddTaskJetsFinder.C:358
 AddTaskJetsFinder.C:359
 AddTaskJetsFinder.C:360
 AddTaskJetsFinder.C:361
 AddTaskJetsFinder.C:362
 AddTaskJetsFinder.C:363
 AddTaskJetsFinder.C:364
 AddTaskJetsFinder.C:365
 AddTaskJetsFinder.C:366
 AddTaskJetsFinder.C:367
 AddTaskJetsFinder.C:368
 AddTaskJetsFinder.C:369
 AddTaskJetsFinder.C:370
 AddTaskJetsFinder.C:371
 AddTaskJetsFinder.C:372
 AddTaskJetsFinder.C:373
 AddTaskJetsFinder.C:374
 AddTaskJetsFinder.C:375
 AddTaskJetsFinder.C:376
 AddTaskJetsFinder.C:377
 AddTaskJetsFinder.C:378
 AddTaskJetsFinder.C:379
 AddTaskJetsFinder.C:380
 AddTaskJetsFinder.C:381
 AddTaskJetsFinder.C:382
 AddTaskJetsFinder.C:383
 AddTaskJetsFinder.C:384
 AddTaskJetsFinder.C:385
 AddTaskJetsFinder.C:386
 AddTaskJetsFinder.C:387
 AddTaskJetsFinder.C:388
 AddTaskJetsFinder.C:389
 AddTaskJetsFinder.C:390
 AddTaskJetsFinder.C:391
 AddTaskJetsFinder.C:392
 AddTaskJetsFinder.C:393
 AddTaskJetsFinder.C:394
 AddTaskJetsFinder.C:395
 AddTaskJetsFinder.C:396
 AddTaskJetsFinder.C:397
 AddTaskJetsFinder.C:398
 AddTaskJetsFinder.C:399
 AddTaskJetsFinder.C:400
 AddTaskJetsFinder.C:401
 AddTaskJetsFinder.C:402
 AddTaskJetsFinder.C:403
 AddTaskJetsFinder.C:404
 AddTaskJetsFinder.C:405
 AddTaskJetsFinder.C:406
 AddTaskJetsFinder.C:407
 AddTaskJetsFinder.C:408
 AddTaskJetsFinder.C:409
 AddTaskJetsFinder.C:410
 AddTaskJetsFinder.C:411
 AddTaskJetsFinder.C:412
 AddTaskJetsFinder.C:413
 AddTaskJetsFinder.C:414
 AddTaskJetsFinder.C:415
 AddTaskJetsFinder.C:416
 AddTaskJetsFinder.C:417
 AddTaskJetsFinder.C:418