Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added PhysList for study of HGCAL TB #16585

Merged
merged 2 commits into from Nov 23, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
69 changes: 69 additions & 0 deletions SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMY.cc
@@ -0,0 +1,69 @@
#include "FTFPCMS_BERT_EMY.hh"
#include "SimG4Core/PhysicsLists/interface/CMSMonopolePhysics.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "G4EmStandardPhysics_option3.hh"
#include "G4DecayPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4StoppingPhysics.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4NeutronTrackingCut.hh"
#include "G4HadronicProcessStore.hh"

#include "G4DataQuestionaire.hh"
#include "G4HadronPhysicsFTFP_BERT.hh"

FTFPCMS_BERT_EMY::FTFPCMS_BERT_EMY(G4LogicalVolumeToDDLogicalPartMap& map,
const HepPDT::ParticleDataTable * table_,
sim::ChordFinderSetter *chordFinderSetter_,
const edm::ParameterSet & p) : PhysicsList(map, table_, chordFinderSetter_, p) {

G4DataQuestionaire it(photon);

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");
edm::LogInfo("PhysicsList") << "You are using the simulation engine: "
<< "FTFP_BERT_EMY \n Flags for EM Physics "
<< emPhys << ", for Hadronic Physics "
<< hadPhys << " and tracking cut " << tracking;

if (emPhys) {
// EM Physics
RegisterPhysics( new G4EmStandardPhysics_option3(ver));

// Synchroton Radiation & GN Physics
G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver);
RegisterPhysics(gn);
}

// Decays
this->RegisterPhysics( new G4DecayPhysics(ver) );

if (hadPhys) {
G4HadronicProcessStore::Instance()->SetVerbose(ver);

// Hadron Elastic scattering
RegisterPhysics( new G4HadronElasticPhysics(ver));

// Hadron Physics
RegisterPhysics( new G4HadronPhysicsFTFP_BERT(ver));

// Stopping Physics
RegisterPhysics( new G4StoppingPhysics(ver));

// Ion Physics
RegisterPhysics( new G4IonPhysics(ver));

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

// Monopoles
RegisterPhysics( new CMSMonopolePhysics(table_,chordFinderSetter_,p));
}

24 changes: 24 additions & 0 deletions SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMY.hh
@@ -0,0 +1,24 @@
#ifndef SimG4Core_PhysicsLists_FTFPCMS_BERT_EMY_H
#define SimG4Core_PhysicsLists_FTFPCMS_BERT_EMY_H

// FTFP_BERT_EMY is a standard Geant4 Physics List with Option3 EM Physics
// configuration: forced more steps of e+- near geometry
// boundary. This configuration may be used for R&D of
// tracker and HGCal detector performnace. The similation
// is expected to be approximately two times slower then
// with the CMS production Physics List


#include "SimG4Core/Physics/interface/PhysicsList.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

class FTFPCMS_BERT_EMY: public PhysicsList {

public:
FTFPCMS_BERT_EMY(G4LogicalVolumeToDDLogicalPartMap& map, const HepPDT::ParticleDataTable * table_, sim::ChordFinderSetter *chordFinderSetter_, const edm::ParameterSet & p);
};

#endif



3 changes: 3 additions & 0 deletions SimG4Core/PhysicsLists/plugins/module.cc
Expand Up @@ -10,6 +10,7 @@
#include "FTFPCMS_BERT_XS_EML.hh"
#include "FTFPCMS_BERT_EML95.hh"
#include "FTFPCMS_BERT_EMV.hh"
#include "FTFPCMS_BERT_EMY.hh"
#include "QBBCCMS.hh"
#include "QGSPCMS_BERT.hh"
#include "QGSPCMS_BERT_EML.hh"
Expand Down Expand Up @@ -43,6 +44,8 @@ typedef FTFPCMS_BERT_EML95 FTFP_BERT_EML95;
DEFINE_PHYSICSLIST(FTFP_BERT_EML95);
typedef FTFPCMS_BERT_EMV FTFP_BERT_EMV;
DEFINE_PHYSICSLIST(FTFP_BERT_EMV);
typedef FTFPCMS_BERT_EMY FTFP_BERT_EMY;
DEFINE_PHYSICSLIST(FTFP_BERT_EMY);
typedef QBBCCMS QBBC;
DEFINE_PHYSICSLIST(QBBC);
typedef QGSPCMS_BERT QGSP_BERT;
Expand Down