ROOT logo
// One can use the configuration macro in compiled mode by
// root [0] gSystem->Load("libgeant321");
// root [0] gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include\
//                   -I$ALICE_ROOT -I$ALICE/geant3/TGeant3");
// root [0] .x grun.C(1,"ConfigPPR.C++")

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <Riostream.h>
#include <TRandom.h>
#include <TSystem.h>
#include <TVirtualMC.h>
#include <TGeant3TGeo.h>
#include <TPDGCode.h>
#include <TF1.h>
#include "STEER/AliRunLoader.h"
#include "STEER/AliRun.h"
#include "STEER/AliConfig.h"
#include "STEER/AliGenerator.h"
#include "STEER/AliLog.h"
#include "PYTHIA6/AliDecayerPythia.h"
#include "EVGEN/AliGenHIJINGpara.h"
#include "THijing/AliGenHijing.h"
#include "EVGEN/AliGenCocktail.h"
#include "EVGEN/AliGenSlowNucleons.h"
#include "EVGEN/AliSlowNucleonModelExp.h"
#include "EVGEN/AliGenParam.h"
#include "EVGEN/AliGenMUONlib.h"
#include "EVGEN/AliGenSTRANGElib.h"
#include "EVGEN/AliGenMUONCocktail.h"
#include "EVGEN/AliGenCocktail.h"
#include "EVGEN/AliGenGeVSim.h"
#include "EVGEN/AliGeVSimParticle.h"
#include "PYTHIA6/AliGenPythia.h"
#include "STEER/AliMagF.h"
#include "STRUCT/AliBODY.h"
#include "STRUCT/AliMAG.h"
#include "STRUCT/AliABSOv3.h"
#include "STRUCT/AliDIPOv3.h"
#include "STRUCT/AliHALLv3.h"
#include "STRUCT/AliFRAMEv2.h"
#include "STRUCT/AliSHILv3.h"
#include "STRUCT/AliPIPEv3.h"
#include "ITS/AliITSv11.h"
#include "TPC/AliTPCv2.h"
#include "TOF/AliTOFv6T0.h"
#include "HMPID/AliHMPIDv3.h"
#include "ZDC/AliZDCv3.h"
#include "TRD/AliTRDv1.h"
#include "FMD/AliFMDv1.h"
#include "MUON/AliMUONv1.h"
#include "PHOS/AliPHOSv1.h"
#include "PMD/AliPMDv1.h"
#include "T0/AliT0v1.h"
#include "EMCAL/AliEMCALv2.h"
#include "ACORDE/AliACORDEv1.h"
#include "VZERO/AliVZEROv7.h"
#endif

enum PprRun_t 
{
    test50,
    kParam_8000,   kParam_4000,  kParam_2000, 
    kHijing_cent1, kHijing_cent2, 
    kHijing_per1,  kHijing_per2, kHijing_per3, kHijing_per4,  kHijing_per5,
    kHijing_jj25,  kHijing_jj50, kHijing_jj75, kHijing_jj100, kHijing_jj200, 
    kHijing_gj25,  kHijing_gj50, kHijing_gj75, kHijing_gj100, kHijing_gj200,
    kHijing_pA, kPythia6, 
    kPythia6Jets20_24,   kPythia6Jets24_29,   kPythia6Jets29_35,
    kPythia6Jets35_42,   kPythia6Jets42_50,   kPythia6Jets50_60,
    kPythia6Jets60_72,   kPythia6Jets72_86,   kPythia6Jets86_104,
    kPythia6Jets104_125, kPythia6Jets125_150, kPythia6Jets150_180,
    kD0PbPb5500, kCharmSemiElPbPb5500, kBeautySemiElPbPb5500,
    kCocktailTRD, kPyJJ, kPyGJ, 
    kMuonCocktailCent1, kMuonCocktailPer1, kMuonCocktailPer4, 
    kMuonCocktailCent1HighPt, kMuonCocktailPer1HighPt, kMuonCocktailPer4HighPt,
    kMuonCocktailCent1Single, kMuonCocktailPer1Single, kMuonCocktailPer4Single,
    kFlow_2_2000, kFlow_10_2000, kFlow_6_2000, kFlow_6_5000,
    kHIJINGplus, kRunMax
};

const char* pprRunName[] = {
    "test50",
    "kParam_8000",   "kParam_4000",  "kParam_2000", 
    "kHijing_cent1", "kHijing_cent2", 
    "kHijing_per1",  "kHijing_per2", "kHijing_per3", "kHijing_per4",  
    "kHijing_per5",
    "kHijing_jj25",  "kHijing_jj50", "kHijing_jj75", "kHijing_jj100", 
    "kHijing_jj200", 
    "kHijing_gj25",  "kHijing_gj50", "kHijing_gj75", "kHijing_gj100", 
    "kHijing_gj200", "kHijing_pA", "kPythia6", 
    "kPythia6Jets20_24",   "kPythia6Jets24_29",   "kPythia6Jets29_35",
    "kPythia6Jets35_42",   "kPythia6Jets42_50",   "kPythia6Jets50_60",
    "kPythia6Jets60_72",   "kPythia6Jets72_86",   "kPythia6Jets86_104",
    "kPythia6Jets104_125", "kPythia6Jets125_150", "kPythia6Jets150_180",
    "kD0PbPb5500", "kCharmSemiElPbPb5500", "kBeautySemiElPbPb5500",
    "kCocktailTRD", "kPyJJ", "kPyGJ", 
    "kMuonCocktailCent1", "kMuonCocktailPer1", "kMuonCocktailPer4",  
    "kMuonCocktailCent1HighPt", "kMuonCocktailPer1HighPt", "kMuonCocktailPer4HighPt",
    "kMuonCocktailCent1Single", "kMuonCocktailPer1Single", "kMuonCocktailPer4Single",
    "kFlow_2_2000", "kFlow_10_2000", "kFlow_6_2000", "kFlow_6_5000", "kHIJINGplus"
};

enum PprRad_t
{
    kGluonRadiation, kNoGluonRadiation
};

enum PprTrigConf_t
{
    kDefaultPPTrig, kDefaultPbPbTrig
};

const char * pprTrigConfName[] = {
    "p-p","Pb-Pb"
};

// This part for configuration    

static PprRun_t srun = kPythia6;
static PprRad_t srad = kGluonRadiation;
static AliMagF::BMap_t smag = AliMagF::k5kG;
static Int_t    sseed = 0; //Set 0 to use the current time
static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration

// Comment line 
static TString  comment;

// Functions
Float_t EtaToTheta(Float_t arg);
AliGenerator* GeneratorFactory(PprRun_t srun);
AliGenHijing* HijingStandard();
AliGenGeVSim* GeVSimStandard(Float_t, Float_t);
void ProcessEnvironmentVars();

void Config()
{
    // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
    // Theta range given through pseudorapidity limits 22/6/2001

    // Get settings from environment variables
    ProcessEnvironmentVars();

    // Set Random Number seed
    gRandom->SetSeed(sseed);
    cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl; 


   // libraries required by geant321
#if defined(__CINT__)
    gSystem->Load("liblhapdf");
    gSystem->Load("libEGPythia6");
    gSystem->Load("libpythia6");
    gSystem->Load("libAliPythia6");
    gSystem->Load("libgeant321");
#endif

    new     TGeant3TGeo("C++ Interface to Geant3");

  // Output every 100 tracks
  ((TGeant3*)gMC)->SetSWIT(4,100);

    AliRunLoader* rl=0x0;

    AliLog::Message(AliLog::kInfo, "Creating Run Loader", "", "", "Config()"," ConfigPPR.C", __LINE__);

    rl = AliRunLoader::Open("galice.root",
			    AliConfig::GetDefaultEventFolderName(),
			    "recreate");
    if (rl == 0x0)
      {
	gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
	return;
      }
    rl->SetCompressionLevel(2);
    rl->SetNumberOfEventsPerFile(100);
    gAlice->SetRunLoader(rl);

    // Set the trigger configuration
    AliSimulation::Instance()->SetTriggerConfig(pprTrigConfName[strig]);
    cout<<"Trigger configuration is set to  "<<pprTrigConfName[strig]<<endl;

    //
    // Set External decayer
    AliDecayer *decayer = new AliDecayerPythia();


    switch (srun) {
    case kD0PbPb5500:
      decayer->SetForceDecay(kHadronicD);
      break;
    case kCharmSemiElPbPb5500:
      decayer->SetForceDecay(kSemiElectronic);
      break;
    case kBeautySemiElPbPb5500:
      decayer->SetForceDecay(kSemiElectronic);
      break;
    default:
      decayer->SetForceDecay(kAll);
      break;
    }
    decayer->Init();
    gMC->SetExternalDecayer(decayer);
    //
    //
    //=======================================================================
    //
    //=======================================================================
    // ************* STEERING parameters FOR ALICE SIMULATION **************
    // --- Specify event type to be tracked through the ALICE setup
    // --- All positions are in cm, angles in degrees, and P and E in GeV

    gMC->SetProcess("DCAY",1);
    gMC->SetProcess("PAIR",1);
    gMC->SetProcess("COMP",1);
    gMC->SetProcess("PHOT",1);
    gMC->SetProcess("PFIS",0);
    gMC->SetProcess("DRAY",0);
    gMC->SetProcess("ANNI",1);
    gMC->SetProcess("BREM",1);
    gMC->SetProcess("MUNU",1);
    gMC->SetProcess("CKOV",1);
    gMC->SetProcess("HADR",1);
    gMC->SetProcess("LOSS",2);
    gMC->SetProcess("MULS",1);
    gMC->SetProcess("RAYL",1);

    Float_t cut = 1.e-3;        // 1MeV cut by default
    Float_t tofmax = 1.e10;

    gMC->SetCut("CUTGAM", cut);
    gMC->SetCut("CUTELE", cut);
    gMC->SetCut("CUTNEU", cut);
    gMC->SetCut("CUTHAD", cut);
    gMC->SetCut("CUTMUO", cut);
    gMC->SetCut("BCUTE",  cut); 
    gMC->SetCut("BCUTM",  cut); 
    gMC->SetCut("DCUTE",  cut); 
    gMC->SetCut("DCUTM",  cut); 
    gMC->SetCut("PPCUTM", cut);
    gMC->SetCut("TOFMAX", tofmax); 

    // Generator Configuration
    AliGenerator* gener = GeneratorFactory(srun);
    gener->SetOrigin(0, 0, 0);    // vertex position
    gener->SetSigma(0, 0, 5.3);   // Sigma in (X,Y,Z) (cm) on IP position
    gener->SetCutVertexZ(1.);     // Truncate at 1 sigma
    gener->SetVertexSmear(kPerEvent); 
    gener->SetTrackingFlag(1);
    gener->Init();
    
    if (smag == k2kG) {
	comment = comment.Append(" | L3 field 0.2 T");
    } else if (smag == k5kG) {
	comment = comment.Append(" | L3 field 0.5 T");
    }
    
    
    if (srad == kGluonRadiation)
    {
	comment = comment.Append(" | Gluon Radiation On");
	
    } else {
	comment = comment.Append(" | Gluon Radiation Off");
    }

    printf("\n \n Comment: %s \n \n", comment.Data());
    
    
    // Field

    TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 1., 1., smag));
    rl->CdGAFile();

//
    Int_t   iABSO   = 1;
    Int_t   iDIPO   = 1;
    Int_t   iFMD    = 0;
    Int_t   iFRAME  = 1;
    Int_t   iHALL   = 1;
    Int_t   iITS    = 1;
    Int_t   iMAG    = 1;
    Int_t   iMUON   = 0;
    Int_t   iPHOS   = 0;
    Int_t   iPIPE   = 1;
    Int_t   iPMD    = 0;
    Int_t   iHMPID  = 0;
    Int_t   iSHIL   = 1;
    Int_t   iT0     = 0;
    Int_t   iTOF    = 1;
    Int_t   iTPC    = 1;
    Int_t   iTRD    = 1;
    Int_t   iZDC    = 0;
    Int_t   iEMCAL  = 0;
    Int_t   iVZERO  = 0;
    Int_t   iACORDE    = 0;

    //=================== Alice BODY parameters =============================
    AliBODY *BODY = new AliBODY("BODY", "Alice envelop");


    if (iMAG)
    {
        //=================== MAG parameters ============================
        // --- Start with Magnet since detector layouts may be depending ---
        // --- on the selected Magnet dimensions ---
        AliMAG *MAG = new AliMAG("MAG", "Magnet");
    }


    if (iABSO)
    {
        //=================== ABSO parameters ============================
        AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber");
    }

    if (iDIPO)
    {
        //=================== DIPO parameters ============================

        AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 3");
    }

    if (iHALL)
    {
        //=================== HALL parameters ============================

        AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall");
    }


    if (iFRAME)
    {
        //=================== FRAME parameters ============================

        AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
	FRAME->SetHoles(1);
    }

    if (iSHIL)
    {
        //=================== SHIL parameters ============================

        AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding Version 3");
    }


    if (iPIPE)
    {
        //=================== PIPE parameters ============================

        AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
    }
 
    if (iITS)
    {
        //=================== ITS parameters ============================

	AliITS *ITS  = new AliITSv11("ITS","ITS v11");
    }

    if (iTPC)
    {
      //============================ TPC parameters =====================
        AliTPC *TPC = new AliTPCv2("TPC", "Default");
    }


    if (iTOF) {
        //=================== TOF parameters ============================
	AliTOF *TOF = new AliTOFv6T0("TOF", "normal TOF");
    }


    if (iHMPID)
    {
        //=================== HMPID parameters ===========================
        AliHMPID *HMPID = new AliHMPIDv3("HMPID", "normal HMPID");

    }


    if (iZDC)
    {
        //=================== ZDC parameters ============================

        AliZDC *ZDC = new AliZDCv3("ZDC", "normal ZDC");
    }

    if (iTRD)
    {
        //=================== TRD parameters ============================

        AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
    }

    if (iFMD)
    {
        //=================== FMD parameters ============================
	AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
   }

    if (iMUON)
    {
        //=================== MUON parameters ===========================
        // New MUONv1 version (geometry defined via builders)
        AliMUON *MUON = new AliMUONv1("MUON", "default");
    }
    //=================== PHOS parameters ===========================

    if (iPHOS)
    {
        AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
    }


    if (iPMD)
    {
        //=================== PMD parameters ============================
        AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
    }

    if (iT0)
    {
        //=================== T0 parameters ============================
        AliT0 *T0 = new AliT0v1("T0", "T0 Detector");
    }

    if (iEMCAL)
    {
        //=================== EMCAL parameters ============================
        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE");
    }

     if (iACORDE)
    {
        //=================== ACORDE parameters ============================
        AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
    }

     if (iVZERO)
    {
        //=================== VZERO parameters ============================
        AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
    }
 
             
}

Float_t EtaToTheta(Float_t arg){
  return (180./TMath::Pi())*2.*atan(exp(-arg));
}



AliGenerator* GeneratorFactory(PprRun_t srun) {
    Int_t isw = 3;
    if (srad == kNoGluonRadiation) isw = 0;
    

    AliGenerator * gGener = 0x0;
    switch (srun) {
    case test50:
      {
	comment = comment.Append(":HIJINGparam test 50 particles");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(50);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(1.4);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-1.4);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
    case kParam_8000:
      {
	comment = comment.Append(":HIJINGparam N=8000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(86030);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
    case kParam_4000:
      {
	comment = comment.Append("HIJINGparam N=4000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(43015);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
	break;
    case kParam_2000:
      {
	comment = comment.Append("HIJINGparam N=2000");
	AliGenHIJINGpara *gener = new AliGenHIJINGpara(21507);
	gener->SetMomentumRange(0, 999999.);
	gener->SetPhiRange(0., 360.);
	// Set pseudorapidity range from -8 to 8.
	Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
	Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
	gener->SetThetaRange(thmin,thmax);
	gGener=gener;
      }
      break;
//
//  Hijing Central
//
    case kHijing_cent1:
      {
	comment = comment.Append("HIJING cent1");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	gGener=gener;
      }
      break;
    case kHijing_cent2:
      {
	comment = comment.Append("HIJING cent2");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 2.);
	gGener=gener;
      }
      break;
//
// Hijing Peripheral 
//
    case kHijing_per1:
      {
	comment = comment.Append("HIJING per1");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(5., 8.6);
	gGener=gener;
      }
      break;
    case kHijing_per2:
      {
	comment = comment.Append("HIJING per2");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(8.6, 11.2);
	gGener=gener;
      }
      break;
    case kHijing_per3:
      {
	comment = comment.Append("HIJING per3");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(11.2, 13.2);
	gGener=gener;
      }
      break;
    case kHijing_per4:
      {
	comment = comment.Append("HIJING per4");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(13.2, 15.);
	gGener=gener;
      }
      break;
    case kHijing_per5:
      {
	comment = comment.Append("HIJING per5");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(15., 100.);
	gGener=gener;
      }
      break;
//
//  Jet-Jet
//
    case kHijing_jj25:
      {
	comment = comment.Append("HIJING Jet 25 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(25.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj50:
      {
	comment = comment.Append("HIJING Jet 50 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(50.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
	break;

    case kHijing_jj75:
      {
	comment = comment.Append("HIJING Jet 75 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(75.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj100:
      {
	comment = comment.Append("HIJING Jet 100 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(100.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;

    case kHijing_jj200:
      {
	comment = comment.Append("HIJING Jet 200 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(1);
	gener->SetPtJet(200.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.3,0.3);
	gener->SetJetPhiRange(75., 165.);   
	gGener=gener;
      }
      break;
//
// Gamma-Jet
//
    case kHijing_gj25:
      {
	comment = comment.Append("HIJING Gamma 25 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(25.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj50:
      {
	comment = comment.Append("HIJING Gamma 50 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(50.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj75:
      {
	comment = comment.Append("HIJING Gamma 75 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(75.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj100:
      {
	comment = comment.Append("HIJING Gamma 100 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(100.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;

    case kHijing_gj200:
      {
	comment = comment.Append("HIJING Gamma 200 GeV");
	AliGenHijing *gener = HijingStandard();
// impact parameter range
	gener->SetImpactParameterRange(0., 5.);
	// trigger
	gener->SetTrigger(2);
	gener->SetPtJet(200.);
	gener->SetRadiation(isw);
	gener->SetSimpleJets(!isw);
	gener->SetJetEtaRange(-0.12, 0.12);
        gener->SetJetPhiRange(220., 320.);
	gGener=gener;
      }
      break;
    case kHijing_pA:
      {
	comment = comment.Append("HIJING pA");

	AliGenCocktail *gener  = new AliGenCocktail();

	AliGenHijing   *hijing = new AliGenHijing(-1);
// centre of mass energy 
	hijing->SetEnergyCMS(TMath::Sqrt(82./208.) * 14000.);
// impact parameter range
	hijing->SetImpactParameterRange(0., 15.);
// reference frame
	hijing->SetReferenceFrame("CMS");
	hijing->SetBoostLHC(1);
// projectile
	hijing->SetProjectile("P", 1, 1);
	hijing->SetTarget    ("A", 208, 82);
// tell hijing to keep the full parent child chain
	hijing->KeepFullEvent();
// enable jet quenching
	hijing->SetJetQuenching(0);
// enable shadowing
	hijing->SetShadowing(1);
// Don't track spectators
	hijing->SetSpectators(0);
// kinematic selection
	hijing->SetSelectAll(0);
//
	AliGenSlowNucleons*  gray    = new AliGenSlowNucleons(1);
	AliSlowNucleonModel* model   = new AliSlowNucleonModelExp();
	gray->SetSlowNucleonModel(model);
	gray->SetDebug(1);
	gener->AddGenerator(hijing,"Hijing pPb", 1);
	gener->AddGenerator(gray,  "Gray Particles",1);
	gGener=gener;
      }
      break;
    case kPythia6:
      {
        comment = comment.Append(":Pythia p-p @ 14 TeV");
        AliGenPythia *gener = new AliGenPythia(-1); 
        gener->SetMomentumRange(0,999999);
        gener->SetThetaRange(0., 180.);
        gener->SetYRange(-12,12);
        gener->SetPtRange(0,1000);
        gener->SetProcess(kPyMb);
        gener->SetEnergyCMS(14000.);
	gGener=gener;
      }
      break;
    case kPythia6Jets20_24:
      {
        comment = comment.Append(":Pythia jets 20-24 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(20., 24.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets24_29:
      {
        comment = comment.Append(":Pythia jets 24-29 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(24., 29.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets29_35:
      {
        comment = comment.Append(":Pythia jets 29-35 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(29., 35.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets35_42:
      {
        comment = comment.Append(":Pythia jets 35-42 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(35., 42.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets42_50:
      {
        comment = comment.Append(":Pythia jets 42-50 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(42., 50.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets50_60:
      {
        comment = comment.Append(":Pythia jets 50-60 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(50., 60.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets60_72:
      {
        comment = comment.Append(":Pythia jets 60-72 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(60., 72.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets72_86:
      {
        comment = comment.Append(":Pythia jets 72-86 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(72., 86.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets86_104:
      {
        comment = comment.Append(":Pythia jets 86-104 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(86., 104.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets104_125:
      {
        comment = comment.Append(":Pythia jets 105-125 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(104., 125.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets125_150:
      {
        comment = comment.Append(":Pythia jets 125-150 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(125., 150.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kPythia6Jets150_180:
      {
        comment = comment.Append(":Pythia jets 150-180 GeV @ 5.5 TeV");
        AliGenPythia * gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);//        Centre of mass energy
	gener->SetProcess(kPyJets);//        Process type
	gener->SetJetEtaRange(-0.5, 0.5);//  Final state kinematic cuts
	gener->SetJetPhiRange(0., 360.);
	gener->SetJetEtRange(10., 1000.);
	gener->SetGluonRadiation(1,1);
	//    gener->SetPtKick(0.);
	//   Structure function
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(150., 180.);// Pt transfer of the hard scattering
	gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
	gener->SetForceDecay(kAll);//  Decay type (semielectronic, etc.)
	gGener=gener;
      }
      break;
    case kD0PbPb5500:
      {
	comment = comment.Append(" D0 in Pb-Pb at 5.5 TeV");
	AliGenPythia * gener = new AliGenPythia(10);
	gener->SetProcess(kPyD0PbPbMNR);
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(2.1,-1.0);
	gener->SetEnergyCMS(5500.);
	gener->SetNuclei(208,208);
	gener->SetForceDecay(kHadronicD);
	gener->SetYRange(-2,2);
	gener->SetFeedDownHigherFamily(kFALSE);
	gener->SetStackFillOpt(AliGenPythia::kParentSelection);
	gener->SetCountMode(AliGenPythia::kCountParents);
 	gGener=gener;
      }
      break;
    case kCharmSemiElPbPb5500:
      {
	comment = comment.Append(" Charm in Pb-Pb at 5.5 TeV");
	AliGenPythia * gener = new AliGenPythia(10);
	gener->SetProcess(kPyCharmPbPbMNR);
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(2.1,-1.0);
	gener->SetEnergyCMS(5500.);
	gener->SetNuclei(208,208);
	gener->SetForceDecay(kSemiElectronic);
	gener->SetYRange(-2,2);
	gener->SetFeedDownHigherFamily(kFALSE);
	gener->SetCountMode(AliGenPythia::kCountParents);
	gGener=gener;
      }
      break;
    case kBeautySemiElPbPb5500:
      {
	comment = comment.Append(" Beauty in Pb-Pb at 5.5 TeV");
	AliGenPythia *gener = new AliGenPythia(10);
	gener->SetProcess(kPyBeautyPbPbMNR);
	gener->SetStrucFunc(kCTEQ4L);
	gener->SetPtHard(2.75,-1.0);
	gener->SetEnergyCMS(5500.);
	gener->SetNuclei(208,208);
	gener->SetForceDecay(kSemiElectronic);
	gener->SetYRange(-2,2);
	gener->SetFeedDownHigherFamily(kFALSE);
	gener->SetCountMode(AliGenPythia::kCountParents);
	gGener=gener;
      }
      break;
    case kCocktailTRD:
      {
	comment = comment.Append(" Cocktail for TRD at 5.5 TeV");
	AliGenCocktail *gener  = new AliGenCocktail();
	
	AliGenParam *phi = new AliGenParam(10,
                                           new AliGenMUONlib(),
                                           AliGenMUONlib::kPhi,
                                           "Vogt PbPb");

	phi->SetPtRange(0, 100);
	phi->SetYRange(-1., +1.);
	phi->SetForceDecay(kDiElectron);

	AliGenParam *omega = new AliGenParam(10,
					     new AliGenMUONlib(),
					     AliGenMUONlib::kOmega,
					     "Vogt PbPb");

	omega->SetPtRange(0, 100);
	omega->SetYRange(-1., +1.);
	omega->SetForceDecay(kDiElectron);
	
	AliGenParam *jpsi = new AliGenParam(10,
					    new AliGenMUONlib(),
					    AliGenMUONlib::kJpsiFamily,
					    "Vogt PbPb");

	jpsi->SetPtRange(0, 100);
	jpsi->SetYRange(-1., +1.);
	jpsi->SetForceDecay(kDiElectron);

	AliGenParam *ups = new AliGenParam(10,
					   new AliGenMUONlib(),
					   AliGenMUONlib::kUpsilonFamily,
					   "Vogt PbPb");
	ups->SetPtRange(0, 100);
	ups->SetYRange(-1., +1.);
	ups->SetForceDecay(kDiElectron);
	
	AliGenParam *charm = new AliGenParam(10,
					     new AliGenMUONlib(), 
					     AliGenMUONlib::kCharm,
					     "central");
	charm->SetPtRange(0, 100);
	charm->SetYRange(-1.5, +1.5);
	charm->SetForceDecay(kSemiElectronic);
	
	
	AliGenParam *beauty = new AliGenParam(10,
					      new AliGenMUONlib(), 
					      AliGenMUONlib::kBeauty,
					      "central");
	beauty->SetPtRange(0, 100);
	beauty->SetYRange(-1.5, +1.5);
	beauty->SetForceDecay(kSemiElectronic);

	AliGenParam *beautyJ = new AliGenParam(10,
					       new AliGenMUONlib(), 
					       AliGenMUONlib::kBeauty,
					       "central");
	beautyJ->SetPtRange(0, 100);
	beautyJ->SetYRange(-1.5, +1.5);
	beautyJ->SetForceDecay(kBJpsiDiElectron);

	gener->AddGenerator(phi,"Phi",1);
	gener->AddGenerator(omega,"Omega",1);
	gener->AddGenerator(jpsi,"J/psi",1);
	gener->AddGenerator(ups,"Upsilon",1);
	gener->AddGenerator(charm,"Charm",1);
	gener->AddGenerator(beauty,"Beauty",1);
	gener->AddGenerator(beautyJ,"J/Psi from Beauty",1);
	gGener=gener;
      }
      break;
    case kPyJJ:
      {
	comment = comment.Append(" Jet-jet at 5.5 TeV");
	AliGenPythia *gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);
	gener->SetProcess(kPyJets);
	Double_t ptHardMin=10.0, ptHardMax=-1.0;
	gener->SetPtHard(ptHardMin,ptHardMax);
	gener->SetYHard(-0.7,0.7);
	gener->SetJetEtaRange(-0.2,0.2);
	gener->SetEventListRange(0,1);
	gGener=gener;
      }
      break;
    case kPyGJ:
      {
	comment = comment.Append(" Gamma-jet at 5.5 TeV");
	AliGenPythia *gener = new AliGenPythia(-1);
	gener->SetEnergyCMS(5500.);
	gener->SetProcess(kPyDirectGamma);
	Double_t ptHardMin=10.0, ptHardMax=-1.0;
	gener->SetPtHard(ptHardMin,ptHardMax);
	gener->SetYHard(-1.0,1.0);
	gener->SetGammaEtaRange(-0.13,0.13);
	gener->SetGammaPhiRange(210.,330.);
	gener->SetEventListRange(0,1);
	gGener=gener;
      }
      break;
    case kMuonCocktailCent1:
      {
	comment = comment.Append(" Muon Cocktail Cent1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.4,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer1:
      {
	comment = comment.Append(" Muon Cocktail Per1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer4:
      {
	comment = comment.Append(" Muon Cocktail Per4");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailCent1HighPt:
      {
	comment = comment.Append(" Muon Cocktail HighPt Cent1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(2.5);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer1HighPt :
      {
	comment = comment.Append(" Muon Cocktail HighPt Per1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(2.5);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer4HighPt:
      {
	comment = comment.Append(" Muon Cocktail HighPt Per4");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(2.5);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(2);
	gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailCent1Single:
      {
	comment = comment.Append(" Muon Cocktail Single Cent1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(1);
	gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer1Single :
      {
	comment = comment.Append(" Muon Cocktail Single Per1");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(1);
	gener->SetImpactParameterRange(5.,8.6);//Centrality class Per1 for PDC04
	gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
	gGener=gener;
      }
      break;
    case kMuonCocktailPer4Single:
      {
	comment = comment.Append(" Muon Cocktail Single Per4");
	AliGenMUONCocktail * gener = new AliGenMUONCocktail();
	gener->SetPtRange(0.0,100.);       // Transverse momentum range   
	gener->SetPhiRange(0.,360.);    // Azimuthal angle range  
	gener->SetYRange(-4.0,-2.4);
	gener->SetMuonPtCut(0.8);
	gener->SetMuonThetaCut(171.,178.);
	gener->SetMuonMultiplicity(1);
	gener->SetImpactParameterRange(13.2,15.0);//Centrality class Per4 for PDC04
	gGener=gener;
      }
      break;
    case kFlow_2_2000:
    {
	comment = comment.Append(" Flow with dN/deta  = 2000, vn = 2%");
	gGener = GeVSimStandard(2000., 2.);
    }
    break;
    
    case kFlow_10_2000:
    {
	comment = comment.Append(" Flow with dN/deta  = 2000, vn = 10%");
	gGener = GeVSimStandard(2000., 10.);
    }
    break;
    
    case kFlow_6_2000:
    {
	comment = comment.Append(" Flow with dN/deta  = 2000, vn = 6%");
	gGener = GeVSimStandard(2000., 6.);
    }
    break;
    
    case kFlow_6_5000:
    {
	comment = comment.Append(" Flow with dN/deta  = 5000, vn = 6%");
	gGener = GeVSimStandard(5000., 6.);
    }
    break;
    case kHIJINGplus:
    {
	//
	// The cocktail
	AliGenCocktail *gener  = new AliGenCocktail();

	//
	// Charm production by Pythia
	AliGenPythia * genpyc = new AliGenPythia(230);
	genpyc->SetProcess(kPyCharmPbPbMNR);
	genpyc->SetStrucFunc(kCTEQ4L);
	genpyc->SetPtHard(2.1,-1.0);
	genpyc->SetEnergyCMS(5500.);
	genpyc->SetNuclei(208,208);
	genpyc->SetYRange(-999,999);
	genpyc->SetForceDecay(kAll);
	genpyc->SetFeedDownHigherFamily(kFALSE);
	genpyc->SetCountMode(AliGenPythia::kCountParents);
	//
	// Beauty production by Pythia
	AliGenPythia * genpyb = new AliGenPythia(9);
	genpyb->SetProcess(kPyBeautyPbPbMNR);
	genpyb->SetStrucFunc(kCTEQ4L);
	genpyb->SetPtHard(2.75,-1.0);
	genpyb->SetEnergyCMS(5500.);
	genpyb->SetNuclei(208,208);
	genpyb->SetYRange(-999,999);
	genpyb->SetForceDecay(kAll);
	genpyb->SetFeedDownHigherFamily(kFALSE);
	genpyb->SetCountMode(AliGenPythia::kCountParents);
        //
        // Hyperons
	//
	AliGenSTRANGElib *lib = new AliGenSTRANGElib();
	Int_t particle;
	// Xi
	particle = kXiMinus;
	AliGenParam *genXi = new AliGenParam(16,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));
	genXi->SetPtRange(0., 12.);
	genXi->SetYRange(-1.1, 1.1);
	genXi->SetForceDecay(kNoDecay);	
 
	//
	// Omega
	particle = kOmegaMinus;
	AliGenParam *genOmega = new AliGenParam(10,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));     
	genOmega->SetPtRange(0, 12.);
	genOmega->SetYRange(-1.1, 1.1);
	genOmega->SetForceDecay(kNoDecay);
	
	//
	// Central Hijing 
	AliGenHijing *genHi = HijingStandard();
	genHi->SwitchOffHeavyQuarks(kTRUE);
	genHi->SetImpactParameterRange(0.,5.);
        //
	// Add everything to the cocktail and shake ...
	gener->AddGenerator(genHi,    "Hijing cent1", 1);
	gener->AddGenerator(genpyc,   "Extra charm",  1);
	gener->AddGenerator(genpyb,   "Extra beauty", 1);
	gener->AddGenerator(genXi,    "Xi"          , 1);
	gener->AddGenerator(genOmega, "Omega",        1);
	gGener = gener;
    }
    break;
    default: break;
    }
    
    return gGener;
}

AliGenHijing* HijingStandard()
{
    AliGenHijing *gener = new AliGenHijing(-1);
// centre of mass energy 
    gener->SetEnergyCMS(5500.);
// reference frame
    gener->SetReferenceFrame("CMS");
// projectile
     gener->SetProjectile("A", 208, 82);
     gener->SetTarget    ("A", 208, 82);
// tell hijing to keep the full parent child chain
     gener->KeepFullEvent();
// enable jet quenching
     gener->SetJetQuenching(1);
// enable shadowing
     gener->SetShadowing(1);
// neutral pion and heavy particle decays switched off
     gener->SetDecaysOff(1);
// Don't track spectators
     gener->SetSpectators(0);
// kinematic selection
     gener->SetSelectAll(0);
     return gener;
}

AliGenGeVSim* GeVSimStandard(Float_t mult, Float_t vn)
{
    AliGenGeVSim* gener = new AliGenGeVSim(0);
//
// Mult is the number of charged particles in |eta| < 0.5
// Vn is in (%)
//
// Sigma of the Gaussian dN/deta
    Float_t sigma_eta  = 2.75;
//
// Maximum eta
    Float_t etamax     = 7.00;
//
//
// Scale from multiplicity in |eta| < 0.5 to |eta| < |etamax|	
    Float_t mm = mult * (TMath::Erf(etamax/sigma_eta/sqrt(2.)) / TMath::Erf(0.5/sigma_eta/sqrt(2.))); 
//
// Scale from charged to total multiplicity
// 
    mm *= 1.587;
//
// Vn 
    vn /= 100.;    	 
//
// Define particles
//
//
// 78% Pions (26% pi+, 26% pi-, 26% p0)              T = 250 MeV
    AliGeVSimParticle *pp =  new AliGeVSimParticle(kPiPlus,  1, 0.26 * mm, 0.25, sigma_eta) ;
    AliGeVSimParticle *pm =  new AliGeVSimParticle(kPiMinus, 1, 0.26 * mm, 0.25, sigma_eta) ;
    AliGeVSimParticle *p0 =  new AliGeVSimParticle(kPi0,     1, 0.26 * mm, 0.25, sigma_eta) ;
//
// 12% Kaons (3% K0short, 3% K0long, 3% K+, 3% K-)   T = 300 MeV
    AliGeVSimParticle *ks =  new AliGeVSimParticle(kK0Short, 1, 0.03 * mm, 0.30, sigma_eta) ;
    AliGeVSimParticle *kl =  new AliGeVSimParticle(kK0Long,  1, 0.03 * mm, 0.30, sigma_eta) ;
    AliGeVSimParticle *kp =  new AliGeVSimParticle(kKPlus,   1, 0.03 * mm, 0.30, sigma_eta) ;
    AliGeVSimParticle *km =  new AliGeVSimParticle(kKMinus,  1, 0.03 * mm, 0.30, sigma_eta) ;
//
// 10% Protons / Neutrons (5% Protons, 5% Neutrons)  T = 250 MeV
    AliGeVSimParticle *pr =  new AliGeVSimParticle(kProton,  1, 0.05 * mm, 0.25, sigma_eta) ;
    AliGeVSimParticle *ne =  new AliGeVSimParticle(kNeutron, 1, 0.05 * mm, 0.25, sigma_eta) ;
//
// Set Elliptic Flow properties 	

    Float_t pTsaturation = 2. ;

    pp->SetEllipticParam(vn,pTsaturation,0.) ;
    pm->SetEllipticParam(vn,pTsaturation,0.) ;
    p0->SetEllipticParam(vn,pTsaturation,0.) ;
    pr->SetEllipticParam(vn,pTsaturation,0.) ;
    ne->SetEllipticParam(vn,pTsaturation,0.) ;
    ks->SetEllipticParam(vn,pTsaturation,0.) ;
    kl->SetEllipticParam(vn,pTsaturation,0.) ;
    kp->SetEllipticParam(vn,pTsaturation,0.) ;
    km->SetEllipticParam(vn,pTsaturation,0.) ;
//
// Set Direct Flow properties	
    pp->SetDirectedParam(vn,1.0,0.) ;
    pm->SetDirectedParam(vn,1.0,0.) ;
    p0->SetDirectedParam(vn,1.0,0.) ;
    pr->SetDirectedParam(vn,1.0,0.) ;
    ne->SetDirectedParam(vn,1.0,0.) ;
    ks->SetDirectedParam(vn,1.0,0.) ;
    kl->SetDirectedParam(vn,1.0,0.) ;
    kp->SetDirectedParam(vn,1.0,0.) ;
    km->SetDirectedParam(vn,1.0,0.) ;
//
// Add particles to the list
    gener->AddParticleType(pp) ;
    gener->AddParticleType(pm) ;
    gener->AddParticleType(p0) ;
    gener->AddParticleType(pr) ;
    gener->AddParticleType(ne) ;
    gener->AddParticleType(ks) ;
    gener->AddParticleType(kl) ;
    gener->AddParticleType(kp) ;
    gener->AddParticleType(km) ;
//	
// Random Ev.Plane ----------------------------------
    TF1 *rpa = new TF1("gevsimPsiRndm","1", 0, 360);
// --------------------------------------------------
    gener->SetPtRange(0., 9.) ; // Use a resonable range! (used for bin size in numerical integration)
    gener->SetPhiRange(0, 360);
    //
    // Set pseudorapidity range 
    Float_t thmin = EtaToTheta(+etamax);   
    Float_t thmax = EtaToTheta(-etamax);   
    gener->SetThetaRange(thmin,thmax);     
    return gener;
}



void ProcessEnvironmentVars()
{
    // Run type
    if (gSystem->Getenv("CONFIG_RUN_TYPE")) {
      for (Int_t iRun = 0; iRun < kRunMax; iRun++) {
	if (strcmp(gSystem->Getenv("CONFIG_RUN_TYPE"), pprRunName[iRun])==0) {
	  srun = (PprRun_t)iRun;
	  cout<<"Run type set to "<<pprRunName[iRun]<<endl;
	}
      }
    }

    // Random Number seed
    if (gSystem->Getenv("CONFIG_SEED")) {
      sseed = atoi(gSystem->Getenv("CONFIG_SEED"));
    }
}
 ConfigPP.C:1
 ConfigPP.C:2
 ConfigPP.C:3
 ConfigPP.C:4
 ConfigPP.C:5
 ConfigPP.C:6
 ConfigPP.C:7
 ConfigPP.C:8
 ConfigPP.C:9
 ConfigPP.C:10
 ConfigPP.C:11
 ConfigPP.C:12
 ConfigPP.C:13
 ConfigPP.C:14
 ConfigPP.C:15
 ConfigPP.C:16
 ConfigPP.C:17
 ConfigPP.C:18
 ConfigPP.C:19
 ConfigPP.C:20
 ConfigPP.C:21
 ConfigPP.C:22
 ConfigPP.C:23
 ConfigPP.C:24
 ConfigPP.C:25
 ConfigPP.C:26
 ConfigPP.C:27
 ConfigPP.C:28
 ConfigPP.C:29
 ConfigPP.C:30
 ConfigPP.C:31
 ConfigPP.C:32
 ConfigPP.C:33
 ConfigPP.C:34
 ConfigPP.C:35
 ConfigPP.C:36
 ConfigPP.C:37
 ConfigPP.C:38
 ConfigPP.C:39
 ConfigPP.C:40
 ConfigPP.C:41
 ConfigPP.C:42
 ConfigPP.C:43
 ConfigPP.C:44
 ConfigPP.C:45
 ConfigPP.C:46
 ConfigPP.C:47
 ConfigPP.C:48
 ConfigPP.C:49
 ConfigPP.C:50
 ConfigPP.C:51
 ConfigPP.C:52
 ConfigPP.C:53
 ConfigPP.C:54
 ConfigPP.C:55
 ConfigPP.C:56
 ConfigPP.C:57
 ConfigPP.C:58
 ConfigPP.C:59
 ConfigPP.C:60
 ConfigPP.C:61
 ConfigPP.C:62
 ConfigPP.C:63
 ConfigPP.C:64
 ConfigPP.C:65
 ConfigPP.C:66
 ConfigPP.C:67
 ConfigPP.C:68
 ConfigPP.C:69
 ConfigPP.C:70
 ConfigPP.C:71
 ConfigPP.C:72
 ConfigPP.C:73
 ConfigPP.C:74
 ConfigPP.C:75
 ConfigPP.C:76
 ConfigPP.C:77
 ConfigPP.C:78
 ConfigPP.C:79
 ConfigPP.C:80
 ConfigPP.C:81
 ConfigPP.C:82
 ConfigPP.C:83
 ConfigPP.C:84
 ConfigPP.C:85
 ConfigPP.C:86
 ConfigPP.C:87
 ConfigPP.C:88
 ConfigPP.C:89
 ConfigPP.C:90
 ConfigPP.C:91
 ConfigPP.C:92
 ConfigPP.C:93
 ConfigPP.C:94
 ConfigPP.C:95
 ConfigPP.C:96
 ConfigPP.C:97
 ConfigPP.C:98
 ConfigPP.C:99
 ConfigPP.C:100
 ConfigPP.C:101
 ConfigPP.C:102
 ConfigPP.C:103
 ConfigPP.C:104
 ConfigPP.C:105
 ConfigPP.C:106
 ConfigPP.C:107
 ConfigPP.C:108
 ConfigPP.C:109
 ConfigPP.C:110
 ConfigPP.C:111
 ConfigPP.C:112
 ConfigPP.C:113
 ConfigPP.C:114
 ConfigPP.C:115
 ConfigPP.C:116
 ConfigPP.C:117
 ConfigPP.C:118
 ConfigPP.C:119
 ConfigPP.C:120
 ConfigPP.C:121
 ConfigPP.C:122
 ConfigPP.C:123
 ConfigPP.C:124
 ConfigPP.C:125
 ConfigPP.C:126
 ConfigPP.C:127
 ConfigPP.C:128
 ConfigPP.C:129
 ConfigPP.C:130
 ConfigPP.C:131
 ConfigPP.C:132
 ConfigPP.C:133
 ConfigPP.C:134
 ConfigPP.C:135
 ConfigPP.C:136
 ConfigPP.C:137
 ConfigPP.C:138
 ConfigPP.C:139
 ConfigPP.C:140
 ConfigPP.C:141
 ConfigPP.C:142
 ConfigPP.C:143
 ConfigPP.C:144
 ConfigPP.C:145
 ConfigPP.C:146
 ConfigPP.C:147
 ConfigPP.C:148
 ConfigPP.C:149
 ConfigPP.C:150
 ConfigPP.C:151
 ConfigPP.C:152
 ConfigPP.C:153
 ConfigPP.C:154
 ConfigPP.C:155
 ConfigPP.C:156
 ConfigPP.C:157
 ConfigPP.C:158
 ConfigPP.C:159
 ConfigPP.C:160
 ConfigPP.C:161
 ConfigPP.C:162
 ConfigPP.C:163
 ConfigPP.C:164
 ConfigPP.C:165
 ConfigPP.C:166
 ConfigPP.C:167
 ConfigPP.C:168
 ConfigPP.C:169
 ConfigPP.C:170
 ConfigPP.C:171
 ConfigPP.C:172
 ConfigPP.C:173
 ConfigPP.C:174
 ConfigPP.C:175
 ConfigPP.C:176
 ConfigPP.C:177
 ConfigPP.C:178
 ConfigPP.C:179
 ConfigPP.C:180
 ConfigPP.C:181
 ConfigPP.C:182
 ConfigPP.C:183
 ConfigPP.C:184
 ConfigPP.C:185
 ConfigPP.C:186
 ConfigPP.C:187
 ConfigPP.C:188
 ConfigPP.C:189
 ConfigPP.C:190
 ConfigPP.C:191
 ConfigPP.C:192
 ConfigPP.C:193
 ConfigPP.C:194
 ConfigPP.C:195
 ConfigPP.C:196
 ConfigPP.C:197
 ConfigPP.C:198
 ConfigPP.C:199
 ConfigPP.C:200
 ConfigPP.C:201
 ConfigPP.C:202
 ConfigPP.C:203
 ConfigPP.C:204
 ConfigPP.C:205
 ConfigPP.C:206
 ConfigPP.C:207
 ConfigPP.C:208
 ConfigPP.C:209
 ConfigPP.C:210
 ConfigPP.C:211
 ConfigPP.C:212
 ConfigPP.C:213
 ConfigPP.C:214
 ConfigPP.C:215
 ConfigPP.C:216
 ConfigPP.C:217
 ConfigPP.C:218
 ConfigPP.C:219
 ConfigPP.C:220
 ConfigPP.C:221
 ConfigPP.C:222
 ConfigPP.C:223
 ConfigPP.C:224
 ConfigPP.C:225
 ConfigPP.C:226
 ConfigPP.C:227
 ConfigPP.C:228
 ConfigPP.C:229
 ConfigPP.C:230
 ConfigPP.C:231
 ConfigPP.C:232
 ConfigPP.C:233
 ConfigPP.C:234
 ConfigPP.C:235
 ConfigPP.C:236
 ConfigPP.C:237
 ConfigPP.C:238
 ConfigPP.C:239
 ConfigPP.C:240
 ConfigPP.C:241
 ConfigPP.C:242
 ConfigPP.C:243
 ConfigPP.C:244
 ConfigPP.C:245
 ConfigPP.C:246
 ConfigPP.C:247
 ConfigPP.C:248
 ConfigPP.C:249
 ConfigPP.C:250
 ConfigPP.C:251
 ConfigPP.C:252
 ConfigPP.C:253
 ConfigPP.C:254
 ConfigPP.C:255
 ConfigPP.C:256
 ConfigPP.C:257
 ConfigPP.C:258
 ConfigPP.C:259
 ConfigPP.C:260
 ConfigPP.C:261
 ConfigPP.C:262
 ConfigPP.C:263
 ConfigPP.C:264
 ConfigPP.C:265
 ConfigPP.C:266
 ConfigPP.C:267
 ConfigPP.C:268
 ConfigPP.C:269
 ConfigPP.C:270
 ConfigPP.C:271
 ConfigPP.C:272
 ConfigPP.C:273
 ConfigPP.C:274
 ConfigPP.C:275
 ConfigPP.C:276
 ConfigPP.C:277
 ConfigPP.C:278
 ConfigPP.C:279
 ConfigPP.C:280
 ConfigPP.C:281
 ConfigPP.C:282
 ConfigPP.C:283
 ConfigPP.C:284
 ConfigPP.C:285
 ConfigPP.C:286
 ConfigPP.C:287
 ConfigPP.C:288
 ConfigPP.C:289
 ConfigPP.C:290
 ConfigPP.C:291
 ConfigPP.C:292
 ConfigPP.C:293
 ConfigPP.C:294
 ConfigPP.C:295
 ConfigPP.C:296
 ConfigPP.C:297
 ConfigPP.C:298
 ConfigPP.C:299
 ConfigPP.C:300
 ConfigPP.C:301
 ConfigPP.C:302
 ConfigPP.C:303
 ConfigPP.C:304
 ConfigPP.C:305
 ConfigPP.C:306
 ConfigPP.C:307
 ConfigPP.C:308
 ConfigPP.C:309
 ConfigPP.C:310
 ConfigPP.C:311
 ConfigPP.C:312
 ConfigPP.C:313
 ConfigPP.C:314
 ConfigPP.C:315
 ConfigPP.C:316
 ConfigPP.C:317
 ConfigPP.C:318
 ConfigPP.C:319
 ConfigPP.C:320
 ConfigPP.C:321
 ConfigPP.C:322
 ConfigPP.C:323
 ConfigPP.C:324
 ConfigPP.C:325
 ConfigPP.C:326
 ConfigPP.C:327
 ConfigPP.C:328
 ConfigPP.C:329
 ConfigPP.C:330
 ConfigPP.C:331
 ConfigPP.C:332
 ConfigPP.C:333
 ConfigPP.C:334
 ConfigPP.C:335
 ConfigPP.C:336
 ConfigPP.C:337
 ConfigPP.C:338
 ConfigPP.C:339
 ConfigPP.C:340
 ConfigPP.C:341
 ConfigPP.C:342
 ConfigPP.C:343
 ConfigPP.C:344
 ConfigPP.C:345
 ConfigPP.C:346
 ConfigPP.C:347
 ConfigPP.C:348
 ConfigPP.C:349
 ConfigPP.C:350
 ConfigPP.C:351
 ConfigPP.C:352
 ConfigPP.C:353
 ConfigPP.C:354
 ConfigPP.C:355
 ConfigPP.C:356
 ConfigPP.C:357
 ConfigPP.C:358
 ConfigPP.C:359
 ConfigPP.C:360
 ConfigPP.C:361
 ConfigPP.C:362
 ConfigPP.C:363
 ConfigPP.C:364
 ConfigPP.C:365
 ConfigPP.C:366
 ConfigPP.C:367
 ConfigPP.C:368
 ConfigPP.C:369
 ConfigPP.C:370
 ConfigPP.C:371
 ConfigPP.C:372
 ConfigPP.C:373
 ConfigPP.C:374
 ConfigPP.C:375
 ConfigPP.C:376
 ConfigPP.C:377
 ConfigPP.C:378
 ConfigPP.C:379
 ConfigPP.C:380
 ConfigPP.C:381
 ConfigPP.C:382
 ConfigPP.C:383
 ConfigPP.C:384
 ConfigPP.C:385
 ConfigPP.C:386
 ConfigPP.C:387
 ConfigPP.C:388
 ConfigPP.C:389
 ConfigPP.C:390
 ConfigPP.C:391
 ConfigPP.C:392
 ConfigPP.C:393
 ConfigPP.C:394
 ConfigPP.C:395
 ConfigPP.C:396
 ConfigPP.C:397
 ConfigPP.C:398
 ConfigPP.C:399
 ConfigPP.C:400
 ConfigPP.C:401
 ConfigPP.C:402
 ConfigPP.C:403
 ConfigPP.C:404
 ConfigPP.C:405
 ConfigPP.C:406
 ConfigPP.C:407
 ConfigPP.C:408
 ConfigPP.C:409
 ConfigPP.C:410
 ConfigPP.C:411
 ConfigPP.C:412
 ConfigPP.C:413
 ConfigPP.C:414
 ConfigPP.C:415
 ConfigPP.C:416
 ConfigPP.C:417
 ConfigPP.C:418
 ConfigPP.C:419
 ConfigPP.C:420
 ConfigPP.C:421
 ConfigPP.C:422
 ConfigPP.C:423
 ConfigPP.C:424
 ConfigPP.C:425
 ConfigPP.C:426
 ConfigPP.C:427
 ConfigPP.C:428
 ConfigPP.C:429
 ConfigPP.C:430
 ConfigPP.C:431
 ConfigPP.C:432
 ConfigPP.C:433
 ConfigPP.C:434
 ConfigPP.C:435
 ConfigPP.C:436
 ConfigPP.C:437
 ConfigPP.C:438
 ConfigPP.C:439
 ConfigPP.C:440
 ConfigPP.C:441
 ConfigPP.C:442
 ConfigPP.C:443
 ConfigPP.C:444
 ConfigPP.C:445
 ConfigPP.C:446
 ConfigPP.C:447
 ConfigPP.C:448
 ConfigPP.C:449
 ConfigPP.C:450
 ConfigPP.C:451
 ConfigPP.C:452
 ConfigPP.C:453
 ConfigPP.C:454
 ConfigPP.C:455
 ConfigPP.C:456
 ConfigPP.C:457
 ConfigPP.C:458
 ConfigPP.C:459
 ConfigPP.C:460
 ConfigPP.C:461
 ConfigPP.C:462
 ConfigPP.C:463
 ConfigPP.C:464
 ConfigPP.C:465
 ConfigPP.C:466
 ConfigPP.C:467
 ConfigPP.C:468
 ConfigPP.C:469
 ConfigPP.C:470
 ConfigPP.C:471
 ConfigPP.C:472
 ConfigPP.C:473
 ConfigPP.C:474
 ConfigPP.C:475
 ConfigPP.C:476
 ConfigPP.C:477
 ConfigPP.C:478
 ConfigPP.C:479
 ConfigPP.C:480
 ConfigPP.C:481
 ConfigPP.C:482
 ConfigPP.C:483
 ConfigPP.C:484
 ConfigPP.C:485
 ConfigPP.C:486
 ConfigPP.C:487
 ConfigPP.C:488
 ConfigPP.C:489
 ConfigPP.C:490
 ConfigPP.C:491
 ConfigPP.C:492
 ConfigPP.C:493
 ConfigPP.C:494
 ConfigPP.C:495
 ConfigPP.C:496
 ConfigPP.C:497
 ConfigPP.C:498
 ConfigPP.C:499
 ConfigPP.C:500
 ConfigPP.C:501
 ConfigPP.C:502
 ConfigPP.C:503
 ConfigPP.C:504
 ConfigPP.C:505
 ConfigPP.C:506
 ConfigPP.C:507
 ConfigPP.C:508
 ConfigPP.C:509
 ConfigPP.C:510
 ConfigPP.C:511
 ConfigPP.C:512
 ConfigPP.C:513
 ConfigPP.C:514
 ConfigPP.C:515
 ConfigPP.C:516
 ConfigPP.C:517
 ConfigPP.C:518
 ConfigPP.C:519
 ConfigPP.C:520
 ConfigPP.C:521
 ConfigPP.C:522
 ConfigPP.C:523
 ConfigPP.C:524
 ConfigPP.C:525
 ConfigPP.C:526
 ConfigPP.C:527
 ConfigPP.C:528
 ConfigPP.C:529
 ConfigPP.C:530
 ConfigPP.C:531
 ConfigPP.C:532
 ConfigPP.C:533
 ConfigPP.C:534
 ConfigPP.C:535
 ConfigPP.C:536
 ConfigPP.C:537
 ConfigPP.C:538
 ConfigPP.C:539
 ConfigPP.C:540
 ConfigPP.C:541
 ConfigPP.C:542
 ConfigPP.C:543
 ConfigPP.C:544
 ConfigPP.C:545
 ConfigPP.C:546
 ConfigPP.C:547
 ConfigPP.C:548
 ConfigPP.C:549
 ConfigPP.C:550
 ConfigPP.C:551
 ConfigPP.C:552
 ConfigPP.C:553
 ConfigPP.C:554
 ConfigPP.C:555
 ConfigPP.C:556
 ConfigPP.C:557
 ConfigPP.C:558
 ConfigPP.C:559
 ConfigPP.C:560
 ConfigPP.C:561
 ConfigPP.C:562
 ConfigPP.C:563
 ConfigPP.C:564
 ConfigPP.C:565
 ConfigPP.C:566
 ConfigPP.C:567
 ConfigPP.C:568
 ConfigPP.C:569
 ConfigPP.C:570
 ConfigPP.C:571
 ConfigPP.C:572
 ConfigPP.C:573
 ConfigPP.C:574
 ConfigPP.C:575
 ConfigPP.C:576
 ConfigPP.C:577
 ConfigPP.C:578
 ConfigPP.C:579
 ConfigPP.C:580
 ConfigPP.C:581
 ConfigPP.C:582
 ConfigPP.C:583
 ConfigPP.C:584
 ConfigPP.C:585
 ConfigPP.C:586
 ConfigPP.C:587
 ConfigPP.C:588
 ConfigPP.C:589
 ConfigPP.C:590
 ConfigPP.C:591
 ConfigPP.C:592
 ConfigPP.C:593
 ConfigPP.C:594
 ConfigPP.C:595
 ConfigPP.C:596
 ConfigPP.C:597
 ConfigPP.C:598
 ConfigPP.C:599
 ConfigPP.C:600
 ConfigPP.C:601
 ConfigPP.C:602
 ConfigPP.C:603
 ConfigPP.C:604
 ConfigPP.C:605
 ConfigPP.C:606
 ConfigPP.C:607
 ConfigPP.C:608
 ConfigPP.C:609
 ConfigPP.C:610
 ConfigPP.C:611
 ConfigPP.C:612
 ConfigPP.C:613
 ConfigPP.C:614
 ConfigPP.C:615
 ConfigPP.C:616
 ConfigPP.C:617
 ConfigPP.C:618
 ConfigPP.C:619
 ConfigPP.C:620
 ConfigPP.C:621
 ConfigPP.C:622
 ConfigPP.C:623
 ConfigPP.C:624
 ConfigPP.C:625
 ConfigPP.C:626
 ConfigPP.C:627
 ConfigPP.C:628
 ConfigPP.C:629
 ConfigPP.C:630
 ConfigPP.C:631
 ConfigPP.C:632
 ConfigPP.C:633
 ConfigPP.C:634
 ConfigPP.C:635
 ConfigPP.C:636
 ConfigPP.C:637
 ConfigPP.C:638
 ConfigPP.C:639
 ConfigPP.C:640
 ConfigPP.C:641
 ConfigPP.C:642
 ConfigPP.C:643
 ConfigPP.C:644
 ConfigPP.C:645
 ConfigPP.C:646
 ConfigPP.C:647
 ConfigPP.C:648
 ConfigPP.C:649
 ConfigPP.C:650
 ConfigPP.C:651
 ConfigPP.C:652
 ConfigPP.C:653
 ConfigPP.C:654
 ConfigPP.C:655
 ConfigPP.C:656
 ConfigPP.C:657
 ConfigPP.C:658
 ConfigPP.C:659
 ConfigPP.C:660
 ConfigPP.C:661
 ConfigPP.C:662
 ConfigPP.C:663
 ConfigPP.C:664
 ConfigPP.C:665
 ConfigPP.C:666
 ConfigPP.C:667
 ConfigPP.C:668
 ConfigPP.C:669
 ConfigPP.C:670
 ConfigPP.C:671
 ConfigPP.C:672
 ConfigPP.C:673
 ConfigPP.C:674
 ConfigPP.C:675
 ConfigPP.C:676
 ConfigPP.C:677
 ConfigPP.C:678
 ConfigPP.C:679
 ConfigPP.C:680
 ConfigPP.C:681
 ConfigPP.C:682
 ConfigPP.C:683
 ConfigPP.C:684
 ConfigPP.C:685
 ConfigPP.C:686
 ConfigPP.C:687
 ConfigPP.C:688
 ConfigPP.C:689
 ConfigPP.C:690
 ConfigPP.C:691
 ConfigPP.C:692
 ConfigPP.C:693
 ConfigPP.C:694
 ConfigPP.C:695
 ConfigPP.C:696
 ConfigPP.C:697
 ConfigPP.C:698
 ConfigPP.C:699
 ConfigPP.C:700
 ConfigPP.C:701
 ConfigPP.C:702
 ConfigPP.C:703
 ConfigPP.C:704
 ConfigPP.C:705
 ConfigPP.C:706
 ConfigPP.C:707
 ConfigPP.C:708
 ConfigPP.C:709
 ConfigPP.C:710
 ConfigPP.C:711
 ConfigPP.C:712
 ConfigPP.C:713
 ConfigPP.C:714
 ConfigPP.C:715
 ConfigPP.C:716
 ConfigPP.C:717
 ConfigPP.C:718
 ConfigPP.C:719
 ConfigPP.C:720
 ConfigPP.C:721
 ConfigPP.C:722
 ConfigPP.C:723
 ConfigPP.C:724
 ConfigPP.C:725
 ConfigPP.C:726
 ConfigPP.C:727
 ConfigPP.C:728
 ConfigPP.C:729
 ConfigPP.C:730
 ConfigPP.C:731
 ConfigPP.C:732
 ConfigPP.C:733
 ConfigPP.C:734
 ConfigPP.C:735
 ConfigPP.C:736
 ConfigPP.C:737
 ConfigPP.C:738
 ConfigPP.C:739
 ConfigPP.C:740
 ConfigPP.C:741
 ConfigPP.C:742
 ConfigPP.C:743
 ConfigPP.C:744
 ConfigPP.C:745
 ConfigPP.C:746
 ConfigPP.C:747
 ConfigPP.C:748
 ConfigPP.C:749
 ConfigPP.C:750
 ConfigPP.C:751
 ConfigPP.C:752
 ConfigPP.C:753
 ConfigPP.C:754
 ConfigPP.C:755
 ConfigPP.C:756
 ConfigPP.C:757
 ConfigPP.C:758
 ConfigPP.C:759
 ConfigPP.C:760
 ConfigPP.C:761
 ConfigPP.C:762
 ConfigPP.C:763
 ConfigPP.C:764
 ConfigPP.C:765
 ConfigPP.C:766
 ConfigPP.C:767
 ConfigPP.C:768
 ConfigPP.C:769
 ConfigPP.C:770
 ConfigPP.C:771
 ConfigPP.C:772
 ConfigPP.C:773
 ConfigPP.C:774
 ConfigPP.C:775
 ConfigPP.C:776
 ConfigPP.C:777
 ConfigPP.C:778
 ConfigPP.C:779
 ConfigPP.C:780
 ConfigPP.C:781
 ConfigPP.C:782
 ConfigPP.C:783
 ConfigPP.C:784
 ConfigPP.C:785
 ConfigPP.C:786
 ConfigPP.C:787
 ConfigPP.C:788
 ConfigPP.C:789
 ConfigPP.C:790
 ConfigPP.C:791
 ConfigPP.C:792
 ConfigPP.C:793
 ConfigPP.C:794
 ConfigPP.C:795
 ConfigPP.C:796
 ConfigPP.C:797
 ConfigPP.C:798
 ConfigPP.C:799
 ConfigPP.C:800
 ConfigPP.C:801
 ConfigPP.C:802
 ConfigPP.C:803
 ConfigPP.C:804
 ConfigPP.C:805
 ConfigPP.C:806
 ConfigPP.C:807
 ConfigPP.C:808
 ConfigPP.C:809
 ConfigPP.C:810
 ConfigPP.C:811
 ConfigPP.C:812
 ConfigPP.C:813
 ConfigPP.C:814
 ConfigPP.C:815
 ConfigPP.C:816
 ConfigPP.C:817
 ConfigPP.C:818
 ConfigPP.C:819
 ConfigPP.C:820
 ConfigPP.C:821
 ConfigPP.C:822
 ConfigPP.C:823
 ConfigPP.C:824
 ConfigPP.C:825
 ConfigPP.C:826
 ConfigPP.C:827
 ConfigPP.C:828
 ConfigPP.C:829
 ConfigPP.C:830
 ConfigPP.C:831
 ConfigPP.C:832
 ConfigPP.C:833
 ConfigPP.C:834
 ConfigPP.C:835
 ConfigPP.C:836
 ConfigPP.C:837
 ConfigPP.C:838
 ConfigPP.C:839
 ConfigPP.C:840
 ConfigPP.C:841
 ConfigPP.C:842
 ConfigPP.C:843
 ConfigPP.C:844
 ConfigPP.C:845
 ConfigPP.C:846
 ConfigPP.C:847
 ConfigPP.C:848
 ConfigPP.C:849
 ConfigPP.C:850
 ConfigPP.C:851
 ConfigPP.C:852
 ConfigPP.C:853
 ConfigPP.C:854
 ConfigPP.C:855
 ConfigPP.C:856
 ConfigPP.C:857
 ConfigPP.C:858
 ConfigPP.C:859
 ConfigPP.C:860
 ConfigPP.C:861
 ConfigPP.C:862
 ConfigPP.C:863
 ConfigPP.C:864
 ConfigPP.C:865
 ConfigPP.C:866
 ConfigPP.C:867
 ConfigPP.C:868
 ConfigPP.C:869
 ConfigPP.C:870
 ConfigPP.C:871
 ConfigPP.C:872
 ConfigPP.C:873
 ConfigPP.C:874
 ConfigPP.C:875
 ConfigPP.C:876
 ConfigPP.C:877
 ConfigPP.C:878
 ConfigPP.C:879
 ConfigPP.C:880
 ConfigPP.C:881
 ConfigPP.C:882
 ConfigPP.C:883
 ConfigPP.C:884
 ConfigPP.C:885
 ConfigPP.C:886
 ConfigPP.C:887
 ConfigPP.C:888
 ConfigPP.C:889
 ConfigPP.C:890
 ConfigPP.C:891
 ConfigPP.C:892
 ConfigPP.C:893
 ConfigPP.C:894
 ConfigPP.C:895
 ConfigPP.C:896
 ConfigPP.C:897
 ConfigPP.C:898
 ConfigPP.C:899
 ConfigPP.C:900
 ConfigPP.C:901
 ConfigPP.C:902
 ConfigPP.C:903
 ConfigPP.C:904
 ConfigPP.C:905
 ConfigPP.C:906
 ConfigPP.C:907
 ConfigPP.C:908
 ConfigPP.C:909
 ConfigPP.C:910
 ConfigPP.C:911
 ConfigPP.C:912
 ConfigPP.C:913
 ConfigPP.C:914
 ConfigPP.C:915
 ConfigPP.C:916
 ConfigPP.C:917
 ConfigPP.C:918
 ConfigPP.C:919
 ConfigPP.C:920
 ConfigPP.C:921
 ConfigPP.C:922
 ConfigPP.C:923
 ConfigPP.C:924
 ConfigPP.C:925
 ConfigPP.C:926
 ConfigPP.C:927
 ConfigPP.C:928
 ConfigPP.C:929
 ConfigPP.C:930
 ConfigPP.C:931
 ConfigPP.C:932
 ConfigPP.C:933
 ConfigPP.C:934
 ConfigPP.C:935
 ConfigPP.C:936
 ConfigPP.C:937
 ConfigPP.C:938
 ConfigPP.C:939
 ConfigPP.C:940
 ConfigPP.C:941
 ConfigPP.C:942
 ConfigPP.C:943
 ConfigPP.C:944
 ConfigPP.C:945
 ConfigPP.C:946
 ConfigPP.C:947
 ConfigPP.C:948
 ConfigPP.C:949
 ConfigPP.C:950
 ConfigPP.C:951
 ConfigPP.C:952
 ConfigPP.C:953
 ConfigPP.C:954
 ConfigPP.C:955
 ConfigPP.C:956
 ConfigPP.C:957
 ConfigPP.C:958
 ConfigPP.C:959
 ConfigPP.C:960
 ConfigPP.C:961
 ConfigPP.C:962
 ConfigPP.C:963
 ConfigPP.C:964
 ConfigPP.C:965
 ConfigPP.C:966
 ConfigPP.C:967
 ConfigPP.C:968
 ConfigPP.C:969
 ConfigPP.C:970
 ConfigPP.C:971
 ConfigPP.C:972
 ConfigPP.C:973
 ConfigPP.C:974
 ConfigPP.C:975
 ConfigPP.C:976
 ConfigPP.C:977
 ConfigPP.C:978
 ConfigPP.C:979
 ConfigPP.C:980
 ConfigPP.C:981
 ConfigPP.C:982
 ConfigPP.C:983
 ConfigPP.C:984
 ConfigPP.C:985
 ConfigPP.C:986
 ConfigPP.C:987
 ConfigPP.C:988
 ConfigPP.C:989
 ConfigPP.C:990
 ConfigPP.C:991
 ConfigPP.C:992
 ConfigPP.C:993
 ConfigPP.C:994
 ConfigPP.C:995
 ConfigPP.C:996
 ConfigPP.C:997
 ConfigPP.C:998
 ConfigPP.C:999
 ConfigPP.C:1000
 ConfigPP.C:1001
 ConfigPP.C:1002
 ConfigPP.C:1003
 ConfigPP.C:1004
 ConfigPP.C:1005
 ConfigPP.C:1006
 ConfigPP.C:1007
 ConfigPP.C:1008
 ConfigPP.C:1009
 ConfigPP.C:1010
 ConfigPP.C:1011
 ConfigPP.C:1012
 ConfigPP.C:1013
 ConfigPP.C:1014
 ConfigPP.C:1015
 ConfigPP.C:1016
 ConfigPP.C:1017
 ConfigPP.C:1018
 ConfigPP.C:1019
 ConfigPP.C:1020
 ConfigPP.C:1021
 ConfigPP.C:1022
 ConfigPP.C:1023
 ConfigPP.C:1024
 ConfigPP.C:1025
 ConfigPP.C:1026
 ConfigPP.C:1027
 ConfigPP.C:1028
 ConfigPP.C:1029
 ConfigPP.C:1030
 ConfigPP.C:1031
 ConfigPP.C:1032
 ConfigPP.C:1033
 ConfigPP.C:1034
 ConfigPP.C:1035
 ConfigPP.C:1036
 ConfigPP.C:1037
 ConfigPP.C:1038
 ConfigPP.C:1039
 ConfigPP.C:1040
 ConfigPP.C:1041
 ConfigPP.C:1042
 ConfigPP.C:1043
 ConfigPP.C:1044
 ConfigPP.C:1045
 ConfigPP.C:1046
 ConfigPP.C:1047
 ConfigPP.C:1048
 ConfigPP.C:1049
 ConfigPP.C:1050
 ConfigPP.C:1051
 ConfigPP.C:1052
 ConfigPP.C:1053
 ConfigPP.C:1054
 ConfigPP.C:1055
 ConfigPP.C:1056
 ConfigPP.C:1057
 ConfigPP.C:1058
 ConfigPP.C:1059
 ConfigPP.C:1060
 ConfigPP.C:1061
 ConfigPP.C:1062
 ConfigPP.C:1063
 ConfigPP.C:1064
 ConfigPP.C:1065
 ConfigPP.C:1066
 ConfigPP.C:1067
 ConfigPP.C:1068
 ConfigPP.C:1069
 ConfigPP.C:1070
 ConfigPP.C:1071
 ConfigPP.C:1072
 ConfigPP.C:1073
 ConfigPP.C:1074
 ConfigPP.C:1075
 ConfigPP.C:1076
 ConfigPP.C:1077
 ConfigPP.C:1078
 ConfigPP.C:1079
 ConfigPP.C:1080
 ConfigPP.C:1081
 ConfigPP.C:1082
 ConfigPP.C:1083
 ConfigPP.C:1084
 ConfigPP.C:1085
 ConfigPP.C:1086
 ConfigPP.C:1087
 ConfigPP.C:1088
 ConfigPP.C:1089
 ConfigPP.C:1090
 ConfigPP.C:1091
 ConfigPP.C:1092
 ConfigPP.C:1093
 ConfigPP.C:1094
 ConfigPP.C:1095
 ConfigPP.C:1096
 ConfigPP.C:1097
 ConfigPP.C:1098
 ConfigPP.C:1099
 ConfigPP.C:1100
 ConfigPP.C:1101
 ConfigPP.C:1102
 ConfigPP.C:1103
 ConfigPP.C:1104
 ConfigPP.C:1105
 ConfigPP.C:1106
 ConfigPP.C:1107
 ConfigPP.C:1108
 ConfigPP.C:1109
 ConfigPP.C:1110
 ConfigPP.C:1111
 ConfigPP.C:1112
 ConfigPP.C:1113
 ConfigPP.C:1114
 ConfigPP.C:1115
 ConfigPP.C:1116
 ConfigPP.C:1117
 ConfigPP.C:1118
 ConfigPP.C:1119
 ConfigPP.C:1120
 ConfigPP.C:1121
 ConfigPP.C:1122
 ConfigPP.C:1123
 ConfigPP.C:1124
 ConfigPP.C:1125
 ConfigPP.C:1126
 ConfigPP.C:1127
 ConfigPP.C:1128
 ConfigPP.C:1129
 ConfigPP.C:1130
 ConfigPP.C:1131
 ConfigPP.C:1132
 ConfigPP.C:1133
 ConfigPP.C:1134
 ConfigPP.C:1135
 ConfigPP.C:1136
 ConfigPP.C:1137
 ConfigPP.C:1138
 ConfigPP.C:1139
 ConfigPP.C:1140
 ConfigPP.C:1141
 ConfigPP.C:1142
 ConfigPP.C:1143
 ConfigPP.C:1144
 ConfigPP.C:1145
 ConfigPP.C:1146
 ConfigPP.C:1147
 ConfigPP.C:1148
 ConfigPP.C:1149
 ConfigPP.C:1150
 ConfigPP.C:1151
 ConfigPP.C:1152
 ConfigPP.C:1153
 ConfigPP.C:1154
 ConfigPP.C:1155
 ConfigPP.C:1156
 ConfigPP.C:1157
 ConfigPP.C:1158
 ConfigPP.C:1159
 ConfigPP.C:1160
 ConfigPP.C:1161
 ConfigPP.C:1162
 ConfigPP.C:1163
 ConfigPP.C:1164
 ConfigPP.C:1165
 ConfigPP.C:1166
 ConfigPP.C:1167
 ConfigPP.C:1168
 ConfigPP.C:1169
 ConfigPP.C:1170
 ConfigPP.C:1171
 ConfigPP.C:1172
 ConfigPP.C:1173
 ConfigPP.C:1174
 ConfigPP.C:1175
 ConfigPP.C:1176
 ConfigPP.C:1177
 ConfigPP.C:1178
 ConfigPP.C:1179
 ConfigPP.C:1180
 ConfigPP.C:1181
 ConfigPP.C:1182
 ConfigPP.C:1183
 ConfigPP.C:1184
 ConfigPP.C:1185
 ConfigPP.C:1186
 ConfigPP.C:1187
 ConfigPP.C:1188
 ConfigPP.C:1189
 ConfigPP.C:1190
 ConfigPP.C:1191
 ConfigPP.C:1192
 ConfigPP.C:1193
 ConfigPP.C:1194
 ConfigPP.C:1195
 ConfigPP.C:1196
 ConfigPP.C:1197
 ConfigPP.C:1198
 ConfigPP.C:1199
 ConfigPP.C:1200
 ConfigPP.C:1201
 ConfigPP.C:1202
 ConfigPP.C:1203
 ConfigPP.C:1204
 ConfigPP.C:1205
 ConfigPP.C:1206
 ConfigPP.C:1207
 ConfigPP.C:1208
 ConfigPP.C:1209
 ConfigPP.C:1210
 ConfigPP.C:1211
 ConfigPP.C:1212
 ConfigPP.C:1213
 ConfigPP.C:1214
 ConfigPP.C:1215
 ConfigPP.C:1216
 ConfigPP.C:1217
 ConfigPP.C:1218
 ConfigPP.C:1219
 ConfigPP.C:1220
 ConfigPP.C:1221
 ConfigPP.C:1222
 ConfigPP.C:1223
 ConfigPP.C:1224
 ConfigPP.C:1225
 ConfigPP.C:1226
 ConfigPP.C:1227
 ConfigPP.C:1228
 ConfigPP.C:1229
 ConfigPP.C:1230
 ConfigPP.C:1231
 ConfigPP.C:1232
 ConfigPP.C:1233
 ConfigPP.C:1234
 ConfigPP.C:1235
 ConfigPP.C:1236
 ConfigPP.C:1237
 ConfigPP.C:1238
 ConfigPP.C:1239
 ConfigPP.C:1240
 ConfigPP.C:1241
 ConfigPP.C:1242
 ConfigPP.C:1243
 ConfigPP.C:1244
 ConfigPP.C:1245
 ConfigPP.C:1246
 ConfigPP.C:1247
 ConfigPP.C:1248
 ConfigPP.C:1249
 ConfigPP.C:1250
 ConfigPP.C:1251
 ConfigPP.C:1252
 ConfigPP.C:1253
 ConfigPP.C:1254
 ConfigPP.C:1255
 ConfigPP.C:1256
 ConfigPP.C:1257
 ConfigPP.C:1258
 ConfigPP.C:1259
 ConfigPP.C:1260
 ConfigPP.C:1261
 ConfigPP.C:1262
 ConfigPP.C:1263
 ConfigPP.C:1264
 ConfigPP.C:1265
 ConfigPP.C:1266
 ConfigPP.C:1267
 ConfigPP.C:1268
 ConfigPP.C:1269
 ConfigPP.C:1270
 ConfigPP.C:1271
 ConfigPP.C:1272
 ConfigPP.C:1273
 ConfigPP.C:1274
 ConfigPP.C:1275
 ConfigPP.C:1276
 ConfigPP.C:1277
 ConfigPP.C:1278
 ConfigPP.C:1279
 ConfigPP.C:1280
 ConfigPP.C:1281
 ConfigPP.C:1282
 ConfigPP.C:1283
 ConfigPP.C:1284
 ConfigPP.C:1285
 ConfigPP.C:1286
 ConfigPP.C:1287
 ConfigPP.C:1288
 ConfigPP.C:1289
 ConfigPP.C:1290
 ConfigPP.C:1291
 ConfigPP.C:1292
 ConfigPP.C:1293
 ConfigPP.C:1294
 ConfigPP.C:1295
 ConfigPP.C:1296
 ConfigPP.C:1297
 ConfigPP.C:1298
 ConfigPP.C:1299
 ConfigPP.C:1300
 ConfigPP.C:1301
 ConfigPP.C:1302
 ConfigPP.C:1303
 ConfigPP.C:1304
 ConfigPP.C:1305
 ConfigPP.C:1306
 ConfigPP.C:1307
 ConfigPP.C:1308
 ConfigPP.C:1309
 ConfigPP.C:1310
 ConfigPP.C:1311
 ConfigPP.C:1312
 ConfigPP.C:1313
 ConfigPP.C:1314
 ConfigPP.C:1315
 ConfigPP.C:1316
 ConfigPP.C:1317
 ConfigPP.C:1318
 ConfigPP.C:1319
 ConfigPP.C:1320
 ConfigPP.C:1321
 ConfigPP.C:1322
 ConfigPP.C:1323
 ConfigPP.C:1324
 ConfigPP.C:1325
 ConfigPP.C:1326
 ConfigPP.C:1327
 ConfigPP.C:1328
 ConfigPP.C:1329
 ConfigPP.C:1330
 ConfigPP.C:1331
 ConfigPP.C:1332
 ConfigPP.C:1333
 ConfigPP.C:1334
 ConfigPP.C:1335
 ConfigPP.C:1336
 ConfigPP.C:1337
 ConfigPP.C:1338
 ConfigPP.C:1339
 ConfigPP.C:1340
 ConfigPP.C:1341
 ConfigPP.C:1342
 ConfigPP.C:1343
 ConfigPP.C:1344
 ConfigPP.C:1345
 ConfigPP.C:1346
 ConfigPP.C:1347
 ConfigPP.C:1348
 ConfigPP.C:1349
 ConfigPP.C:1350
 ConfigPP.C:1351
 ConfigPP.C:1352
 ConfigPP.C:1353
 ConfigPP.C:1354
 ConfigPP.C:1355
 ConfigPP.C:1356
 ConfigPP.C:1357
 ConfigPP.C:1358
 ConfigPP.C:1359
 ConfigPP.C:1360
 ConfigPP.C:1361
 ConfigPP.C:1362
 ConfigPP.C:1363
 ConfigPP.C:1364
 ConfigPP.C:1365
 ConfigPP.C:1366
 ConfigPP.C:1367
 ConfigPP.C:1368
 ConfigPP.C:1369
 ConfigPP.C:1370
 ConfigPP.C:1371
 ConfigPP.C:1372
 ConfigPP.C:1373
 ConfigPP.C:1374
 ConfigPP.C:1375
 ConfigPP.C:1376
 ConfigPP.C:1377
 ConfigPP.C:1378
 ConfigPP.C:1379
 ConfigPP.C:1380
 ConfigPP.C:1381
 ConfigPP.C:1382
 ConfigPP.C:1383
 ConfigPP.C:1384
 ConfigPP.C:1385
 ConfigPP.C:1386
 ConfigPP.C:1387
 ConfigPP.C:1388
 ConfigPP.C:1389
 ConfigPP.C:1390
 ConfigPP.C:1391
 ConfigPP.C:1392
 ConfigPP.C:1393
 ConfigPP.C:1394
 ConfigPP.C:1395
 ConfigPP.C:1396
 ConfigPP.C:1397
 ConfigPP.C:1398
 ConfigPP.C:1399
 ConfigPP.C:1400
 ConfigPP.C:1401
 ConfigPP.C:1402
 ConfigPP.C:1403
 ConfigPP.C:1404
 ConfigPP.C:1405
 ConfigPP.C:1406
 ConfigPP.C:1407
 ConfigPP.C:1408
 ConfigPP.C:1409
 ConfigPP.C:1410
 ConfigPP.C:1411
 ConfigPP.C:1412
 ConfigPP.C:1413
 ConfigPP.C:1414
 ConfigPP.C:1415
 ConfigPP.C:1416
 ConfigPP.C:1417
 ConfigPP.C:1418
 ConfigPP.C:1419
 ConfigPP.C:1420
 ConfigPP.C:1421
 ConfigPP.C:1422
 ConfigPP.C:1423
 ConfigPP.C:1424
 ConfigPP.C:1425
 ConfigPP.C:1426
 ConfigPP.C:1427
 ConfigPP.C:1428
 ConfigPP.C:1429
 ConfigPP.C:1430
 ConfigPP.C:1431
 ConfigPP.C:1432
 ConfigPP.C:1433
 ConfigPP.C:1434
 ConfigPP.C:1435
 ConfigPP.C:1436
 ConfigPP.C:1437
 ConfigPP.C:1438
 ConfigPP.C:1439
 ConfigPP.C:1440
 ConfigPP.C:1441
 ConfigPP.C:1442
 ConfigPP.C:1443
 ConfigPP.C:1444
 ConfigPP.C:1445
 ConfigPP.C:1446
 ConfigPP.C:1447
 ConfigPP.C:1448
 ConfigPP.C:1449
 ConfigPP.C:1450
 ConfigPP.C:1451
 ConfigPP.C:1452
 ConfigPP.C:1453
 ConfigPP.C:1454
 ConfigPP.C:1455
 ConfigPP.C:1456
 ConfigPP.C:1457
 ConfigPP.C:1458
 ConfigPP.C:1459
 ConfigPP.C:1460
 ConfigPP.C:1461
 ConfigPP.C:1462
 ConfigPP.C:1463
 ConfigPP.C:1464
 ConfigPP.C:1465
 ConfigPP.C:1466
 ConfigPP.C:1467
 ConfigPP.C:1468
 ConfigPP.C:1469
 ConfigPP.C:1470
 ConfigPP.C:1471
 ConfigPP.C:1472
 ConfigPP.C:1473
 ConfigPP.C:1474
 ConfigPP.C:1475
 ConfigPP.C:1476
 ConfigPP.C:1477
 ConfigPP.C:1478
 ConfigPP.C:1479
 ConfigPP.C:1480
 ConfigPP.C:1481
 ConfigPP.C:1482
 ConfigPP.C:1483
 ConfigPP.C:1484
 ConfigPP.C:1485
 ConfigPP.C:1486
 ConfigPP.C:1487
 ConfigPP.C:1488
 ConfigPP.C:1489
 ConfigPP.C:1490
 ConfigPP.C:1491
 ConfigPP.C:1492
 ConfigPP.C:1493
 ConfigPP.C:1494
 ConfigPP.C:1495
 ConfigPP.C:1496
 ConfigPP.C:1497
 ConfigPP.C:1498
 ConfigPP.C:1499
 ConfigPP.C:1500
 ConfigPP.C:1501
 ConfigPP.C:1502
 ConfigPP.C:1503
 ConfigPP.C:1504
 ConfigPP.C:1505
 ConfigPP.C:1506
 ConfigPP.C:1507
 ConfigPP.C:1508
 ConfigPP.C:1509
 ConfigPP.C:1510
 ConfigPP.C:1511
 ConfigPP.C:1512
 ConfigPP.C:1513
 ConfigPP.C:1514
 ConfigPP.C:1515
 ConfigPP.C:1516
 ConfigPP.C:1517
 ConfigPP.C:1518
 ConfigPP.C:1519
 ConfigPP.C:1520
 ConfigPP.C:1521
 ConfigPP.C:1522
 ConfigPP.C:1523
 ConfigPP.C:1524
 ConfigPP.C:1525
 ConfigPP.C:1526
 ConfigPP.C:1527
 ConfigPP.C:1528
 ConfigPP.C:1529
 ConfigPP.C:1530
 ConfigPP.C:1531
 ConfigPP.C:1532
 ConfigPP.C:1533
 ConfigPP.C:1534
 ConfigPP.C:1535
 ConfigPP.C:1536
 ConfigPP.C:1537
 ConfigPP.C:1538
 ConfigPP.C:1539
 ConfigPP.C:1540
 ConfigPP.C:1541
 ConfigPP.C:1542
 ConfigPP.C:1543
 ConfigPP.C:1544
 ConfigPP.C:1545
 ConfigPP.C:1546
 ConfigPP.C:1547
 ConfigPP.C:1548