GGS(GenericGEANT4Simulation)Software  2.99.0
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Macros
Public Member Functions
GGSCRMCPhysicsList Class Reference

Physics list based on CRMC for high-energy hadron-hadron interactions. More...

#include <GGSCRMCPhysicsList.h>

Inheritance diagram for GGSCRMCPhysicsList:
Inheritance graph
[legend]
Collaboration diagram for GGSCRMCPhysicsList:
Collaboration graph
[legend]

Public Member Functions

 GGSCRMCPhysicsList ()
 Constructor.
 
void ConstructProcess ()
 Constructs the physical processes. More...
 

Detailed Description

Physics list based on CRMC for high-energy hadron-hadron interactions.

This physics list inherits from FTFP_BERT, and smoothly interpolates the hadronic model from low energies where FTFP_BERT is used to high energies where a CRMC model is used. The user can define the upper and lower limits of the transition region and the CMC model (default values: 1 teV, 10 TeV and DPMJET3).

Definition at line 21 of file GGSCRMCPhysicsList.h.

Member Function Documentation

void GGSCRMCPhysicsList::ConstructProcess ( )

Constructs the physical processes.

Calls FTFP_Bert::ConstructProcess and then creates the CRMC model.

Definition at line 30 of file GGSCRMCPhysicsList.cpp.

30  {
31  const std::string routineName("GGSCRMCPhysicsList::ConstructProcess");
32 
33  if (G4Threading::IsMultithreadedApplication()) {
34  G4Exception("GGSCRMCPhysicsList::ConstructProcess", "CRMC is not thread-safe", G4ExceptionSeverity::FatalException,
35  "GGSCRMC physics list can't be used in a MT run; please launch GGSPenny with the -st option.");
36  }
37 
38  FTFP_BERT::ConstructProcess();
39 
40  // Set CRMC underlying model
41  // 0 - EPOS LHC 1 - EPOS 1.99 12 - DPMJET3
42  // see CRMC documentation for the complete list of
43  // available models
44  int crmcModelID = -1;
45 
46  // Post-LHC
47  if (_modelName == "EPOS-LHC") {
48  crmcModelID = 0;
49  } else if (_modelName == "QGSJETII-04") {
50  crmcModelID = 7;
51  } else if (_modelName == "SIBYLL-2.3") {
52  crmcModelID = 6;
53  }
54  // Pre-LHC
55  else if (_modelName == "DPMJET") {
56  crmcModelID = 12;
57  } else if (_modelName == "EPOS-1.99") {
58  crmcModelID = 1;
59  } else if (_modelName == "QGSJET-01") {
60  crmcModelID = 2;
61  } else if (_modelName == "QGSJETII-03") {
62  crmcModelID = 11;
63  }
64 
65  else {
66  G4Exception("GGSCRMCPhysicsList::ConstructProcess", "0", G4ExceptionSeverity::FatalException,
67  std::string("Unknown model: ").append(_modelName).c_str());
68  }
69 
70  GGSCOUT(INFO) << "CRMC hadronic interaction engine. Model: " << _modelName << ", thresholds: ("
71  << _modelLowerThreshold / CLHEP::TeV << "," << _modelUpperThreshold / CLHEP::TeV << ") TeV." << GGSENDL;
72  G4HadronPhysicsCRMC *crmcModel = new G4HadronPhysicsCRMC(crmcModelID);
73  crmcModel->SetEnergyThreshold(_modelLowerThreshold, _modelUpperThreshold);
74  crmcModel->ConstructProcess();
75 }
#define GGSENDL
Definition: GGSSmartLog.h:131

The documentation for this class was generated from the following files: