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 PprMag_t
{
    k2kG, k4kG, k5kG
};

enum PprTrigConf_t
{
    kDefaultPPTrig, kDefaultPbPbTrig
};

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

// This part for configuration    

static PprRun_t srun = test50;
static PprRad_t srad = kGluonRadiation;
static PprMag_t smag = 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 == k4kG) {
	comment = comment.Append(" | L3 field 0.4 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., AliMagF::k5kG));
    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;
	Int_t     nParticles = 100;
	 AliGenCocktail *gener = new AliGenCocktail();
	 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);
	 gener->SetOrigin(0, 0, 0);  //vertex position
	 gener->SetSigma(0, 0, 3);   //Sigma in (X,Y,Z) (cm) on IP position
	 
	 AliGenHIJINGpara *hijingparam = new AliGenHIJINGpara(nParticles);
	 hijingparam->SetMomentumRange(0.2, 999);
	 gener->AddGenerator(hijingparam,"HIJING PARAM",1);
	    //
	 for (Float_t imom=0;imom<5;imom+=5){
	   Float_t pmom = imom*20;
	   Int_t nParticles2 =(imom+1);	 
	   //
	   //PIONS	   
	   AliGenBox *genboxPIP = new AliGenBox(nParticles2);
	   genboxPIP->SetPart(211);
	   genboxPIP->SetPtRange(0.2, pmom);
	   AliGenBox *genboxPIM = new AliGenBox(nParticles2);
	   genboxPIM->SetPart(-211);
	   genboxPIM->SetPtRange(0.2, pmom);
	   //Electrons
	   AliGenBox *genboxEP = new AliGenBox(nParticles2);
	   genboxEP->SetPart(11);
	   genboxEP->SetPtRange(0.1, pmom);
	   AliGenBox *genboxEM = new AliGenBox(nParticles2);
	   genboxEM->SetPart(-11);
	   genboxEM->SetPtRange(0.1, pmom);
	 //Kaons
	   AliGenBox *genboxKP = new AliGenBox(nParticles2);
	   genboxKP->SetPart(321);
	   genboxKP->SetPtRange(0.2, pmom);
	   AliGenBox *genboxKM = new AliGenBox(nParticles2);
	   genboxKM->SetPart(-321);
	   genboxKM->SetPtRange(0.2, pmom);
	   // mu
	   AliGenBox *genboxMP = new AliGenBox(nParticles2);
	   genboxMP->SetPart(13);
	   genboxMP->SetPtRange(0.2, pmom);
	   AliGenBox *genboxMM = new AliGenBox(nParticles2);
	   genboxMM->SetPart(-13);
	   genboxMM->SetPtRange(0.2, pmom);
	   // Protons
	   AliGenBox *genboxPP = new AliGenBox(nParticles2);
	   genboxPP->SetPart(2212);
	   genboxPP->SetPtRange(0.2, pmom);
	   AliGenBox *genboxPM = new AliGenBox(nParticles2);
	   genboxPM->SetPart(-2212);
	   genboxPM->SetPtRange(0.2, pmom);	 	   
	   gener->AddGenerator(genboxPIP,"GENBOX",1);
	   gener->AddGenerator(genboxPIM,"GENBOX",1);
	   gener->AddGenerator(genboxEM,"GENBOX",1);
	   gener->AddGenerator(genboxEP,"GENBOX",1);
	   gener->AddGenerator(genboxKM,"GENBOX",1);
	   gener->AddGenerator(genboxKP,"GENBOX",1);
	   gener->AddGenerator(genboxMM,"GENBOX",1);
	   gener->AddGenerator(genboxMP,"GENBOX",1);
	   gener->AddGenerator(genboxPM,"GENBOX",1);
	   gener->AddGenerator(genboxPP,"GENBOX",1);
	 }

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