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
G4FTFBinaryNeutronBuilder * theFTFNeutron
G4FTFBinaryPiKBuilder * theFTFPiK
G4FTFPNeutronBuilder * theFTFPNeutron
G4FTFPPiKBuilder * theFTFPPiK
G4FTFPProtonBuilder * theFTFPPro
G4FTFBinaryProtonBuilder * theFTFPro
G4LHEPNeutronBuilder * theLHEPNeutron
G4LHEPPiKBuilder * theLHEPPiK
G4LHEPProtonBuilder * theLHEPPro
G4MiscLHEPBuilder * theMiscLHEP
G4NeutronBuilder * theNeutrons
G4PiKBuilder * thePiK
G4ProtonBuilder * thePro
G4QGSPNeutronBuilder * theQGSPNeutron
G4QGSPPiKBuilder * theQGSPPiK
G4QGSPProtonBuilder * theQGSPPro

Detailed Description

Definition at line 35 of file HadronPhysicsCMS.h.


Constructor & Destructor Documentation

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

Member Function Documentation

void HadronPhysicsCMS::ConstructParticle ( ) [virtual]

Definition at line 116 of file HadronPhysicsCMS.cc.

                                         {

  G4MesonConstructor pMesonConstructor;
  pMesonConstructor.ConstructParticle();

  G4BaryonConstructor pBaryonConstructor;
  pBaryonConstructor.ConstructParticle();

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

Definition at line 129 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 25 of file HadronPhysicsCMS.cc.

References modelName, QuasiElastic, theBertiniNeutron, theBertiniPiK, theBertiniPro, theBinaryNeutron, theBinaryPiK, theBinaryPro, theFTFNeutron, theFTFPiK, theFTFPNeutron, theFTFPPiK, theFTFPPro, theFTFPro, theLHEPNeutron, theLHEPPiK, theLHEPPro, theMiscLHEP, theNeutrons, thePiK, thePro, theQGSPNeutron, theQGSPPiK, and theQGSPPro.

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 == "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 == "LHEP") {
    theLHEPNeutron = new G4LHEPNeutronBuilder();
    theNeutrons->RegisterMe(theLHEPNeutron);
    theLHEPPro     = new G4LHEPProtonBuilder();
    thePro->RegisterMe(theLHEPPro);
    theLHEPPiK     = new G4LHEPPiKBuilder();
    thePiK->RegisterMe(theLHEPPiK);
  } 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 78 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

Definition at line 79 of file HadronPhysicsCMS.h.

Referenced by CreateModels().

G4BertiniNeutronBuilder* HadronPhysicsCMS::theBertiniNeutron [private]

Definition at line 52 of file HadronPhysicsCMS.h.

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

G4BertiniPiKBuilder* HadronPhysicsCMS::theBertiniPiK [private]

Definition at line 59 of file HadronPhysicsCMS.h.

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

G4BertiniProtonBuilder* HadronPhysicsCMS::theBertiniPro [private]

Definition at line 66 of file HadronPhysicsCMS.h.

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

G4BinaryNeutronBuilder* HadronPhysicsCMS::theBinaryNeutron [private]

Definition at line 53 of file HadronPhysicsCMS.h.

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

G4BinaryPiKBuilder* HadronPhysicsCMS::theBinaryPiK [private]

Definition at line 60 of file HadronPhysicsCMS.h.

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

G4BinaryProtonBuilder* HadronPhysicsCMS::theBinaryPro [private]

Definition at line 67 of file HadronPhysicsCMS.h.

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

G4FTFBinaryNeutronBuilder* HadronPhysicsCMS::theFTFNeutron [private]

Definition at line 74 of file HadronPhysicsCMS.h.

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

G4FTFBinaryPiKBuilder* HadronPhysicsCMS::theFTFPiK [private]

Definition at line 75 of file HadronPhysicsCMS.h.

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

G4FTFPNeutronBuilder* HadronPhysicsCMS::theFTFPNeutron [private]

Definition at line 54 of file HadronPhysicsCMS.h.

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

G4FTFPPiKBuilder* HadronPhysicsCMS::theFTFPPiK [private]

Definition at line 61 of file HadronPhysicsCMS.h.

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

G4FTFPProtonBuilder* HadronPhysicsCMS::theFTFPPro [private]

Definition at line 68 of file HadronPhysicsCMS.h.

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

G4FTFBinaryProtonBuilder* HadronPhysicsCMS::theFTFPro [private]

Definition at line 76 of file HadronPhysicsCMS.h.

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

G4LHEPNeutronBuilder* HadronPhysicsCMS::theLHEPNeutron [private]

Definition at line 55 of file HadronPhysicsCMS.h.

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

G4LHEPPiKBuilder* HadronPhysicsCMS::theLHEPPiK [private]

Definition at line 62 of file HadronPhysicsCMS.h.

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

G4LHEPProtonBuilder* HadronPhysicsCMS::theLHEPPro [private]

Definition at line 69 of file HadronPhysicsCMS.h.

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

G4MiscLHEPBuilder* HadronPhysicsCMS::theMiscLHEP [private]

Definition at line 72 of file HadronPhysicsCMS.h.

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

G4NeutronBuilder* HadronPhysicsCMS::theNeutrons [private]

Definition at line 51 of file HadronPhysicsCMS.h.

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

G4PiKBuilder* HadronPhysicsCMS::thePiK [private]

Definition at line 58 of file HadronPhysicsCMS.h.

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

G4ProtonBuilder* HadronPhysicsCMS::thePro [private]

Definition at line 65 of file HadronPhysicsCMS.h.

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

G4QGSPNeutronBuilder* HadronPhysicsCMS::theQGSPNeutron [private]

Definition at line 56 of file HadronPhysicsCMS.h.

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

G4QGSPPiKBuilder* HadronPhysicsCMS::theQGSPPiK [private]

Definition at line 63 of file HadronPhysicsCMS.h.

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

G4QGSPProtonBuilder* HadronPhysicsCMS::theQGSPPro [private]

Definition at line 70 of file HadronPhysicsCMS.h.

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