Float_t EtaToTheta(Float_t arg);
void LoadPythia();
-Int_t year =2012;
-Bool_t checkGeoAndRun=kFALSE;
+Int_t year = 2012;
+Bool_t checkGeoAndRun = kFALSE;
void Config()
{
//AliLog::SetGlobalDebugLevel(2);
-
- // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
- // Theta range given through pseudorapidity limits 22/6/2001
-
- // Set Random Number seed
- //gRandom->SetSeed(123456); // Set 0 to use the currecnt time
+
+ // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
+ // Theta range given through pseudorapidity limits 22/6/2001
+
+ // Set Random Number seed
+ //gRandom->SetSeed(123456); // Set 0 to use the currecnt time
AliLog::Message(AliLog::kInfo, Form("Seed for random number generation = %d",gRandom->GetSeed()), "Config.C", "Config.C", "Config()","Config.C", __LINE__);
-
+
// Load Pythia libraries
LoadPythia();
-
- // libraries required by geant321
+
+ // libraries required by geant321
#if defined(__CINT__)
- gSystem->Load("libgeant321");
+ gSystem->Load("libgeant321");
#endif
-
- new TGeant3TGeo("C++ Interface to Geant3");
-
- AliRunLoader* rl=0x0;
-
- AliLog::Message(AliLog::kInfo, "Creating Run Loader", "Config.C", "Config.C", "Config()"," Config.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("Pb-Pb");
- cout<<"Trigger configuration is set to Pb-Pb"<<endl;
-
- //
- // Set External decayer
- TVirtualMCDecayer *decayer = new AliDecayerPythia();
-
- decayer->SetForceDecay(kAll);
- 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);
-
-
- int nParticles = 5;
- if (gSystem->Getenv("CONFIG_NPARTICLES"))
- {
- nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
- }
-
- if (gSystem->Getenv("CONFIG_YEAR"))
- {
- year = atoi(gSystem->Getenv("CONFIG_YEAR"));
- }
-
- AliGenBox *gener = new AliGenBox(nParticles);
- gener->SetMomentumRange(1.,10.);
-
- if (year == 2010)
- gener->SetPhiRange(80.0,120.0);
- else if(year == 2011)
- gener->SetPhiRange(80.0,180.0);
- else
- gener->SetPhiRange(80.0,190.0);
+
+ new TGeant3TGeo("C++ Interface to Geant3");
+
+ AliRunLoader* rl=0x0;
+
+ AliLog::Message(AliLog::kInfo, "Creating Run Loader", "Config.C", "Config.C", "Config()"," Config.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("Pb-Pb");
+ cout<<"Trigger configuration is set to Pb-Pb"<<endl;
+
+ //
+ // Set External decayer
+ TVirtualMCDecayer *decayer = new AliDecayerPythia();
+
+ decayer->SetForceDecay(kAll);
+ 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);
+
+
+ int nParticles = 5;
+ if (gSystem->Getenv("CONFIG_NPARTICLES"))
+ {
+ nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
+ }
+
+ if (gSystem->Getenv("CONFIG_YEAR"))
+ {
+ year = atoi(gSystem->Getenv("CONFIG_YEAR"));
+ }
+
+ AliGenBox *gener = new AliGenBox(nParticles);
+ gener->SetMomentumRange(1.,10.);
+
+ if (year == 2010)
+ gener->SetPhiRange(80.0,120.0);
+ else if(year == 2011)
+ gener->SetPhiRange(80.0,180.0);
+ else
+ gener->SetPhiRange(80.0,190.0);
+
+ gener->SetThetaRange(EtaToTheta(0.7), EtaToTheta(-0.7));
+
+ gener->SetOrigin(0,0,0); //vertex position
+ gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position
+ gener->SetPart(kGamma);
+ gener->Init();
+
+ //
+ // Activate this line if you want the vertex smearing to happen
+ // track by track
+ //
+ //gener->SetVertexSmear(perTrack);
+ // Field (L3 0.5 T)
+ TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kG));
+
+ Int_t iABSO = 0;
+ Int_t iDIPO = 0;
+ Int_t iFMD = 0;
+ Int_t iFRAME = 0;
+ Int_t iHALL = 0;
+ Int_t iITS = 0;
+ Int_t iMAG = 0;
+ Int_t iMUON = 0;
+ Int_t iPHOS = 0;
+ Int_t iPIPE = 0;
+ Int_t iPMD = 0;
+ Int_t iHMPID = 0;
+ Int_t iSHIL = 0;
+ Int_t iT0 = 0;
+ Int_t iTOF = 0;
+ Int_t iTPC = 0;
+ Int_t iTRD = 0;
+ Int_t iZDC = 0;
+ Int_t iEMCAL = 1;
+ Int_t iACORDE= 0;
+ Int_t iVZERO = 0;
+ rl->CdGAFile();
+ //=================== 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");
+ }
+
+ 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) {
- gener->SetThetaRange(EtaToTheta(0.7), EtaToTheta(-0.7));
-
- gener->SetOrigin(0,0,0); //vertex position
- gener->SetSigma(0,0,0); //Sigma in (X,Y,Z) (cm) on IP position
- gener->SetPart(kGamma);
- gener->Init();
-
- //
- // Activate this line if you want the vertex smearing to happen
- // track by track
- //
- //gener->SetVertexSmear(perTrack);
- // Field (L3 0.5 T)
- TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kG));
-
- Int_t iABSO = 0;
- Int_t iDIPO = 0;
- Int_t iFMD = 0;
- Int_t iFRAME = 0;
- Int_t iHALL = 0;
- Int_t iITS = 0;
- Int_t iMAG = 0;
- Int_t iMUON = 0;
- Int_t iPHOS = 0;
- Int_t iPIPE = 0;
- Int_t iPMD = 0;
- Int_t iHMPID = 0;
- Int_t iSHIL = 0;
- Int_t iT0 = 0;
- Int_t iTOF = 0;
- Int_t iTPC = 0;
- Int_t iTRD = 0;
- Int_t iZDC = 0;
- Int_t iEMCAL = 1;
- Int_t iACORDE= 0;
- Int_t iVZERO = 0;
- rl->CdGAFile();
- //=================== 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");
- }
-
- 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 ============================
-
- AliITSvPPRasymmFMD *ITS = new AliITSvPPRasymmFMD("ITS","ITS PPR detailed version with asymmetric services");
- }
-
- 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 AliHMPIDv2("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 ============================
-
- if (year == 2010) // d phi = 40 degrees
- AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_FIRSTYEARV1");
- else if (year == 2011) // d phi = 100 degrees
- AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETEV1");
- else if (year > 2011) // d phi = 110 degrees
- AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE12SMV1");
- else // Old configuration with 110 degrees but not perfect geometry
- AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE");
-
- EMCAL->SetCheckRunNumberAndGeoVersion(checkGeoAndRun);
- }
-
- if (iACORDE)
- {
- //=================== ACORDE parameters ============================
- AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
- }
-
- if (iVZERO)
- {
- //=================== ACORDE parameters ============================
- AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
- }
-
- AliLog::Message(AliLog::kInfo, "End of Config", "Config.C", "Config.C", "Config()"," Config.C", __LINE__);
-
+
+ AliITSvPPRasymmFMD *ITS = new AliITSvPPRasymmFMD("ITS","ITS PPR detailed version with asymmetric services");
+ }
+
+ 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 AliHMPIDv2("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 ============================
+ if (year == 2010) // d phi = 40 degrees
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_FIRSTYEARV1", checkGeoAndRun);
+ else if (year == 2011) // d phi = 100 degrees
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETEV1", checkGeoAndRun);
+ else if (year > 2011) // d phi = 110 degrees
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE12SMV1", checkGeoAndRun);
+ else // Old configuration with 110 degrees but not perfect geometry
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE", checkGeoAndRun);
+ }
+
+ if (iACORDE)
+ {
+ //=================== ACORDE parameters ============================
+ AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
+ }
+
+ if (iVZERO)
+ {
+ //=================== ACORDE parameters ============================
+ AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
+ }
+
+ AliLog::Message(AliLog::kInfo, "End of Config", "Config.C", "Config.C", "Config()"," Config.C", __LINE__);
+
}
Float_t EtaToTheta(Float_t arg){
gSystem->Load("libEGPythia6.so"); // TGenerator interface
gSystem->Load("libpythia6.so"); // Pythia
gSystem->Load("libAliPythia6.so"); // ALICE specific
- // implementations
+ // implementations
}