Import Geant4 10.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2017-06-30 10:49:55 +02:00
parent 3a5407696b
commit 1a1316fea4
2180 changed files with 237880 additions and 59109 deletions
+71
View File
@@ -0,0 +1,71 @@
//$Id$
///\file "exoticphysics/dmparticle/.README.txt"
///\brief Example dmparticle README page
/*! \page Exampledmparticle Example dmparticle
This is very preliminary and simplified Geant4 example for light dark matter (LDM) particles.
It consists of LDM bremsstrahlung process (in G4LDMPhysics constructor)
for protons creating G4LDMPhotons.
The latter decays creating G4LDMHi and G4LDMHiBar LDM scalar particles. They
can scatter on nucleons and electrons.
The first version has electromagnetic processes only. Hadron constructors can be added similarly
to HadrN examples.
More LDM processes will be added according to experiment requirements
\section dmparticle_s1 GEOMETRY DEFINITION
The geometry consists of a single block of a homogenous material,
placed in a world.
Parameters define the geometry :
- the material of the box
- the thickness of the box
- the tranverse dimension of the box
The default is 130 cm of tungsten.
Equivalent UI commands are following:
\verbatim
/testex/det/setMat G4_W
/testex/det/sizeX 130 cm
/testex/det/sizeYZ 30 cm
\endverbatim
The default geometry is constructed in DetectorConstruction class,
but all of the above parameters can be changed interactively via
the commands defined in the DetectorMessenger class.
\section dmparticle_s2 PHYSICS LIST
Physics Lists include EM standard physics and decay physics, additional
dark matter particle physics imlemented inside PhysicsList method. By
default DMLPhoton is defined with the mass 0.5 GeV.
To define different mass of this photon or enable DMLHi, DMLHiBar
command line commands should be applied.
\section dmparticle_s3 THE PRIMARY GENERATOR
The primary kinematic consists of a single particle which hits the
block perpendicular to the input face. The type of the particle
and its energy are set in the PrimaryGeneratorAction class, and can
changed via the G4 build-in commands of ParticleGun class (see
the macros provided with this example).
The default is proton 100 GeV
\section dmparticle_s5- HOW TO START ?
Execute Test in 'batch' mode from macro files
\verbatim
% dmparticle dmparticle.in
% dmparticle dmparticle.in 0.2 0.4
\endverbatim
two extra numbers are masses in GeV of DMLPhoton and DMLHi
*/
+58
View File
@@ -0,0 +1,58 @@
#----------------------------------------------------------------------------
# Setup the project
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(dmparticle)
#----------------------------------------------------------------------------
# Find Geant4 package, activating all available UI and Vis drivers by default
# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
# to build a batch mode only executable
#
option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
if(WITH_GEANT4_UIVIS)
find_package(Geant4 REQUIRED ui_all vis_all)
else()
find_package(Geant4 REQUIRED)
endif()
#----------------------------------------------------------------------------
# Setup Geant4 include directories and compile definitions
#
include(${Geant4_USE_FILE})
#----------------------------------------------------------------------------
# Locate sources and headers for this project
#
include_directories(${PROJECT_SOURCE_DIR}/include
${Geant4_INCLUDE_DIR})
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
#----------------------------------------------------------------------------
# Add the executable, and link it to the Geant4 libraries
#
add_executable(dmparticle dmparticle.cc ${sources} ${headers})
target_link_libraries(dmparticle ${Geant4_LIBRARIES})
#----------------------------------------------------------------------------
# Copy all scripts to the build directory, i.e. the directory in which we
# build dmparticle. This is so that we can run the executable directly because it
# relies on these scripts being in the current working directory.
#
set(dmparticle_SCRIPTS
dmparticle.in dmparticle.out
)
foreach(_script ${dmparticle_SCRIPTS})
configure_file(
${PROJECT_SOURCE_DIR}/${_script}
${PROJECT_BINARY_DIR}/${_script}
COPYONLY
)
endforeach()
#----------------------------------------------------------------------------
# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
#
install(TARGETS dmparticle DESTINATION bin)
+25
View File
@@ -0,0 +1,25 @@
# $Id: GNUmakefile 66241 2012-12-13 18:34:42Z gunter $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
name := dmparticle
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../../../..
endif
.PHONY: all
all: lib bin
#### G4ANALYSIS_USE := true
include $(G4INSTALL)/config/architecture.gmk
include $(G4INSTALL)/config/binmake.gmk
histclean:
rm ${G4WORKDIR}/tmp/${G4SYSTEM}/${G4TARGET}/Histo.o
@@ -0,0 +1,32 @@
$Id: History 100289 2016-10-17 08:46:50Z gcosmo $
----------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
dmparticle History file
-----------------------
This file should be used by the G4 example coordinator to briefly
summarize all major modifications introduced in the code and keep
track of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
20-06-17 V.Ivanchenko (dmparticle-V10-03-04)
- Run - V.Grichine fixed typo in printout
07-06-17 V.Ivanchenko (dmparticle-V10-03-03)
- fixed LDMP production model
06-06-17 I.Hrivnacova (dmparticle-V10-03-02)
- fixed Doxygen documentation
06-06-17 V.Ivanchenko (dmparticle-V10-03-01)
- general cleanup of the code and documentation
02-06-17 V.Ivanchenko (dmparticle-V10-03-00)
- first commit
+80
View File
@@ -0,0 +1,80 @@
$Id: README 93674 2015-10-28 09:58:36Z gcosmo $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
dmparticle
----------
V. Grichine (25.03.2017)
Geant4 application for testing of dark matter particles and processes
(based on TestEm8 and monopole examples)
This is very preliminary and simplified Geant4 example for light dark matter (LDM) particles.
It consists of LDM bremsstrahlung process (in G4LDMPhysics constructor)
for protons creating G4LDMPhotons.
The latter decays creating G4LDMHi and G4LDMHiBar LDM scalar particles. They
can scatter on nucleons and electrons.
The first version has electromagnetic processes only. Hadron constructors can be added similarly
to HadrN examples.
More LDM processes will be added according to experiment requirements
1- GEOMETRY DEFINITION
The geometry consists of a single block of a homogenous material,
placed in a world.
Parameters define the geometry :
- the material of the box
- the thickness of the box
- the tranverse dimension of the box
The default is 130 cm of tungsten.
Equivalent UI commands are following:
/testex/det/setMat G4_W
/testex/det/sizeX 130 cm
/testex/det/sizeYZ 30 cm
The default geometry is constructed in DetectorConstruction class,
but all of the above parameters can be changed interactively via
the commands defined in the DetectorMessenger class.
2- PHYSICS LIST
Physics Lists include EM standard physics and decay physics, additional
dark matter particle physics imlemented inside PhysicsList method. By
default DMLPhoton is defined with the mass 0.5 GeV.
To define different mass of this photon or enable DMLHi, DMLHiBar
command line commands should be applied.
3- AN EVENT : THE PRIMARY GENERATOR
The primary kinematic consists of a single particle which hits the
block perpendicular to the input face. The type of the particle
and its energy are set in the PrimaryGeneratorAction class, and can
changed via the G4 build-in commands of ParticleGun class (see
the macros provided with this example).
The default is proton 100 GeV
4- HOW TO START ?
- execute Test in 'batch' mode from macro files
% dmparticle dmparticle.in
% dmparticle dmparticle.in 0.2 0.4
two extra numbers are masses in GeV of DMLPhoton and DMLHi
5- HISTOGRAMS
The result is five histograms:
- energy deposition along the target
The histogram is saved in Root file.
+121
View File
@@ -0,0 +1,121 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/dmparticle.cc
/// \brief Main program of the exoticphysics/dmparticle example
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4RunManager.hh"
#include "G4MTRunManager.hh"
#include "G4UImanager.hh"
#include "G4UIcommand.hh"
#include "Randomize.hh"
#include "DetectorConstruction.hh"
#include "PhysicsList.hh"
#include "ActionInitialization.hh"
#ifdef G4VIS_USE
#include "G4VisExecutive.hh"
#endif
#include "G4UIExecutive.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
int main(int argc,char** argv)
{
//choose the Random engine
CLHEP::HepRandom::setTheEngine(new CLHEP::Ranlux64Engine);
G4UImanager* UI = G4UImanager::GetUIpointer();
PhysicsList* phys = new PhysicsList();
// defined mass of LDM particles
if(argc > 2) {
G4String s = argv[2];
UI->ApplyCommand("/control/verbose 1");
UI->ApplyCommand("/testex/phys/setLDMPhotonMass " + s + " GeV");
}
if(argc > 3) {
G4String s = argv[3];
UI->ApplyCommand("/testex/phys/setLDMHiMass " + s + " GeV");
}
// Construct the default run manager
#ifdef G4MULTITHREADED
G4MTRunManager* runManager = new G4MTRunManager;
G4int nThreads = std::min(G4Threading::G4GetNumberOfCores(),2);
runManager->SetNumberOfThreads(nThreads);
G4cout << "===== dmparticle is started with "
<< runManager->GetNumberOfThreads() << " threads =====" << G4endl;
#else
G4RunManager* runManager = new G4RunManager();
#endif
// set mandatory initialization classes
DetectorConstruction* det = new DetectorConstruction();
runManager->SetUserInitialization( phys );
runManager->SetUserInitialization( det);
// set user action classes
runManager->SetUserInitialization( new ActionInitialization(det));
if (argc > 1) // batch mode
{
G4String command = "/control/execute ";
G4String fileName = argv[1];
UI->ApplyCommand(command+fileName);
}
else //define visualization and UI terminal for interactive mode
{
#ifdef G4VIS_USE
G4VisManager* visManager = new G4VisExecutive;
visManager->Initialize();
#endif
#ifdef G4UI_USE
G4UIExecutive * ui = new G4UIExecutive(argc,argv);
ui->SessionStart();
delete ui;
#endif
#ifdef G4VIS_USE
delete visManager;
#endif
}
// job termination
delete runManager;
return 0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,32 @@
#
#
/control/verbose 1
/run/verbose 1
/tracking/verbose 0
#
/testex/det/setMat G4_W
/testex/det/setSizeZ 130 cm
/testex/det/setSizeXY 30 cm
#
#/testex/run/binSize 0.2 mm
#
/process/em/verbose 1
#
# emstandard_opt0
#
/testex/phys/addPhysics emstandard_opt0
#
/run/initialize
#
#/particle/process/dump
#
/run/printProgress 10
#
/gun/particle proton
#/gun/particle e-
#
#/gun/energy 4 GeV
#/gun/energy 450 GeV
#
/run/beamOn 100
#
@@ -0,0 +1,999 @@
############################################
!!! WARNING - FPE detection is activated !!!
############################################
*************************************************************
Geant4 version Name: geant4-10-03-ref-06 (30-June-2017)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
*************************************************************
LDMPhoton is created: m(GeV)= 0.5
/run/verbose 1
/tracking/verbose 0
/testex/det/setMat G4_W
/testex/det/setSizeZ 130 cm
/testex/det/setSizeXY 30 cm
/process/em/verbose 1
/testex/phys/addPhysics emstandard_opt0
/run/initialize
---------------------------------------------------------
---> The Absorber is 1.3 m of G4_W
---------------------------------------------------------
PhysicsList::AddDarkMatter: 1
/run/printProgress 10
/gun/particle proton
/run/beamOn 100
phot: for gamma SubType= 12 BuildTable= 0
LambdaPrime table from 200 keV to 100 TeV in 61 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
LivermorePhElectric : Emin= 0 eV Emax= 100 TeV AngularGenSauterGavrila FluoActive
compt: for gamma SubType= 13 BuildTable= 1
Lambda table from 100 eV to 1 MeV, 7 bins per decade, spline: 1
LambdaPrime table from 1 MeV to 100 TeV in 56 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
conv: for gamma SubType= 14 BuildTable= 1
Lambda table from 1.022 MeV to 100 TeV, 18 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
BetheHeitler : Emin= 0 eV Emax= 80 GeV
BetheHeitlerLPM : Emin= 80 GeV Emax= 100 TeV
Rayl: for gamma SubType= 11 BuildTable= 1
Lambda table from 100 eV to 100 keV, 7 bins per decade, spline: 0
LambdaPrime table from 100 keV to 100 TeV in 63 bins
===== EM models for the G4Region DefaultRegionForTheWorld ======
LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
msc: for e- SubType= 10
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Table with 42 bins Emin= 100 MeV Emax= 100 TeV
eIoni: for e- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
eBrem: for e- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
eBremLPM : Emin= 1 GeV Emax= 100 TeV DipBustGen
CoulombScat: for e-, integral: 1 SubType= 1 BuildTable= 1
Lambda table from 100 MeV to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
msc: for e+ SubType= 10
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Table with 42 bins Emin= 100 MeV Emax= 100 TeV
eIoni: for e+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
eBrem: for e+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
eBremLPM : Emin= 1 GeV Emax= 100 TeV DipBustGen
annihil: for e+, integral: 1 SubType= 5 BuildTable= 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
eplus2gg : Emin= 0 eV Emax= 100 TeV
CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
Lambda table from 100 MeV to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
msc: for proton SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for proton SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
hBrems: for proton SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for proton SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
Used Lambda table of anti_proton
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
ldmBrems: for proton SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
ldmBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
msc: for GenericIon SubType= 10
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 TeV
ionIoni: for GenericIon SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02
Stopping Power data for 17 ion/material pairs
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMsc : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
ionIoni: for alpha SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
BraggIon : Emin= 0 eV Emax= 7.9452 MeV
BetheBloch : Emin= 7.9452 MeV Emax= 100 TeV
msc: for anti_proton SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for anti_proton SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
hBrems: for anti_proton SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for anti_proton SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for kaon+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for kaon+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 1.05231 MeV
BetheBloch : Emin= 1.05231 MeV Emax= 100 TeV
hBrems: for kaon+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for kaon+ SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for kaon- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for kaon- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV
BetheBloch : Emin= 1.05231 MeV Emax= 100 TeV
hBrems: for kaon- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for kaon- SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
Used Lambda table of kaon+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for mu+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
muIoni: for mu+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
muBrems: for mu+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
muPairProd: for mu+ SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 21x1001 from 1 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for mu- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
muIoni: for mu- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
muBrems: for mu- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
muPairProd: for mu- SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 21x1001 from 1 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
Used Lambda table of mu+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for pi+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for pi+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 297.505 keV
BetheBloch : Emin= 297.505 keV Emax= 100 TeV
hBrems: for pi+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for pi+ SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 100 TeV, 7 bins per decade, spline: 1
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
msc: for pi- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 100 TeV Table with 84 bins Emin= 100 eV Emax= 100 TeV
hIoni: for pi- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
ICRU73QO : Emin= 0 eV Emax= 297.505 keV
BetheBloch : Emin= 297.505 keV Emax= 100 TeV
hBrems: for pi- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
hBrem : Emin= 0 eV Emax= 100 TeV
===== Limit on energy threshold has been applied
hPairProd: for pi- SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV, 7 bins per decade, spline: 1
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
===== EM models for the G4Region DefaultRegionForTheWorld ======
hPairProd : Emin= 0 eV Emax= 100 TeV
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Used Lambda table of pi+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 100 TeV
========= Table of registered couples ==============================
Index : 0 used in the geometry : Yes
Material : G4_Galactic
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 100 eV e- 100 eV e+ 100 eV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
Index : 1 used in the geometry : Yes
Material : G4_W
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
Energy thresholds : gamma 106.333 keV e- 2.29087 MeV e+ 2.15443 MeV proton 100 keV
Region(s) which use this couple :
DefaultRegionForTheWorld
====================================================================
### Run 0 starts.
### Run 0 start analysis activation:
BinsE= 100 Emax(keV)= 1e+08
... open Root analysis file : dmp.root - done
--> Event 0 starts.
Event = 0 z0 = -779.999 Primary direction = (0,0,1)
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.621672 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.17095 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.1906 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.93935 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.92302 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.33986 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.984597 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 45.5297 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.50305 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.832987 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 64.0745 Mass(GeV)= 0.5 TrackId= 75
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.25996 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 30.7234 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.48324 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.844335 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.806909 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.642717 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 32.056 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.03753 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.82568 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.87232 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.84257 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.655487 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.70337 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.54426 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.26807 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.913957 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.91906 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.87661 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.25531 Mass(GeV)= 0.5 TrackId= 61
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.859636 Mass(GeV)= 0.5 TrackId= 5
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.23037 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.775955 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.54454 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.55704 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 14.7787 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.4888 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.88994 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.46551 Mass(GeV)= 0.5 TrackId= 58
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.72992 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.56091 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.679658 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.22312 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61414 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.54075 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.8647 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.86909 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.955422 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00377 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.10152 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13293 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.49465 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.47349 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.954581 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.846194 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.63367 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.02488 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.809971 Mass(GeV)= 0.5 TrackId= 74
--> Event 10 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.61108 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.798022 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18352 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.89089 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 34.7831 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 15.3457 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.950371 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.75934 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.977043 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 20.5046 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.40658 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.95434 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.45454 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.0755 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.5988 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.73735 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.4513 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.00283 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.08475 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.880456 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.760479 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.76264 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.20428 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.99514 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 42.7383 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.25951 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 31.8921 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.31054 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.45417 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.37624 Mass(GeV)= 0.5 TrackId= 77
### New exotic particle produced: ldmphoton Ekin(GeV)= 13.5821 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 14.1524 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.16953 Mass(GeV)= 0.5 TrackId= 81
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.680238 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.35684 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.921871 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.39799 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.62889 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.98628 Mass(GeV)= 0.5 TrackId= 72
--> Event 20 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 44.0162 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.993 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.94591 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.10267 Mass(GeV)= 0.5 TrackId= 72
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.47982 Mass(GeV)= 0.5 TrackId= 88
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.0467 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.1614 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20577 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.22318 Mass(GeV)= 0.5 TrackId= 71
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.614877 Mass(GeV)= 0.5 TrackId= 83
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.17002 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.09682 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.92739 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.31871 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.78379 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.92361 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 10.025 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.91032 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 22.8404 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.727357 Mass(GeV)= 0.5 TrackId= 5
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.53444 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.3583 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.99336 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.645244 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 17.0326 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.7992 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.24237 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 18.4619 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 13.7622 Mass(GeV)= 0.5 TrackId= 58
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.34762 Mass(GeV)= 0.5 TrackId= 63
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.34802 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 15.6719 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.12023 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.668148 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.38891 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.82506 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 49.72 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.874882 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 25.498 Mass(GeV)= 0.5 TrackId= 63
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.48053 Mass(GeV)= 0.5 TrackId= 77
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.78725 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.70207 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18208 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.78826 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.43066 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.32547 Mass(GeV)= 0.5 TrackId= 72
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.964906 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.95894 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 15.0619 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.35107 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 36.3026 Mass(GeV)= 0.5 TrackId= 75
--> Event 30 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.992504 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 21.0382 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.82468 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.620405 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.748185 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.1453 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.56166 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.81652 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 55.9898 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.36074 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.81352 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.54228 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.13825 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.52034 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.793702 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.74388 Mass(GeV)= 0.5 TrackId= 61
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.91578 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.5151 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.89306 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.900489 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.640803 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.879315 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.9696 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.54105 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.944491 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.34957 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.957112 Mass(GeV)= 0.5 TrackId= 38
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.34781 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.677883 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.78986 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.852553 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.23803 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.13931 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.4861 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.69255 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.617987 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.39568 Mass(GeV)= 0.5 TrackId= 77
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.4501 Mass(GeV)= 0.5 TrackId= 80
### New exotic particle produced: ldmphoton Ekin(GeV)= 13.7613 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.7726 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 41.36 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.62911 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.89628 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.70704 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 29.7161 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 13.5198 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 43.4013 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.810503 Mass(GeV)= 0.5 TrackId= 14
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00635 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.35779 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.04998 Mass(GeV)= 0.5 TrackId= 32
--> Event 40 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.36507 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.61449 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.87214 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.45483 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.46105 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.848924 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.56488 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.51525 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.98659 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.68218 Mass(GeV)= 0.5 TrackId= 58
### New exotic particle produced: ldmphoton Ekin(GeV)= 17.4681 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 47.8975 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.5923 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.4521 Mass(GeV)= 0.5 TrackId= 58
### New exotic particle produced: ldmphoton Ekin(GeV)= 70.754 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.51804 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.48906 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.07322 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.94569 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.82466 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.19411 Mass(GeV)= 0.5 TrackId= 46
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.605606 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.936987 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.00721 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28491 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.3904 Mass(GeV)= 0.5 TrackId= 61
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32881 Mass(GeV)= 0.5 TrackId= 73
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.57462 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.916557 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.684777 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.20912 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.61462 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13784 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 25.0227 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.65012 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.97073 Mass(GeV)= 0.5 TrackId= 64
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.73557 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.86232 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.19734 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28155 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.56681 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.4417 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.795 Mass(GeV)= 0.5 TrackId= 74
### New exotic particle produced: ldmphoton Ekin(GeV)= 23.5254 Mass(GeV)= 0.5 TrackId= 78
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.24358 Mass(GeV)= 0.5 TrackId= 79
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.06245 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.655 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.2145 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.0306 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.67125 Mass(GeV)= 0.5 TrackId= 67
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.63538 Mass(GeV)= 0.5 TrackId= 75
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.98443 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.47399 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.967729 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.941485 Mass(GeV)= 0.5 TrackId= 41
--> Event 50 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.42949 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.44677 Mass(GeV)= 0.5 TrackId= 38
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48335 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.07524 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.8186 Mass(GeV)= 0.5 TrackId= 87
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.27477 Mass(GeV)= 0.5 TrackId= 89
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.31302 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.22338 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.39449 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.889597 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.15565 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.91566 Mass(GeV)= 0.5 TrackId= 28
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.84336 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.54926 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.70849 Mass(GeV)= 0.5 TrackId= 74
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.83363 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 25.0123 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.654464 Mass(GeV)= 0.5 TrackId= 38
### New exotic particle produced: ldmphoton Ekin(GeV)= 15.8072 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.07401 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.53166 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.95742 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.57879 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 16.1244 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.712047 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.3264 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.687744 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.53413 Mass(GeV)= 0.5 TrackId= 28
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.26281 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.67917 Mass(GeV)= 0.5 TrackId= 63
### New exotic particle produced: ldmphoton Ekin(GeV)= 39.7463 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.700176 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.709397 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.91536 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 16.3645 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.6296 Mass(GeV)= 0.5 TrackId= 56
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.799579 Mass(GeV)= 0.5 TrackId= 61
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.651978 Mass(GeV)= 0.5 TrackId= 63
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.94325 Mass(GeV)= 0.5 TrackId= 103
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.51765 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.53017 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.1306 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.08205 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.29234 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.44883 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.25866 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.64444 Mass(GeV)= 0.5 TrackId= 86
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.67855 Mass(GeV)= 0.5 TrackId= 87
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.24097 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.37324 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 27.0151 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.601702 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.49892 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.8027 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.955444 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.53118 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.1467 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.73253 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.11826 Mass(GeV)= 0.5 TrackId= 87
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32288 Mass(GeV)= 0.5 TrackId= 89
### New exotic particle produced: ldmphoton Ekin(GeV)= 26.276 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.83561 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.67803 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.23034 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.22045 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.824252 Mass(GeV)= 0.5 TrackId= 62
--> Event 60 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.85426 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.16077 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.56468 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.44192 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 27.4902 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.81052 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.53633 Mass(GeV)= 0.5 TrackId= 82
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.17185 Mass(GeV)= 0.5 TrackId= 86
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.9088 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.92458 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.82299 Mass(GeV)= 0.5 TrackId= 33
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.750014 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.42029 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.67949 Mass(GeV)= 0.5 TrackId= 45
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.62149 Mass(GeV)= 0.5 TrackId= 55
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.60793 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.11477 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.35016 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.75048 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.31027 Mass(GeV)= 0.5 TrackId= 66
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.611769 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.51124 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.46274 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 41.0766 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.675778 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.31204 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.11119 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.82657 Mass(GeV)= 0.5 TrackId= 64
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.50915 Mass(GeV)= 0.5 TrackId= 67
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.56753 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.01811 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 38.9858 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.36552 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 14.3337 Mass(GeV)= 0.5 TrackId= 50
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.47608 Mass(GeV)= 0.5 TrackId= 67
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.49621 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.76741 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.14048 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.04301 Mass(GeV)= 0.5 TrackId= 38
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.55572 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.849197 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.60493 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.71982 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.4571 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.98424 Mass(GeV)= 0.5 TrackId= 32
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.652608 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 25.2552 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.01177 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.99997 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.34792 Mass(GeV)= 0.5 TrackId= 58
--> Event 70 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.47495 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.669325 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 26.8601 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.3008 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.956784 Mass(GeV)= 0.5 TrackId= 11
### New exotic particle produced: ldmphoton Ekin(GeV)= 37.7217 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.94889 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.33913 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.848165 Mass(GeV)= 0.5 TrackId= 69
### New exotic particle produced: ldmphoton Ekin(GeV)= 50.6152 Mass(GeV)= 0.5 TrackId= 4
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.22976 Mass(GeV)= 0.5 TrackId= 31
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.876842 Mass(GeV)= 0.5 TrackId= 36
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.26027 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70702 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.1976 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41612 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.78801 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.34118 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.39452 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.860314 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.9271 Mass(GeV)= 0.5 TrackId= 72
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.81564 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.82514 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 45.3331 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.84397 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 17.9843 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.607773 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.43049 Mass(GeV)= 0.5 TrackId= 22
### New exotic particle produced: ldmphoton Ekin(GeV)= 16.7095 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.39487 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.41557 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.75798 Mass(GeV)= 0.5 TrackId= 64
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.851484 Mass(GeV)= 0.5 TrackId= 76
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.39103 Mass(GeV)= 0.5 TrackId= 77
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.04817 Mass(GeV)= 0.5 TrackId= 9
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.40915 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.620589 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5731 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.05424 Mass(GeV)= 0.5 TrackId= 83
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.68118 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 18.5432 Mass(GeV)= 0.5 TrackId= 16
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.64943 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.623995 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.65634 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.61985 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.674453 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.58849 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.19257 Mass(GeV)= 0.5 TrackId= 71
--> Event 80 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.37768 Mass(GeV)= 0.5 TrackId= 5
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.73495 Mass(GeV)= 0.5 TrackId= 14
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.640666 Mass(GeV)= 0.5 TrackId= 23
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.54824 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32871 Mass(GeV)= 0.5 TrackId= 44
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.18587 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.34284 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.28236 Mass(GeV)= 0.5 TrackId= 93
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.75319 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.979333 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.64737 Mass(GeV)= 0.5 TrackId= 66
### New exotic particle produced: ldmphoton Ekin(GeV)= 19.3016 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.20673 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.10751 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.11479 Mass(GeV)= 0.5 TrackId= 51
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.04089 Mass(GeV)= 0.5 TrackId= 3
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.05604 Mass(GeV)= 0.5 TrackId= 17
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.87632 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.06137 Mass(GeV)= 0.5 TrackId= 37
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.18083 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.3678 Mass(GeV)= 0.5 TrackId= 49
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.4356 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 15.0361 Mass(GeV)= 0.5 TrackId= 19
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.11665 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.75541 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.84036 Mass(GeV)= 0.5 TrackId= 38
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.82718 Mass(GeV)= 0.5 TrackId= 87
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.41374 Mass(GeV)= 0.5 TrackId= 24
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.942982 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.99095 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.654915 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.04266 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.35684 Mass(GeV)= 0.5 TrackId= 104
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.40711 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.928806 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.97167 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.30743 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.887051 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.86035 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.48512 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.973 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 14.583 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.91733 Mass(GeV)= 0.5 TrackId= 17
### New exotic particle produced: ldmphoton Ekin(GeV)= 11.7852 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.829633 Mass(GeV)= 0.5 TrackId= 25
### New exotic particle produced: ldmphoton Ekin(GeV)= 28.4739 Mass(GeV)= 0.5 TrackId= 5
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.4168 Mass(GeV)= 0.5 TrackId= 8
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.99012 Mass(GeV)= 0.5 TrackId= 10
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.62631 Mass(GeV)= 0.5 TrackId= 71
### New exotic particle produced: ldmphoton Ekin(GeV)= 10.4496 Mass(GeV)= 0.5 TrackId= 75
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.62864 Mass(GeV)= 0.5 TrackId= 13
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.909015 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.02705 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 24.4894 Mass(GeV)= 0.5 TrackId= 35
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.92214 Mass(GeV)= 0.5 TrackId= 41
### New exotic particle produced: ldmphoton Ekin(GeV)= 9.75964 Mass(GeV)= 0.5 TrackId= 47
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.25262 Mass(GeV)= 0.5 TrackId= 63
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.3074 Mass(GeV)= 0.5 TrackId= 71
--> Event 90 starts.
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.88659 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.69826 Mass(GeV)= 0.5 TrackId= 54
### New exotic particle produced: ldmphoton Ekin(GeV)= 37.0939 Mass(GeV)= 0.5 TrackId= 73
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.39582 Mass(GeV)= 0.5 TrackId= 20
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.26866 Mass(GeV)= 0.5 TrackId= 48
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.49058 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.774071 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.21112 Mass(GeV)= 0.5 TrackId= 62
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.31006 Mass(GeV)= 0.5 TrackId= 73
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.24771 Mass(GeV)= 0.5 TrackId= 79
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.09475 Mass(GeV)= 0.5 TrackId= 80
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.66916 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 13.8769 Mass(GeV)= 0.5 TrackId= 28
### New exotic particle produced: ldmphoton Ekin(GeV)= 17.6926 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.5601 Mass(GeV)= 0.5 TrackId= 40
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.698855 Mass(GeV)= 0.5 TrackId= 74
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.740832 Mass(GeV)= 0.5 TrackId= 79
### New exotic particle produced: ldmphoton Ekin(GeV)= 12.276 Mass(GeV)= 0.5 TrackId= 53
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.32949 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.78992 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 7.29633 Mass(GeV)= 0.5 TrackId= 6
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.826003 Mass(GeV)= 0.5 TrackId= 15
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.885253 Mass(GeV)= 0.5 TrackId= 57
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.07197 Mass(GeV)= 0.5 TrackId= 70
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.34048 Mass(GeV)= 0.5 TrackId= 75
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.4836 Mass(GeV)= 0.5 TrackId= 30
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.767248 Mass(GeV)= 0.5 TrackId= 36
### New exotic particle produced: ldmphoton Ekin(GeV)= 10.6763 Mass(GeV)= 0.5 TrackId= 39
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.788917 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.71225 Mass(GeV)= 0.5 TrackId= 60
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.674647 Mass(GeV)= 0.5 TrackId= 76
### New exotic particle produced: ldmphoton Ekin(GeV)= 8.31788 Mass(GeV)= 0.5 TrackId= 5
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.70108 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.87657 Mass(GeV)= 0.5 TrackId= 59
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.82169 Mass(GeV)= 0.5 TrackId= 2
### New exotic particle produced: ldmphoton Ekin(GeV)= 2.03135 Mass(GeV)= 0.5 TrackId= 7
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.699251 Mass(GeV)= 0.5 TrackId= 12
### New exotic particle produced: ldmphoton Ekin(GeV)= 3.02283 Mass(GeV)= 0.5 TrackId= 14
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.696253 Mass(GeV)= 0.5 TrackId= 29
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.810253 Mass(GeV)= 0.5 TrackId= 43
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.13377 Mass(GeV)= 0.5 TrackId= 52
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.683065 Mass(GeV)= 0.5 TrackId= 58
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.903166 Mass(GeV)= 0.5 TrackId= 68
### New exotic particle produced: ldmphoton Ekin(GeV)= 18.1779 Mass(GeV)= 0.5 TrackId= 18
### New exotic particle produced: ldmphoton Ekin(GeV)= 23.8546 Mass(GeV)= 0.5 TrackId= 28
### New exotic particle produced: ldmphoton Ekin(GeV)= 4.39969 Mass(GeV)= 0.5 TrackId= 34
### New exotic particle produced: ldmphoton Ekin(GeV)= 5.52685 Mass(GeV)= 0.5 TrackId= 36
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.5817 Mass(GeV)= 0.5 TrackId= 42
### New exotic particle produced: ldmphoton Ekin(GeV)= 6.69275 Mass(GeV)= 0.5 TrackId= 56
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.68485 Mass(GeV)= 0.5 TrackId= 21
### New exotic particle produced: ldmphoton Ekin(GeV)= 1.73658 Mass(GeV)= 0.5 TrackId= 26
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.7196 Mass(GeV)= 0.5 TrackId= 27
### New exotic particle produced: ldmphoton Ekin(GeV)= 0.632002 Mass(GeV)= 0.5 TrackId= 65
### New exotic particle produced: ldmphoton Ekin(GeV)= 34.166 Mass(GeV)= 0.5 TrackId= 71
Run terminated.
Run Summary
Number of events processed : 100
User=0.85s Real=0.85s Sys=0s
RunAction: End of run actions are started 1 Nevt= 100 Edep= 3978.1
====================================================
Beam Particle: proton
Ekin(GeV) = 100
Z(mm) = -779.999
================== run summary =====================
End of Run TotNbofEvents = 100
Mean energy deposit in absorber = 3.9781 +- 0.051231 GeV RMS/Emean = 0.12878
Mean number of steps in absorber= 86.33
================== run end ==========================
... write Root file : dmp.root - done
... close Root file : dmp.root - done
G4 kernel has come to Quit state.
================== Deleting memory pools ===================
Number of memory pools allocated: 10 of which, static: 0
Dynamic pools deleted: 10 / Total memory freed: 0.17 MB
============================================================
RunManagerKernel is deleted. Good bye :)
@@ -0,0 +1,63 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
//
/// \file exoticphysics/dmparticle/include/ActionInitialization.hh
/// \brief Definition of the ActionInitialization class
//
// $Id: ActionInitialization.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef ActionInitialization_h
#define ActionInitialization_h 1
#include "G4VUserActionInitialization.hh"
class DetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class ActionInitialization : public G4VUserActionInitialization
{
public:
ActionInitialization(DetectorConstruction*);
virtual ~ActionInitialization();
virtual void Build() const;
virtual void BuildForMaster() const;
private:
DetectorConstruction* fDetector;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
//
// $Id: DetectorConstruction.hh 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef DetectorConstruction_h
#define DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4LogicalVolume;
class G4Material;
class G4UniformMagField;
class DetectorMessenger;
class DetectorConstruction : public G4VUserDetectorConstruction
{
public:
DetectorConstruction();
virtual ~DetectorConstruction();
virtual G4VPhysicalVolume* Construct();
virtual void ConstructSDandField();
// set geometry parameters
void SetSizeZ(G4double);
void SetSizeXY(G4double);
void SetMaterial(const G4String&);
// access to geometry
inline G4double GetWorldSizeZ() {return fWorldSizeZ;};
inline G4double GetAbsorSizeZ() {return fAbsorSizeZ;};
inline const G4Material* GetAbsorMaterial() {return fAbsorMaterial;};
private:
void PrintParameters();
G4double fWorldSizeZ;
G4double fWorldSizeXY;
G4Material* fWorldMaterial;
G4double fAbsorSizeZ;
G4double fAbsorSizeXY;
G4Material* fAbsorMaterial;
G4LogicalVolume* fLogAbsor;
G4VPhysicalVolume* fWorld;
DetectorMessenger* fDetectorMessenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/DetectorMessenger.hh
/// \brief Definition of the DetectorMessenger class
//
// $Id: DetectorMessenger.hh 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef DetectorMessenger_h
#define DetectorMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class DetectorConstruction;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWith3VectorAndUnit;
class G4UIcmdWithoutParameter;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class DetectorMessenger: public G4UImessenger
{
public:
DetectorMessenger( DetectorConstruction* );
virtual ~DetectorMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
DetectorConstruction* fDetector;
G4UIdirectory* fDetD;
G4UIdirectory* fDetDir;
G4UIcmdWithAString* fMaterCmd;
G4UIcmdWithADoubleAndUnit* fSizeZCmd;
G4UIcmdWithADoubleAndUnit* fSizeXYCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/EventAction.hh
/// \brief Definition of the EventAction class
//
// $Id: EventAction.hh 85243 2014-10-27 08:22:42Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: EventAction
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
#ifndef EventAction_h
#define EventAction_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4UserEventAction.hh"
#include "globals.hh"
class G4Event;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class EventActionMessenger;
class EventAction : public G4UserEventAction
{
public: // Without description
EventAction();
virtual ~EventAction();
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,103 @@
//
// ********************************************************************
// * 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: G4hLDMBremModel.hh 97391 2016-06-02 10:08:45Z gcosmo $
//
// -------------------------------------------------------------------
//
// 21.03.17 V. Grichine based on G4hBremsstrahlungModel
//
// Class Description:
//
// Implementation of energy loss for LDMPhoton emission by hadrons
//
//
//
#ifndef G4LDMBremModel_h
#define G4LDMBremModel_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4MuBremsstrahlungModel.hh"
class G4ParticleDefinition;
class G4LDMBremModel : public G4MuBremsstrahlungModel
{
public:
explicit G4LDMBremModel(const G4ParticleDefinition* p = nullptr,
const G4String& nam = "ldmBrem");
virtual ~G4LDMBremModel();
inline void SetEpsilon(G4double e){fEpsilon=e;};
inline G4double GetEpsilon(){return fEpsilon;};
protected:
virtual G4double ComputeDEDXPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double kineticEnergy,
G4double cutEnergy) override;
virtual G4double ComputeDMicroscopicCrossSection(
G4double tkin,
G4double Z,
G4double gammaEnergy ) override;
virtual G4double ComputeCrossSectionPerAtom(
const G4ParticleDefinition*,
G4double kineticEnergy,
G4double Z, G4double A,
G4double cutEnergy,
G4double maxEnergy) override;
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
const G4MaterialCutsCouple*,
const G4DynamicParticle*,
G4double tmin,
G4double maxEnergy) override;
private:
// hide assignment operator
G4LDMBremModel &
operator=(const G4LDMBremModel &right) = delete;
G4LDMBremModel(const G4LDMBremModel&) = delete;
const G4ParticleDefinition* theLDMPhoton;
G4double fEpsilon; // correction for fine_structure_const
G4double fLDMPhotonMass;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * 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: G4LDMBremsstrahlung.hh 97391 2016-06-02 10:08:45Z gcosmo $
//
//
// Class Description:
//
// This class manages the Bremsstrahlung process for hadrons
// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess.
//
// -------------------------------------------------------------------
//
#ifndef G4LDMBremsstrahlung_h
#define G4LDMBremsstrahlung_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "globals.hh"
#include "G4MuBremsstrahlung.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4LDMBremsstrahlung : public G4MuBremsstrahlung
{
public:
explicit G4LDMBremsstrahlung(const G4String& processName = "ldmBrems");
virtual ~G4LDMBremsstrahlung();
virtual G4bool IsApplicable(const G4ParticleDefinition& p) override;
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*, G4double) override;
protected:
virtual void InitialiseEnergyLossProcess(
const G4ParticleDefinition*,
const G4ParticleDefinition*) override;
private:
G4LDMBremsstrahlung & operator=(const G4LDMBremsstrahlung &right) = delete;
G4LDMBremsstrahlung(const G4LDMBremsstrahlung&) = delete;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#endif
@@ -0,0 +1,85 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/G4LDMHi.hh
/// \brief Definition of the G4LDMHi class
//
// $Id: G4LDMHi.hh 66817 2013-01-12 16:16:08Z gcosmo $
//
#ifndef G4LDMHi_h
#define G4LDMHi_h 1
/////////////////////////////////////////////////
//
// ClassName: G4LDMHi
//
// Authors: 15.03.17 V. Grichine based on G4Monopole
//
// Modified:
//
//
//
///////////////////////////////////////////
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4ParticleDefinition.hh"
#include "globals.hh"
#include "CLHEP/Units/SystemOfUnits.h"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4LDMHi : public G4ParticleDefinition
{
private:
static G4LDMHi* theLDMHi;
G4LDMHi(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable );
virtual ~G4LDMHi();
public:
static G4LDMHi* LDMHiDefinition( G4double mass);
static G4LDMHi* LDMHi();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/G4LDMHiBar.hh
/// \brief Definition of the G4LDMHiBar class
//
// $Id: G4LDMHiBar.hh 66817 2013-01-12 16:16:08Z gcosmo $
//
#ifndef G4LDMHiBar_h
#define G4LDMHiBar_h 1
/////////////////////////////////////////////////
//
// ClassName: G4LDMHiBar
//
// Authors: 15.03.17 V. Grichine based on G4Monopole
//
// Modified:
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4ParticleDefinition.hh"
#include "globals.hh"
#include "CLHEP/Units/SystemOfUnits.h"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4LDMHiBar : public G4ParticleDefinition
{
private:
static G4LDMHiBar* theLDMHiBar;
G4LDMHiBar(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable );
virtual ~G4LDMHiBar();
public:
static G4LDMHiBar* LDMHiBarDefinition( G4double mass);
static G4LDMHiBar* LDMHiBar();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * 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: G4LDMPhoton.hh 66817 2013-01-12 16:16:08Z gcosmo $
//
/////////////////////////////////////////////////
//
// ClassName: G4LDMPhoton
//
// Authors: 15.03.17 V. Grichine based on G4Monopole
//
//
///////////////////////////////////////////
#ifndef G4LDMPhoton_h
#define G4LDMPhoton_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4ParticleDefinition.hh"
#include "globals.hh"
#include "CLHEP/Units/SystemOfUnits.h"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4LDMPhoton : public G4ParticleDefinition
{
private:
static G4LDMPhoton* theLDMPhoton;
G4LDMPhoton(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable );
virtual ~G4LDMPhoton();
public:
static G4LDMPhoton* LDMPhotonDefinition( G4double mass);
static G4LDMPhoton* LDMPhoton();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,93 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/PhysicsList.hh
/// \brief Definition of the PhysicsList class
//
// $Id: PhysicsList.hh 92047 2015-08-14 07:23:37Z gcosmo $
//
/////////////////////////////////////////////////
//
// ClassName: PhysicsList
//
// Authors: 01.06.17 V.Ivanchenko
//
//
///////////////////////////////////////////
#ifndef PhysicsList_h
#define PhysicsList_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4VPhysicsConstructor;
class PhysicsListMessenger;
class StepMax;
class PhysicsList: public G4VModularPhysicsList
{
public:
PhysicsList();
virtual ~PhysicsList();
virtual void ConstructParticle();
virtual void SetCuts();
virtual void ConstructProcess();
void AddPhysicsList(const G4String& name);
void SetLDMPhotonMass(G4double val);
void SetLDMHiMass(G4double val);
private:
void AddDarkMatter();
G4VPhysicsConstructor* fEmPhysicsList;
G4VPhysicsConstructor* fDecayPhysicsList;
G4String fEmName;
PhysicsListMessenger* fMessenger;
G4double fLDMPhotonMass;
G4double fLDMHiMass;
G4bool fLDMPhoton;
G4bool fLDMHi;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,85 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/PhysicsListMessenger.hh
/// \brief Definition of the PhysicsListMessenger class
//
//
// $Id: PhysicsListMessenger.hh 95713 2016-02-22 08:08:38Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: PhysicsListMessenger
//
// Description: EM physics with a possibility to add PAI model
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PhysicsListMessenger_h
#define PhysicsListMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class PhysicsList;
class G4UIdirectory;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWithADouble;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PhysicsListMessenger: public G4UImessenger
{
public:
PhysicsListMessenger(PhysicsList* );
virtual ~PhysicsListMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
PhysicsList* fPhysicsList;
G4UIdirectory* fPhysDir;
G4UIcmdWithADoubleAndUnit* fECmd;
G4UIcmdWithAnInteger* fEBCmd;
G4UIcmdWithAString* fListCmd;
G4UIcmdWithADoubleAndUnit* fPHCmd;
G4UIcmdWithADoubleAndUnit* fHCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/PrimaryGeneratorAction.hh
/// \brief Definition of the PrimaryGeneratorAction class
//
// $Id: PrimaryGeneratorAction.hh 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef PrimaryGeneratorAction_h
#define PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "G4ParticleGun.hh"
#include "globals.hh"
class DetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
PrimaryGeneratorAction(DetectorConstruction*);
virtual ~PrimaryGeneratorAction();
virtual void GeneratePrimaries(G4Event*);
inline G4ParticleGun* GetParticleGun() {return fParticleGun;}
private:
G4ParticleGun* fParticleGun;
DetectorConstruction* fDetector;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
+126
View File
@@ -0,0 +1,126 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/Run.hh
/// \brief Definition of the Run class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef Run_h
#define Run_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Run.hh"
#include "G4DataVector.hh"
#include "G4StatDouble.hh"
#include "g4root.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4Step;
class G4ElectronIonPair;
class TestParameters;
class Run : public G4Run
{
public:
Run();
virtual ~Run();
virtual void Merge(const G4Run*);
void BeginOfRun();
void EndOfRun();
void BeginOfEvent();
void EndOfEvent();
void AddEnergy(G4double edep, const G4Step*);
inline void SetVerbose(G4int value);
inline G4int GetVerbose() const;
inline G4double GetTotStepGas() const;
inline const G4StatDouble* GetStat() const;
private:
G4int fVerbose;
G4int fNbins;
G4double fStepGas;
G4double fMaxEnergy;
G4double fTotStepGas;
G4double fEvt;
G4double fTotEdep;
G4StatDouble fEdep;
G4double fOverflow;
G4DataVector fEgas;
TestParameters* fParam;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline void Run::SetVerbose(G4int value)
{
fVerbose = value;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline G4int Run::GetVerbose() const
{
return fVerbose;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline G4double Run::GetTotStepGas() const
{
return fTotStepGas;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline const G4StatDouble* Run::GetStat() const
{
return &fEdep;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,83 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/RunAction.hh
/// \brief Definition of the RunAction class
//
// $Id: RunAction.hh 91581 2015-07-27 12:55:57Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: RunAction
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
#ifndef RunAction_h
#define RunAction_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4UserRunAction.hh"
#include "globals.hh"
#include "g4root.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class Run;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class RunAction : public G4UserRunAction
{
public:
RunAction();
virtual ~RunAction();
virtual G4Run* GenerateRun();
virtual void BeginOfRunAction(const G4Run*);
// In this method histogramms are booked
virtual void EndOfRunAction(const G4Run*);
// In this method bookHisto method is called in which histogramms are filled
private:
// Book predefined histogramms
void Book();
private:
G4AnalysisManager* fAnalysisManager;
Run* fRun;
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/StackingAction.hh
/// \brief Definition of the StackingAction class
//
// $Id: StackingAction.hh,v 1.4 2006-09-25 17:06:29 maire Exp $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef StackingAction_h
#define StackingAction_h 1
#include "G4UserStackingAction.hh"
#include "globals.hh"
class StackingMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StackingAction : public G4UserStackingAction
{
public:
StackingAction();
virtual ~StackingAction();
inline void SetKillStatus(G4bool value) { fKillSecondary = value; };
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*);
private:
G4bool fKillSecondary;
StackingMessenger* fStackMessenger;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,61 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/StackingMessenger.hh
/// \brief Definition of the StackingMessenger class
//
// $Id: StackingMessenger.hh,v 1.6 2006-09-25 17:06:29 maire Exp $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef StackingMessenger_h
#define StackingMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class StackingAction;
class G4UIcmdWithABool;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class StackingMessenger: public G4UImessenger
{
public:
StackingMessenger(StackingAction*);
virtual ~StackingMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
StackingAction* fStackAction;
G4UIcmdWithABool* fKillCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/TargetSD.hh
/// \brief Definition of the TargetSD class
//
// $Id$
//
/////////////////////////////////////////////////
//
// ClassName: TargetSD
//
// Authors: 01.06.17 V.Ivanchenko
//
//
///////////////////////////////////////////
#ifndef TargetSD_h
#define TargetSD_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4Step;
class G4TouchableHistory;
class G4HCofThisEvent;
class Run;
class TargetSD : public G4VSensitiveDetector
{
public: // Without description
TargetSD(const G4String&);
virtual ~TargetSD();
virtual void Initialize(G4HCofThisEvent*);
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void PrintAll();
private:
Run* fRun;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,114 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/include/TestParameters.hh
/// \brief Definition of the TestParameters class
//
// $Id$
//
//---------------------------------------------------------------------------
//
// ClassName: HistoManager
//
// Description: Singleton class to make analysis and build histograms.
// User cannot access to the constructor.
// The pointer of the only existing object can be got via
// HistoManager::GetPointer() static method.
// The first invokation of this static method makes
// the singleton object.
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
#ifndef TestParameters_h
#define TestParameters_h 1
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "globals.hh"
#include "G4ParticleDefinition.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class TestParameters
{
public:
// With description
static TestParameters* GetPointer();
private:
TestParameters();
public: // Without description
~TestParameters();
void SetMaxEnergy(G4double value);
G4double GetMaxEnergy() const;
void SetNumberBins(G4int value);
G4int GetNumberBins() const;
void SetPositionZ(G4double val);
G4double GetPositionZ() const;
void SetBeamEnergy(G4double val);
G4double GetBeamEnergy() const;
void SetAlphaFactor(G4double val);
G4double GetAlphaFactor() const;
void SetBeamParticle(const G4ParticleDefinition*);
const G4ParticleDefinition* GetBeamParticle() const;
private:
static TestParameters* fManager;
G4double fMaxEnergy;
G4double fPositionZ;
G4double fBeamEnergy;
G4double fEpsilon;
G4int fBinsE;
const G4ParticleDefinition* fParticle;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/DetectorConstruction.cc
/// \brief Implementation of the DetectorConstruction class
//
// $Id: ActionInitialization.cc 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
#include "ActionInitialization.hh"
#include "RunAction.hh"
#include "EventAction.hh"
#include "StackingAction.hh"
#include "PrimaryGeneratorAction.hh"
#include "DetectorConstruction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
ActionInitialization::ActionInitialization(DetectorConstruction* det)
: G4VUserActionInitialization()
{
fDetector = det;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
ActionInitialization::~ActionInitialization()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void ActionInitialization::Build() const
{
SetUserAction(new PrimaryGeneratorAction(fDetector));
SetUserAction(new RunAction());
SetUserAction(new EventAction());
SetUserAction(new StackingAction());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void ActionInitialization::BuildForMaster() const
{
SetUserAction(new RunAction());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,188 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/DetectorConstruction.cc
/// \brief Implementation of the DetectorConstruction class
//
// $Id: DetectorConstruction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "DetectorConstruction.hh"
#include "DetectorMessenger.hh"
#include "G4Material.hh"
#include "G4Box.hh"
#include "G4LogicalVolume.hh"
#include "G4PVPlacement.hh"
#include "TargetSD.hh"
#include "G4SDManager.hh"
#include "G4GeometryManager.hh"
#include "G4UnitsTable.hh"
#include "G4NistManager.hh"
#include "G4FieldManager.hh"
#include "G4ThreeVector.hh"
#include "G4RunManager.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorConstruction::DetectorConstruction()
: G4VUserDetectorConstruction(),
fAbsorMaterial(nullptr),
fLogAbsor(nullptr),
fWorld(nullptr)
{
// default parameter values
fAbsorSizeZ = fAbsorSizeXY = 10 * cm;
fWorldSizeZ = fWorldSizeXY = 1.2 * fAbsorSizeZ;
SetMaterial("G4_Al");
fWorldMaterial =
G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic");
// create commands for interactive definition of the detector
fDetectorMessenger = new DetectorMessenger(this);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorConstruction::~DetectorConstruction()
{
delete fDetectorMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4VPhysicalVolume* DetectorConstruction::Construct()
{
if(fWorld) { return fWorld; }
/**************************** World *****************************/
G4Box * sWorld = new G4Box("world",
fWorldSizeXY / 2, fWorldSizeXY / 2, fWorldSizeZ / 2);
G4LogicalVolume * lWorld = new G4LogicalVolume(sWorld,
fWorldMaterial,
"world");
fWorld = new G4PVPlacement(0, //no rotation
G4ThreeVector(), //at (0,0,0)
lWorld, //logical volume
"world", //name
0, //mother volume
false, //no boolean operation
0); //copy number
/************************** Absorber ***************************/
G4Box * sAbsor = new G4Box("Absorber",
fAbsorSizeXY / 2, fAbsorSizeXY / 2, fAbsorSizeZ / 2);
fLogAbsor = new G4LogicalVolume(sAbsor,
fAbsorMaterial,
"Absorber");
new G4PVPlacement(0, //no rotation
G4ThreeVector(), //at (0,0,0)
fLogAbsor, //logical volume
"Absorber", //name
lWorld, //mother volume
false, //no boolean operation
0); //copy number
PrintParameters();
/************ always return the World volume *****************/
return fWorld;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::PrintParameters()
{
G4cout << "\n---------------------------------------------------------\n";
G4cout << "---> The Absorber is " << G4BestUnit(fAbsorSizeZ, "Length")
<< " of " << fAbsorMaterial->GetName() << G4endl;
G4cout << "\n---------------------------------------------------------\n";
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::SetSizeZ(G4double value)
{
if(value > 0.0) {
fAbsorSizeZ = value;
fWorldSizeZ = 1.2 * fAbsorSizeZ;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::SetSizeXY(G4double value)
{
if(value > 0.0)
{
fAbsorSizeXY = value;
fWorldSizeXY = 1.2 * fAbsorSizeXY;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::SetMaterial(const G4String& namemat)
{
// search the material by its name
G4Material* mat = G4NistManager::Instance()->FindOrBuildMaterial(namemat);
if(!mat) {
G4cout << "!!! DetectorConstruction::SetMaterial: WARNING Material <"
<< namemat << "> does not exist in DB" << G4endl;
return;
}
// new material is found out
if (mat != fAbsorMaterial) {
fAbsorMaterial = mat;
if(fLogAbsor) { fLogAbsor->SetMaterial(mat); }
G4RunManager::GetRunManager()->PhysicsHasBeenModified();
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorConstruction::ConstructSDandField()
{
auto sd = new TargetSD("Target");
G4SDManager::GetSDMpointer()->AddNewDetector(sd);
SetSensitiveDetector(fLogAbsor, sd);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,99 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/DetectorMessenger.cc
/// \brief Implementation of the DetectorMessenger class
//
// $Id: DetectorMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "DetectorMessenger.hh"
#include "DetectorConstruction.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4UIcmdWith3VectorAndUnit.hh"
#include "G4UIcmdWithoutParameter.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorMessenger::DetectorMessenger(DetectorConstruction * det)
: G4UImessenger(), fDetector(det)
{
fDetD = new G4UIdirectory("/testex/");
fDetD->SetGuidance("dmparticle example commands");
fDetDir = new G4UIdirectory("/testex/det/");
fDetDir->SetGuidance("detector construction commands");
fMaterCmd = new G4UIcmdWithAString("/testex/det/setMat",this);
fMaterCmd->SetGuidance("Select material of the box.");
fMaterCmd->SetParameterName("choice",false);
fMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fSizeZCmd = new G4UIcmdWithADoubleAndUnit("/testex/det/setSizeZ",this);
fSizeZCmd->SetGuidance("Set sizeX of the absorber");
fSizeZCmd->SetParameterName("SizeZ",false);
fSizeZCmd->SetRange("SizeZ>0.");
fSizeZCmd->SetUnitCategory("Length");
fSizeZCmd->AvailableForStates(G4State_PreInit);
fSizeXYCmd = new G4UIcmdWithADoubleAndUnit("/testex/det/setSizeXY",this);
fSizeXYCmd->SetGuidance("Set sizeYZ of the absorber");
fSizeXYCmd->SetParameterName("SizeXY",false);
fSizeXYCmd->SetRange("SizeXY>0.");
fSizeXYCmd->SetUnitCategory("Length");
fSizeXYCmd->AvailableForStates(G4State_PreInit);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorMessenger::~DetectorMessenger()
{
delete fMaterCmd;
delete fSizeZCmd;
delete fSizeXYCmd;
delete fDetDir;
delete fDetD;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
{
if( command == fMaterCmd )
{ fDetector->SetMaterial(newValue);}
if( command == fSizeZCmd )
{ fDetector->SetSizeZ(fSizeZCmd->GetNewDoubleValue(newValue));}
if( command == fSizeXYCmd )
{ fDetector->SetSizeXY(fSizeXYCmd->GetNewDoubleValue(newValue));}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,79 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/EventAction.cc
/// \brief Implementation of the EventAction class
//
// $Id: EventAction.cc 85243 2014-10-27 08:22:42Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: EventAction
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "EventAction.hh"
#include "Run.hh"
#include "G4Event.hh"
#include "G4RunManager.hh"
#include "G4UnitsTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
EventAction::EventAction()
: G4UserEventAction()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
EventAction::~EventAction()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void EventAction::BeginOfEventAction(const G4Event*)
{
//additional initializations
Run* run
= static_cast<Run*>(G4RunManager::GetRunManager()->GetNonConstCurrentRun());
run->BeginOfEvent();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void EventAction::EndOfEventAction(const G4Event*)
{
Run* run
= static_cast<Run*>(G4RunManager::GetRunManager()->GetNonConstCurrentRun());
run->EndOfEvent();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,230 @@
//
// ********************************************************************
// * 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: G4hLDMBremModel.cc 74020 2013-09-19 13:38:38Z gcosmo $
//
// -------------------------------------------------------------------
//
// 21.03.17 V. Grichine based on G4hBremsstrahlungModel
//
// Class Description:
//
// Implementation of energy loss for LDMPhoton emission by hadrons
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4LDMBremModel.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4Log.hh"
#include "G4LDMPhoton.hh"
#include "G4ParticleChangeForLoss.hh"
#include "TestParameters.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
using namespace std;
G4LDMBremModel::G4LDMBremModel(const G4ParticleDefinition* p,
const G4String& nam)
: G4MuBremsstrahlungModel(p, nam)
{
fEpsilon = TestParameters::GetPointer()->GetAlphaFactor();
theLDMPhoton = G4LDMPhoton::LDMPhoton();
fLDMPhotonMass = theLDMPhoton->GetPDGMass();
minThreshold = 1.2*fLDMPhotonMass;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMBremModel::~G4LDMBremModel()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double G4LDMBremModel::ComputeDEDXPerVolume(const G4Material*,
const G4ParticleDefinition*,
G4double, G4double)
{
return 0.0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double G4LDMBremModel::ComputeDMicroscopicCrossSection(
G4double tkin,
G4double Z,
G4double gammaEnergy)
// differential cross section
{
G4double dxsection = 0.;
if( gammaEnergy > tkin || tkin < minThreshold) return dxsection;
/*
G4cout << "G4LDMBremModel m= " << mass
<< " " << particle->GetParticleName()
<< " Egamma(GeV)= " << gammaEnergy/GeV
<< " Ekin(GeV)= " << tkin/GeV << G4endl;
*/
G4double E = tkin + mass ;
G4double v = gammaEnergy/E ;
G4double delta = 0.5*mass*mass*v/(E-gammaEnergy) ;
G4double rab0=delta*sqrte ;
G4int iz = std::max(1,std::min(G4lrint(Z),99));
G4double z13 = 1.0/nist->GetZ13(iz);
G4double dn = mass*nist->GetA27(iz)/(70.*MeV);
G4double b = btf;
if(1 == iz) b = bh;
// nucleus contribution logarithm
G4double rab1=b*z13;
G4double fn=G4Log(rab1/(dn*(electron_mass_c2+rab0*rab1))*
(mass+delta*(dn*sqrte-2.))) ;
if(fn <0.) fn = 0. ;
G4double x = 1.0 - v;
if(particle->GetPDGSpin() != 0) { x += 0.75*v*v; }
dxsection = coeff*x*Z*Z*fn/gammaEnergy;
return dxsection;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double G4LDMBremModel::ComputeCrossSectionPerAtom(
const G4ParticleDefinition*,
G4double kineticEnergy,
G4double Z, G4double,
G4double cutEnergy,
G4double maxEnergy)
{
G4double cross = 0.0;
if (kineticEnergy <= lowestKinEnergy) return cross;
G4double tmax = std::min(maxEnergy, kineticEnergy);
G4double cut = std::min(cutEnergy, kineticEnergy);
cut = std::max(cut, minThreshold);
if (cut >= tmax) return cross;
cross = ComputeMicroscopicCrossSection (kineticEnergy, Z, cut);
if(tmax < kineticEnergy)
{
cross -= ComputeMicroscopicCrossSection(kineticEnergy, Z, tmax);
}
cross *= fEpsilon*fEpsilon;
return cross;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void G4LDMBremModel::SampleSecondaries(
std::vector<G4DynamicParticle*>* vdp,
const G4MaterialCutsCouple* couple,
const G4DynamicParticle* dp,
G4double minEnergy,
G4double maxEnergy)
{
G4double kineticEnergy = dp->GetKineticEnergy();
// check against insufficient energy
G4double tmax = std::min(kineticEnergy, maxEnergy);
G4double tmin = std::min(kineticEnergy, minEnergy);
tmin = std::max(tmin, minThreshold);
if(tmin >= tmax) return;
// ===== sampling of energy transfer ======
G4ParticleMomentum partDirection = dp->GetMomentumDirection();
// select randomly one element constituing the material
const G4Element* anElement = SelectRandomAtom(couple,particle,kineticEnergy);
G4double Z = anElement->GetZ();
G4double totalEnergy = kineticEnergy + mass;
G4double totalMomentum = sqrt(kineticEnergy*(kineticEnergy + 2.0*mass));
G4double func1 = tmin*
ComputeDMicroscopicCrossSection(kineticEnergy,Z,tmin);
G4double lnepksi, epksi;
G4double func2;
G4double xmin = G4Log(tmin/MeV);
G4double xmax = G4Log(tmax/tmin);
do
{
lnepksi = xmin + G4UniformRand()*xmax;
epksi = MeV*G4Exp(lnepksi);
func2 = epksi*ComputeDMicroscopicCrossSection(kineticEnergy,Z,epksi);
// Loop checking, 03-Aug-2015, Vladimir Ivanchenko
} while(func2 < func1*G4UniformRand());
G4double gEnergy = std::max(epksi, fLDMPhotonMass);
G4double gMomentum =
std::sqrt((epksi - fLDMPhotonMass)*(epksi + fLDMPhotonMass));
// ===== sample angle =====
G4double gam = totalEnergy/mass;
G4double rmax = gam*std::min(1.0, totalEnergy/gEnergy - 1.0);
G4double rmax2= rmax*rmax;
G4double x = G4UniformRand()*rmax2/(1.0 + rmax2);
G4double theta = std::sqrt(x/(1.0 - x))/gam;
G4double sint = std::sin(theta);
G4double phi = twopi * G4UniformRand() ;
G4double dirx = sint*cos(phi), diry = sint*sin(phi), dirz = cos(theta) ;
G4ThreeVector gDirection(dirx, diry, dirz);
gDirection.rotateUz(partDirection);
partDirection *= totalMomentum;
partDirection -= gMomentum*gDirection;
partDirection = partDirection.unit();
// primary change
kineticEnergy -= gEnergy;
fParticleChange->SetProposedKineticEnergy(kineticEnergy);
fParticleChange->SetProposedMomentumDirection(partDirection);
// save secondary
G4DynamicParticle* aLDMPhoton =
new G4DynamicParticle(theLDMPhoton,gDirection,gEnergy);
vdp->push_back(aLDMPhoton);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,102 @@
//
// ********************************************************************
// * 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: G4LDMBremsstrahlung.cc 97391 2016-06-02 10:08:45Z gcosmo $
//
// -------------------------------------------------------------------
//
// GEANT4 Class file
//
//
// File name: G4LDMBremsstrahlung
//
// Author: Vladimir Ivanchenko on base of model for muons
//
// Creation date: 01.03.2008
//
// Modifications:
//
//
// -------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4LDMBremsstrahlung.hh"
#include "G4SystemOfUnits.hh"
#include "G4LDMBremModel.hh"
#include "G4LDMPhoton.hh"
#include "G4EmParameters.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
using namespace std;
G4LDMBremsstrahlung::G4LDMBremsstrahlung(const G4String& name)
: G4MuBremsstrahlung(name)
{
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMBremsstrahlung::~G4LDMBremsstrahlung()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4bool G4LDMBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)
{
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double G4LDMBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*, G4double)
{
return MinKinEnergy();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void G4LDMBremsstrahlung::InitialiseEnergyLossProcess(
const G4ParticleDefinition*,
const G4ParticleDefinition*)
{
if(!isInitialised) {
isInitialised = true;
if (!EmModel()) { SetEmModel(new G4LDMBremModel()); }
G4VEmFluctuationModel* fm = nullptr;
G4EmParameters* param = G4EmParameters::Instance();
EmModel()->SetLowEnergyLimit(param->MinKinEnergy());
EmModel()->SetHighEnergyLimit(param->MaxKinEnergy());
AddEmModel(1, EmModel(), fm);
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,112 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/G4LDMHi.cc
/// \brief Implementation of the G4LDMHi class
//
// $Id: G4LDMHi.cc 66817 2013-01-12 16:16:08Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: G4LDMHi
//
// Description:
//
// 15.03.17 V. Grichine based on G4Monopole
//
// Modified:
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4LDMHi.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHi* G4LDMHi::theLDMHi = nullptr;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHi::G4LDMHi(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable)
: G4ParticleDefinition( aName, mass, width, charge, iSpin, iParity,
iConjugation, iIsospin, iIsospin3, gParity, pType,
lepton, baryon, encoding, stable, lifetime, decaytable )
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHi::~G4LDMHi()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// Arguments for constructor are as follows
// name mass width charge
// 2*spin parity C-conjugation
// 2*Isospin 2*Isospin3 G-parity
// type lepton number baryon number PDG encoding
// stable lifetime decay table
//
//
G4LDMHi* G4LDMHi::LDMHiDefinition(G4double mass)
{
if(!theLDMHi)
{
theLDMHi = new G4LDMHi(
"ldmhi", mass, 0.0*MeV, 0,
0, -1, -1,
0, 0, 0,
"boson", 0, 0, 51,
true, -1.0, 0);
G4cout << "LDMHi is created: m(GeV)= " << theLDMHi->GetPDGMass()/GeV
<< G4endl;
}
return theLDMHi;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHi* G4LDMHi::LDMHi()
{
return theLDMHi;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,109 @@
//
// ********************************************************************
// * 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: G4LDMHiBar.cc 66817 2013-01-12 16:16:08Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: G4LDMHiBar
//
// Description:
//
// 15.03.17 V. Grichine based on G4Monopole
//
// Modified:
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4LDMHiBar.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHiBar* G4LDMHiBar::theLDMHiBar = nullptr;
G4LDMHiBar::G4LDMHiBar(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable)
: G4ParticleDefinition( aName, mass, width, charge, iSpin, iParity,
iConjugation, iIsospin, iIsospin3, gParity, pType,
lepton, baryon, encoding, stable, lifetime, decaytable )
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHiBar::~G4LDMHiBar()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// Arguments for constructor are as follows
// name mass width charge
// 2*spin parity C-conjugation
// 2*Isospin 2*Isospin3 G-parity
// type lepton number baryon number PDG encoding
// stable lifetime decay table
//
//
G4LDMHiBar* G4LDMHiBar::LDMHiBarDefinition(G4double mass)
{
if(!theLDMHiBar)
{
theLDMHiBar = new G4LDMHiBar(
"ldmhibar", mass, 0.0*MeV, 0,
0, -1, -1,
0, 0, 0,
"boson", 0, 0, -51,
true, -1.0, 0);
G4cout << "LDMHiBar is created: m(GeV)= " << theLDMHiBar->GetPDGMass()/GeV
<< G4endl;
}
return theLDMHiBar;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMHiBar* G4LDMHiBar::LDMHiBar()
{
return theLDMHiBar;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,133 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/G4LDMPhoton.cc
/// \brief Implementation of the G4LDMPhoton class
//
// $Id: G4LDMPhoton.cc 66817 2013-01-12 16:16:08Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: G4LDMPhoton
//
// Description:
//
// 15.03.17 V. Grichine based on G4Monopole
//
// Modified:
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4LDMPhoton.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "G4DecayTable.hh"
#include "G4VDecayChannel.hh"
#include "G4PhaseSpaceDecayChannel.hh"
G4LDMPhoton* G4LDMPhoton::theLDMPhoton = nullptr;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMPhoton::G4LDMPhoton(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable)
: G4ParticleDefinition( aName, mass, width, charge, iSpin, iParity,
iConjugation, iIsospin, iIsospin3, gParity, pType,
lepton, baryon, encoding, stable, lifetime, decaytable )
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMPhoton::~G4LDMPhoton()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// Arguments for constructor are as follows
// name mass width charge
// 2*spin parity C-conjugation
// 2*Isospin 2*Isospin3 G-parity
// type lepton number baryon number PDG encoding
// stable lifetime decay table
//
//
G4LDMPhoton* G4LDMPhoton::LDMPhotonDefinition(G4double mass)
{
if(!theLDMPhoton)
{
theLDMPhoton = new G4LDMPhoton(
"ldmphoton", mass, 5.317e-14*MeV, 0,
2, -1, -1,
0, 0, 0,
"boson", 0, 0, 50,
true, 12.380*ns, NULL);
//create Decay Table
G4DecayTable* table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[3];
//
mode[0] =
new G4PhaseSpaceDecayChannel("ldmphoton",0.999,2,"ldmhi","ldmhibar");
//
mode[1] = new G4PhaseSpaceDecayChannel("ldmphoton",0.0005,2,"mu+","mu-");
//
mode[2] = new G4PhaseSpaceDecayChannel("ldmphoton",0.0005,3,"pi+","pi-");
for (G4int index=0; index <3; index++ ) table->Insert(mode[index]);
delete [] mode;
theLDMPhoton->SetDecayTable(table);
G4cout << "LDMPhoton is created: m(GeV)= "
<< theLDMPhoton->GetPDGMass()/GeV << G4endl;
}
return theLDMPhoton;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4LDMPhoton* G4LDMPhoton::LDMPhoton()
{
return theLDMPhoton;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,238 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/PhysicsList.cc
/// \brief Implementation of the PhysicsList class
//
// $Id: PhysicsList.hh 92047 2015-08-14 07:23:37Z gcosmo $
//
/////////////////////////////////////////////////
//
// ClassName: PhysicsList
//
// Authors: 01.06.17 V.Ivanchenko
//
//
///////////////////////////////////////////
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsList.hh"
#include "PhysicsListMessenger.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmStandardPhysics_option1.hh"
#include "G4EmStandardPhysics_option2.hh"
#include "G4EmStandardPhysics_option3.hh"
#include "G4EmStandardPhysics_option4.hh"
#include "G4EmStandardPhysicsGS.hh"
#include "G4EmStandardPhysicsSS.hh"
#include "G4EmStandardPhysicsWVI.hh"
#include "G4EmLivermorePhysics.hh"
#include "G4EmPenelopePhysics.hh"
#include "G4EmLowEPPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4LDMHi.hh"
#include "G4LDMHiBar.hh"
#include "G4LDMPhoton.hh"
#include "G4LDMBremsstrahlung.hh"
#include "G4LDMBremModel.hh"
#include "G4UnitsTable.hh"
#include "G4SystemOfUnits.hh"
#include "G4LossTableManager.hh"
#include "G4ProductionCutsTable.hh"
#include "G4EmConfigurator.hh"
#include "G4EmParameters.hh"
#include "G4ProcessManager.hh"
#include "G4ParticleTypes.hh"
#include "G4ParticleTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::PhysicsList()
:G4VModularPhysicsList(),
fLDMPhotonMass(0.5*CLHEP::GeV),fLDMHiMass(0.1*CLHEP::GeV),
fLDMPhoton(true),fLDMHi(false)
{
fMessenger = new PhysicsListMessenger(this);
// Decay Physics is always defined
fDecayPhysicsList = new G4DecayPhysics();
// EM physics
fEmName = G4String("emstandard_opt0");
fEmPhysicsList = new G4EmStandardPhysics(1);
SetVerboseLevel(1);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsList::~PhysicsList()
{
delete fMessenger;
delete fDecayPhysicsList;
delete fEmPhysicsList;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::ConstructParticle()
{
SetDefaultCutValue(1*mm);
fDecayPhysicsList->ConstructParticle();
if(fLDMPhoton) { G4LDMPhoton::LDMPhotonDefinition(fLDMPhotonMass); }
if(fLDMHi) {
G4LDMHi::LDMHiDefinition(fLDMHiMass);
G4LDMHiBar::LDMHiBarDefinition(fLDMHiMass);
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::ConstructProcess()
{
AddTransportation();
fEmPhysicsList->ConstructProcess();
fDecayPhysicsList->ConstructProcess();
AddDarkMatter();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::AddPhysicsList(const G4String& name)
{
//G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
if (name == fEmName) {
return;
} else if (name == "emstandard_opt0") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics();
} else if (name == "emstandard_opt1") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics_option1();
} else if (name == "emstandard_opt2") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics_option2();
} else if (name == "emstandard_opt3") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics_option3();
} else if (name == "emstandard_opt4") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics_option4();
} else if (name == "emstandardWVI") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysicsWVI();
} else if (name == "emstandardSS") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysicsSS();
} else if (name == "emstandardGS") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysicsGS();
} else if (name == "emlivermore") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmLivermorePhysics();
} else if (name == "empenelope") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmPenelopePhysics();
} else if (name == "emlowenergy") {
fEmName = name;
delete fEmPhysicsList;
fEmPhysicsList = new G4EmLowEPPhysics();
} else {
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
<< " is not defined"
<< G4endl;
return;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetCuts()
{
G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(100.*eV,1e5);
if ( verboseLevel > 0 ) { DumpCutValuesTable(); }
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::AddDarkMatter()
{
G4cout << " PhysicsList::AddDarkMatter: " << fLDMPhoton << G4endl;
if(fLDMPhoton) {
//G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
G4LDMBremsstrahlung* ldmb = new G4LDMBremsstrahlung();
G4ParticleDefinition* p = G4Proton::Proton();
G4ProcessManager* man = p->GetProcessManager();
man->AddProcess(ldmb, -1, -1, 5);
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetLDMPhotonMass(G4double val)
{
G4cout << "### PhysicsList::SetLDMPhotonMass: new value " << val/GeV
<< " GeV" << G4endl;
fLDMPhotonMass = val;
fLDMPhoton = true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::SetLDMHiMass(G4double val)
{
fLDMHiMass = val;
fLDMHi = true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,138 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/PhysicsListMessenger.cc
/// \brief Implementation of the PhysicsListMessenger class
//
// $Id: PhysicsListMessenger.cc 95713 2016-02-22 08:08:38Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: PhysicsListMessenger
//
// Description: EM physics with a possibility to add PAI model
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "PhysicsListMessenger.hh"
#include "PhysicsList.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4UIcmdWithADouble.hh"
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithAnInteger.hh"
#include "TestParameters.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys)
:G4UImessenger(),fPhysicsList(pPhys)
{
fPhysDir = new G4UIdirectory("/testex/phys/");
fPhysDir->SetGuidance("physics list commands");
fECmd = new G4UIcmdWithADoubleAndUnit("/testex/phys/setMaxE",this);
fECmd->SetGuidance("Set max energy deposit");
fECmd->SetParameterName("Emax",false);
fECmd->SetUnitCategory("Energy");
fECmd->SetRange("Emax>0.0");
fECmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fEBCmd = new G4UIcmdWithAnInteger("/testex/phys/setNbinsE",this);
fEBCmd->SetGuidance("Set number of bins in energy.");
fEBCmd->SetParameterName("Ebins",false);
fEBCmd->SetRange("Ebins>0");
fEBCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fListCmd = new G4UIcmdWithAString("/testex/phys/addPhysics",this);
fListCmd->SetGuidance("Add modula physics list.");
fListCmd->SetParameterName("PList",false);
fListCmd->AvailableForStates(G4State_PreInit);
fPHCmd = new G4UIcmdWithADoubleAndUnit("/testex/phys/setLDMPhotonMass",this);
fPHCmd->SetGuidance("Set LDMPhotonMass");
fPHCmd->SetParameterName("LDMPmass",false);
fPHCmd->SetUnitCategory("Energy");
fPHCmd->SetRange("LDMPmass>0.0");
fPHCmd->AvailableForStates(G4State_PreInit);
fHCmd = new G4UIcmdWithADoubleAndUnit("/testex/phys/setLDMHiMass",this);
fHCmd->SetGuidance("Set LDMHiMass");
fHCmd->SetParameterName("LDMHmass",false);
fHCmd->SetUnitCategory("Energy");
fHCmd->SetRange("LDMHmass>0.0");
fHCmd->AvailableForStates(G4State_PreInit);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PhysicsListMessenger::~PhysicsListMessenger()
{
delete fECmd;
delete fPHCmd;
delete fHCmd;
delete fEBCmd;
delete fListCmd;
delete fPhysDir;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsListMessenger::SetNewValue(G4UIcommand* command,
G4String newValue)
{
TestParameters* man = TestParameters::GetPointer();
if( command == fECmd )
{
man->SetMaxEnergy(fECmd->GetNewDoubleValue(newValue));
}
if( command == fEBCmd )
{
man->SetNumberBins(fEBCmd->GetNewIntValue(newValue));
}
if( command == fListCmd )
{
fPhysicsList->AddPhysicsList(newValue);
}
if( command == fPHCmd )
{
fPhysicsList->SetLDMPhotonMass(fPHCmd->GetNewDoubleValue(newValue));
}
if( command == fHCmd )
{
fPhysicsList->SetLDMHiMass(fHCmd->GetNewDoubleValue(newValue));
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/PrimaryGeneratorAction.cc
/// \brief Implementation of the PrimaryGeneratorAction class
//
// $Id$
#include "PrimaryGeneratorAction.hh"
#include "DetectorConstruction.hh"
#include "G4ParticleGun.hh"
#include "G4ParticleDefinition.hh"
#include "G4Event.hh"
#include "TestParameters.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det)
:G4VUserPrimaryGeneratorAction(),fDetector(det)
{
fParticleGun = new G4ParticleGun(1);
fParticleGun->SetParticleEnergy(100 * GeV);
fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.));
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PrimaryGeneratorAction::~PrimaryGeneratorAction()
{
delete fParticleGun;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
{
// this function is called at the begining of event
if( 0 == anEvent->GetEventID() )
{
G4double z0 = -0.5*(fDetector->GetWorldSizeZ()) + 1*um;
G4cout<<"Event = "<<anEvent->GetEventID()<<"; z0 = "<<z0;
fParticleGun->SetParticlePosition( G4ThreeVector( 0.0, 0.0, z0) );
G4cout<<" Primary direction = "
<<fParticleGun->GetParticleMomentumDirection()<<G4endl;
TestParameters* param = TestParameters::GetPointer();
param->SetBeamParticle(fParticleGun->GetParticleDefinition());
param->SetBeamEnergy(fParticleGun->GetParticleEnergy());
param->SetPositionZ(z0);
}
fParticleGun->GeneratePrimaryVertex( anEvent );
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+222
View File
@@ -0,0 +1,222 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/Run.cc
/// \brief Implementation of the Run class
//
// $Id$
#include "Run.hh"
#include "G4Step.hh"
#include "G4Run.hh"
#include "G4LossTableManager.hh"
#include "G4ElectronIonPair.hh"
#include "G4SystemOfUnits.hh"
#include "G4PhysicalConstants.hh"
#include "TestParameters.hh"
#include "Randomize.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Run::Run()
: G4Run(), fParam(TestParameters::GetPointer())
{
fTotStepGas = fOverflow = fTotEdep = fStepGas = fMaxEnergy = 0.0;
fEvt = fNbins = 0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Run::~Run()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void Run::BeginOfRun()
{
// initilise scoring
fTotStepGas = fOverflow = fTotEdep = fStepGas = fMaxEnergy = 0.0;
fEvt = 0;
SetVerbose(1);
fNbins = fParam->GetNumberBins();
fMaxEnergy = fParam->GetMaxEnergy();
fEgas.resize(fNbins,0.0);
fEdep.reset();
if(fVerbose > 0)
{
G4cout << " BinsE= " << fNbins
<< " Emax(keV)= " << fMaxEnergy/keV << G4endl;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void Run::EndOfRun()
{
G4int nEvt = GetNumberOfEvent();
G4double norm = (nEvt > 0) ? 1.0/(G4double)nEvt : 0.0;
fTotStepGas *= norm;
fOverflow *= norm;
G4double y1 = fEdep.mean();
G4double y2 = fEdep.rms();
//G4double de = fMaxEnergy/G4double(fNbins);
//G4double x1 = -de*0.5;
G4cout << " ====================================================" << G4endl;
G4cout << " Beam Particle: "
<< fParam->GetBeamParticle()->GetParticleName() << G4endl
<< " Ekin(GeV) = " << fParam->GetBeamEnergy()/GeV
<< G4endl
<< " Z(mm) = " << fParam->GetPositionZ()/mm
<< G4endl;
G4cout << " ================== run summary =====================" << G4endl;
G4int prec = G4cout.precision(5);
G4cout << " End of Run TotNbofEvents = "
<< nEvt << G4endl;
G4cout << G4endl;
G4cout << " Mean energy deposit in absorber = " <<
y1/GeV << " +- " << y2*std::sqrt(norm)/GeV << " GeV; ";
if(y1 > 0.0) { G4cout << " RMS/Emean = " << y2/y1; }
G4cout << G4endl;
G4cout << " Mean number of steps in absorber= "
<< fTotStepGas
<< G4endl;
G4cout << G4endl;
/*
G4cout << " ====== Energy deposit distribution Noverflows= " << fOverflow
<< " ====== " << G4endl ;
G4cout << " bin nb Elow entries normalized " << G4endl;
x1 = 0.0;
for(G4int j=0; j<fNbins; ++j)
{
G4cout << std::setw(5) << j << std::setw(10) << x1/keV
<< std::setw(12) << fEgas[j] << std::setw(12) << fEgas[j]*norm
<< G4endl ;
x1 += de;
}
*/
G4cout.precision(prec);
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
// normalize histograms
analysisManager->ScaleH1(1,norm);
G4cout << " ================== run end ==========================" << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void Run::BeginOfEvent()
{
fTotEdep = 0.0;
fStepGas = 0;
++fEvt;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void Run::EndOfEvent()
{
/*
G4cout << "fStepGas = " << fStepGas << " fTotStepGas= " << fTotStepGas
<< " fTotEdep= " << fTotEdep << " fNbins= " << fNbins
<< " fMaxEnergy= " << fMaxEnergy << G4endl;
*/
fTotStepGas += fStepGas;
G4int idx = G4lrint(fTotEdep*fNbins/fMaxEnergy);
if(idx < 0) { fEgas[0] += 1.0; }
if(idx >= fNbins) { fOverflow += 1.0; }
else { fEgas[idx] += 1.0; }
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
// fill histo
analysisManager->FillH1(1,fTotEdep/GeV,1.0);
fEdep.fill(fTotEdep, 1.0);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// Allows one to accumulate data from different threads
void Run::Merge( const G4Run* run )
{
const Run* localRun = static_cast<const Run*>(run);
fTotStepGas += localRun->fTotStepGas;
fOverflow += localRun->fOverflow;
G4StatDouble* stat = const_cast<G4StatDouble*>(localRun->GetStat());
fEdep.add(stat);
for( G4int j = 0; j < fNbins; ++j )
{
fEgas[j] += localRun->fEgas[j];
}
G4Run::Merge(run);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
// Is called from TargetSD
void Run::AddEnergy( G4double edep, const G4Step* step )
{
if( 1 < fVerbose )
{
G4cout << "Run::AddEnergy: e(keV)= " << edep/keV
<< G4endl;
}
fTotEdep += edep;
if( step )
{
if( 1 == step->GetTrack()->GetTrackID())
{
fStepGas += 1.0;
}
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+132
View File
@@ -0,0 +1,132 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/RunAction.cc
/// \brief Implementation of the RunAction class
//
// $Id: RunAction.cc 92047 2015-08-14 07:23:37Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: RunAction
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "RunAction.hh"
#include "Run.hh"
#include "TestParameters.hh"
#include "G4Run.hh"
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4VVisManager.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunAction::RunAction()
: G4UserRunAction(), fAnalysisManager(nullptr), fRun(nullptr)
{
TestParameters::GetPointer();
fAnalysisManager = G4AnalysisManager::Instance();
fAnalysisManager->SetFileName("dmp");
fAnalysisManager->SetVerboseLevel(1);
fAnalysisManager->SetActivation(true);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunAction::~RunAction()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::Book()
{
// Always creating analysis manager
TestParameters* param = TestParameters::GetPointer();
G4int nBinsE = param->GetNumberBins();
G4double maxEnergy = param->GetMaxEnergy();
// Creating an 1-dimensional histograms in the root directory of the tree
fAnalysisManager->SetFirstHistoId(1);
fAnalysisManager->CreateH1("h1","Energy deposition in detector (GeV)",
nBinsE,0.0,maxEnergy/GeV);
fAnalysisManager->OpenFile();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4Run* RunAction::GenerateRun()
{
fRun = new Run();
return fRun;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::BeginOfRunAction(const G4Run* aRun)
{
G4int id = aRun->GetRunID();
G4cout << "### Run " << id << " start analysis activation: "
<< G4endl;
fRun->BeginOfRun();
//histograms
Book();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void RunAction::EndOfRunAction(const G4Run*)
{
// print Run summary
G4cout << "RunAction: End of run actions are started " << isMaster
<< " Nevt= " << fRun->GetNumberOfEvent()
<< " Edep= " << fRun->GetStat()->mean() << G4endl;
if (isMaster) {
fRun->EndOfRun();
}
// save histos and close analysis
if (fAnalysisManager->IsActive()) {
fAnalysisManager->Write();
fAnalysisManager->CloseFile();
}
//delete fAnalysisManager;
#ifdef G4VIS_USE
if (G4VVisManager::GetConcreteInstance()) {
G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update");
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,90 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/StackingAction.cc
/// \brief Implementation of the StackingAction class
//
// $Id: StackingAction.cc,v 1.8 2009-03-06 18:04:23 maire Exp $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "StackingAction.hh"
#include "Run.hh"
#include "StackingMessenger.hh"
#include "G4LDMPhoton.hh"
#include "G4LDMHi.hh"
#include "G4LDMHiBar.hh"
#include "G4Track.hh"
#include "G4Step.hh"
#include "G4RunManager.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
StackingAction::StackingAction()
: G4UserStackingAction(), fKillSecondary(false)
{
fStackMessenger = new StackingMessenger(this);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
StackingAction::~StackingAction()
{
delete fStackMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4ClassificationOfNewTrack
StackingAction::ClassifyNewTrack(const G4Track* aTrack)
{
//stack or delete secondaries
G4ClassificationOfNewTrack status = fUrgent;
//keep primary particle
if(aTrack->GetParentID() == 0) { return status; }
const G4ParticleDefinition* part = aTrack->GetDefinition();
if(part == G4LDMPhoton::LDMPhoton() ||
part == G4LDMHi::LDMHi() ||
part == G4LDMHiBar::LDMHiBar()) {
G4cout << "### New exotic particle produced: "
<< part->GetParticleName()
<< " Ekin(GeV)= " << aTrack->GetKineticEnergy()/CLHEP::GeV
<< " Mass(GeV)= " << part->GetPDGMass()/CLHEP::GeV
<< " TrackId= " << aTrack->GetTrackID()
<< G4endl;
return status;
}
if(fKillSecondary) { status = fKill; }
return status;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/StackingMessenger.cc
/// \brief Implementation of the StackingMessenger class
//
// $Id: StackingMessenger.cc,v 1.5 2006-09-25 17:06:29 maire Exp $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "StackingMessenger.hh"
#include "StackingAction.hh"
#include "G4UIcmdWithABool.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
StackingMessenger::StackingMessenger(StackingAction* stack)
:G4UImessenger(),fStackAction(stack)
{
fKillCmd = new G4UIcmdWithABool("/testex/killSecondaries",this);
fKillCmd->SetGuidance("Kill secondary charged particles");
fKillCmd->SetParameterName("choice",true);
fKillCmd->SetDefaultValue(false);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
StackingMessenger::~StackingMessenger()
{
delete fKillCmd;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void StackingMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
{
if(command == fKillCmd)
{fStackAction->SetKillStatus(fKillCmd->GetNewBoolValue(newValue));}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+104
View File
@@ -0,0 +1,104 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/TargetSD.cc
/// \brief Implementation of the TargetSD. class
//
// $Id$
//
/////////////////////////////////////////////////
//
// ClassName: TargetSD
//
// Authors: 01.06.17 V.Ivanchenko
//
//
///////////////////////////////////////////
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "TargetSD.hh"
#include "Run.hh"
#include "globals.hh"
#include "G4HCofThisEvent.hh"
#include "G4TouchableHistory.hh"
#include "G4Step.hh"
#include "G4String.hh"
#include "G4RunManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TargetSD::TargetSD(const G4String& name)
: G4VSensitiveDetector(name), fRun(nullptr)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TargetSD::~TargetSD()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TargetSD::Initialize(G4HCofThisEvent*)
{
fRun = (Run*)G4RunManager::GetRunManager()->GetNonConstCurrentRun();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4bool TargetSD::ProcessHits( G4Step* aStep, G4TouchableHistory* )
{
G4double edep = aStep->GetTotalEnergyDeposit();
/*
G4String name = aStep->GetTrack()->GetDefinition()->GetParticleName();
if(name == "ldmhi" || name == "ldmhibar" || name == "ldmphoton")
{
G4cout << name << " Edep(MeV)= " << edep/MeV << G4endl;
}
*/
fRun->AddEnergy(edep, aStep);
return true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TargetSD::EndOfEvent(G4HCofThisEvent*)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TargetSD::clear()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TargetSD::PrintAll()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -0,0 +1,163 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
/// \file exoticphysics/dmparticle/src/TestParameters.cc
/// \brief Implementation of the TestParameters class
//
// $Id: TestParameters.cc 78707 2014-01-17 16:02:01Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: TestParameters
//
// Author: V.Ivanchenko 01.09.2010
//
//----------------------------------------------------------------------------
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "TestParameters.hh"
#include "G4UnitsTable.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TestParameters* TestParameters::fManager = nullptr;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TestParameters* TestParameters::GetPointer()
{
if(!fManager) {
fManager = new TestParameters();
}
return fManager;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TestParameters::TestParameters()
{
fMaxEnergy = 100.*GeV;
fBinsE = 100;
fPositionZ = 0.0;
fBeamEnergy = 0.0;
fEpsilon = 100.0;
fParticle = nullptr;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TestParameters::~TestParameters()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetMaxEnergy(G4double value)
{
fMaxEnergy = value;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double TestParameters::GetMaxEnergy() const
{
return fMaxEnergy;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetNumberBins(G4int value)
{
fBinsE = value;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4int TestParameters::GetNumberBins() const
{
return fBinsE;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetPositionZ(G4double val)
{
fPositionZ = val;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double TestParameters::GetPositionZ() const
{
return fPositionZ;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetBeamEnergy(G4double val)
{
fBeamEnergy = val;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double TestParameters::GetBeamEnergy() const
{
return fBeamEnergy;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetAlphaFactor(G4double val)
{
fEpsilon = val;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4double TestParameters::GetAlphaFactor() const
{
return fEpsilon;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void TestParameters::SetBeamParticle(const G4ParticleDefinition* ptr)
{
fParticle = ptr;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
const G4ParticleDefinition* TestParameters::GetBeamParticle() const
{
return fParticle;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......