From bb8a4feee6b1e5bc16b2efa1123bfae354494628 Mon Sep 17 00:00:00 2001 From: Marco Clemencic <marco.clemencic@cern.ch> Date: Tue, 3 Mar 2015 19:20:18 +0100 Subject: [PATCH] v94r2p1 --- .../G4EmStandardPhysics_option1LHCb.hh | 5 +- Geant4/G4LHCblists/cmt/requirements | 2 +- Geant4/G4LHCblists/cmt/version.cmt | 2 +- Geant4/G4LHCblists/doc/release.notes | 7 + .../src/G4EmStandardPhysics_option1LHCb.cc | 582 +++++++++--------- Geant4/G4config/cmt/requirements | 4 +- Geant4/G4config/cmt/version.cmt | 2 +- Geant4/G4config/doc/release.notes | 4 + Geant4Sys/cmt/requirements | 6 +- Geant4Sys/cmt/version.cmt | 2 +- Geant4Sys/doc/release.notes | 16 + cmt/project.cmt | 2 +- 12 files changed, 346 insertions(+), 288 deletions(-) diff --git a/Geant4/G4LHCblists/G4LHCblists/G4EmStandardPhysics_option1LHCb.hh b/Geant4/G4LHCblists/G4LHCblists/G4EmStandardPhysics_option1LHCb.hh index 5e030d7998..6616bc0495 100644 --- a/Geant4/G4LHCblists/G4LHCblists/G4EmStandardPhysics_option1LHCb.hh +++ b/Geant4/G4LHCblists/G4LHCblists/G4EmStandardPhysics_option1LHCb.hh @@ -54,7 +54,8 @@ class G4EmStandardPhysics_option1LHCb : public G4VPhysicsConstructor { public: - G4EmStandardPhysics_option1LHCb(G4int ver = 1); + G4EmStandardPhysics_option1LHCb(G4int ver = 1, bool applyCut = true, + bool newForElectrons = true); virtual ~G4EmStandardPhysics_option1LHCb(); @@ -63,6 +64,8 @@ public: private: G4int verbose; + bool applyCut; + bool newForElectrons; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/Geant4/G4LHCblists/cmt/requirements b/Geant4/G4LHCblists/cmt/requirements index 04037afbc8..8a96bb5747 100755 --- a/Geant4/G4LHCblists/cmt/requirements +++ b/Geant4/G4LHCblists/cmt/requirements @@ -3,7 +3,7 @@ # Maintainer : Gloria CORTI #============================================================================ package G4LHCblists -version v2r0 +version v2r1 # Structure, i.e. directories to process. #============================================================================ diff --git a/Geant4/G4LHCblists/cmt/version.cmt b/Geant4/G4LHCblists/cmt/version.cmt index 7770a9e5a6..3a9a351a30 100644 --- a/Geant4/G4LHCblists/cmt/version.cmt +++ b/Geant4/G4LHCblists/cmt/version.cmt @@ -1 +1 @@ -v2r0 +v2r1 diff --git a/Geant4/G4LHCblists/doc/release.notes b/Geant4/G4LHCblists/doc/release.notes index 51ccd355f0..24d5636bfc 100755 --- a/Geant4/G4LHCblists/doc/release.notes +++ b/Geant4/G4LHCblists/doc/release.notes @@ -4,6 +4,13 @@ ! Purpose : Private LHCb physics lists !----------------------------------------------------------------------------- +!======================== G4LHCblists v2r1 2011-09-19 ======================== +! 2011-09-18 - Gloria Corti + - Add options in contructor to apply or not the cuts, as to have the + possibility to have a physics list with old EM behaviour and new MS and to + apply simple MS to e+/- as provided by A.Dotti to address CMS calorimeter + issues with this physics list + !======================== G4LHCblists v2r0 2011-07-13 ======================== ! 2011-07-13 - Gloria Corti - Fix renaming in G4EmStandardPhysics_option1NoApplyCuts.cc diff --git a/Geant4/G4LHCblists/src/G4EmStandardPhysics_option1LHCb.cc b/Geant4/G4LHCblists/src/G4EmStandardPhysics_option1LHCb.cc index 5a66318514..600ed2efa9 100644 --- a/Geant4/G4LHCblists/src/G4EmStandardPhysics_option1LHCb.cc +++ b/Geant4/G4LHCblists/src/G4EmStandardPhysics_option1LHCb.cc @@ -1,277 +1,305 @@ -// -// ******************************************************************** -// * License and Disclaimer * -// * * -// * The Geant4 software is copyright of the Copyright Holders of * -// * the Geant4 Collaboration. It is provided under the terms and * -// * conditions of the Geant4 Software License, included in the file * -// * LICENSE and available at http://cern.ch/geant4/license . These * -// * include a list of copyright holders. * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. Please see the license in the file LICENSE and URL above * -// * for the full disclaimer and the limitation of liability. * -// * * -// * This code implementation is the result of the scientific and * -// * technical work of the GEANT4 collaboration. * -// * By using, copying, modifying or distributing the software (or * -// * any work based on the software) you agree to acknowledge its * -// * use in resulting scientific publications, and indicate your * -// * acceptance of all terms of the Geant4 Software license. * -// ******************************************************************** -// -// $Id: G4EmStandardPhysics_option1LHCb.cc,v 1.22 2010-12-19 18:11:05 vnivanch Exp $ -// GEANT4 tag $Name: not supported by cvs2svn $ -// -//--------------------------------------------------------------------------- -// -// ClassName: G4EmStandardPhysics_option1LHCb -// -// Author: V.Ivanchenko 29.06.2011 -// -// Modified: -// -//---------------------------------------------------------------------------- -// - -#include "G4EmStandardPhysics_option1LHCb.hh" -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" -#include "G4LossTableManager.hh" -#include "G4EmProcessOptions.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -#include "G4eMultipleScattering.hh" -#include "G4MuMultipleScattering.hh" -#include "G4hMultipleScattering.hh" -#include "G4CoulombScattering.hh" -#include "G4WentzelVIModel.hh" -#include "G4UrbanMscModel93.hh" -#include "G4eCoulombScatteringModel.hh" - -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" - -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" -#include "G4hBremsstrahlung.hh" -#include "G4hPairProduction.hh" - -#include "G4hIonisation.hh" -#include "G4ionIonisation.hh" -#include "G4alphaIonisation.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4He3.hh" -#include "G4Alpha.hh" -#include "G4GenericIon.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmStandardPhysics_option1LHCb::G4EmStandardPhysics_option1LHCb(G4int ver) - : G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver) -{ - G4LossTableManager::Instance(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4EmStandardPhysics_option1LHCb::~G4EmStandardPhysics_option1LHCb() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmStandardPhysics_option1LHCb::ConstructParticle() -{ -// gamma - G4Gamma::Gamma(); - -// leptons - G4Electron::Electron(); - G4Positron::Positron(); - G4MuonPlus::MuonPlus(); - G4MuonMinus::MuonMinus(); - -// mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - -// barions - G4Proton::Proton(); - G4AntiProton::AntiProton(); - -// ions - G4Deuteron::Deuteron(); - G4Triton::Triton(); - G4He3::He3(); - G4Alpha::Alpha(); - G4GenericIon::GenericIonDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4EmStandardPhysics_option1LHCb::ConstructProcess() -{ - // Add standard EM Processes - G4double mscEnergyLimit = 1.05*GeV; - - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - if(verbose > 1) - G4cout << "### " << GetPhysicsName() << " instantiates for " - << particleName << G4endl; - - if (particleName == "gamma") { - - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); - pmanager->AddDiscreteProcess(new G4ComptonScattering); - pmanager->AddDiscreteProcess(new G4GammaConversion); - - } else if (particleName == "e-") { - - G4eIonisation* eioni = new G4eIonisation(); - eioni->SetStepFunction(0.8, 1.0*mm); - G4eMultipleScattering* msc = new G4eMultipleScattering; - msc->SetStepLimitType(fMinimal); - G4UrbanMscModel93* msc93 = new G4UrbanMscModel93(); - G4WentzelVIModel* wvi = new G4WentzelVIModel(); - msc93->SetHighEnergyLimit(mscEnergyLimit); - wvi->SetLowEnergyLimit(mscEnergyLimit); - msc->AddEmModel(0, msc93); - msc->AddEmModel(0, wvi); - pmanager->AddProcess(msc, -1, 1, 1); - pmanager->AddProcess(eioni, -1, 2, 2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); - G4CoulombScattering* sc = new G4CoulombScattering(); - G4eCoulombScatteringModel* mod = new G4eCoulombScatteringModel(); - mod->SetActivationLowEnergyLimit(mscEnergyLimit); - sc->AddEmModel(0, mod); - pmanager->AddDiscreteProcess(sc); - - } else if (particleName == "e+") { - - G4eIonisation* eioni = new G4eIonisation(); - eioni->SetStepFunction(0.8, 1.0*mm); - G4eMultipleScattering* msc = new G4eMultipleScattering; - msc->SetStepLimitType(fMinimal); - G4UrbanMscModel93* msc93 = new G4UrbanMscModel93(); - G4WentzelVIModel* wvi = new G4WentzelVIModel(); - msc93->SetHighEnergyLimit(mscEnergyLimit); - wvi->SetLowEnergyLimit(mscEnergyLimit); - msc->AddEmModel(0, msc93); - msc->AddEmModel(0, wvi); - pmanager->AddProcess(msc, -1, 1, 1); - pmanager->AddProcess(eioni, -1, 2, 2); - pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); - G4CoulombScattering* sc = new G4CoulombScattering(); - G4eCoulombScatteringModel* mod = new G4eCoulombScatteringModel(); - mod->SetActivationLowEnergyLimit(mscEnergyLimit); - sc->AddEmModel(0, mod); - pmanager->AddDiscreteProcess(sc); - - } else if (particleName == "mu+" || - particleName == "mu-" ) { - - G4MuMultipleScattering* msc = new G4MuMultipleScattering(); - msc->AddEmModel(0, new G4WentzelVIModel()); - pmanager->AddProcess(msc, -1, 1, 1); - pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); - pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); - pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4); - pmanager->AddDiscreteProcess(new G4CoulombScattering()); - - } else if (particleName == "alpha" || - particleName == "He3") { - - pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); - pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); - - } else if (particleName == "GenericIon") { - - pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); - pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); - - } else if (particleName == "pi+" || - particleName == "pi-" || - particleName == "kaon+" || - particleName == "kaon-" || - particleName == "proton" ) { - - G4MuMultipleScattering* msc = new G4MuMultipleScattering(); - msc->AddEmModel(0, new G4WentzelVIModel()); - pmanager->AddProcess(msc, -1, 1, 1); - pmanager->AddProcess(new G4hIonisation, -1, 2, 2); - pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3); - pmanager->AddProcess(new G4hPairProduction, -1,-4, 4); - - } else if (particleName == "B+" || - particleName == "B-" || - particleName == "D+" || - particleName == "D-" || - particleName == "Ds+" || - particleName == "Ds-" || - particleName == "anti_He3" || - particleName == "anti_alpha" || - particleName == "anti_deuteron" || - particleName == "anti_lambda_c+" || - particleName == "anti_omega-" || - particleName == "anti_proton" || - particleName == "anti_sigma_c+" || - particleName == "anti_sigma_c++" || - particleName == "anti_sigma+" || - particleName == "anti_sigma-" || - particleName == "anti_triton" || - particleName == "anti_xi_c+" || - particleName == "anti_xi-" || - particleName == "deuteron" || - particleName == "lambda_c+" || - particleName == "omega-" || - particleName == "sigma_c+" || - particleName == "sigma_c++" || - particleName == "sigma+" || - particleName == "sigma-" || - particleName == "tau+" || - particleName == "tau-" || - particleName == "triton" || - particleName == "xi_c+" || - particleName == "xi-" ) { - - G4MuMultipleScattering* msc = new G4MuMultipleScattering(); - msc->AddEmModel(0, new G4WentzelVIModel()); - pmanager->AddProcess(msc, -1, 1, 1); - pmanager->AddProcess(new G4hIonisation, -1, 2, 2); - } - } - G4EmProcessOptions opt; - opt.SetVerbose(verbose); - opt.SetPolarAngleLimit(CLHEP::pi); - opt.SetApplyCuts(true); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// $Id: G4EmStandardPhysics_option1LHCb.cc,v 1.22 2010-12-19 18:11:05 vnivanch Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +//--------------------------------------------------------------------------- +// +// ClassName: G4EmStandardPhysics_option1LHCb +// +// Author: V.Ivanchenko 29.06.2011 +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +#include "G4EmStandardPhysics_option1LHCb.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LossTableManager.hh" +#include "G4EmProcessOptions.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4eMultipleScattering.hh" +#include "G4MuMultipleScattering.hh" +#include "G4hMultipleScattering.hh" +#include "G4CoulombScattering.hh" +#include "G4WentzelVIModel.hh" +#include "G4UrbanMscModel93.hh" +#include "G4eCoulombScatteringModel.hh" + +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4hBremsstrahlung.hh" +#include "G4hPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" +#include "G4alphaIonisation.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4KaonPlus.hh" +#include "G4KaonMinus.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "G4GenericIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics_option1LHCb::G4EmStandardPhysics_option1LHCb(G4int ver, bool apply, bool newForE ) + : G4VPhysicsConstructor("G4EmStandard_opt1_LHCb"), verbose(ver), applyCut(apply), newForElectrons(newForE) +{ + G4LossTableManager::Instance(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4EmStandardPhysics_option1LHCb::~G4EmStandardPhysics_option1LHCb() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics_option1LHCb::ConstructParticle() +{ +// gamma + G4Gamma::Gamma(); + +// leptons + G4Electron::Electron(); + G4Positron::Positron(); + G4MuonPlus::MuonPlus(); + G4MuonMinus::MuonMinus(); + +// mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + +// barions + G4Proton::Proton(); + G4AntiProton::AntiProton(); + +// ions + G4Deuteron::Deuteron(); + G4Triton::Triton(); + G4He3::He3(); + G4Alpha::Alpha(); + G4GenericIon::GenericIonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4EmStandardPhysics_option1LHCb::ConstructProcess() +{ + + std::cout << "Physics List " << GetPhysicsName() + << ", apply cut " << applyCut + << ", new for electrons " << newForElectrons + << std::endl; + + // Add standard EM Processes + G4double mscEnergyLimit = 1.05*GeV; + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + if(verbose > 1) + G4cout << "### " << GetPhysicsName() << " instantiates for " + << particleName << G4endl; + + if (particleName == "gamma") { + + pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + + G4eIonisation* eioni = new G4eIonisation(); + eioni->SetStepFunction(0.8, 1.0*mm); + G4eMultipleScattering* msc = new G4eMultipleScattering; + msc->SetStepLimitType(fMinimal); + if (newForElectrons) { + std::cout << "new model for electrons" << std::endl; + G4UrbanMscModel93* msc93 = new G4UrbanMscModel93(); + G4WentzelVIModel* wvi = new G4WentzelVIModel(); + msc93->SetHighEnergyLimit(mscEnergyLimit); + wvi->SetLowEnergyLimit(mscEnergyLimit); + msc->AddEmModel(0, msc93); + msc->AddEmModel(0, wvi); + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(eioni, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); + G4CoulombScattering* sc = new G4CoulombScattering(); + G4eCoulombScatteringModel* mod = new G4eCoulombScatteringModel(); + mod->SetActivationLowEnergyLimit(mscEnergyLimit); + sc->AddEmModel(0, mod); + pmanager->AddDiscreteProcess(sc); + } else { + std::cout << "simple model for electrons" << std::endl; + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(eioni, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); + } + + } else if (particleName == "e+") { + + G4eIonisation* eioni = new G4eIonisation(); + eioni->SetStepFunction(0.8, 1.0*mm); + G4eMultipleScattering* msc = new G4eMultipleScattering; + msc->SetStepLimitType(fMinimal); + if (newForElectrons ) { + std::cout << "new model for positrons" << std::endl; + G4UrbanMscModel93* msc93 = new G4UrbanMscModel93(); + G4WentzelVIModel* wvi = new G4WentzelVIModel(); + msc93->SetHighEnergyLimit(mscEnergyLimit); + wvi->SetLowEnergyLimit(mscEnergyLimit); + msc->AddEmModel(0, msc93); + msc->AddEmModel(0, wvi); + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(eioni, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + G4CoulombScattering* sc = new G4CoulombScattering(); + G4eCoulombScatteringModel* mod = new G4eCoulombScatteringModel(); + mod->SetActivationLowEnergyLimit(mscEnergyLimit); + sc->AddEmModel(0, mod); + pmanager->AddDiscreteProcess(sc); + } + else { + std::cout << "simple model for electrons" << std::endl; + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(eioni, -1, 2, 2); + pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3); + pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4); + } + + } else if (particleName == "mu+" || + particleName == "mu-" ) { + + G4MuMultipleScattering* msc = new G4MuMultipleScattering(); + msc->AddEmModel(0, new G4WentzelVIModel()); + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(new G4MuIonisation, -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3); + pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4); + pmanager->AddDiscreteProcess(new G4CoulombScattering()); + + } else if (particleName == "alpha" || + particleName == "He3") { + + pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (particleName == "GenericIon") { + + pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4ionIonisation, -1, 2, 2); + + } else if (particleName == "pi+" || + particleName == "pi-" || + particleName == "kaon+" || + particleName == "kaon-" || + particleName == "proton" ) { + + G4MuMultipleScattering* msc = new G4MuMultipleScattering(); + msc->AddEmModel(0, new G4WentzelVIModel()); + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3); + pmanager->AddProcess(new G4hPairProduction, -1,-4, 4); + + } else if (particleName == "B+" || + particleName == "B-" || + particleName == "D+" || + particleName == "D-" || + particleName == "Ds+" || + particleName == "Ds-" || + particleName == "anti_He3" || + particleName == "anti_alpha" || + particleName == "anti_deuteron" || + particleName == "anti_lambda_c+" || + particleName == "anti_omega-" || + particleName == "anti_proton" || + particleName == "anti_sigma_c+" || + particleName == "anti_sigma_c++" || + particleName == "anti_sigma+" || + particleName == "anti_sigma-" || + particleName == "anti_triton" || + particleName == "anti_xi_c+" || + particleName == "anti_xi-" || + particleName == "deuteron" || + particleName == "lambda_c+" || + particleName == "omega-" || + particleName == "sigma_c+" || + particleName == "sigma_c++" || + particleName == "sigma+" || + particleName == "sigma-" || + particleName == "tau+" || + particleName == "tau-" || + particleName == "triton" || + particleName == "xi_c+" || + particleName == "xi-" ) { + + G4MuMultipleScattering* msc = new G4MuMultipleScattering(); + msc->AddEmModel(0, new G4WentzelVIModel()); + pmanager->AddProcess(msc, -1, 1, 1); + pmanager->AddProcess(new G4hIonisation, -1, 2, 2); + } + } + G4EmProcessOptions opt; + opt.SetVerbose(verbose); + opt.SetPolarAngleLimit(CLHEP::pi); + if (applyCut) { + opt.SetApplyCuts(true); + std::cout << GetPhysicsName() << " applying cut" << std::endl; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/Geant4/G4config/cmt/requirements b/Geant4/G4config/cmt/requirements index eb04906af6..c4fa61300e 100755 --- a/Geant4/G4config/cmt/requirements +++ b/Geant4/G4config/cmt/requirements @@ -1,5 +1,5 @@ package G4config -version v94r2 +version v94r2p1 branches cmt doc @@ -12,7 +12,7 @@ use CLHEP v* LCG_Interfaces # set versions of Geant4 #============================================================================== set G4_native_version "9.4.p02" -set G4VERS v94r2 +set G4VERS v94r2p1 # ============================================================================= # set Geant4 environment variables diff --git a/Geant4/G4config/cmt/version.cmt b/Geant4/G4config/cmt/version.cmt index bc5ef94e0a..c50c9076b0 100644 --- a/Geant4/G4config/cmt/version.cmt +++ b/Geant4/G4config/cmt/version.cmt @@ -1 +1 @@ -v94r2 +v94r2p1 diff --git a/Geant4/G4config/doc/release.notes b/Geant4/G4config/doc/release.notes index d71269bee7..db46c8255a 100755 --- a/Geant4/G4config/doc/release.notes +++ b/Geant4/G4config/doc/release.notes @@ -4,6 +4,10 @@ ! Purpose : Configuration package for Geant4 build !----------------------------------------------------------------------------- +! ======================= G4config v94r2p1 2011-09-18 ======================== +! 2011-09-19 - Gloria Corti + - Only change local version. + ! ======================== G4config v94r2 2011-07-14 ========================= ! 2011-07-06 - Gloria Corti - Change version of Geant4 to 9.4.p02 diff --git a/Geant4Sys/cmt/requirements b/Geant4Sys/cmt/requirements index 9573038a4a..e85071e41a 100755 --- a/Geant4Sys/cmt/requirements +++ b/Geant4Sys/cmt/requirements @@ -1,9 +1,9 @@ package Geant4Sys -version v94r2 +version v94r2p1 branches cmt doc -use G4config v94r2 Geant4 +use G4config v94r2p1 Geant4 # ============================================================================= # =========== global libraries ================================================ @@ -45,7 +45,7 @@ use G4UIbasic v4r3 Geant4 use G4UIGAG v4r2 Geant4 # LHCb additional package (eg. for MC11 G4LHCblists) -use G4LHCblists v2r0 Geant4 +use G4LHCblists v2r1 Geant4 #============================================================================= # ======== the end ============================================================ diff --git a/Geant4Sys/cmt/version.cmt b/Geant4Sys/cmt/version.cmt index bc5ef94e0a..c50c9076b0 100644 --- a/Geant4Sys/cmt/version.cmt +++ b/Geant4Sys/cmt/version.cmt @@ -1 +1 @@ -v94r2 +v94r2p1 diff --git a/Geant4Sys/doc/release.notes b/Geant4Sys/doc/release.notes index f667c26e21..40eebf8c88 100755 --- a/Geant4Sys/doc/release.notes +++ b/Geant4Sys/doc/release.notes @@ -3,6 +3,22 @@ Package : Geant4Sys Package manager(s) : Gloria Corti, Hubert DeGaudenzi Purpose : LHCb build using cmt of Geant4 +!</PRE><H1><A NAME=v94r2p1>2011-09-20 Geant4Sys v94r2p1</A></H1><PRE> + use Gaudi v22r4 and geant4 9.4.patch02 + built on slc5 i686(32-bit), x86_64(64-bit) and icc11 + +! ======================= G4config v94r2p1 2011-09-18 ======================== +! 2011-09-19 - Gloria Corti + - Only change local version. + +!======================== G4LHCblists v2r1 2011-09-19 ======================== +! 2011-09-18 - Gloria Corti + - Add options in contructor to apply or not the cuts, as to have the + possibility to have a physics list with old EM behaviour and new MS and to + apply simple MS to e+/- as provided by A.Dotti to address CMS calorimeter + issues with this physics list + +!============================================================================= !</PRE><H1><A NAME=v94r2>2011-07-14 Geant4Sys v94r2</A></H1><PRE> use Gaudi v22r2 and geant4 9.4.patch02 built on slc5 i686(32-bit), x86_64(64-bit) and icc11 diff --git a/cmt/project.cmt b/cmt/project.cmt index d1903a3633..943d921934 100755 --- a/cmt/project.cmt +++ b/cmt/project.cmt @@ -1,6 +1,6 @@ project GEANT4 -use GAUDI GAUDI_v22r2 +use GAUDI GAUDI_v22r4 build_strategy with_installarea setup_strategy root -- GitLab