// // Template for a Config.C file // to be used by AliMuonAccEffSubmitter, which will // replace all instances of VAR_ with something // relevant and useable... #if !defined(__CINT__) || defined(__MAKECINT__) #include #include #include #include #include #include #include "STEER/AliRunLoader.h" #include "STEER/AliRun.h" #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" #include "TDPMjet/AliGenDPMjet.h" #include "STEER/AliMagFCheb.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/AliITSv11Hybrid.h" #include "TPC/AliTPCv2.h" #include "TOF/AliTOFv6T0.h" #include "HMPID/AliHMPIDv3.h" #include "ZDC/AliZDCv3.h" #include "TRD/AliTRDv1.h" #include "TRD/AliTRDgeometry.h" #include "FMD/AliFMDv1.h" #include "MUON/AliMUONv1.h" #include "PHOS/AliPHOSv1.h" #include "PHOS/AliPHOSSimParam.h" #include "PMD/AliPMDv1.h" #include "T0/AliT0v1.h" #include "EMCAL/AliEMCALv2.h" #include "ACORDE/AliACORDEv1.h" #include "VZERO/AliVZEROv7.h" #endif //--- Functions --- class AliGenPythia; void Config() { // Libraries required by geant321 #if defined(__CINT__) gSystem->Load("liblhapdf"); // Parton density functions gSystem->Load("libEGPythia6"); // TGenerator interface gSystem->Load("libpythia6"); // Pythia 6.2 gSystem->Load("libAliPythia6"); // ALICE specific implementations gSystem->Load("libgeant321"); if ( TString("VAR_GENERATOR").Contains("pythia8",TString::kIgnoreCase) ) { std::cout << "Setting up Pythia8 required libraries and env. variables" << std::endl; gSystem->Load("libpythia8.so"); gSystem->Load("libAliPythia8.so"); VAR_PYTHIA8_INCLUDES VAR_PYTHIA8_SETENV } #endif new TGeant3TGeo("C++ Interface to Geant3"); //======================================================================= // Create the output file AliRunLoader* rl=0x0; cout<<"Config.C: Creating Run Loader ..."<Fatal("Config.C","Can not instatiate the Run Loader"); return; } rl->SetCompressionLevel(2); rl->SetNumberOfEventsPerFile(20000); gAlice->SetRunLoader(rl); // //======================================================================= // ************* 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); //======================// // Set External decayer // //======================// TVirtualMCDecayer* decayer = new AliDecayerPythia; /* FIXME: put back polarization switch ? if (polar == kNO_pol){ decayer = new AliDecayerPythia(); } else if (polar == kTH_pol){ decayer = new AliDecayerPolarized(1.,AliDecayerPolarized::kHelicity,AliDecayerPolarized::kMuon); } else if (polar == kT_pol){ decayer = new AliDecayerPolarized(1.,AliDecayerPolarized::kColSop,AliDecayerPolarized::kMuon); } else if (polar == kLH_pol){ decayer = new AliDecayerPolarized(-1.,AliDecayerPolarized::kHelicity,AliDecayerPolarized::kMuon); } else if (polar == kL_pol){ decayer = new AliDecayerPolarized(-1.,AliDecayerPolarized::kColSop,AliDecayerPolarized::kMuon); } */ decayer->SetForceDecay(kAll); decayer->Init(); gMC->SetExternalDecayer(decayer); //=========================// // Generator Configuration // //=========================// //AliGenerator* gener = CreateGenerator(); std::cout << "VAR_GENERATOR settings " << std::endl; gSystem->AddIncludePath("-I$ALICE_ROOT/include"); gSystem->AddIncludePath("-I$ALICE_ROOT/EVGEN"); gROOT->LoadMacro("VAR_GENERATOR.C+"); AliGenerator* gener = VAR_GENERATOR(); gener->SetOrigin(0., 0., 0.); // Taken from OCDB Float_t sigmax = 0.0025; Float_t sigmay = 0.0029; gener->SetSigma(sigmax, sigmay, 0.); // Sigma in (X,Y,Z) (cm) on IP position, sigmaz taken from OCDB gener->SetVertexSmear(kPerEvent); gener->Init(); gener->Print(); rl->CdGAFile(); Int_t iABSO = 1; Int_t iDIPO = 1; Int_t iFMD = 1; Int_t iFRAME = 1; Int_t iHALL = 1; Int_t iITS = 1; Int_t iMAG = 1; Int_t iMUON = 1; Int_t iPIPE = 1; Int_t iSHIL = 1; Int_t iT0 = 1; Int_t iVZERO = 1; Int_t iZDC = 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 (iZDC) { //=================== ZDC parameters ============================ AliZDC *ZDC = new AliZDCv4("ZDC", "normal ZDC"); ZDC->SetSpectatorsTrack(); ZDC->SetLumiLength(0.); } 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"); MUON->SetTriggerEffCells(1); MUON->SetTriggerResponseV1(2); } if (iT0) { //=================== T0 parameters ============================ AliT0 *T0 = new AliT0v1("T0", "T0 Detector"); } if (iVZERO) { //=================== ACORDE parameters ============================ AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO"); } }