ROOT logo
AliAnalysisTask *AddTaskHFEnpepPb(Bool_t MCthere,
                                  Bool_t isAOD, 
                                  Bool_t kNPERef = kTRUE,
                                  Bool_t kNPERefTPConly = kFALSE,
                                  Bool_t kNPEkAny = kFALSE,
                                  Bool_t kNPEsystematics = kFALSE,
                                  Bool_t kNPEpidsys = kFALSE,
				  Bool_t kNPEw = kFALSE,
                                  Bool_t kBeauty = kFALSE
){

  // Default settings (TOF-TPC pPb)
  const int	kDefTPCcl	= 100;
  const int	kDefTPCclPID	=  80;
  const int	kDefITScl	=   4;
  const double	kDefDCAr	=   1.;
  const double	kDefDCAz	=   2.;
  const double	kDefTOFs	=   3.;
  const double  kDefEtaIncMin   = -0.8;
  const double  kDefEtaIncMax   =  0.8;
  const double  kDefPhiMin      = -1.; // by default no phi cut, otherwise units of 2.*TMath::Pi()/18.
  const double  kDefPhiMax      = -1.; // by default no phi cut
 

  // TPC PID Cuts Inclusive leg:
  // General, if mean=0 and sigma=1: 
  // Above 3 sigma we neglect 0.13%
  // cut in sigma (effective efficiency from cut to 3 sigma)
  // -1 (84%), -0.75 (77.2%), -0.5 (69%), -0.25 (59.7%), -0.129 (55%)
  //  0 (49.9%), 0.122 (45%), 0.25 (40%), 0.5 (30.7%)

  // ESDs: mean 0.06, sigma 1    --> -0.94, -0.69, -0.44,  -0.19, -0.009 ,0.06, 0.182, 0.31, 0.56
  // AODs: mean 0.09, sigma 1    --> -0.91, -0.66, -0.41,  -0.16, -0.039 ,0.09, 0.212, 0.34, 0.59
  // AODs: mean 0.09, sigma 1.03 --> -0.94, -0.68, -0.425, -0.17, -0.043 ,0.09, 0.216, 0.35, 0.60

  // On ESD:
  // mean is actually 0.06 (abs(eta)<0.6)
  Double_t dEdxhm[12] = {3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06};  // Above 3 sigma we neglect 0.13%
  Double_t tpcl0[12]  = {-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94};  // 84%
  Double_t tpcl1[12]  = {-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44};  // 69%
  Double_t tpcl2[12]  = {0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06};  // 50%
  Double_t tpcl3[12]  = {-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69};  // 77.2%
  Double_t tpcl4[12]  = {-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19};  // 59.7%
  Double_t tpcl5[12]  = {0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186};  // 45%
  Double_t tpcl6[12]  = {0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31};  // 40%
  Double_t tpcl7[12]  = {0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56};  // 30.7%

  // AOD 139 with TPC multi cor; w/o TOF PID
  Double_t dEdxhmAOD[12] = {3.18,3.18,3.18,3.18,3.18,3.18,3.18,3.18,3.18,3.18,3.18,3.18};  // upper cut
  Double_t tpcl0AOD[12]  = {-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94};  // 84% <-- hadron contamination
  Double_t tpcl1AOD[12]  = {-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68};  // 77.2%
  Double_t tpcl2AOD[12]  = {-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425,-0.425};  // 69% <-- had cont
  Double_t tpcl3AOD[12]  = {-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17};  // 59.7%           <-- had cont
  Double_t tpcl4AOD[12]  = {-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043,-0.043};  // 55%
  Double_t tpcl5AOD[12]  = {0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09};  // 49.9%                       <-- had cont
  Double_t tpcl6AOD[12]  = {0.216,0.216,0.216,0.216,0.216,0.216,0.216,0.216,0.216,0.216,0.216,0.216};  // 45%
  Double_t tpcl7AOD[12]  = {0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35};  // 40%
  Double_t tpcl8AOD[12]  = {0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60};  // 30.7%

  // Default setting for the associated electron for the NonPhotonic Analysis
  const double	kassETAm        = -0.8;
  const double	kassETAp        =  0.8;
  const double  kassMinPt       =  0.1;
  const int	kassITS		=    2;
  const int	kassTPCcl	=   60;
  const int	kassTPCPIDcl	=   60;
  const double	kassDCAr	=  1.0;
  const double	kassDCAz	=  2.0;
  const double	kassTPCSminus	= -3.0;
  const double	kassTPCSplus	=  3.0;
  const double  kassITSpid      =  3.0;
  const double  kassTOFpid      =  0.0;

  enum{
          kHFEV0A = 1,
          kHFEV0M = 2,
          kHFECL1 = 3,
          kHFEZNA = 4
  };

  const Bool_t isBeauty = kFALSE;
  
  //get the current analysis manager
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTask_hfe_HFE", "No analysis manager found.");
    return 0;
  }

  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();

  //@@ 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  Double_t dEdxaclm[12], dEdxachm[12],dEdxaclm1[12], dEdxachm1[12],dEdxaclm2[12], dEdxachm2[12];
  for(int icent = 0; icent < 12; icent++){
    dEdxaclm[icent] = kassTPCSminus;
    dEdxachm[icent] = kassTPCSplus;
    dEdxaclm1[icent] = -2;
    dEdxachm1[icent] = 2;
    dEdxaclm2[icent] = -4;
    dEdxachm2[icent] = 4;
  }

  Int_t kWei = -1;
  if (MCthere) kWei = 0;
  enum {
    // updated after changes by Jan on 17.04, commit 21648
    kb2weiData = 3,  // DPMJET weights 
    kd3weiData = 4,  // HIJING weights 
    kd3weib2   = 5,  // HIJING weights for DPMJET
  };
  
  

  if(kNPERef){
    // **************************************************************
    // 
    // Reference task
    //
    // **************************************************************
    if(isAOD==1){ 
      // Reference
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      /*
      if (MCthere){  // run without weights
	// this is an exceptional case, so I handle it by hand for the moment
	RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			    dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
			    kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData);
	RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			    dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
			    kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weib2);
	RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			    dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
			    kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE);
      }
      // no ITS SA
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kFALSE, kWei, kd3weiData);
      */
    }
    else {
      // Reference
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      }
  }
  
  if(kNPERefTPConly){
    // **************************************************************
    // 
    // Reference task for TPC-only on the inclusive leg
    //
    // **************************************************************
    if(isAOD==1){
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl5AOD, 
			  dEdxhmAOD, 0., AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE);
    }
    else
      {
	RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, 
			    dEdxhm, 0., AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			    kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE);
      }
  }
  
  if(kNPEkAny){
    // **************************************************************
    // 
    // task for kAny instead of kBoth
    //
    // **************************************************************

    // coming soon
  }
  
  if (kNPEpidsys){
    if(isAOD==1){
      // Inclusive: TPC pid cuts
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl0AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl3AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl5AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      // Inclusive: TOF PID cuts
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, 2.0, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, 2.5, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, 4.0, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
    }
    else
      {
	RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl5, 
			    dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			    kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE);
      }

  }

  if(kNPEsystematics){
    // **************************************************************
    // 
    // Cut systematics 
    //
    // **************************************************************
    if(isAOD==1){

      // TPC clusters for tracking
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, 80, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, 90, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty,100, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty,120, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty,130, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      // TPC clusters for PID
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, 60, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl,100, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl,110, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);

      /* SYST 2
      // Cat1 + cat2 tracks: vary ITS PID
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, 2.0, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, 4.0, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      // Cat1 + cat2 tracks: vary TPC PID
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm1, dEdxachm1, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm2, dEdxachm2, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kd3weiData);
      // no ITS SA: add TOF PID
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, 2.0, kTRUE, kFALSE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, 3.0, kTRUE, kFALSE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, 4.0, kTRUE, kFALSE, kWei, kd3weiData);
      // no ITS SA: add TOF PID, vary TPC PID
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm1, dEdxachm1, kassITSpid, kassTOFpid, kTRUE, kFALSE, kWei, kd3weiData);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm2, dEdxachm2, kassITSpid, kassTOFpid, kTRUE, kFALSE, kWei, kd3weiData);
      */
      /* SYST 1
      // Inclusive DCA cuts
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, 0.5, 1.0, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, 2.0, 5.0, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      // Associated DCA cuts
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  0.5, 1.0, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      RegisterTaskNPEpPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, 
			  dEdxhmAOD, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl, 
			  2.0, 5.0, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei);
      */
    }
  }

  if(kBeauty){
    // **************************************************************
    //
    // Beauty task
    //
    // **************************************************************
    if(isAOD==1){
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, dEdxhmAOD, kDefTOFs,
                          AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax, kassETAm, kassETAp, kassITS, kassTPCcl,
                          kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE, -1, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, dEdxhmAOD, kDefTOFs,
                          AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax, kassETAm, kassETAp, kassITS, kassTPCcl,
                          kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE,-1, kTRUE, kTRUE, kFALSE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2AOD, dEdxhmAOD, kDefTOFs,
                          AliHFEextraCuts::kBoth, kHFEV0A, kDefEtaIncMin, kDefEtaIncMax, kassETAm, kassETAp, kassITS, kassTPCcl,
                          kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kTRUE,-1, kTRUE, kTRUE, kTRUE);
    }
    else{
      // reference
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      // nonphotonic bg 
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiDataSys, kTRUE); 
      //ip sys
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE, kFALSE, kFALSE, 1);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE, kFALSE, kFALSE, 2);

      // tpc cluster
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, 100, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, 120, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // tpc pid cluster
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, 60, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, 100, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // dca xy
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, 2, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, 0.5, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, 0.1, 0.5, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // dca z 
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, 4, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, 1, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // ITS cluster
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, 2, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, 3, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // TOF PID
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, 2, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1,
                          dEdxhm, 4, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);

      // TPC PID
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl0, //84%
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
      RegisterTaskNPEpPb( MCthere, isAOD, kBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl2, //50%
                          dEdxhm, kDefTOFs, AliHFEextraCuts::kBoth, kHFEV0A, kassITS, kassTPCcl, kassTPCPIDcl,
                          kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kassITSpid, kassTOFpid, kTRUE, kTRUE, kWei, kb2weiData, kTRUE);
    }
  }
  
  return NULL;
}

//===============================================================================
AliAnalysisTask *RegisterTaskNPEpPb(Bool_t useMC, Bool_t isAOD, Bool_t beauty,
               Int_t tpcCls=120, Int_t tpcClsPID=80, 
               Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, 
               Double_t *tpcdEdxcutlow=NULL, Double_t *tpcdEdxcuthigh=NULL, 
               Double_t tofs=3., Int_t itshitpixel =AliHFEextraCuts::kBoth, 
				    //Double_t phimi=-1., Double_t phima=-1.,
	       Int_t icent=1,
	       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.0, Double_t assTOFpid = 0.0,
               Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE,
	       Int_t weightlevelback = -1, Int_t WhichWei = 0,
               Bool_t npeBeauty = kFALSE, Bool_t ipCharge = kFALSE, Bool_t isOpp = kFALSE, Int_t ipSys = 0)
{
  // Fixed values
  Double_t etaIncMin = -0.8; Double_t etaIncMax = 0.8;
  Double_t phimi = -1.; Double_t phima = -1.;
  Double_t assETAm=-0.8; Double_t assETAp=0.8;
  Double_t assMinPt = 0.1;

  //
  // Cuts on the inclusive leg
  //
  Int_t idcaxy = (Int_t)(dcaxy*10.);
  Int_t idcaz = (Int_t)(dcaz*10.);
  Int_t tpclow = 0;
  if(tpcdEdxcutlow) tpclow = (Int_t) (tpcdEdxcutlow[0]*1000.);
  Int_t itofs = (Int_t)(tofs*10.);
  Int_t ipixelany = itshitpixel;
  TString phirange("");
  if (phimi >= 0. && phima >= 0.){ 
    phirange += "Phi";
    phirange += phimi;
    phirange += "-";
    phirange += phima;
  } 

  //
  // Cuts on the associated leg
  //
  Int_t iassDCAr = (Int_t)(assDCAr*10);
  Int_t iassDCAz = (Int_t)(assDCAz*10);
  Int_t iassTPCSminus = assTPCSplus ? (Int_t)(assTPCSplus[0]*1000.) : 0;
  Int_t iassTOF = (Int_t)(assTOFpid*10);
  Int_t iassITS = (Int_t)(assITSpid * 10.);
  Int_t phoTrack = 0;
  if (useCat1Tracks) phoTrack = 1;
  if (useCat2Tracks) phoTrack = 2;

  //printf("Argument passed to function to determine the centrality estimator %i\n", icent);
  if (icent == 2) TString cesti("V0M");
  else if (icent == 3) TString cesti("CL1");
  else if (icent == 4) TString cesti("ZNA");
  else TString cesti("V0A");
  //printf("Centrality estimator %s\n", cesti.Data());

  TString cweightsback("");
  if(weightlevelback>=0) {
    cweightsback += "Wa";
    if (WhichWei>0){
      cweightsback += WhichWei;
      //cweightsback += weightlevelback;
    }
  }

  if(beauty) {
     if(ipCharge && isOpp) TString cbeauty("BeautyIPopp");
     else if(ipCharge) TString cbeauty("BeautyIPcrg");
     else if(!ipCharge) TString cbeauty("Beauty");
     else TString cbeauty("BeautyWrong");
     cbeauty = cbeauty+Form("ip%dwei%d",ipSys,WhichWei);
  }
  else TString cbeauty("");

  TString appendix(TString::Format("incTPCc%dp%dITS%dSPD%dDCAr%dz%dTPCs%dTOFs%d_photTPCc%dp%dITS%dDCAr%dz%dTPCs%dITSs%dTOFs%dtr%dce%s%s%s",
				   tpcCls,tpcClsPID,itsCls,ipixelany,idcaxy,idcaz,tpclow,itofs,assTPCcl,assTPCPIDcl,assITS,iassDCAr,
				   iassDCAz,iassTPCSminus,iassITS,iassTOF,phoTrack,cesti.Data(),cweightsback.Data(),cbeauty.Data()));

  printf("Add macro appendix %s\n", appendix.Data());

 if(!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigWeightFactors")) 
     gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigWeightFactors.C");
 if(!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigHFEnpepPb")) 
     gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEnpepPb.C");

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
  AliAnalysisTaskHFE *task = ConfigHFEnpepPb(useMC, isAOD, beauty, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, 
					     tpcdEdxcutlow, tpcdEdxcuthigh, tofs, 0, itshitpixel, icent, etaIncMin, etaIncMax,
					     phimi*TMath::Pi()/9., phima*TMath::Pi()/9., 
					     assETAm, assETAp, assMinPt, assITS, assTPCcl, assTPCPIDcl, assDCAr, assDCAz, assTPCSminus, 
					     assTPCSplus,assITSpid,assTOFpid,
					     useCat1Tracks, useCat2Tracks, weightlevelback, npeBeauty, ipCharge, isOpp, ipSys);

  if(isAOD)
    task->SetAODAnalysis();
  else
    task->SetESDAnalysis();

  if (useMC)	task->SetHasMCData(kTRUE);
  else		task->SetHasMCData(kFALSE);

  task->SelectCollisionCandidates(AliVEvent::kINT7);

  if(useMC&&(beauty || (weightlevelback>=0))) {
    ConfigWeightFactors(task,kFALSE,WhichWei);
    if(WhichWei==8) {
      ConfigWeightFactors(task,kTRUE,3);
      task->SetNonHFEsystematics(kTRUE);
    }
  }
  TString containerName = mgr->GetCommonFileName();
  containerName += ":HFEtask";
  containerName += appendix.Data();
  printf("container name: %s\n", containerName.Data());

  //create data containers
  task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data() ));
  task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, containerName.Data()));
  mgr->ConnectInput(task,  0, cinput );

  mgr->AddTask(task);

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