ROOT logo
/*************************************************************************************************
***  Add Fragmentation Function Task ***
**************************************************************************************************
The ID fragmentation function task expects an ESD filter and jet finder running before this task. 
Or it runs on delta-AODs filled with filtered tracks and jets before.

** Parameters **
(char) recJetsBranch: branch in AOD for (reconstructed) jets
(char) genJetsBranch: branch in AOD for (generated) jets
(char) jetType: "AOD"   jets from recJetsBranch
                "AODMC" jets from genJetsBranch
                "KINE"  jets from PYCELL
                 +"b" (e.g. "AODb") jets with acceptance cuts
(char) trackType: "AOD"     reconstructed tracks from AOD filled by ESD filter (choose filter mask!)
                  "AODMC"   MC tracks from AOD filled by kine filter
                  "KINE"    kine particles from MC event 
                  +"2" (e.g. "AOD2")  charged tracks only
                  +"b" (e.g. "AOD2b") with acceptance cuts
(UInt_t) filterMask: select filter bit of ESD filter task

Typical parameters to run on 11a1* (MC_pp@7TeV):
"clustersAOD_ANTIKT", "", "clustersAODMC2_ANTIKT", "AODMCb", "AODMC2b", AliAnalysisManager::GetGlobalInt("kHighPtFilterMask", gDebug), 
-0.4, 0, 1000*AliAnalysisManager::GetGlobalDbl("kTrackPtCut", gDebug), 0, "_Skip00", "", "_Skip00", 0.4, -1, 0, 0, kFALSE,
"PWGJE_taskPID_Jets", "", "PWGJE_taskPID_Jets_Inclusive", "" 

***************************************************************************************************/

void postConfig(AliAnalysisTaskIDFragmentationFunction* task, TString suffixPIDtaskJets1, TString suffixPIDtaskJets2,
                TString suffixPIDtaskInclusive1, TString suffixPIDtaskInclusive2) {

  task->SetBckgType(AliAnalysisTaskIDFragmentationFunction::kBckgPerp2,
        AliAnalysisTaskIDFragmentationFunction::kBckgPerp,
          AliAnalysisTaskIDFragmentationFunction::kBckgPerp2Area,
            AliAnalysisTaskIDFragmentationFunction::kBckgOutAJStat,
            AliAnalysisTaskIDFragmentationFunction::kBckgOut2J);

  task->SetBranchRecBackClusters("");

   // Define histo bins
   //task->SetFFHistoBins(23, 5, 120, 480, 0., 120.,70,  0., 7., 52, 0.,  1.3);
   task->SetQATrackHistoBins(2400,0,120); // 50 MeV binning for comp to track dN/dpt prel. plot
   
   // JS on
   task->SetJSMode();
   
   task->SetEffMode(0);
  
  // Set name of PID framework tasks
   
  // Invalid: Second suffix set, but first one not set -> No PID tasks set
  const Int_t numJetPIDtasks = (suffixPIDtaskJets1 != "") * ((suffixPIDtaskJets1 != "") + (suffixPIDtaskJets2 != ""));
  if (numJetPIDtasks > 0) {
    TString namesJetPIDtasks[numJetPIDtasks];
    namesJetPIDtasks[0] = suffixPIDtaskJets1;
    if (numJetPIDtasks > 1)
      namesJetPIDtasks[1] = suffixPIDtaskJets2;
    task->SetNamesOfJetPIDtasks(numJetPIDtasks, namesJetPIDtasks);
  }
  else
    task->SetNamesOfJetPIDtasks(numJetPIDtasks, 0x0);
  
  // Same for inclusive
  const Int_t numInclusivePIDtasks = (suffixPIDtaskInclusive1 != "") *
                                      ((suffixPIDtaskInclusive1 != "") + (suffixPIDtaskInclusive2 != ""));
  if (numInclusivePIDtasks > 0) {
    TString namesInclusivePIDtasks[numInclusivePIDtasks];
    namesInclusivePIDtasks[0] = suffixPIDtaskInclusive1;
    if (numInclusivePIDtasks > 1)
      namesInclusivePIDtasks[1] = suffixPIDtaskInclusive2;
    task->SetNamesOfInclusivePIDtasks(numInclusivePIDtasks, namesInclusivePIDtasks);
  }
  else
    task->SetNamesOfInclusivePIDtasks(numInclusivePIDtasks, 0x0);
  
  printf("PID framework:\n");
  printf("Jet PID tasks: ");
  for (Int_t i = 0; i < numJetPIDtasks; i++)
    printf("%s ", task->GetNamesOfJetPIDtasks()[i].Data());
  printf("\n");
  printf("Inclusive PID task: ");
  for (Int_t i = 0; i < numInclusivePIDtasks; i++)
    printf("%s ", task->GetNamesOfInclusivePIDtasks()[i].Data());
  printf("\n");
}


AliAnalysisTaskIDFragmentationFunction *AddTaskIDFragmentationFunction(UInt_t iFlag=1, UInt_t filterMask=32, Int_t eventClass=0){
        
        AliAnalysisTaskIDFragmentationFunction *ff=0;

        // UA1 Jets
        // only reconstructed (default)
  if(iFlag&(1<<0)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "", "", "", filterMask, 0.4,0,1000., eventClass);
        // charged MC tracks and jets
  if(iFlag&(1<<1)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "jetsAODMC2_UA1", "AODMC", "AODMC2", filterMask, 0.4,0,1000., eventClass);
        // charged MC tracks and jets with acceptance cuts
  if(iFlag&(1<<2)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "jetsAODMC2_UA1", "AODMCb", "AODMC2b", filterMask, 0.4,0,1000., eventClass);
        // kine tracks in acceptance, pythia jets in acceptance
  if(iFlag&(1<<3)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "", "KINEb", "KINEb", filterMask, 0.4,0,1000., eventClass);
        // reconstructed charged tracks after cuts, MC jets in acceptance 
  if(iFlag&(1<<4)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "jetsMC2b", "AODMCb", "AOD2b", filterMask, 0.4,0,1000., eventClass);
  // reconstruction efficiency: pointing with rec jet axis into gen tracks 
  if(iFlag&(1<<5)) ff = AddTaskIDFragmentationFunction("jetsAOD_UA1", "", "jetsAODMC2_UA1", "AODb", "AODMC2b", filterMask, 0.4,0,1000., eventClass);



      // Jet background subtracted
  // anti-kt, pt cut 1 GeV
  if(iFlag&(1<<20)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.4,2,1000.,eventClass, "_Skip00");
  // anti-kt, pt cut 2 GeV
  if(iFlag&(1<<21)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.4,2,2000.,eventClass, "_Skip00");
  // anti-kt, pt cut 150 MeV
  if(iFlag&(1<<22)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.2,2,150.,eventClass, "_Skip00");

  
  // Jet background subtracted
  if(iFlag&(1<<23)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.4,2,150.,eventClass, "_Skip00");
        // charged MC tracks and jets
  if(iFlag&(1<<24)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "jetsAODMC2_FASTJET", "AODMC", "AODMC2", filterMask, 0.4,2,150.,eventClass, "_Skip00");
        // charged MC tracks and jets with acceptance cuts
  if(iFlag&(1<<25)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "jetsAODMC2_FASTJET", "AODMCb", "AODMC2b", filterMask, 0.4,2,150., eventClass, "_Skip00");

       if(iFlag&(1<<26)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.4,1,150.,eventClass, "_Skip00");

       if(iFlag&(1<<27)) ff = AddTaskIDFragmentationFunction("clustersAOD_ANTIKT", "", "", "", "", filterMask, 0.4,3,150.,eventClass, "_Skip00"); 

      // SISCONE 
      if(iFlag&(1<<28)) ff = AddTaskIDFragmentationFunction("jetsAOD_SISCONE", "", "", "", "", filterMask, 0.4,1,150.,eventClass);
      if(iFlag&(1<<29)) ff = AddTaskIDFragmentationFunction("jetsAOD_SISCONE", "", "", "", "", filterMask, 0.4,2,150.,eventClass);
      if(iFlag&(1<<30)) ff = AddTaskIDFragmentationFunction("jetsAOD_SISCONE", "", "", "", "", filterMask, 0.4,3,150.,eventClass);

  return ff;
}

// _______________________________________________________________________________________

AliAnalysisTaskIDFragmentationFunction *AddTaskIDFragmentationFunctionAllCent(
        const char* recJetsBranch,
  const char* recJetsBackBranch,
  const char* genJetsBranch,
  const char* jetType,
  const char* trackType,
  UInt_t filterMask,
        Float_t radius,
        int kBackgroundMode,
        Int_t PtTrackMin,
        TString BrOpt="",
        TString BrOpt2="",
        TString BrOpt3="",
        Float_t radiusBckg=0.4,
  Int_t   FFMaxTrackPt = -1,
  Float_t FFMinNTracks = 0,
  TString suffixPIDtaskJets1 = "",
  TString suffixPIDtaskJets2 = "",
  TString suffixPIDtaskInclusive1 = "",
  TString suffixPIDtaskInclusive2 = "")
{

  // adds task with  given configuration for all centralities
  
  AliAnalysisTaskIDFragmentationFunction *ff=0;

  for(Int_t eventClass=1; eventClass<=4; eventClass++){
    
    ff = AddTaskIDFragmentationFunction(recJetsBranch,
              recJetsBackBranch,
              genJetsBranch,
              jetType,
              trackType,
              filterMask,
              radius,
              kBackgroundMode,
              PtTrackMin,
              eventClass,
              BrOpt,
              BrOpt2,
              BrOpt3,
              radiusBckg
              FFMaxTrackPt,
              FFMinNTracks,
              suffixPIDtaskJets1,
              suffixPIDtaskJets2,
              suffixPIDtaskInclusive1,
              suffixPIDtaskInclusive2);
  }
  
  return ff;
}

// _______________________________________________________________________________________

AliAnalysisTaskIDFragmentationFunction *AddTaskIDFragmentationFunction(
        const char* recJetsBranch,
  const char* recJetsBackBranch,
  const char* genJetsBranch,
  const char* jetType,
  const char* trackType,
  UInt_t filterMask,
  Float_t radius,
  Int_t kBackgroundMode,
  Int_t PtTrackMin,
  Int_t eventClass=0,
  TString BrOpt="",
  TString BrOpt2="",
  TString BrOpt3="",
  Float_t radiusBckg=0.4,
  Int_t FFMaxTrackPt = -1,
  Int_t FFMinNTracks = 0,
  UInt_t filterMaskTracks = 0,
  Bool_t onlyConsiderLeadingJets = kFALSE,
  TString suffixPIDtaskJets1 = "",
  TString suffixPIDtaskJets2 = "",
  TString suffixPIDtaskInclusive1 = "",
  TString suffixPIDtaskInclusive2 = "",
  Float_t MC_pThard_cut = -1.)
{
   // Creates a fragmentation function task,
   // configures it and adds it to the analysis manager.

   //******************************************************************************
   //*** Configuration Parameter **************************************************
   //******************************************************************************

   // space for configuration parameter: histo bin, cuts, ...
   // so far only default parameter used

   Int_t debug = -1; // debug level, -1: not set here

   //******************************************************************************


   
   // Get the pointer to the existing analysis manager via the static access method.
   //==============================================================================
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
    ::Error("AddTaskIDFragmentationFunction", "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("AddTaskIDFragmentationFunction", "This task requires an input event handler");
    return NULL;
   }

   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
   Printf("Data Type: %s", type.Data());

   TString branchRecBackJets(recJetsBackBranch);
   TString branchRecJets(recJetsBranch);
   TString branchGenJets(genJetsBranch);
   TString typeJets(jetType);
   TString typeTracks(trackType);

   if(branchRecBackJets.Length()==0) branchRecBackJets = "noRecBackJets";
   if(branchRecJets.Length()==0) branchRecJets = "noRecJets";
   if(branchGenJets.Length()==0) branchGenJets = "noGenJets";
   if(typeTracks.Length()==0) typeTracks = "trackTypeUndef";
   if(typeJets.Length()==0)   typeJets   = "jetTypeUndef";
   
   // Create the task and configure it.
   //===========================================================================

   AliAnalysisTaskIDFragmentationFunction *task = new AliAnalysisTaskIDFragmentationFunction(
        Form("Fragmentation_Function_%s_%s_%s_%s_filterMaskTracks%d", branchRecJets.Data(), branchGenJets.Data(), typeJets.Data(),
             typeTracks.Data(), filterMaskTracks));
   
   if(debug>=0) task->SetDebugLevel(debug);
   
   Printf("Rec Jets %s", branchRecJets.Data());
   Printf("Back Rec Jets %s", branchRecBackJets.Data());
   Printf("Gen Jets %s", branchGenJets.Data());
   Printf("Jet Type %s", typeJets.Data());
   Printf("Track Type %s", typeTracks.Data());
   
   Printf("Radius cut: %f", radius);
   Printf("FilterMaskTracks: %d", filterMaskTracks);
   Printf("MC_pThard_cut: %f", MC_pThard_cut);
   
   // attach the filter mask and options
   TString cAdd = "";
   cAdd += Form("%02d",(int)((TMath::Abs(radius)+0.01)*10.));
   cAdd += Form("_B%d",(int)((kBackgroundMode)));
   cAdd += Form("_Filter%05d",filterMask);
   cAdd += Form("_Cut%05d",PtTrackMin);
   cAdd += Form("%s",BrOpt.Data());
   cAdd += Form("%s",BrOpt2.Data());

   Printf("%s",cAdd.Data());

   TString cAddb = "";
   cAddb += Form("%02d",(int)((radiusBckg+0.01)*10.));
   cAddb += Form("_B%d",(int)((kBackgroundMode)));
   cAddb += Form("_Filter%05d",filterMask);
   cAddb += Form("_Cut%05d",PtTrackMin);
   cAddb += Form("%s",BrOpt.Data());
   cAddb += Form("%s",BrOpt2.Data());

   Printf("%s",cAddb.Data());

   TString cAddmc = "";
   cAddmc += Form("%02d",(int)((TMath::Abs(radius)+0.01)*10.));
   cAddmc += Form("_B%d",(int)((kBackgroundMode)));
   cAddmc += Form("_Filter%05d",filterMask);
   cAddmc += Form("_Cut%05d",PtTrackMin);
   cAddmc += Form("%s",BrOpt3.Data());

   Printf("%s",cAddmc.Data());


   if(branchRecJets.Contains("AOD")&&branchRecJets.Contains("jets")&&!branchRecJets.Contains("MC"))branchRecJets = branchRecJets + cAdd;
   if(branchRecJets.Contains("AOD")&&branchRecJets.Contains("cluster")&&!branchRecJets.Contains("MC"))branchRecJets = branchRecJets + cAdd;

   if(branchRecBackJets.Contains("back")&&branchRecBackJets.Contains("cluster")&&!branchRecBackJets.Contains("MC"))branchRecBackJets = branchRecBackJets + cAddb; 

   if(branchGenJets.Contains("AOD")&&branchGenJets.Contains("MC"))branchGenJets = branchGenJets + cAddmc;

   Printf("Gen jets branch %s: ", branchGenJets.Data());
   Printf("Rec jets branch %s: ", branchRecJets.Data());
   Printf("Jet backg branch %s: ", branchRecBackJets.Data());

   if(!branchRecJets.Contains("noRecJets")) task->SetBranchRecJets(branchRecJets);
   if(!branchRecBackJets.Contains("noRecBackJets")) task->SetBranchRecBackJets(branchRecBackJets);
   if(!branchGenJets.Contains("noGenJets")) task->SetBranchGenJets(branchGenJets);


   if(typeTracks.Contains("AODMC2b"))      task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackAODMCChargedAcceptance);
   else if(typeTracks.Contains("AODMC2"))  task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackAODMCCharged);
   else if(typeTracks.Contains("AODMC"))   task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackAODMCAll);
   else if(typeTracks.Contains("KINE2b"))  task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackKineChargedAcceptance);
   else if(typeTracks.Contains("KINE2"))   task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackKineCharged);
   else if(typeTracks.Contains("KINE"))    task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackKineAll);
   else if(typeTracks.Contains("AODb"))    task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackAODCuts);
   else if(typeTracks.Contains("AOD"))     task->SetTrackTypeGen(AliAnalysisTaskIDFragmentationFunction::kTrackAOD);
   else if(typeTracks.Contains("trackTypeUndef")) task->SetTrackTypeGen(0); // undefined
   else Printf("trackType %s not found", typeTracks.Data());

   if(typeJets.Contains("AODMCb"))         task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsGenAcceptance);
   else if(typeJets.Contains("AODMC"))     task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsGen);
   else if(typeJets.Contains("KINEb"))     task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsKineAcceptance);
   else if(typeJets.Contains("KINE"))      task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsKine);
   else if(typeJets.Contains("AODb"))      task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsRecAcceptance);
   else if(typeJets.Contains("AOD"))       task->SetJetTypeGen(AliAnalysisTaskIDFragmentationFunction::kJetsRec);
   else if(typeJets.Contains("jetTypeUndef")) task->SetJetTypeGen(0); // undefined
   else Printf("jetType %s not found", typeJets.Data());
   
   if(typeJets.Contains("AODMCb")) task->SetJetTypeRecEff(AliAnalysisTaskIDFragmentationFunction::kJetsGenAcceptance); // kJetsRecAcceptance
   else if(typeJets.Contains("AODb")) task->SetJetTypeRecEff(AliAnalysisTaskIDFragmentationFunction::kJetsRecAcceptance); 
   else task->SetJetTypeRecEff(0);

   if(!filterMaskTracks) task->SetFilterMask(filterMask);
   else task->SetFilterMask(filterMaskTracks);

   task->SetEventSelectionMask(AliVEvent::kMB);
   task->SetEventClass(eventClass);
  
   // Set default parameters 
   // Cut selection 

   if(PtTrackMin == 150)       task->SetTrackCuts();  // default : pt > 0.150 GeV, |eta|<0.9, full phi acc
   else if(PtTrackMin == 1000) task->SetTrackCuts(1.0, -0.9, 0.9, 0., 2*TMath::Pi());
   else if(PtTrackMin == 2000) task->SetTrackCuts(2.0, -0.9, 0.9, 0., 2*TMath::Pi());
   else                        task->SetTrackCuts(0.001*PtTrackMin,-0.9, 0.9, 0., 2*TMath::Pi());


   task->SetJetCuts();          // default: jet pt > 5 GeV, |eta|<0.5, full phi acc
   task->SetFFRadius(radius); 
   task->SetFFBckgRadius();     // default: R = 0.7
   task->SetQAMode();           // default: qaMode = 3
   task->SetFFMode();           // default: ffMode = 1
   task->SetIDFFMode(0);        // default: IDffMode = 0
   task->SetEffMode(0);         // default: effMode = 1
   task->SetHighPtThreshold();  // default: pt > 5 Gev

   task->SetBckgMode(1);        // default: bgMode = 1 
   task->SetBckgType();
   task->SetBranchRecBackClusters(Form("clustersAOD_KT04_B0_Filter%05d_Cut00150_Skip00",filterMask));
   
   task->SetOnlyLeadingJets(onlyConsiderLeadingJets); // default: kFALSE
   
   task->SetMCPtHardCut(MC_pThard_cut);
   
   // Define histo bins
   task->SetFFHistoBins(23, 5, 120, 480, 0., 120.,70,  0., 7.,22,  0.,  1.1);
 
   task->SetQAJetHistoBins();
   task->SetQATrackHistoBins();

   if(FFMaxTrackPt>0) task->SetFFMaxTrackPt(FFMaxTrackPt);
   if(FFMinNTracks>0) task->SetFFMinNTracks(FFMinNTracks);

   mgr->AddTask(task);

   // 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
   //==============================================================================

   TString strList(Form("idfracfunc_%s_%s_%s_%s_cl%d", branchRecJets.Data(), branchGenJets.Data(), typeTracks.Data(), typeJets.Data(), eventClass));
   
   TString strDir(Form("%s:PWGJE_IDFragmentationFunction_%s_%s_%s_%s_cl%d", 
           AliAnalysisManager::GetCommonFileName(), branchRecJets.Data(), branchGenJets. Data(), 
           typeTracks.Data(), typeJets.Data(), eventClass));


   if(FFMaxTrackPt>0){
     strList += Form("_FFMaxPt%d", FFMaxTrackPt);
     strDir  += Form("_FFMaxPt%d", FFMaxTrackPt);
   }
   if(FFMinNTracks>0){
     strList += Form("_minNTr%d",FFMinNTracks);
     strDir  += Form("_minNTr%d",FFMinNTracks);
   }

   if(radius<0){
     strList += "_trackRefs";
     strDir  += "_trackRefs";
   }
   if(filterMaskTracks){
     strList += Form("_TrackFilter%05d",filterMaskTracks);
     strDir  += Form("_TrackFilter%05d",filterMaskTracks);
   }


   AliAnalysisDataContainer *coutput_FragFunc = mgr->CreateContainer(strList,TList::Class(),
                     AliAnalysisManager::kOutputContainer,
                     strDir);

   mgr->ConnectInput  (task, 0, mgr->GetCommonInputContainer());
   mgr->ConnectOutput (task, 0, mgr->GetCommonOutputContainer());// Comment to run locally
   mgr->ConnectOutput (task, 1, coutput_FragFunc);
   
   postConfig(task, suffixPIDtaskJets1, suffixPIDtaskJets2, suffixPIDtaskInclusive1, suffixPIDtaskInclusive2);
   
   return task;
}

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