#include <TRandom.h>
#include <TSystem.h>
#include <TVirtualMC.h>
-#include <TGeant3.h>
+#include <TGeant3TGeo.h>
#include "STEER/AliRunLoader.h"
#include "STEER/AliRun.h"
#include "STEER/AliConfig.h"
#include "STRUCT/AliFRAMEv2.h"
#include "STRUCT/AliSHILv2.h"
#include "STRUCT/AliPIPEv0.h"
-#include "ITS/AliITSvPPRasymm.h"
+#include "ITS/AliITSvPPRasymmFMD.h"
#include "TPC/AliTPCv2.h"
-#include "TOF/AliTOFv2FHoles.h"
-#include "TOF/AliTOFv4T0.h"
-#include "RICH/AliRICHv3.h"
+#include "TOF/AliTOFv5T0.h"
+#include "RICH/AliRICHv1.h"
#include "ZDC/AliZDCv2.h"
#include "TRD/AliTRDv1.h"
#include "FMD/AliFMDv1.h"
#include "PHOS/AliPHOSv1.h"
#include "PMD/AliPMDv1.h"
#include "START/AliSTARTv1.h"
-#include "EMCAL/AliEMCALv1.h"
+#include "EMCAL/AliEMCALv2.h"
#include "CRT/AliCRTv0.h"
-#include "VZERO/AliVZEROv2.h"
+#include "VZERO/AliVZEROv7.h"
#endif
Float_t EtaToTheta(Float_t arg);
-static Int_t eventsPerRun = 100;
-enum PprGeo_t
-{
- kHoles, kNoHoles
-};
-static PprGeo_t geo = kHoles;
void Config()
{
// Set Random Number seed
gRandom->SetSeed(123456); // Set 0 to use the currecnt time
- cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
+ AliLog::Message(AliLog::kInfo, Form("Seed for random number generation = %d",gRandom->GetSeed()), "Config.C", "Config.C", "Config()","Config.C", __LINE__);
// libraries required by geant321
gSystem->Load("libgeant321");
#endif
- new TGeant3("C++ Interface to Geant3");
+ new TGeant3TGeo("C++ Interface to Geant3");
AliRunLoader* rl=0x0;
- cout<<"Config.C: Creating Run Loader ..."<<endl;
+ AliLog::Message(AliLog::kInfo, "Creating Run Loader", "Config.C", "Config.C", "Config()"," Config.C", __LINE__);
+
rl = AliRunLoader::Open("galice.root",
- AliConfig::fgkDefaultEventFolderName,
+ AliConfig::GetDefaultEventFolderName(),
"recreate");
if (rl == 0x0)
{
rl->SetNumberOfEventsPerFile(3);
gAlice->SetRunLoader(rl);
+ // Set the trigger configuration
+ gAlice->SetTriggerDescriptor("Pb-Pb");
+ cout<<"Trigger configuration is set to Pb-Pb"<<endl;
+
//
// Set External decayer
TVirtualMCDecayer *decayer = new AliDecayerPythia();
gMC->SetCut("TOFMAX", tofmax);
- int nParticles = 30;
+ int nParticles = 100;
if (gSystem->Getenv("CONFIG_NPARTICLES"))
{
nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
}
AliGenCocktail *gener = new AliGenCocktail();
- gener->SetPhiRange(220, 320);
+ gener->SetPhiRange(0, 360);
// Set pseudorapidity range from -8 to 8.
- Float_t thmin = EtaToTheta(0.12); // theta min. <---> eta max
- Float_t thmax = EtaToTheta(-0.12); // theta max. <---> eta min
+ Float_t thmin = EtaToTheta(8); // theta min. <---> eta max
+ Float_t thmax = EtaToTheta(-8); // theta max. <---> eta min
gener->SetThetaRange(thmin,thmax);
gener->SetOrigin(0, 0, 0); //vertex position
gener->SetSigma(0, 0, 0); //Sigma in (X,Y,Z) (cm) on IP position
//=================== FRAME parameters ============================
AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
- if (geo == kHoles) {
- FRAME->SetHoles(1);
- } else {
- FRAME->SetHoles(0);
- }
}
if (iSHIL)
// Detailed geometries:
//
//
- //AliITS *ITS = new AliITSv5symm("ITS","Updated ITS TDR detailed version with symmetric services");
//
- //AliITS *ITS = new AliITSv5asymm("ITS","Updates ITS TDR detailed version with asymmetric services");
- //
- AliITSvPPRasymm *ITS = new AliITSvPPRasymm("ITS","New ITS PPR detailed version with asymmetric services");
- ITS->SetMinorVersion(2); // don't touch this parameter if you're not an ITS developer
- ITS->SetReadDet(kFALSE); // don't touch this parameter if you're not an ITS developer
- // ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det"); // don't touch this parameter if you're not an ITS developer
+ AliITSvPPRasymmFMD *ITS = new AliITSvPPRasymmFMD("ITS","ITS PPR detailed version with asymmetric services");
+ ITS->SetMinorVersion(2); // don't touch this parameter if you're not an ITS developer
+ ITS->SetReadDet(kFALSE); // don't touch this parameter if you're not an ITS developer
+ // ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det"); // don't touch this parameter if you're not an ITS developer
ITS->SetThicknessDet1(200.); // detector thickness on layer 1 must be in the range [100,300]
ITS->SetThicknessDet2(200.); // detector thickness on layer 2 must be in the range [100,300]
- ITS->SetThicknessChip1(200.); // chip thickness on layer 1 must be in the range [150,300]
- ITS->SetThicknessChip2(200.); // chip thickness on layer 2 must be in the range [150,300]
- ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out
- ITS->SetCoolingFluid(1); // 1 --> water ; 0 --> freon
- //
- //AliITSvPPRsymm *ITS = new AliITSvPPRsymm("ITS","New ITS PPR detailed version with symmetric services");
- //ITS->SetMinorVersion(2); // don't touch this parameter if you're not an ITS developer
- //ITS->SetReadDet(kFALSE); // don't touch this parameter if you're not an ITS developer
- //ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det"); // don't touch this parameter if you're not an ITS developer
- //ITS->SetThicknessDet1(200.); // detector thickness on layer 1 must be in the range [100,300]
- //ITS->SetThicknessDet2(200.); // detector thickness on layer 2 must be in the range [100,300]
- //ITS->SetThicknessChip1(200.); // chip thickness on layer 1 must be in the range [150,300]
- //ITS->SetThicknessChip2(200.); // chip thickness on layer 2 must be in the range [150,300]
- //ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out
- //ITS->SetCoolingFluid(1); // 1 --> water ; 0 --> freon
- //
+ ITS->SetThicknessChip1(150.); // chip thickness on layer 1 must be in the range [150,300]
+ ITS->SetThicknessChip2(150.); // chip thickness on layer 2 must be in the range [150,300]
+ ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out
+ ITS->SetCoolingFluid(1); // 1 --> water ; 0 --> freon
+
+
//
// Coarse geometries (warning: no hits are produced with these coarse geometries and they unuseful
// for reconstruction !):
if (iTPC)
{
- //============================ TPC parameters ================================
- // --- This allows the user to specify sectors for the SLOW (TPC geometry 2)
- // --- Simulator. SecAL (SecAU) <0 means that ALL lower (upper)
- // --- sectors are specified, any value other than that requires at least one
- // --- sector (lower or upper)to be specified!
- // --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0)
- // --- sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0)
- // --- SecLows - number of lower sectors specified (up to 6)
- // --- SecUps - number of upper sectors specified (up to 12)
- // --- Sens - sensitive strips for the Slow Simulator !!!
- // --- This does NOT work if all S or L-sectors are specified, i.e.
- // --- if SecAL or SecAU < 0
- //
- //
- //-----------------------------------------------------------------------------
-
- // gROOT->LoadMacro("SetTPCParam.C");
- // AliTPCParam *param = SetTPCParam();
+ //============================ TPC parameters ===================
AliTPC *TPC = new AliTPCv2("TPC", "Default");
-
- // All sectors included
- TPC->SetSecAU(-1);
- TPC->SetSecAL(-1);
}
if (iTOF) {
- if (geo == kHoles) {
//=================== TOF parameters ============================
- AliTOF *TOF = new AliTOFv2FHoles("TOF", "TOF with Holes");
- } else {
- AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF");
- }
+ AliTOF *TOF = new AliTOFv5T0("TOF", "normal TOF");
}
if (iRICH)
{
//=================== RICH parameters ===========================
- AliRICH *RICH = new AliRICHv3("RICH", "normal RICH");
+ AliRICH *RICH = new AliRICHv1("RICH", "normal RICH");
}
//=================== TRD parameters ============================
AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
-
- // Select the gas mixture (0: 97% Xe + 3% isobutane, 1: 90% Xe + 10% CO2)
- TRD->SetGasMix(1);
- if (geo == kHoles) {
- // With hole in front of PHOS
- TRD->SetPHOShole();
- // With hole in front of RICH
- TRD->SetRICHhole();
- }
- // Switch on TR
- AliTRDsim *TRDsim = TRD->CreateTR();
}
if (iFMD)
{
//=================== FMD parameters ============================
AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
- FMD->SetRingsSi1(256);
- FMD->SetRingsSi2(128);
- FMD->SetSectorsSi1(20);
- FMD->SetSectorsSi2(40);
}
if (iMUON)
{
//=================== MUON parameters ===========================
-
+ // New MUONv1 version (geometry defined via builders)
AliMUON *MUON = new AliMUONv1("MUON", "default");
}
//=================== PHOS parameters ===========================
if (iEMCAL)
{
//=================== EMCAL parameters ============================
- AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "G56_2_55_19_104_14");
+ AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "SHISH_77_TRD1_2X2_FINAL_110DEG");
}
if (iCRT)
if (iVZERO)
{
//=================== CRT parameters ============================
- AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO");
+ AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
}
- cout << "End of Config.C" << endl;
+ AliLog::Message(AliLog::kInfo, "End of Config", "Config.C", "Config.C", "Config()"," Config.C", __LINE__);
}