CMS 3D CMS Logo

Public Member Functions | Private Attributes

GFlash Class Reference

#include <GFlash.h>

Inheritance diagram for GFlash:
PhysicsList

List of all members.

Public Member Functions

 GFlash (G4LogicalVolumeToDDLogicalPartMap &map, const HepPDT::ParticleDataTable *table_, sim::FieldBuilder *fieldBuilder_, const edm::ParameterSet &p)
virtual ~GFlash ()

Private Attributes

GflashHistogramtheHisto
edm::ParameterSet thePar

Detailed Description

Definition at line 11 of file GFlash.h.


Constructor & Destructor Documentation

GFlash::GFlash ( G4LogicalVolumeToDDLogicalPartMap map,
const HepPDT::ParticleDataTable table_,
sim::FieldBuilder fieldBuilder_,
const edm::ParameterSet p 
)

Definition at line 22 of file GFlash.cc.

References GflashHistogram::bookHistogram(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), instance, GflashHistogram::setStoreFlag(), theHisto, thePar, and cmsDownloadME::ver.

                                          : PhysicsList(map, table_, fieldBuilder_, p), 
                                              thePar(p.getParameter<edm::ParameterSet>("GFlash")) {

  G4DataQuestionaire it(photon);

  std::string hadronPhysics = thePar.getParameter<std::string>("GflashHadronPhysics");

  int  ver     = p.getUntrackedParameter<int>("Verbosity",0);
  bool emPhys  = p.getUntrackedParameter<bool>("EMPhysics",true);
  bool hadPhys = p.getUntrackedParameter<bool>("HadPhysics",true);
  bool tracking= p.getParameter<bool>("TrackingCut");
  std::string region = p.getParameter<std::string>("Region");

  edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
                              << hadronPhysics << " + CMS GFLASH with Flags for EM Physics "
                              << emPhys << ", for Hadronic Physics "
                              << hadPhys << " and tracking cut " << tracking
                              << " with special region " << region;

  RegisterPhysics(new ParametrisedPhysics("parametrised",thePar)); 

  if (emPhys) {
    // EM Physics
    RegisterPhysics( new CMSEmStandardPhysics92("standard EM EML",ver,region));

    // Synchroton Radiation & GN Physics
    RegisterPhysics( new G4EmExtraPhysics("extra EM"));
  }

  // Decays
  RegisterPhysics( new G4DecayPhysics("decay",ver) );

  if (hadPhys) {
    // Hadron Elastic scattering
    RegisterPhysics( new G4HadronElasticPhysics("elastic",ver,false));

    // Hadron Physics
    G4bool quasiElastic=true;

    if(hadronPhysics=="QGSP_FTFP_BERT") {
      RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic)); 
    }
    else if(hadronPhysics=="QGSP_BERT") {
      RegisterPhysics( new HadronPhysicsQGSP_BERT_WP("hadron",quasiElastic));
    }
    else if (hadronPhysics=="QGSP") {
      RegisterPhysics( new HadronPhysicsQGSP_WP("hadron",quasiElastic));
    }
    else {
      edm::LogInfo("PhysicsList") << hadronPhysics << " is not available for GflashHadronPhysics!"
                                  << "... Using QGSP_FTFP_BERT\n";
      RegisterPhysics( new HadronPhysicsQGSPCMS_FTFP_BERT_WP("hadron",quasiElastic));
    }
    // Stopping Physics
    RegisterPhysics( new G4QStoppingPhysics("stopping"));

    // Ion Physics
    RegisterPhysics( new G4IonPhysics("ion"));

    // Neutron tracking cut
    if (tracking) 
      RegisterPhysics( new G4NeutronTrackingCut("Neutron tracking cut", ver));
  }

  // Monopoles
  RegisterPhysics( new CMSMonopolePhysics(table_,fieldBuilder_,p));

  // singleton histogram object
  if(thePar.getParameter<bool>("GflashHistogram")) {
    theHisto = GflashHistogram::instance();
    theHisto->setStoreFlag(true);
    theHisto->bookHistogram(thePar.getParameter<std::string>("GflashHistogramName"));
  }

}
GFlash::~GFlash ( ) [virtual]

Definition at line 101 of file GFlash.cc.

References edm::ParameterSet::getParameter(), theHisto, and thePar.

                {

  if(thePar.getParameter<bool>("GflashHistogram")) {
    if(theHisto) delete theHisto;
  }

}

Member Data Documentation

Definition at line 18 of file GFlash.h.

Referenced by GFlash(), and ~GFlash().

Definition at line 19 of file GFlash.h.

Referenced by GFlash(), and ~GFlash().