// libraries required by fluka21
- cout << "\t* Loading TFluka..." << endl;
- gSystem->Load("libTFluka");
+
+ char * gvmc = gSystem->ExpandPathName("$(G4VMC)/examples/macro/g4libs.C");
+ gROOT->LoadMacro(gvmc);
+ g4libs();
+
+ cout << "\t* Loading Flugg..." << endl;
+ gSystem->Load("libFlugg");
+ cout << "\t* Loading TFluka..." << endl;
+ gSystem->Load("libTFluka");
+
cout << "\t* Instantiating TFluka..." << endl;
new TFluka("C++ Interface to Fluka", 3/*verbositylevel*/);
cout << "\t* Recreating galice.root if needed..." << endl;
- if (!gSystem->Getenv("CONFIG_FILE")) {
- TFile *rootfile = new TFile("galice.root", "recreate");
-
- rootfile->SetCompressionLevel(2);
+
+ if (!gSystem->Getenv("CONFIG_FILE"))
+ {
+ cout<<"Config.C: Creating Run Loader ..."<<endl;
+ AliRunLoader* rl = AliRunLoader::Open("galice.root",AliConfig::fgkDefaultEventFolderName,
+ "recreate");
+ if (rl == 0x0)
+ {
+ gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
+ return;
+ }
+ rl->SetCompressionLevel(2);
+ rl->SetNumberOfEventsPerFile(3);
+ gAlice->SetRunLoader(rl);
}
+
TFluka *fluka = (TFluka *) gMC;
+ fluka->SetCoreInputFileName("corealice.inp");
fluka->SetInputFileName("alice.inp");
-
- //cout << "<== Config.C..." << endl;
- //return;
//
// Set External decayer
TVirtualMCDecayer *decayer = new AliDecayerPythia();
-
decayer->SetForceDecay(kAll);
decayer->Init();
gMC->SetExternalDecayer(decayer);
//
// Physics process control
gMC ->SetProcess("DCAY",1);
- gMC ->SetProcess("PAIR",1);
- gMC ->SetProcess("COMP",1);
- gMC ->SetProcess("PHOT",1);
+ gMC ->SetProcess("PAIR",0);
+ gMC ->SetProcess("COMP",0);
+ gMC ->SetProcess("PHOT",0);
gMC ->SetProcess("PFIS",0);
gMC ->SetProcess("DRAY",0);
- gMC ->SetProcess("ANNI",1);
- gMC ->SetProcess("BREM",1);
+ gMC ->SetProcess("ANNI",0);
+ gMC ->SetProcess("BREM",0);
gMC ->SetProcess("MUNU",1);
- //xx gMC ->SetProcess("CKOV",1);
gMC ->SetProcess("HADR",1); //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
gMC ->SetProcess("LOSS",2);
gMC ->SetProcess("MULS",1);
// Energy cuts
// (in development)
- Float_t cut = 1.e-3; // 1MeV cut by default
+ Float_t cut = 1.e-1; // 100 MeV cut by default
Float_t tofmax = 1.e10;
gMC ->SetCut("CUTGAM",cut);
// --- Specify event type to be tracked through the ALICE setup
// --- All positions are in cm, angles in degrees, and P and E in GeV
if (gSystem->Getenv("CONFIG_NPARTICLES"))
- int nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
+ int nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
else
- int nParticles = 50;
+ int nParticles = 10;
+
cout << "\t* Creating and configuring generator for " << nParticles
<< " particles..." << endl;
gener->SetMomentumRange(0, 999);
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
+ Float_t thmin = EtaToTheta( 0.1); // theta min. <---> eta max
+ Float_t thmax = EtaToTheta(-0.1); // 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
// Activate this line if you want the vertex smearing to happen
// track by track
//
- //gener->SetVertexSmear(perTrack);
- cout << "\t* Setting magnetic field..." << endl;
gAlice->SetField(-999, 2); //Specify maximum magnetic field in Tesla (neg. ==> default field)
-
- cout << "\t* Defining which detectors to load..." << endl;
-
- Int_t iABSO = 0;
- Int_t iCRT = 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 iRICH = 0;
- Int_t iSHIL = 0;
- Int_t iSTART = 0;
- Int_t iTOF = 0;
- Int_t iTPC = 1;
- Int_t iTRD = 0;
- Int_t iZDC = 0;
- Int_t iEMCAL = 0;
-
+ gAlice->SetDebug(10);
+
+ Int_t iABSO = 0; //1
+ Int_t iCRT = 0; //Not good ?
+ Int_t iDIPO = 0; //1
+ Int_t iFMD = 0; //1
+ Int_t iFRAME = 0; //1
+ Int_t iHALL = 0; //1
+ Int_t iITS = 0; //1
+ Int_t iMAG = 0; //1
+ Int_t iMUON = 0; //1. Not good (newFlagLttc=10000 is outside array bounds)
+ Int_t iPHOS = 0; //1
+ Int_t iPIPE = 0; //1
+ Int_t iPMD = 0; //Not good (too many regions)
+ Int_t iRICH = 1; //1. Not good (no tracking with FRAME)
+ Int_t iSHIL = 0; //1. Not good (no tracking) (it works alone)
+ Int_t iSTART = 0; //1. Not good (no tracking) (it works alone)
+ Int_t iTOF = 0; //1. Not good (no tracking) (newFlagLttc=10000 is outside array bounds if alone)
+ Int_t iTPC = 1;
+ Int_t iTRD = 0; //1. Not good (no tracking) (Crash alone with FRAME)
+ Int_t iZDC = 0; //1. Needs SHIL and others
+ Int_t iEMCAL = 0; //Not good (Crash)
+ Int_t iVZERO = 0;
+
cout << "\t* Creating the detectors ..." << endl;
//=================== Alice BODY parameters =============================
AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
//
//
//-----------------------------------------------------------------------------
-
+ //
// gROOT->LoadMacro("SetTPCParam.C");
// AliTPCParam *param = SetTPCParam();
- AliTPC *TPC = new AliTPCv2("TPC", "Default");
-
+ AliTPC *TPC = new AliTPCv1("TPC", "Default");
// All sectors included
TPC->SetSecAL(-1);
TPC->SetSecAU(-1);
-
}
if (iTOF)
//=================== START parameters ============================
AliSTART *START = new AliSTARTv1("START", "START Detector");
}
-
-
- cout << "<== Config.C..." << endl;
+ if (iVZERO)
+ {
+ cout << "\t\t+ VZERO..." << endl;
+ //=================== CRT parameters ============================
+ AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO");
+ }
}
Float_t EtaToTheta(Float_t arg){