ROOT logo
Bool_t ReadContaminationFunctionsBeauty(TString filename, TF1 **functions, double sigma){
  TFile *in = TFile::Open(Form("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/%s", filename.Data()));
  gROOT->cd();
  int isig = static_cast<int>(sigma * 100.);
  if (isig == -44) isig = -42;
  if (isig == 6) isig = 9;
  printf("Getting hadron background for the sigma cut: %d\n", isig);
  bool status = kTRUE;
  for(int icent = 0; icent < 12; icent++){
    functions[icent] = dynamic_cast<TF1 *>(in->Get(Form("hback_%d_%d", isig, icent)));
    if(functions[icent]) printf("Config for centrality class %d found\n", icent);
    else{
      printf("Config for the centrality class %d not found\n", icent);
      status = kFALSE;
    }
  }
  delete in;
  return status;
}

Bool_t ReadContaminationFunctions(TString filename, TF1 **functions, double sigma){
  TFile *in = TFile::Open(Form("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/%s", filename.Data()));
  gROOT->cd();
  int isig = static_cast<int>(sigma * 100.);
  printf("Getting hadron background for the sigma cut: %d\n", isig);
  bool status = kTRUE;
  for(int icent = 0; icent < 12; icent++){
    functions[icent] = dynamic_cast<TF1 *>(in->Get(Form("hback_%d_%d", isig, icent)));
    if(functions[icent]) printf("Config for centrality class %d found\n", icent);
    else{
      printf("Config for the centrality class %d not found\n", icent);
      status = kFALSE;
    }
  }
  delete in;
  return status;
}


AliAnalysisTaskHFE* ConfigHFEnpepPb(Bool_t useMC, Bool_t isAOD, Bool_t isBeauty, TString appendix,
                UChar_t TPCcl=70, UChar_t TPCclPID = 80, 
                UChar_t ITScl=3, Double_t DCAxy=1000., Double_t DCAz=1000., 
                Double_t* tpcdEdxcutlow=NULL, Double_t* tpcdEdxcuthigh=NULL, 
                Double_t TOFs=3., Int_t TOFmis=0, 
                Int_t itshitpixel = 0, Int_t icent, 
		Double_t etami=-0.8, Double_t etama=0.8,
		Double_t phimi=-1., Double_t phima=-1.,
		Double_t assETAm=-0.8, Double_t assETAp=0.8,
		Double_t assMinPt=0.2, Int_t assITS=2, 
                Int_t assTPCcl=100, Int_t assTPCPIDcl=80, 
                Double_t assDCAr=1.0, Double_t assDCAz=2.0, 
                Double_t *assTPCSminus=NULL, Double_t *assTPCSplus=NULL, 
                Double_t assITSpid=-3., 
		Double_t assTOFs=3.,
                Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE, Int_t weightlevelback = -1, 
	        Bool_t nonPhotonicElectronBeauty = kFALSE, Bool_t ipCharge = kFALSE, Bool_t ipOpp = kFALSE, Int_t ipsys = 0)
{
  Bool_t kAnalyseTaggedTracks = kTRUE;
  Bool_t kApplyPreselection = kFALSE;

  //***************************************//
  //        Setting up the HFE cuts        //
  //***************************************//

  AliHFEcuts *hfecuts = new AliHFEcuts(appendix,"HFE cuts for pPb");
  //hfecuts->SetQAOn();
  hfecuts->CreateStandardCuts();
  hfecuts->SetMinNClustersTPC(TPCcl);
  hfecuts->SetMinNClustersTPCPID(TPCclPID);
  hfecuts->SetMinNClustersITS(ITScl);
  hfecuts->SetMinRatioTPCclusters(0.6);
  hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
  hfecuts->SetCutITSpixel(itshitpixel);
  hfecuts->SetCheckITSLayerStatus(kFALSE);
  hfecuts->SetEtaRange(etami,etama);
  if(phimi >= 0. && phima >= 0) hfecuts->SetPhiRange(phimi,phima);
  hfecuts->SetRejectKinkDaughters();
  hfecuts->SetAcceptKinkMothers();
  if(isAOD) hfecuts->SetAODFilterBit(4);
  
  //if((iPixelAny==AliHFEextraCuts::kAny) || (iPixelAny==AliHFEextraCuts::kSecond))     
 
  hfecuts->SetMaxImpactParam(DCAxy,DCAz);
  hfecuts->SetUseMixedVertex(kTRUE);
  hfecuts->SetVertexRange(10.);
  // New pPb cuts (February 2013)
  hfecuts->SetUseCorrelationVertex();
  hfecuts->SetSPDVtxResolutionCut();
  hfecuts->SetpApileupCut();

  Bool_t ipSig = kFALSE;

  hfecuts->SetIPcutParam(0.0054,0.078,-0.56,0,ipSig,ipCharge,ipOpp);
  if(ipsys==1) hfecuts->SetIPcutParam(0.0054,0.057,-0.66,0,ipSig,ipCharge,ipOpp);
  if(ipsys==2) hfecuts->SetIPcutParam(0.012,0.088,-0.65,0,ipSig,ipCharge,ipOpp);

  if(isBeauty) hfecuts->SetProductionVertex(0,100,0,100);

  // TOF settings:
  Int_t usetof=0;
  Bool_t kTOFmis=kFALSE;
  if (TOFs>0.){
    usetof = 1;
    printf("CONFIGURATION FILE: TOF is used \n");
    hfecuts->SetTOFPIDStep(kTRUE);
    printf("CONFIGURATION FILE: TOF PID step is requested !!!! \n");
    if (TOFmis>0){
      kTOFmis = kTRUE;
      printf("CONFIGURATION FILE: TOF mismatch rejection is set ON \n");
    }
  }

  //***************************************//
  //        Setting up the task            //
  //***************************************//

  AliAnalysisTaskHFE *task = new AliAnalysisTaskHFE(Form("HFEtask%s",appendix.Data()));
  printf("task %p\n", task);
  task->SetpPbAnalysis();
  if(!isAOD) task->SetRemoveFirstEventInChunk();
  task->SetRemovePileUp(kFALSE);
  task->SetHFECuts(hfecuts);
  task->GetPIDQAManager()->SetHighResolutionHistos();
  task->SetRejectKinkMother(kFALSE);

  // Determine the centrality estimator
  task->SetCentralityEstimator("V0A");
  if (icent == 2) task->SetCentralityEstimator("V0M");
  else if (icent == 3) task->SetCentralityEstimator("CL1");
  else if (icent == 4) task->SetCentralityEstimator("ZNA");

  //***************************************//
  //        Prepare preselection           //
  // This mimics the ESD->AOD filter in    //
  // case of the ESD analysis and selects  //
  // only tracks which will be selected in //
  // the AOD analysis with the given filter//
  // bit. Not to be applied for AODS.      //
  // For pPb the cuts used are (bit 4)     //
  // esdTrackCutsHG0 from file $ALICE_ROOT///
  // ANALYSIS/macros/AddTaskESDFilter.C    //
  //***************************************//

  if(kApplyPreselection){    
    AliESDtrackCuts* esdfilter = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
    esdfilter->SetMaxDCAToVertexXY(2.4);
    esdfilter->SetMaxDCAToVertexZ(3.2);
    esdfilter->SetDCAToVertex2D(kTRUE);

    task->SetHFECutsPreselect(esdfilter);
    printf("Put a preselection cut\n");
    task->SetFillNoCuts(kTRUE);
  }

  //***************************************//
  //          Variable manager             //
  //***************************************//
  // Define Variables
  Double_t ptbinning[36] = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, 1.2, 1.3, 1.4, 1.5, 1.75, 2., 2.25, 2.5, 2.75, 3., 3.5, 4., 4.5, 5., 5.5, 6., 7., 8., 10., 12., 14., 16., 18., 20.};
  Double_t etabinning[17] = {-0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8};

  Int_t sizept=(sizeof(ptbinning)/sizeof(double))-1;
  Int_t sizeeta=(sizeof(etabinning)/sizeof(double))-1;

  AliHFEvarManager *vm = task->GetVarManager();
  vm->AddVariable("pt", sizept, ptbinning);
  vm->AddVariable("eta", sizeeta, -0.8,0.8);
  vm->AddVariable("phi",18, -0, 2*TMath::Pi());
  vm->AddVariable("charge");
  vm->AddVariable("source");
  vm->AddVariable("centrality");

  // For the moment, remove the part dedicated to the background subtraction.
  // It will be implemented in a different way, reading it from a root file.

  //***************************************//
  //          Configure the PID            //
  //***************************************//

  // Define PID
  AliHFEpid *pid = task->GetPID();
  if(useMC) pid->SetHasMCData(kTRUE);

  if (usetof){
    pid->AddDetector("TOF", 0);
    pid->AddDetector("TPC", 1);
  } else {
    pid->AddDetector("TPC", 0);
  }
  
  // Configure TPC PID
  // do the identical thing in data and MC
  Double_t paramsTPCdEdxcutlow[12] ={0.0, 0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
  if(tpcdEdxcutlow) memcpy(paramsTPCdEdxcutlow,tpcdEdxcutlow,sizeof(paramsTPCdEdxcutlow));

  Double_t paramsTPCdEdxcuthigh[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
  if(tpcdEdxcuthigh) memcpy(paramsTPCdEdxcuthigh,tpcdEdxcuthigh,sizeof(paramsTPCdEdxcuthigh));

  char *cutmodel;

  if(useMC){ // constant (default) cut for MC
      cutmodel="pol0(0)";
      Double_t params[1];
      params[0]=paramsTPCdEdxcutlow[0];
      pid->ConfigureTPCdefaultCut(cutmodel, params,tpcdEdxcuthigh[0]);
  } else { // correct for mean shift in data
      cutmodel="min(pol1(0),pol0(2))";
      Double_t params[3];
      //params[0]=-0.12; params[1]=0.14; params[2]=0.09;
      params[0]=-0.21 + paramsTPCdEdxcutlow[0];
      params[1]=0.14;
      params[2]=paramsTPCdEdxcutlow[0];
      pid->ConfigureTPCdefaultCut(cutmodel, params,tpcdEdxcuthigh[0]);
  }
  /*
  char *cutmodel;
  cutmodel="pol0";

  for(Int_t a=0;a<11;a++){
    // Not necessary anymore, since the pPb case is handled similarly to the pp case
    //   cout << a << " " << paramsTPCdEdxcut[a] << endl;
    Double_t tpcparamlow[1]={paramsTPCdEdxcutlow[a]};
    Float_t tpcparamhigh=paramsTPCdEdxcuthigh[a];
    pid->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh);
  }
  pid->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); // After introducing the pPb flag, pPb is merged with pp and this line defines the cut
  */

  // Configure TOF PID
  if (usetof){
    pid->ConfigureTOF(TOFs);
    AliHFEpidTOF *tofpid = pid->GetDetPID(AliHFEpid::kTOFpid);
    if (kTOFmis){
      tofpid->SetRejectTOFmismatch();
    }
  }

  // To make different upper TOF cut to see contamination effect
  // The below two lines should be removed after this check
  //AliHFEpidTOF *tofpid = pid->GetDetPID(AliHFEpid::kTOFpid);
  //if(TOFs<3.) tofpid->SetTOFnSigmaBand(-3,TOFs); //only to check the assymmetric tof cut

  // Load hadron background
  if(!useMC){
    Bool_t status = kTRUE;
    TF1 *hBackground[12];
    if(isAOD==1) {
	if (usetof)  status = ReadContaminationFunctions("hadroncontamination_AOD139_TOFPID_pPb_eta06.root", hBackground, tpcdEdxcutlow[0]);
	else status = ReadContaminationFunctions("hadroncontamination_AOD139_noTOFPID_pPb_eta06.root", hBackground, tpcdEdxcutlow[0]);
    }
    else if (isBeauty==1) {
	status = ReadContaminationFunctionsBeauty("hadroncontamination_ESD_Beauty_TOFPID_pPb_eta06.root", hBackground, tpcdEdxcutlow[0]);
    }
  else  status = ReadContaminationFunctions("hadroncontamination_TOFTPC_pPb_eta06_newsplines_try3.root", hBackground, tpcdEdxcutlow[0]);
    for(Int_t a=0;a<12;a++) {
      //printf("back %f \n",hBackground[a]);
      if(status) task->SetBackGroundFactorsFunction(hBackground[a],a);
      else printf("not all background functions found\n");
    }
  }

  //***************************************//
  //       Configure NPE plugin            //
  //***************************************//

  AliHFENonPhotonicElectron *backe = new AliHFENonPhotonicElectron(Form("HFEBackGroundSubtractionPID2%s",appendix.Data()),"Background subtraction");  //appendix
    //Setting the Cuts for the Associated electron-pool
  AliHFEcuts *hfeBackgroundCuts = new AliHFEcuts(Form("HFEBackSub%s",appendix.Data()),"Background sub Cuts");
  //  hfeBackgroundCuts->SetEtaRange(assETA);
  hfeBackgroundCuts->SetEtaRange(assETAm,assETAp);
  hfeBackgroundCuts->SetPtRange(assMinPt,20.);

  hfeBackgroundCuts->SetMaxChi2perClusterTPC(4);
  hfeBackgroundCuts->SetMinNClustersITS(assITS);
  hfeBackgroundCuts->SetMinNClustersTPC(assTPCcl);
  hfeBackgroundCuts->SetMinNClustersTPCPID(assTPCPIDcl);
  hfeBackgroundCuts->SetMaxImpactParam(assDCAr,assDCAz);
  if(isAOD) hfeBackgroundCuts->SetAODFilterBit(4);
  hfeBackgroundCuts->SetQAOn();			        // QA

  AliHFEpid *pidbackground = backe->GetPIDBackground();
  if(useMC) pidbackground->SetHasMCData(kTRUE);

  if (assTOFs>0.){
    pidbackground->AddDetector("TOF", 0);
    pidbackground->AddDetector("TPC", 1);
  } else {
    pidbackground->AddDetector("TPC", 0);
  }

  Double_t paramsTPCdEdxcutlowAssoc[12] ={-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0};
  if(assTPCSminus) memcpy(paramsTPCdEdxcutlowAssoc,assTPCSminus,sizeof(paramsTPCdEdxcutlowAssoc));

  Double_t paramsTPCdEdxcuthighAssoc[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0};
  if(assTPCSplus) memcpy(paramsTPCdEdxcuthighAssoc,assTPCSplus,sizeof(paramsTPCdEdxcuthighAssoc));
    
  char *cutmodelAssoc;
  cutmodelAssoc="pol0";
  for(Int_t a=0;a<11;a++){
    // Not necessary anymore, since the pPb case is handled similarly to the pp case
    //   cout << a << " " << paramsTPCdEdxcut[a] << endl;
    Double_t tpcparamlow[1]={paramsTPCdEdxcutlowAssoc[a]};
    Float_t tpcparamhigh=paramsTPCdEdxcuthighAssoc[a];
    pidbackground->ConfigureTPCcentralityCut(a,cutmodelAssoc,tpcparamlow,tpcparamhigh);
  }
  pidbackground->ConfigureTPCdefaultCut(cutmodelAssoc,paramsTPCdEdxcutlowAssoc,paramsTPCdEdxcuthighAssoc[0]); // After introducing the pPb flag, pPb is merged with pp and this line defines the cut
  //backe->GetPIDBackgroundQAManager()->SetHighResolutionHistos();

  if (assTOFs>0.){
    pidbackground->ConfigureTOF(TOFs);
  }

  backe->SetHFEBackgroundCuts(hfeBackgroundCuts);

  // Selection of associated tracks for the pool
  if(useCat1Tracks) backe->SelectCategory1Tracks(kTRUE);
  if(useCat2Tracks){
    backe->SelectCategory2Tracks(kTRUE);
    backe->SetITSMeanShift(-0.5);
    backe->SetITSnSigmaHigh(assITSpid);
    Double_t assITSminus = -1.0 * assITSpid;
    backe->SetITSnSigmaLow(assITSminus);
    //backe->SetminPt(assMinPt);
  }

  // apply opening angle cut to reduce file size
  backe->SetMaxInvMass(0.3);
  backe->SetPtBinning(sizept, ptbinning);
  backe->SetEtaBinning(sizeeta, etabinning);
  // MC weight
  if(useMC) {
    //printf("test put weight %d\n",weightlevelback);
    if((weightlevelback >=0) && (weightlevelback < 3)) backe->SetWithWeights(weightlevelback);
  }
  task->SetHFEBackgroundSubtraction(backe);

  //task->SetWeightHist(); 

  //***************************************//
  //          V0 tagged tracks             //
  //***************************************//

  if(kAnalyseTaggedTracks){
    AliHFEcuts *v0trackCuts = new AliHFEcuts("V0trackCuts", "Track Cuts for tagged track Analysis");
    v0trackCuts->CreateStandardCuts();
    v0trackCuts->SetMinNClustersTPC(TPCcl);
    v0trackCuts->SetMinNClustersTPCPID(TPCclPID);
    v0trackCuts->SetMinRatioTPCclusters(0.6);
    v0trackCuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
    v0trackCuts->SetMinNClustersITS(1);
    v0trackCuts->SetCutITSpixel(AliHFEextraCuts::kFirst);
    v0trackCuts->SetCheckITSLayerStatus(kFALSE);
    v0trackCuts->UnsetVertexRequirement();
    //hfecuts->SetSigmaToVertex(10);
    if(usetof) v0trackCuts->SetTOFPIDStep(kTRUE);
    v0trackCuts->SetQAOn();

    task->SwitchOnPlugin(AliAnalysisTaskHFE::kTaggedTrackAnalysis);
    task->SetTaggedTrackCuts(v0trackCuts);
    task->SetCleanTaggedTrack(kTRUE);
  }

  // QA
  printf("task %p\n", task);
  task->SetQAOn(AliAnalysisTaskHFE::kPIDqa);
  task->SetQAOn(AliAnalysisTaskHFE::kMCqa);
  task->SwitchOnPlugin(AliAnalysisTaskHFE::kDEstep);
  if(nonPhotonicElectronBeauty) task->SwitchOnPlugin(AliAnalysisTaskHFE::kNonPhotonicElectronBeauty);
  else task->SwitchOnPlugin(AliAnalysisTaskHFE::kNonPhotonicElectron);

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