Skip to content
Snippets Groups Projects
Commit 97ad0cbf authored by Marco Clemencic's avatar Marco Clemencic
Browse files

v94r2p2

parent bb8a4fee
No related branches found
No related tags found
No related merge requests found
//
// ********************************************************************
// * 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_LHCbTest.hh,v 1.2 2010-06-02 17:21:29 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmStandardPhysics_LHCbTest
//
// Author: V.Ivanchenko 29.06.2011
//
// Modified:
//
//----------------------------------------------------------------------------
//
// This class provides construction of EM standard physics using set of options
// allowing speed up simulation. Results for simulation of energy deposition
// in thin layers of materials with different density may be biased.
// WentzelVI model of multiple scattering is used for all particles
//
#ifndef G4EmStandardPhysics_LHCbTest_h
#define G4EmStandardPhysics_LHCbTest_h 1
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmStandardPhysics_LHCbTest : public G4VPhysicsConstructor
{
public:
G4EmStandardPhysics_LHCbTest(G4int ver = 1, bool applyCut = true,
bool newForElectrons = true);
virtual ~G4EmStandardPhysics_LHCbTest();
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4int verbose;
bool applyCut;
bool newForElectrons;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
......@@ -3,7 +3,7 @@
# Maintainer : Gloria CORTI
#============================================================================
package G4LHCblists
version v2r1
version v2r2
# Structure, i.e. directories to process.
#============================================================================
......
......
v2r1
v2r2
......@@ -4,6 +4,12 @@
! Purpose : Private LHCb physics lists
!-----------------------------------------------------------------------------
!======================== G4LHCblists v2r2 2011-10-03 ========================
! 2011-10-03 - Gloria Corti
- Add new list with suggestion from Matt Reid for improvement of Multiple
scattering. It has the same options as the LHCb list.
. G4EmStandardPhysics_LHCbTest.{hh,cc}
!======================== G4LHCblists v2r1 2011-09-19 ========================
! 2011-09-18 - Gloria Corti
- Add options in contructor to apply or not the cuts, as to have the
......
......
//
// ********************************************************************
// * 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_LHCbTest.cc,v 1.22 2010-12-19 18:11:05 vnivanch Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmStandardPhysics_LHCbTest
//
// Author: V.Ivanchenko 29.06.2011
//
// Modified: M. Reid 30.09.2011: To set step function for G4hIonisation->SetStepFunction(0.2, 50*um) to mesons and baryons
// Global use of fUseDistanceToBoundary
//
//----------------------------------------------------------------------------
//
#include "G4EmStandardPhysics_LHCbTest.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_LHCbTest::G4EmStandardPhysics_LHCbTest(G4int ver, bool apply, bool newForE )
: G4VPhysicsConstructor("G4EmStandardPhysics_LHCbTest"), verbose(ver), applyCut(apply), newForElectrons(newForE)
{
G4LossTableManager::Instance();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_LHCbTest::~G4EmStandardPhysics_LHCbTest()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void G4EmStandardPhysics_LHCbTest::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_LHCbTest::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(fUseDistanceToBoundary); // Call for minimum of 3 steps within any sized volume
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(fUseDistanceToBoundary); // Call for minimum of 3 steps within any sized volume
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());
msc->SetStepLimitType(fUseDistanceToBoundary);
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" ) {
G4hMultipleScattering* msc = new G4hMultipleScattering();
msc->AddEmModel(0, new G4WentzelVIModel());
msc->SetStepLimitType(fUseDistanceToBoundary);
pmanager->AddProcess(msc, -1, 1, 1);
G4hIonisation* hIoni = new G4hIonisation();
hIoni->SetStepFunction(0.2, 50*um);
pmanager->AddProcess(hIoni, -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());
msc->SetStepLimitType(fUseDistanceToBoundary);
pmanager->AddProcess(msc, -1, 1, 1);
G4hIonisation* hIoni = new G4hIonisation();
hIoni->SetStepFunction(0.2, 50*um);
pmanager->AddProcess(hIoni, -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......
File changed. Contains only whitespace changes. Show whitespace changes.
package G4config
version v94r2p1
version v94r2p2
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 v94r2p1
set G4VERS v94r2p2
# =============================================================================
# set Geant4 environment variables
......
......
v94r2p1
v94r2p2
......@@ -4,6 +4,10 @@
! Purpose : Configuration package for Geant4 build
!-----------------------------------------------------------------------------
! ======================= G4config v94r2p2 2011-10-03 ========================
! 2011-10-03 - Gloria Corti
- Only change local version.
! ======================= G4config v94r2p1 2011-09-18 ========================
! 2011-09-19 - Gloria Corti
- Only change local version.
......
......
package Geant4Sys
version v94r2p1
version v94r2p2
branches cmt doc
use G4config v94r2p1 Geant4
use G4config v94r2p2 Geant4
# =============================================================================
# =========== global libraries ================================================
......@@ -45,7 +45,7 @@ use G4UIbasic v4r3 Geant4
use G4UIGAG v4r2 Geant4
# LHCb additional package (eg. for MC11 G4LHCblists)
use G4LHCblists v2r1 Geant4
use G4LHCblists v2r2 Geant4
#=============================================================================
# ======== the end ============================================================
......
......
v94r2p1
v94r2p2
......@@ -3,6 +3,21 @@ Package : Geant4Sys
Package manager(s) : Gloria Corti, Hubert DeGaudenzi
Purpose : LHCb build using cmt of Geant4
!</PRE><H1><A NAME=v94r2p2>2011-10-17 Geant4Sys v94r2p2</A></H1><PRE>
use Gaudi v22r4 and geant4 9.4.patch02
built on slc5 i686(32-bit), x86_64(64-bit) and icc11
! ======================= G4config v94r2p2 2011-10-03 ========================
! 2011-10-03 - Gloria Corti
- Only change local version.
!======================== G4LHCblists v2r2 2011-10-03 ========================
! 2011-10-03 - Gloria Corti
- Add new list with suggestion from Matt Reid for improvement of Multiple
scattering. It has the same options as the LHCb list.
. G4EmStandardPhysics_LHCbTest.{hh,cc}
!=============================================================================
!</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
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment