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