#include "STEER/AliConfig.h"
#include "PYTHIA6/AliDecayerPythia.h"
#include "PYTHIA6/AliGenPythia.h"
-#include "STEER/AliMagFMaps.h"
+#include "STEER/AliMagF.h"
#include "STRUCT/AliBODY.h"
#include "STRUCT/AliMAG.h"
#include "STRUCT/AliABSOv3.h"
#include "ITS/AliITSvPPRasymmFMD.h"
#include "TPC/AliTPCv2.h"
#include "TOF/AliTOFv6T0.h"
-#include "HMPID/AliHMPIDv2.h"
+#include "HMPID/AliHMPIDv3.h"
#include "ZDC/AliZDCv3.h"
#include "TRD/AliTRDv1.h"
#include "FMD/AliFMDv1.h"
#include "PMD/AliPMDv1.h"
#include "T0/AliT0v1.h"
#include "EMCAL/AliEMCALv2.h"
-#include "ACORDE/AliACORDEv0.h"
+#include "ACORDE/AliACORDEv1.h"
#include "VZERO/AliVZEROv7.h"
#endif
{
kNature, kHadr, kSemiEl, kSemiMu
};
-//--- Magnetic Field ---
-enum Mag_t
-{
- k2kG, k4kG, k5kG
-};
-
//--- Trigger config ---
enum TrigConf_t
{
// This part for configuration
static DecayHvFl_t decHvFl = kNature;
-static Mag_t mag = k5kG;
+static AliMagF::BMap_t mag = AliMagF::k5kG;
static TrigConf_t trig = kDefaultPPTrig; // default pp trigger configuration
static Int_t runNumber= 0;
static Int_t eventNumber= 0;
void Config()
{
-
-
- // Get settings from environment variables
+ // Get settings from environment variables
ProcessEnvironmentVars();
+ // Random Number seed
+ if (gSystem->Getenv("CONFIG_SEED")) {
+ seed = atoi(gSystem->Getenv("CONFIG_SEED"));
+ }
+ else if(gSystem->Getenv("DC_EVENT") && gSystem->Getenv("DC_RUN")){
+ seed = runNumber * 100000 + eventNumber;
+ }
+ gRandom->SetSeed(seed);
+ cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
+
// libraries required by geant321
#if defined(__CINT__)
- gSystem->Load("liblhapdf.so"); // Parton density functions
- gSystem->Load("libpythia6.so"); // Pythia
+ gSystem->Load("liblhapdf"); // Parton density functions
+ gSystem->Load("libEGPythia6"); // TGenerator interface
+ gSystem->Load("libpythia6"); // Pythia
+ gSystem->Load("libAliPythia6"); // ALICE specific implementations
gSystem->Load("libgeant321");
- gSystem->Load("libEG");
- gSystem->Load("libEGPythia6.so"); // TGenerator interface
- gSystem->Load("libAliPythia6.so"); // ALICE specific implementations
#endif
new TGeant3TGeo("C++ Interface to Geant3");
//=======================================================================
// Run loader
AliRunLoader* rl=0x0;
+
+ AliLog::Message(AliLog::kInfo, "Creating Run Loader", "", "", "Config()"," ConfigPPR.C", __LINE__);
+
rl = AliRunLoader::Open("galice.root",
AliConfig::GetDefaultEventFolderName(),
"recreate");
return;
}
rl->SetCompressionLevel(2);
- rl->SetNumberOfEventsPerFile(1000);
+ rl->SetNumberOfEventsPerFile(100);
gAlice->SetRunLoader(rl);
- // Run number
- //gAlice->SetRunNumber(runNumber);
-
// Set the trigger configuration
- gAlice->SetTriggerDescriptor(TrigConfName[trig]);
+ AliSimulation::Instance()->SetTriggerConfig(TrigConfName[trig]);
cout<<"Trigger configuration is set to "<<TrigConfName[trig]<<endl;
+ //======================//
+ // Set External decayer //
+ //======================//
+ TVirtualMCDecayer* decayer = new AliDecayerPythia();
+ // DECAYS
+ //
+ switch(decHvFl) {
+ case kNature:
+ decayer->SetForceDecay(kAll);
+ break;
+ case kHadr:
+ decayer->SetForceDecay(kHadronicD);
+ break;
+ case kSemiEl:
+ decayer->SetForceDecay(kSemiElectronic);
+ break;
+ case kSemiMu:
+ decayer->SetForceDecay(kSemiMuonic);
+ break;
+ }
+ decayer->Init();
+ gMC->SetExternalDecayer(decayer);
+ if(proc == kPyJetJetPHOSv2) // in this case we decay the pi0
+ decayer->SetForceDecay(kNeutralPion);
+
//
//=======================================================================
// ************* STEERING parameters FOR ALICE SIMULATION **************
gMC->SetCut("PPCUTM", cut);
gMC->SetCut("TOFMAX", tofmax);
- //======================//
- // Set External decayer //
- //======================//
- TVirtualMCDecayer* decayer = new AliDecayerPythia();
- // DECAYS
- //
- switch(decHvFl) {
- case kNature:
- decayer->SetForceDecay(kAll);
- break;
- case kHadr:
- decayer->SetForceDecay(kHadronicD);
- break;
- case kSemiEl:
- decayer->SetForceDecay(kSemiElectronic);
- break;
- case kSemiMu:
- decayer->SetForceDecay(kSemiMuonic);
- break;
- }
- decayer->Init();
- gMC->SetExternalDecayer(decayer);
- if(proc == kPyJetJetPHOSv2) // in this case we decay the pi0
- decayer->SetForceDecay(kNeutralPion);
//=========================//
// Generator Configuration //
// pythia->SetThetaRange(45,135);
if(proc == kPyJetJetPHOSv2)
- pythia->SetForceDecay(kNeutralPion);
- else
- pythia->SetForceDecay(kAll);
-
- pythia->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
+ pythia->SetForceDecay(kNeutralPion);
+ else
+ pythia->SetForceDecay(kAll);
+
+ pythia->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
pythia->SetPtKick(5); // set the intrinsic kt to 5 GeV/c
gener = pythia;
- }
+ }
// PRIMARY VERTEX
Float_t k = 6e5*(qhat/1.7) ; //qhat=1.7, k = 6e5, default value
AliPythia::Instance()->InitQuenching(0.,0.1,k,0,0.95,6);
- }
+ }
// FIELD
- if (mag == k2kG) {
+ if (mag == AliMagF::k2kG) {
comment = comment.Append(" | L3 field 0.2 T");
- } else if (mag == k4kG) {
- comment = comment.Append(" | L3 field 0.4 T");
- } else if (mag == k5kG) {
+ } else if (mag == AliMagF::k5kG) {
comment = comment.Append(" | L3 field 0.5 T");
}
printf("\n \n Comment: %s \n \n", comment.Data());
-
- AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag);
- field->SetL3ConstField(0); //Using const. field in the barrel
+ // to use constant field in the barrel use:
+ // AliMagF* field = new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kGUniform);
+ AliMagF* field = new AliMagF("Maps","Maps", -1., -1., mag);
+ TGeoGlobalMagField::Instance()->SetField(field);
rl->CdGAFile();
- gAlice->SetField(field);
-
-
Int_t iABSO = 1;
Int_t iACORDE= 1;
// --- on the selected Magnet dimensions ---
AliMAG *MAG = new AliMAG("MAG", "Magnet");
}
-
-
+//
+//
if (iABSO)
{
//=================== ABSO parameters ============================
//=================== ITS parameters ============================
//
- AliITS *ITS = new AliITSv11Hybrid("ITS","ITS v11Hybrid");
+ AliITS *ITS = new AliITSv11("ITS","ITS v11");
}
if (iHMPID)
{
//=================== HMPID parameters ===========================
- AliHMPID *HMPID = new AliHMPIDv2("HMPID", "normal HMPID");
+ AliHMPID *HMPID = new AliHMPIDv3("HMPID", "normal HMPID");
}
AliZDC *ZDC = new AliZDCv3("ZDC", "normal ZDC");
}
- if (iTRD)
+ if (iTRD)
{
//=================== TRD parameters ============================
-
+
AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
- AliTRDgeometry *geoTRD = TRD->GetGeometry();
- // Partial geometry: modules at 2,3,4,6,11,12,14,15
- // starting at 6h in positive direction
- //Hole on SM 13 and 14 for PHOS
- geoTRD->SetSMstatus(13,0);
- geoTRD->SetSMstatus(14,0);
- geoTRD->SetSMstatus(15,0);
+ AliTRDgeometry *geoTRD = TRD->GetGeometry();
}
if (iFMD)
if (iEMCAL)
{
//=================== EMCAL parameters ============================
- AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "ESHISH_77_TRD1_2X2_FINAL_110DEG scTh=0.176 pbTh=0.144");
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETEV1 scTh=0.176 pbTh=0.144");
}
if (iACORDE)
{
//=================== CRT parameters ============================
- AliACORDE *ACORDE = new AliACORDEv0("CRT", "normal ACORDE");
+ AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
}
if (iVZERO)
}
//cout<<"Event number "<<eventNumber<<endl;
- // Random Number seed
- if (gSystem->Getenv("CONFIG_SEED")) {
- seed = atoi(gSystem->Getenv("CONFIG_SEED"));
- }
- else if(gSystem->Getenv("DC_EVENT") && gSystem->Getenv("DC_RUN")){
- seed = runNumber * 100000 + eventNumber;
- }
- gRandom->SetSeed(seed);
cout<<"////////////////////////////////////////////////////////////////////////////////////"<<endl;
cout<<"Seed for random number generation= "<< seed<<" "<< gRandom->GetSeed()<<endl;