CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

HadronPhysicsCMS Class Reference

#include <HadronPhysicsCMS.h>

List of all members.

Public Member Functions

virtual void ConstructParticle ()
virtual void ConstructProcess ()
 HadronPhysicsCMS (const G4String &name="QGSP", G4bool quasiElastic=true)
virtual ~HadronPhysicsCMS ()

Private Member Functions

void CreateModels ()

Private Attributes

G4String modelName
G4bool QuasiElastic
G4BertiniNeutronBuilder * theBertiniNeutron
G4BertiniPiKBuilder * theBertiniPiK
G4BertiniProtonBuilder * theBertiniPro
G4BinaryNeutronBuilder * theBinaryNeutron
G4BinaryPiKBuilder * theBinaryPiK
G4BinaryProtonBuilder * theBinaryPro
G4FTFCNeutronBuilder * theFTFCNeutron
G4FTFCPiKBuilder * theFTFCPiK
G4FTFCProtonBuilder * theFTFCPro
G4FTFBinaryNeutronBuilder * theFTFNeutron
G4FTFBinaryPiKBuilder * theFTFPiK
G4FTFPNeutronBuilder * theFTFPNeutron
G4FTFPPiKBuilder * theFTFPPiK
G4FTFPProtonBuilder * theFTFPPro
G4FTFBinaryProtonBuilder * theFTFPro
G4LEPNeutronBuilder * theLEPNeutron
G4LEPPiKBuilder * theLEPPiK
G4LEPProtonBuilder * theLEPPro
G4LHEPNeutronBuilder * theLHEPNeutron
G4LHEPPiKBuilder * theLHEPPiK
G4LHEPProtonBuilder * theLHEPPro
G4MiscLHEPBuilder * theMiscLHEP
G4NeutronBuilder * theNeutrons
G4PiKBuilder * thePiK
G4PrecoNeutronBuilder * thePrecoNeutron
G4PrecoProtonBuilder * thePrecoPro
G4ProtonBuilder * thePro
G4QGSCEflowNeutronBuilder * theQGSCEflowNeutron
G4QGSCEflowPiKBuilder * theQGSCEflowPiK
G4QGSCEflowProtonBuilder * theQGSCEflowPro
G4QGSCNeutronBuilder * theQGSCNeutron
G4QGSCPiKBuilder * theQGSCPiK
G4QGSCProtonBuilder * theQGSCPro
G4QGSPNeutronBuilder * theQGSPNeutron
G4QGSPPiKBuilder * theQGSPPiK
G4QGSPProtonBuilder * theQGSPPro
G4RPGNeutronBuilder * theRPGNeutron
G4RPGPiKBuilder * theRPGPiK
G4RPGProtonBuilder * theRPGPro

Detailed Description

Definition at line 53 of file HadronPhysicsCMS.h.


Constructor & Destructor Documentation

HadronPhysicsCMS::HadronPhysicsCMS ( const G4String &  name = "QGSP",
G4bool  quasiElastic = true 
)
HadronPhysicsCMS::~HadronPhysicsCMS ( ) [virtual]

Definition at line 142 of file HadronPhysicsCMS.cc.

References theBertiniNeutron, theBertiniPiK, theBertiniPro, theBinaryNeutron, theBinaryPiK, theBinaryPro, theFTFCNeutron, theFTFCPiK, theFTFCPro, theFTFNeutron, theFTFPiK, theFTFPNeutron, theFTFPPiK, theFTFPPro, theFTFPro, theLEPNeutron, theLEPPiK, theLEPPro, theLHEPNeutron, theLHEPPiK, theLHEPPro, theMiscLHEP, theNeutrons, thePiK, thePrecoNeutron, thePrecoPro, thePro, theQGSCEflowNeutron, theQGSCEflowPiK, theQGSCEflowPro, theQGSCNeutron, theQGSCPro, theQGSPNeutron, theQGSPPiK, theQGSPPro, theRPGNeutron, theRPGPiK, and theRPGPro.


Member Function Documentation

void HadronPhysicsCMS::ConstructParticle ( ) [virtual]

Definition at line 184 of file HadronPhysicsCMS.cc.

                                         {

  G4MesonConstructor pMesonConstructor;
  pMesonConstructor.ConstructParticle();

  G4BaryonConstructor pBaryonConstructor;
  pBaryonConstructor.ConstructParticle();

  G4ShortLivedConstructor pShortLivedConstructor;
  pShortLivedConstructor.ConstructParticle();  
}
void HadronPhysicsCMS::ConstructProcess ( ) [virtual]

Definition at line 197 of file HadronPhysicsCMS.cc.

References CreateModels(), theMiscLHEP, theNeutrons, thePiK, and thePro.

                                        {

  CreateModels();
  theNeutrons->Build();
  thePro->Build();
  thePiK->Build();
  theMiscLHEP->Build();
}
void HadronPhysicsCMS::CreateModels ( ) [private]

Definition at line 26 of file HadronPhysicsCMS.cc.

References modelName, QuasiElastic, theBertiniNeutron, theBertiniPiK, theBertiniPro, theBinaryNeutron, theBinaryPiK, theBinaryPro, theFTFCNeutron, theFTFCPiK, theFTFCPro, theFTFNeutron, theFTFPiK, theFTFPNeutron, theFTFPPiK, theFTFPPro, theFTFPro, theLEPNeutron, theLEPPiK, theLEPPro, theLHEPNeutron, theLHEPPiK, theLHEPPro, theMiscLHEP, theNeutrons, thePiK, thePrecoNeutron, thePrecoPro, thePro, theQGSCEflowNeutron, theQGSCEflowPiK, theQGSCEflowPro, theQGSCNeutron, theQGSCPiK, theQGSCPro, theQGSPNeutron, theQGSPPiK, theQGSPPro, theRPGNeutron, theRPGPiK, and theRPGPro.

Referenced by ConstructProcess().

                                    {

  theNeutrons = new G4NeutronBuilder;
  thePro      = new G4ProtonBuilder;
  thePiK      = new G4PiKBuilder;

  if (modelName == "Bertini") {
    theBertiniNeutron = new G4BertiniNeutronBuilder();
    theBertiniNeutron->SetMaxEnergy(30.0*GeV);
    theNeutrons->RegisterMe(theBertiniNeutron);
    theBertiniPro     = new G4BertiniProtonBuilder();
    theBertiniPro->SetMaxEnergy(30.0*GeV);
    thePro->RegisterMe(theBertiniPro);
    theBertiniPiK     = new G4BertiniPiKBuilder();
    theBertiniPiK->SetMaxEnergy(30.0*GeV);
    thePiK->RegisterMe(theBertiniPiK);
  } else if (modelName == "Binary") {
    theBinaryNeutron = new G4BinaryNeutronBuilder();
    theBinaryNeutron->SetMaxEnergy(30.0*GeV);
    theNeutrons->RegisterMe(theBinaryNeutron);
    theBinaryPro     = new G4BinaryProtonBuilder();
    theBinaryPro->SetMaxEnergy(30.0*GeV);
    thePro->RegisterMe(theBinaryPro);
    theBinaryPiK     = new G4BinaryPiKBuilder(); 
    theBinaryPiK->SetMaxEnergy(30.0*GeV);
    thePiK->RegisterMe(theBinaryPiK);
  } else if (modelName == "FTFC") {
    theFTFCNeutron = new G4FTFCNeutronBuilder();
    theFTFCNeutron->SetMinEnergy(0.1*GeV);
    theNeutrons->RegisterMe(theFTFCNeutron);
    theFTFCPro     = new G4FTFCProtonBuilder();
    theFTFCPro->SetMinEnergy(0.1*GeV);
    thePro->RegisterMe(theFTFCPro);
    theFTFCPiK     = new G4FTFCPiKBuilder();
    theFTFCPiK->SetMinEnergy(0.1*GeV);
    thePiK->RegisterMe(theFTFCPiK);
  } else if (modelName == "FTFP") {
    theFTFPNeutron = new G4FTFPNeutronBuilder();
    theFTFPNeutron->SetMinEnergy(0.1*GeV);
    theNeutrons->RegisterMe(theFTFPNeutron);
    theFTFPPro     = new G4FTFPProtonBuilder();
    theFTFPPro->SetMinEnergy(0.1*GeV);
    thePro->RegisterMe(theFTFPPro);
    theFTFPPiK     = new G4FTFPPiKBuilder();
    theFTFPPiK->SetMinEnergy(0.1*GeV);
    thePiK->RegisterMe(theFTFPPiK);
  }  else if (modelName == "LEP") {
    theLEPNeutron = new G4LEPNeutronBuilder();
    theNeutrons->RegisterMe(theLEPNeutron);
    theLEPPro     = new G4LEPProtonBuilder();
    thePro->RegisterMe(theLEPPro);
    theLEPPiK     = new G4LEPPiKBuilder();
    thePiK->RegisterMe(theLEPPiK);
  }  else if (modelName == "LHEP") {
    theLHEPNeutron = new G4LHEPNeutronBuilder();
    theNeutrons->RegisterMe(theLHEPNeutron);
    theLHEPPro     = new G4LHEPProtonBuilder();
    thePro->RegisterMe(theLHEPPro);
    theLHEPPiK     = new G4LHEPPiKBuilder();
    thePiK->RegisterMe(theLHEPPiK);
  }  else if (modelName == "Preco") {
    thePrecoNeutron = new G4PrecoNeutronBuilder();
    theNeutrons->RegisterMe(thePrecoNeutron);
    thePrecoPro     = new G4PrecoProtonBuilder();
    thePro->RegisterMe(thePrecoPro);
    theLHEPPiK      = new G4LHEPPiKBuilder();
    thePiK->RegisterMe(theLHEPPiK);
  }  else if (modelName == "QGSCEflow") {
    theQGSCEflowNeutron = new G4QGSCEflowNeutronBuilder();
    theQGSCEflowNeutron->SetMinEnergy(0.1*GeV);
    theNeutrons->RegisterMe(theQGSCEflowNeutron);
    theQGSCEflowPro     = new G4QGSCEflowProtonBuilder();
    theQGSCEflowPro->SetMinEnergy(0.1*GeV);
    thePro->RegisterMe(theQGSCEflowPro);
    theQGSCEflowPiK     = new G4QGSCEflowPiKBuilder();
    theQGSCEflowPiK->SetMinEnergy(0.1*GeV);
    thePiK->RegisterMe(theQGSCEflowPiK);
  }  else if (modelName == "QGSC") {
    theQGSCNeutron = new G4QGSCNeutronBuilder();
    theQGSCNeutron->SetMinEnergy(0.1*GeV);
    theNeutrons->RegisterMe(theQGSCNeutron);
    theQGSCPro     = new G4QGSCProtonBuilder();
    theQGSCPro->SetMinEnergy(0.1*GeV);
    thePro->RegisterMe(theQGSCPro);
    theQGSCPiK     = new G4QGSCPiKBuilder();
    theQGSCPiK->SetMinEnergy(0.1*GeV);
    thePiK->RegisterMe(theQGSCPiK);
  } else if (modelName == "RPG") {
    theRPGNeutron  = new G4RPGNeutronBuilder();
    theNeutrons->RegisterMe(theRPGNeutron);
    theRPGPro      = new G4RPGProtonBuilder();
    thePro->RegisterMe(theRPGPro);
    theRPGPiK      = new G4RPGPiKBuilder();
    thePiK->RegisterMe(theRPGPiK);
  } else if (modelName == "FTF") {
    theFTFNeutron  = new G4FTFBinaryNeutronBuilder();
    theNeutrons->RegisterMe(theFTFNeutron);
    theFTFPro      = new G4FTFBinaryProtonBuilder();
    thePro->RegisterMe(theFTFPro);
    theFTFPiK      = new G4FTFBinaryPiKBuilder();
    thePiK->RegisterMe(theFTFPiK);
  } else {
    theQGSPNeutron = new G4QGSPNeutronBuilder(QuasiElastic);
    theQGSPNeutron->SetMinEnergy(0.1*GeV);
    theNeutrons->RegisterMe(theQGSPNeutron);
    theQGSPPro     = new G4QGSPProtonBuilder(QuasiElastic);
    theQGSPPro->SetMinEnergy(0.1*GeV);
    thePro->RegisterMe(theQGSPPro);
    theQGSPPiK     = new G4QGSPPiKBuilder(QuasiElastic);
    theQGSPPiK->SetMinEnergy(0.1*GeV);
    thePiK->RegisterMe(theQGSPPiK);
  }
  
  theMiscLHEP=new G4MiscLHEPBuilder;
}

Member Data Documentation

G4String HadronPhysicsCMS::modelName [private]

Definition at line 114 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

Definition at line 115 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron [private]

Definition at line 70 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK [private]

Definition at line 82 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro [private]

Definition at line 93 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron [private]

Definition at line 71 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK [private]

Definition at line 83 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro [private]

Definition at line 94 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFCNeutronBuilder* HadronPhysicsCMS::theFTFCNeutron [private]

Definition at line 72 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFCPiKBuilder* HadronPhysicsCMS::theFTFCPiK [private]

Definition at line 84 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFCProtonBuilder* HadronPhysicsCMS::theFTFCPro [private]

Definition at line 95 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron [private]

Definition at line 106 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK [private]

Definition at line 107 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron [private]

Definition at line 73 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK [private]

Definition at line 85 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro [private]

Definition at line 96 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro [private]

Definition at line 108 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LEPNeutronBuilder* HadronPhysicsCMS::theLEPNeutron [private]

Definition at line 74 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LEPPiKBuilder* HadronPhysicsCMS::theLEPPiK [private]

Definition at line 86 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LEPProtonBuilder* HadronPhysicsCMS::theLEPPro [private]

Definition at line 97 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LHEPNeutronBuilder* HadronPhysicsCMS::theLHEPNeutron [private]

Definition at line 75 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LHEPPiKBuilder* HadronPhysicsCMS::theLHEPPiK [private]

Definition at line 87 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4LHEPProtonBuilder* HadronPhysicsCMS::theLHEPPro [private]

Definition at line 98 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4MiscLHEPBuilder* HadronPhysicsCMS::theMiscLHEP [private]

Definition at line 104 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons [private]

Definition at line 69 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4PiKBuilder* HadronPhysicsCMS::thePiK [private]

Definition at line 81 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4PrecoNeutronBuilder* HadronPhysicsCMS::thePrecoNeutron [private]

Definition at line 76 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4PrecoProtonBuilder* HadronPhysicsCMS::thePrecoPro [private]

Definition at line 99 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4ProtonBuilder* HadronPhysicsCMS::thePro [private]

Definition at line 92 of file HadronPhysicsCMS.h.

Referenced by ConstructProcess(), CreateModels(), and ~HadronPhysicsCMS().

G4QGSCEflowNeutronBuilder* HadronPhysicsCMS::theQGSCEflowNeutron [private]

Definition at line 77 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSCEflowPiKBuilder* HadronPhysicsCMS::theQGSCEflowPiK [private]

Definition at line 88 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSCEflowProtonBuilder* HadronPhysicsCMS::theQGSCEflowPro [private]

Definition at line 100 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSCNeutronBuilder* HadronPhysicsCMS::theQGSCNeutron [private]

Definition at line 78 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSCPiKBuilder* HadronPhysicsCMS::theQGSCPiK [private]

Definition at line 89 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4QGSCProtonBuilder* HadronPhysicsCMS::theQGSCPro [private]

Definition at line 101 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron [private]

Definition at line 79 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK [private]

Definition at line 90 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro [private]

Definition at line 102 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4RPGNeutronBuilder* HadronPhysicsCMS::theRPGNeutron [private]

Definition at line 110 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4RPGPiKBuilder* HadronPhysicsCMS::theRPGPiK [private]

Definition at line 111 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().

G4RPGProtonBuilder* HadronPhysicsCMS::theRPGPro [private]

Definition at line 112 of file HadronPhysicsCMS.h.

Referenced by CreateModels(), and ~HadronPhysicsCMS().