void Config() { /* initialise */ gROOT->LoadMacro("Sim/DetectorConfig.C"); gROOT->LoadMacro("Sim/GeneratorConfig.C"); ProcessEnvironment(); /* verbose */ printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf(">>>>> run number: %d \n", runNumber); printf(">>>>> number of events: %d \n", neventsConfig); printf(">>>>> magnetic field: %s \n", MagnetName[magnetConfig]); printf(">>>>> detector: %s \n", DetectorName[detectorConfig]); printf(">>>>> MC generator: %s \n", GeneratorName[generatorConfig]); printf(">>>>> CMS energy: %f \n", energyConfig); printf(">>>>> trigger: %s \n", TriggerName[triggerConfig]); printf(">>>>> b-min: %f \n", bminConfig); printf(">>>>> b-max: %f \n", bmaxConfig); printf(">>>>> crossing angle: %f \n", crossingConfig); printf(">>>>> random seed: %d \n", seedConfig); printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); /* load libraries */ LoadLibraries(); /* setup geant */ new TGeant3TGeo("C++ Interface to Geant3"); /* create galice.root */ CreateGAlice(); /* configure detector */ DetectorConfig(detectorConfig, runNumber); /* configure MC generator */ GeneratorConfig(generatorConfig, runNumber); GeneratorOptions(); }
void Config() { /* initialise */ #if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0) // in root5 the ROOT_VERSION_CODE is defined only in ACLic mode #else gROOT->LoadMacro("$ALIDPG_ROOT/MC/DetectorConfig.C"); gROOT->LoadMacro("$ALIDPG_ROOT/MC/GeneratorConfig.C"); #endif ProcessEnvironment(); /* verbose */ printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); printf(">>>>> run number: %d \n", runNumber); printf(">>>>> number of events: %d \n", neventsConfig); printf(">>>>> magnetic field: %s \n", MagnetName[magnetConfig]); printf(">>>>> detector: %s \n", DetectorName[detectorConfig]); printf(">>>>> MC generator: %s \n", GeneratorName[generatorConfig]); printf(">>>>> process: %s \n", processConfig.Data()); printf(">>>>> system: %s \n", systemConfig.Data()); printf(">>>>> CMS energy: %f \n", energyConfig); printf(">>>>> trigger: %s \n", TriggerName[triggerConfig]); printf(">>>>> PDG: %d \n", pdgConfig); printf(">>>>> b-min: %f \n", bminConfig); printf(">>>>> b-max: %f \n", bmaxConfig); printf(">>>>> ptHardMinHijing: %f \n", ptHardMinHijing); printf(">>>>> y-min: %f \n", yminConfig); printf(">>>>> y-max: %f \n", ymaxConfig); printf(">>>>> phi-min (deg.): %f \n", phiminConfig); printf(">>>>> phi-max (deg.): %f \n", phimaxConfig); printf(">>>>> pt-min: %f \n", ptminConfig); printf(">>>>> pt-max: %f \n", ptmaxConfig); printf(">>>>> pt-hard min: %f \n", pthardminConfig); printf(">>>>> pt-hard max: %f \n", pthardmaxConfig); printf(">>>>> pt-trigger min: %f \n", pttrigminConfig); printf(">>>>> pt-trigger max: %f \n", pttrigmaxConfig); printf(">>>>> quenching: %d \n", quenchingConfig); printf(">>>>> q-hat: %f \n", qhatConfig); printf(">>>>> crossing angle: %f \n", crossingConfig); printf(">>>>> random seed: %d \n", seedConfig); printf(">>>>> geant4: %d \n", isGeant4); printf(">>>>> purifyKine: %d \n", purifyKine); printf(">>>>> fluka: %d \n", isFluka); printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); #if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0) // in root5 the ROOT_VERSION_CODE is defined only in ACLic mode #else LoadLibraries(); #endif /* Check that it is not set both Geant4 and Fluka */ if (isGeant4 && isFluka) { printf(">>>>> You cannot have in your parameters both Geant4 and Fluka set!: isGeant4 = %d, isFluka = %d \n", (Int_t)isGeant4, (Int_t)isFluka); abort(); } /* setup geant3 */ if (!isGeant4 && !isFluka) new TGeant3TGeo("C++ Interface to Geant3"); /* create galice.root */ CreateGAlice(); /* configure detector */ DetectorConfig(detectorConfig); /* configure Geant4 if requested */ if (isGeant4) { Int_t error; TString geant4config_macro = "$ALIDPG_ROOT/MC/Geant4Config.C"; if (gROOT->LoadMacro(Form("%s/Geant4Config.C", gSystem->pwd()), &error, kTRUE) == 0) { printf(">>>>> Geant4Config.C macro detected in CWD, using that one \n"); geant4config_macro = Form("%s/Geant4Config.C", gSystem->pwd()); } gROOT->LoadMacro(geant4config_macro.Data()); gROOT->ProcessLine("Geant4Config();"); } /* configure Fluka if requested */ if (isFluka) { gSystem->Load("libfluka.so"); gROOT->ProcessLine("new TFluka(\"C++ Interface to Fluka\", 0/*verbositylevel*/);"); gROOT->ProcessLine("((TFluka*) gMC)->SetLowEnergyNeutronTransport(1);"); } /* configure MC generator */ GeneratorConfig(generatorConfig); GeneratorOptions(); if (!purifyKine) gAlice->GetMCApp()->PurifyLimits(80., 80.); }