Import Geant4 10.0.0 source tree
This commit is contained in:
@@ -34,5 +34,25 @@ It create parallel world(s) for defining scoring mesh(es).
|
||||
This example demonstrates how to define layered mass geometry in
|
||||
a parallel world and use it in a simulation.
|
||||
|
||||
\link ExampleRE05 RE05 \endlink
|
||||
|
||||
Defines a simplified collider detector setup.
|
||||
Demonstrates interfacing to the PYTHIA primary generator. Includes
|
||||
the definition of a 'readout' geometry. Exercises event filtering using
|
||||
the stacking mechanism. Includes visualization. \n
|
||||
It was moved in extended examples from novice/N04 with removal of
|
||||
novice examples.
|
||||
|
||||
\link ExampleRE06 RE06 \endlink
|
||||
|
||||
Implements three simplified sandwitch calorimeters.
|
||||
Shows how to modify part of the geometry setup at run-time. Includes
|
||||
detector description parameterisation by materials. Demonstrates
|
||||
sharing of a sensitive detector definition for different sub-detectors.
|
||||
Defines different geometrical regions with different production
|
||||
thresholds. Shows customization of the G4Run. \n
|
||||
It was moved in extended examples from novice/N07 with removal of
|
||||
novice examples.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -6,3 +6,5 @@ add_subdirectory(RE01)
|
||||
add_subdirectory(RE02)
|
||||
add_subdirectory(RE03)
|
||||
add_subdirectory(RE04)
|
||||
add_subdirectory(RE05)
|
||||
add_subdirectory(RE06)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.1 2007-11-17 00:28:33 asaim Exp $
|
||||
$Id: History 68026 2013-03-13 13:45:22Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -16,6 +16,13 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Feb 15, 2013 I. Hrivnacova (exRunAndEvent-V09-06-01)
|
||||
- Applied coding guidelines (data members names and initialization)
|
||||
- Fixed GNUmakefile (in RE05, RE06)
|
||||
|
||||
Dec. 19, 2012 I.Hrivnacova (exRunAndEvent-V09-06-00)
|
||||
- Added RE05, RE06 which (moved from /novice/N04 and /novice/N07)
|
||||
|
||||
Oct. 15, 2012 M.Asai (exRunAndEvent-V09-05-01)
|
||||
- Update of RE01, RE03 by T.Aso (see RE01,RE03/History) to be compliant to
|
||||
the example coding rule.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.1 2004-11-26 07:37:38 asaim Exp $
|
||||
# $Id: GNUmakefile 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.10 2010-11-24 22:47:23 asaim Exp $
|
||||
$Id: History 75598 2013-11-04 13:00:59Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,37 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Oct 31, 2013 A. Kimura (exampleRE01-V09-06-08)
|
||||
- Added newline at end of RE01DetectorConstruction.cc
|
||||
|
||||
Oct 29, 2013 A. Kimura (exampleRE01-V09-06-07)
|
||||
- Added RE01ActionInitialization.{hh,cc}
|
||||
|
||||
Oct 25, 2013 M. Asai (exampleRE01-V09-06-06)
|
||||
- MT migration.
|
||||
|
||||
Aug 27, 2013 G. Cosmo (exampleRE01-V09-06-05)
|
||||
- Added G4Ellipsoid among solids enabled for parameterisation
|
||||
|
||||
Apr 01, 2013 A. Dotti (exampleRE01-V09-06-04)
|
||||
- New API for physics lists needed for MT
|
||||
|
||||
Mar 14, 2013 M. Asai (exampleRE01-V09-06-03)
|
||||
- Enforcing the coding guideline.
|
||||
|
||||
Feb 15, 2013 I. Hrivnacova
|
||||
- Applied coding guidelines (data members initialization)
|
||||
|
||||
Feb 1, 2013 V.Ivanchenko (exampleRE01-V09-06-02)
|
||||
- Migration to new physics_lists directory structure
|
||||
|
||||
Dec 14, 2012 A.Ribon (exampleRE01-V09-06-01)
|
||||
- Replaced obsolete class G4QStoppingPhysics with G4StoppingPhysics.
|
||||
|
||||
Dec 02, 2012 J.Allison (exampleRE01-V09-06-00)
|
||||
Migration to DrawTrajectory() (i_mode argument is no longer available):
|
||||
o RE01Trajectory.cc: Removed DrawTrajectory(G4int i_mode).
|
||||
|
||||
Nov 8, 2012 I.Hrivnacova (exampleRE01-V09-05-02)
|
||||
- Added copying pythia_event.data in the build area
|
||||
|
||||
|
||||
@@ -40,18 +40,19 @@
|
||||
// --------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
#include "RE01DetectorConstruction.hh"
|
||||
#include "RE01PhysicsList.hh"
|
||||
#include "QGSP_BERT.hh"
|
||||
#include "RE01PrimaryGeneratorAction.hh"
|
||||
#include "RE01RunAction.hh"
|
||||
#include "RE01EventAction.hh"
|
||||
#include "RE01StackingAction.hh"
|
||||
#include "RE01TrackingAction.hh"
|
||||
#include "RE01SteppingAction.hh"
|
||||
|
||||
#include "RE01ActionInitialization.hh"
|
||||
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
@@ -63,7 +64,12 @@
|
||||
|
||||
int main(int argc,char** argv)
|
||||
{
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
//runManager->SetNumberOfThreads(4);
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// Visualization manager construction
|
||||
@@ -75,14 +81,9 @@ int main(int argc,char** argv)
|
||||
runManager->SetUserInitialization(new RE01PhysicsList);
|
||||
//runManager->SetUserInitialization(new QGSP_BERT);
|
||||
|
||||
runManager->SetUserInitialization(new RE01ActionInitialization);
|
||||
|
||||
runManager->Initialize();
|
||||
|
||||
runManager->SetUserAction(new RE01PrimaryGeneratorAction);
|
||||
runManager->SetUserAction(new RE01RunAction);
|
||||
runManager->SetUserAction(new RE01EventAction);
|
||||
runManager->SetUserAction(new RE01StackingAction);
|
||||
runManager->SetUserAction(new RE01TrackingAction);
|
||||
runManager->SetUserAction(new RE01SteppingAction);
|
||||
|
||||
if(argc==1)
|
||||
{
|
||||
|
||||
+15
-25
@@ -23,40 +23,30 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file runAndEvent/RE02/include/RE02PhysicsList.hh
|
||||
/// \brief Definition of the RE02PhysicsList class
|
||||
// $Id: RE01ActionInitialization.hh 66522 2012-12-19 12:26:04Z ihrivnac $
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
/// \file include/RE01ActionInitialization.hh
|
||||
/// \brief Definition of the RE01ActionInitialization class
|
||||
//
|
||||
#ifndef RE02PhysicsList_h
|
||||
#define RE02PhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#ifndef RE01ActionInitialization_H
|
||||
#define RE01ActionInitialization_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
//
|
||||
/// Physics list class
|
||||
///
|
||||
/// - constructor
|
||||
/// registers general, standard EM, muon, hadron and ion physics
|
||||
///
|
||||
/// - void SetCuts()
|
||||
/// invokes default SetCuts methods with SetCutsWithDefault()
|
||||
//
|
||||
class RE02PhysicsList: public G4VModularPhysicsList
|
||||
class RE01ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
RE02PhysicsList();
|
||||
virtual ~RE02PhysicsList();
|
||||
public:
|
||||
RE01ActionInitialization();
|
||||
virtual ~RE01ActionInitialization();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
virtual void Build() const;
|
||||
virtual void BuildForMaster() const;
|
||||
|
||||
private:
|
||||
//G4bool m_bParallelWorld;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01CalorimeterHit.hh
|
||||
/// \brief Definition of the RE01CalorimeterHit class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterHit.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01CalorimeterHit_h
|
||||
@@ -41,6 +41,8 @@
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "RE01TrackInformation.hh"
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
class G4AttDef;
|
||||
class G4AttValue;
|
||||
|
||||
@@ -97,18 +99,18 @@ private:
|
||||
|
||||
typedef G4THitsCollection<RE01CalorimeterHit> RE01CalorimeterHitsCollection;
|
||||
|
||||
extern G4Allocator<RE01CalorimeterHit> RE01CalorimeterHitAllocator;
|
||||
extern G4ThreadLocal G4Allocator<RE01CalorimeterHit> * RE01CalorimeterHitAllocator;
|
||||
|
||||
inline void* RE01CalorimeterHit::operator new(size_t)
|
||||
{
|
||||
void *aHit;
|
||||
aHit = (void *) RE01CalorimeterHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
if(!RE01CalorimeterHitAllocator)
|
||||
RE01CalorimeterHitAllocator = new G4Allocator<RE01CalorimeterHit>;
|
||||
return (void *) RE01CalorimeterHitAllocator->MallocSingle();
|
||||
}
|
||||
|
||||
inline void RE01CalorimeterHit::operator delete(void *aHit)
|
||||
{
|
||||
RE01CalorimeterHitAllocator.FreeSingle((RE01CalorimeterHit*) aHit);
|
||||
RE01CalorimeterHitAllocator->FreeSingle((RE01CalorimeterHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01CalorimeterParametrisation.hh
|
||||
/// \brief Definition of the RE01CalorimeterParametrisation class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterParametrisation.hh 73442 2013-08-27 11:26:43Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01CalorimeterParametrisation_H
|
||||
@@ -43,6 +43,7 @@ class G4Trd;
|
||||
class G4Trap;
|
||||
class G4Cons;
|
||||
class G4Sphere;
|
||||
class G4Ellipsoid;
|
||||
class G4Torus;
|
||||
class G4Para;
|
||||
class G4Hype;
|
||||
@@ -56,35 +57,38 @@ class RE01CalorimeterParametrisation : public G4VPVParameterisation
|
||||
public:
|
||||
|
||||
RE01CalorimeterParametrisation();
|
||||
virtual ~RE01CalorimeterParametrisation();
|
||||
virtual void ComputeTransformation(const G4int copyNo,
|
||||
~RE01CalorimeterParametrisation();
|
||||
|
||||
void ComputeTransformation(const G4int copyNo,
|
||||
G4VPhysicalVolume *physVol) const;
|
||||
virtual void ComputeDimensions(G4Tubs & calorimeterLayer,
|
||||
void ComputeDimensions(G4Tubs & calorimeterLayer,
|
||||
const G4int copyNo,
|
||||
const G4VPhysicalVolume * physVol) const;
|
||||
|
||||
private: // Dummy declarations to get rid of warnings ...
|
||||
virtual void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Ellipsoid&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Box&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Box&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
|
||||
private:
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01CalorimeterROGeometry.hh
|
||||
/// \brief Definition of the RE01CalorimeterROGeometry class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterROGeometry.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01CalorimeterROGeometry_h
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01CalorimeterSD.hh
|
||||
/// \brief Definition of the RE01CalorimeterSD class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterSD.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01CalorimeterSD_h
|
||||
@@ -38,6 +38,7 @@ class G4Step;
|
||||
class G4HCofThisEvent;
|
||||
class G4TouchableHistory;
|
||||
|
||||
|
||||
class RE01CalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01DetectorConstruction.hh
|
||||
/// \brief Definition of the RE01DetectorConstruction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01DetectorConstruction.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01DetectorConstruction_h
|
||||
@@ -36,6 +36,8 @@
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4LogicalVolume;
|
||||
class G4VReadOutGeometry;
|
||||
|
||||
class RE01DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
@@ -45,10 +47,14 @@ public:
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
private:
|
||||
#include "RE01DetectorParameterDef.hh"
|
||||
|
||||
G4LogicalVolume * fTrackerLayer_log;
|
||||
G4LogicalVolume * fCalorimeter_log;
|
||||
G4VReadOutGeometry * fCalorimeterRO;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01DetectorParameterDef.hh
|
||||
/// \brief Definition of the RE01DetectorParameterDef class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01DetectorParameterDef.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
G4double fExpHall_x;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01EventAction.hh
|
||||
/// \brief Definition of the RE01EventAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01EventAction.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01EventAction_h
|
||||
@@ -40,7 +40,7 @@ class G4PrimaryParticle;
|
||||
class RE01EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
RE01EventAction();
|
||||
RE01EventAction();//G4bool);
|
||||
virtual ~RE01EventAction();
|
||||
|
||||
public:
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01Field.hh
|
||||
/// \brief Definition of the RE01Field class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01Field.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01Field_H
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01PhysicsList.hh
|
||||
/// \brief Definition of the RE01PhysicsList class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PhysicsList.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
//
|
||||
#ifndef RE01PhysicsList_h
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the RE01PrimaryGeneratorAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PrimaryGeneratorAction.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01PrimaryGeneratorAction_h
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01PrimaryGeneratorMessenger.hh
|
||||
/// \brief Definition of the RE01PrimaryGeneratorMessenger class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PrimaryGeneratorMessenger.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01PrimaryGeneratorMessenger_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE01RegionInformation class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01RegionInformation.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01RegionInformation_H
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE01RunAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01RunAction.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01RunAction_h
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01StackingAction.hh
|
||||
/// \brief Definition of the RE01StackingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01StackingAction.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01StackingAction_H
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01SteppingAction.hh
|
||||
/// \brief Definition of the RE01SteppingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01SteppingAction.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01SteppingAction_H
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE01TrackInformation class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackInformation.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackInformation_h
|
||||
@@ -89,16 +89,18 @@ private:
|
||||
|
||||
};
|
||||
|
||||
extern G4Allocator<RE01TrackInformation> aTrackInformationAllocator;
|
||||
extern G4ThreadLocal G4Allocator<RE01TrackInformation> * aTrackInformationAllocator;
|
||||
//extern G4Allocator<RE01TrackInformation> aTrackInformationAllocator;
|
||||
|
||||
inline void* RE01TrackInformation::operator new(size_t)
|
||||
{ void* aTrackInfo;
|
||||
aTrackInfo = (void*)aTrackInformationAllocator.MallocSingle();
|
||||
return aTrackInfo;
|
||||
{
|
||||
if(!aTrackInformationAllocator)
|
||||
aTrackInformationAllocator = new G4Allocator<RE01TrackInformation>;
|
||||
return (void*)aTrackInformationAllocator->MallocSingle();
|
||||
}
|
||||
|
||||
inline void RE01TrackInformation::operator delete(void *aTrackInfo)
|
||||
{ aTrackInformationAllocator.FreeSingle((RE01TrackInformation*)aTrackInfo);}
|
||||
{ aTrackInformationAllocator->FreeSingle((RE01TrackInformation*)aTrackInfo);}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01TrackerHit.hh
|
||||
/// \brief Definition of the RE01TrackerHit class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerHit.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackerHit_h
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4Types.hh"
|
||||
|
||||
class G4AttDef;
|
||||
class G4AttValue;
|
||||
@@ -76,18 +77,18 @@ private:
|
||||
|
||||
typedef G4THitsCollection<RE01TrackerHit> RE01TrackerHitsCollection;
|
||||
|
||||
extern G4Allocator<RE01TrackerHit> RE01TrackerHitAllocator;
|
||||
extern G4ThreadLocal G4Allocator<RE01TrackerHit> * RE01TrackerHitAllocator;
|
||||
|
||||
inline void* RE01TrackerHit::operator new(size_t)
|
||||
{
|
||||
void *aHit;
|
||||
aHit = (void *) RE01TrackerHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
if(!RE01TrackerHitAllocator)
|
||||
RE01TrackerHitAllocator = new G4Allocator<RE01TrackerHit>;
|
||||
return (void *) RE01TrackerHitAllocator->MallocSingle();
|
||||
}
|
||||
|
||||
inline void RE01TrackerHit::operator delete(void *aHit)
|
||||
{
|
||||
RE01TrackerHitAllocator.FreeSingle((RE01TrackerHit*) aHit);
|
||||
RE01TrackerHitAllocator->FreeSingle((RE01TrackerHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01TrackerParametrisation.hh
|
||||
/// \brief Definition of the RE01TrackerParametrisation class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerParametrisation.hh 73442 2013-08-27 11:26:43Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackerParametrisation_H
|
||||
@@ -43,6 +43,7 @@ class G4Trd;
|
||||
class G4Trap;
|
||||
class G4Cons;
|
||||
class G4Sphere;
|
||||
class G4Ellipsoid;
|
||||
class G4Torus;
|
||||
class G4Para;
|
||||
class G4Hype;
|
||||
@@ -56,35 +57,39 @@ class RE01TrackerParametrisation : public G4VPVParameterisation
|
||||
public:
|
||||
|
||||
RE01TrackerParametrisation();
|
||||
virtual ~RE01TrackerParametrisation();
|
||||
virtual void ComputeTransformation(const G4int copyNo,
|
||||
G4VPhysicalVolume *physVol) const;
|
||||
virtual void ComputeDimensions(G4Tubs & trackerLayer,
|
||||
const G4int copyNo,
|
||||
const G4VPhysicalVolume * physVol) const;
|
||||
~RE01TrackerParametrisation();
|
||||
|
||||
void ComputeTransformation(const G4int copyNo,
|
||||
G4VPhysicalVolume *physVol) const;
|
||||
void ComputeDimensions(G4Tubs & trackerLayer,
|
||||
const G4int copyNo,
|
||||
const G4VPhysicalVolume * physVol) const;
|
||||
|
||||
private: // Dummy declarations to get rid of warnings ...
|
||||
virtual void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
|
||||
void ComputeDimensions(G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Ellipsoid&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Box&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Box&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions(G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
void ComputeDimensions(G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
|
||||
private:
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01TrackerSD.hh
|
||||
/// \brief Definition of the RE01TrackerSD class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerSD.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackerSD_h
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01TrackingAction.hh
|
||||
/// \brief Definition of the RE01TrackingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackingAction.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackingAction_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE01Trajectory class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01Trajectory.hh 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE01Trajectory_h
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
virtual ~RE01Trajectory();
|
||||
|
||||
virtual void ShowTrajectory(std::ostream& os=G4cout) const;
|
||||
virtual void DrawTrajectory(G4int i_mode =0) const;
|
||||
virtual void DrawTrajectory() const;
|
||||
virtual const std::map<G4String,G4AttDef>* GetAttDefs() const;
|
||||
virtual std::vector<G4AttValue>* CreateAttValues() const;
|
||||
virtual void AppendStep(const G4Step* aStep);
|
||||
@@ -94,18 +94,18 @@ public:
|
||||
|
||||
};
|
||||
|
||||
extern G4Allocator<RE01Trajectory> myTrajectoryAllocator;
|
||||
extern G4ThreadLocal G4Allocator<RE01Trajectory> * myTrajectoryAllocator;
|
||||
|
||||
inline void* RE01Trajectory::operator new(size_t)
|
||||
{
|
||||
void* aTrajectory;
|
||||
aTrajectory = (void*)myTrajectoryAllocator.MallocSingle();
|
||||
return aTrajectory;
|
||||
if(!myTrajectoryAllocator)
|
||||
myTrajectoryAllocator = new G4Allocator<RE01Trajectory>;
|
||||
return (void*)myTrajectoryAllocator->MallocSingle();
|
||||
}
|
||||
|
||||
inline void RE01Trajectory::operator delete(void* aTrajectory)
|
||||
{
|
||||
myTrajectoryAllocator.FreeSingle((RE01Trajectory*)aTrajectory);
|
||||
myTrajectoryAllocator->FreeSingle((RE01Trajectory*)aTrajectory);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/include/RE01UnknownDecayPhysics.hh
|
||||
/// \brief Definition of the RE01UnknownDecayPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01UnknownDecayPhysics.hh 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
//
|
||||
#ifndef RE01UnknownDecayPhysics_h
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,70 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01ActionInitialization.cc 66522 2012-12-19 12:26:04Z ihrivnac $
|
||||
//
|
||||
/// \file src/RE01ActionInitialization.cc
|
||||
/// \brief Implementation of the RE01ActionInitialization class
|
||||
//
|
||||
|
||||
#include "RE01ActionInitialization.hh"
|
||||
#include "RE01PrimaryGeneratorAction.hh"
|
||||
#include "RE01RunAction.hh"
|
||||
#include "RE01EventAction.hh"
|
||||
|
||||
#include "RE01StackingAction.hh"
|
||||
#include "RE01TrackingAction.hh"
|
||||
#include "RE01SteppingAction.hh"
|
||||
|
||||
RE01ActionInitialization::RE01ActionInitialization()
|
||||
{;}
|
||||
|
||||
RE01ActionInitialization::~RE01ActionInitialization()
|
||||
{;}
|
||||
|
||||
void RE01ActionInitialization::Build() const
|
||||
{
|
||||
//
|
||||
SetUserAction(new RE01PrimaryGeneratorAction);
|
||||
//
|
||||
SetUserAction(new RE01RunAction);
|
||||
//
|
||||
SetUserAction(new RE01EventAction);
|
||||
|
||||
//
|
||||
SetUserAction(new RE01StackingAction);
|
||||
//
|
||||
SetUserAction(new RE01TrackingAction);
|
||||
//
|
||||
SetUserAction(new RE01SteppingAction);
|
||||
}
|
||||
|
||||
void RE01ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
//
|
||||
G4UserRunAction* run_action = new RE01RunAction;
|
||||
SetUserAction(run_action);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE01CalorimeterHit class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterHit.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01CalorimeterHit.hh"
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4Allocator<RE01CalorimeterHit> RE01CalorimeterHitAllocator;
|
||||
G4ThreadLocal G4Allocator<RE01CalorimeterHit> * RE01CalorimeterHitAllocator = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01CalorimeterHit::RE01CalorimeterHit(G4LogicalVolume* logVol,
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01CalorimeterParametrisation.cc
|
||||
/// \brief Implementation of the RE01CalorimeterParametrisation class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterParametrisation.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01CalorimeterParametrisation.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01CalorimeterROGeometry.cc
|
||||
/// \brief Implementation of the RE01CalorimeterROGeometry class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterROGeometry.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01CalorimeterROGeometry.hh"
|
||||
@@ -110,7 +110,7 @@ G4VPhysicalVolume* RE01CalorimeterROGeometry::Build()
|
||||
G4LogicalVolume * caloROcellLog
|
||||
= new G4LogicalVolume(caloROcellTub, dummyMat, "caloROcellLogical",0,0,0);
|
||||
// G4VPhysicalVolume * caloROcellPhys =
|
||||
new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys,
|
||||
new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys,
|
||||
kZAxis, fSegmentsinZ,2.*fCaloRing_dz);
|
||||
|
||||
return ROWorldPhys;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01CalorimeterSD.cc
|
||||
/// \brief Implementation of the RE01CalorimeterSD class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01CalorimeterSD.cc 68761 2013-04-05 12:35:00Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01CalorimeterSD.hh"
|
||||
@@ -110,7 +110,8 @@ G4bool RE01CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist)
|
||||
else
|
||||
{
|
||||
(*fCalCollection)[fCellID[copyIDinZ][copyIDinPhi]]->AddEdep(edep);
|
||||
(*fCalCollection)[fCellID[copyIDinZ][copyIDinPhi]]->SetTrackInformation(aStep->GetTrack());
|
||||
(*fCalCollection)[fCellID[copyIDinZ][copyIDinPhi]]
|
||||
->SetTrackInformation(aStep->GetTrack());
|
||||
if(verboseLevel>0)
|
||||
{ G4cout << " Energy added to CellID "
|
||||
<< copyIDinZ << " " << copyIDinPhi << G4endl; }
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01DetectorConstruction.cc
|
||||
/// \brief Implementation of the RE01DetectorConstruction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01DetectorConstruction.cc 75598 2013-11-04 13:00:59Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01DetectorConstruction.hh"
|
||||
@@ -163,38 +163,42 @@ G4VPhysicalVolume* RE01DetectorConstruction::Construct()
|
||||
G4VSolid * trackerLayer_tubs
|
||||
= new G4Tubs("trackerLayer_tubs",fTrkTubs_rmin,fTrkTubs_rmax,fTrkTubs_dz,
|
||||
fTrkTubs_sphi,fTrkTubs_dphi);
|
||||
G4LogicalVolume * trackerLayer_log
|
||||
fTrackerLayer_log
|
||||
= new G4LogicalVolume(trackerLayer_tubs,silicon,"trackerB_L",0,0,0);
|
||||
G4VPVParameterisation * trackerParam
|
||||
= new RE01TrackerParametrisation;
|
||||
// dummy value : kXAxis -- modified by parameterised volume
|
||||
// G4VPhysicalVolume *trackerLayer_phys =
|
||||
new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_log,
|
||||
new G4PVParameterised("trackerLayer_phys",fTrackerLayer_log,tracker_log,
|
||||
kXAxis, fNotrkLayers, trackerParam);
|
||||
G4VisAttributes* trackerLayer_logVisAtt
|
||||
= new G4VisAttributes(G4Colour(0.5,0.0,1.0));
|
||||
trackerLayer_logVisAtt->SetForceWireframe(true);
|
||||
trackerLayer_log->SetVisAttributes(trackerLayer_logVisAtt);
|
||||
fTrackerLayer_log->SetVisAttributes(trackerLayer_logVisAtt);
|
||||
|
||||
//------------------------------ calorimeter
|
||||
G4VSolid * calorimeter_tubs
|
||||
= new G4Tubs("calorimeter_tubs",fCaloTubs_rmin,fCaloTubs_rmax,
|
||||
fCaloTubs_dz,fCaloTubs_sphi,fCaloTubs_dphi);
|
||||
G4LogicalVolume * calorimeter_log
|
||||
fCalorimeter_log
|
||||
= new G4LogicalVolume(calorimeter_tubs,scinti,"caloT_L",0,0,0);
|
||||
// G4VPhysicalVolume * calorimeter_phys =
|
||||
new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P",
|
||||
new G4PVPlacement(0,G4ThreeVector(),fCalorimeter_log,"caloM_P",
|
||||
experimentalHall_log,false,0);
|
||||
G4VisAttributes* calorimeter_logVisATT
|
||||
= new G4VisAttributes(G4Colour(1.0,1.0,0.0));
|
||||
calorimeter_logVisATT->SetForceWireframe(true);
|
||||
calorimeter_log->SetVisAttributes(calorimeter_logVisATT);
|
||||
fCalorimeter_log->SetVisAttributes(calorimeter_logVisATT);
|
||||
G4Region* calorimeterRegion = new G4Region("CalorimeterRegion");
|
||||
RE01RegionInformation* calorimeterInfo = new RE01RegionInformation();
|
||||
calorimeterInfo->SetCalorimeter();
|
||||
calorimeterRegion->SetUserInformation(calorimeterInfo);
|
||||
calorimeter_log->SetRegion(calorimeterRegion);
|
||||
calorimeterRegion->AddRootLogicalVolume(calorimeter_log);
|
||||
fCalorimeter_log->SetRegion(calorimeterRegion);
|
||||
calorimeterRegion->AddRootLogicalVolume(fCalorimeter_log);
|
||||
|
||||
G4String ROgeometryName = "CalorimeterROGeom";
|
||||
fCalorimeterRO = new RE01CalorimeterROGeometry(ROgeometryName);
|
||||
fCalorimeterRO->BuildROGeometry();
|
||||
|
||||
//------------------------------- Lead layers
|
||||
// As an example for Parameterised volume
|
||||
@@ -208,32 +212,35 @@ G4VPhysicalVolume* RE01DetectorConstruction::Construct()
|
||||
= new RE01CalorimeterParametrisation;
|
||||
// dummy value : kXAxis -- modified by parameterised volume
|
||||
// G4VPhysicalVolume * caloLayer_phys =
|
||||
new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_log,
|
||||
new G4PVParameterised("caloLayer_phys",caloLayer_log,fCalorimeter_log,
|
||||
kXAxis, fNocaloLayers, calorimeterParam);
|
||||
G4VisAttributes* caloLayer_logVisAtt
|
||||
= new G4VisAttributes(G4Colour(0.7,1.0,0.0));
|
||||
caloLayer_logVisAtt->SetForceWireframe(true);
|
||||
caloLayer_log->SetVisAttributes(caloLayer_logVisAtt);
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Sensitive Detector
|
||||
//------------------------------------------------------------------
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
|
||||
G4String trackerSDname = "/mydet/tracker";
|
||||
RE01TrackerSD * trackerSD = new RE01TrackerSD(trackerSDname);
|
||||
SDman->AddNewDetector(trackerSD);
|
||||
trackerLayer_log->SetSensitiveDetector(trackerSD);
|
||||
|
||||
G4String calorimeterSDname = "/mydet/calorimeter";
|
||||
RE01CalorimeterSD * calorimeterSD = new RE01CalorimeterSD(calorimeterSDname);
|
||||
G4String ROgeometryName = "CalorimeterROGeom";
|
||||
G4VReadOutGeometry* calRO = new RE01CalorimeterROGeometry(ROgeometryName);
|
||||
calRO->BuildROGeometry();
|
||||
calorimeterSD->SetROgeometry(calRO);
|
||||
SDman->AddNewDetector(calorimeterSD);
|
||||
calorimeter_log->SetSensitiveDetector(calorimeterSD);
|
||||
|
||||
return experimentalHall_phys;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE01DetectorConstruction::ConstructSDandField() {
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Sensitive Detector
|
||||
//------------------------------------------------------------------
|
||||
//G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
|
||||
G4String trackerSDname = "/mydet/tracker";
|
||||
RE01TrackerSD * trackerSD = new RE01TrackerSD(trackerSDname);
|
||||
//SDman->AddNewDetector(trackerSD);
|
||||
SetSensitiveDetector(fTrackerLayer_log, trackerSD);
|
||||
|
||||
G4String calorimeterSDname = "/mydet/calorimeter";
|
||||
RE01CalorimeterSD * calorimeterSD = new RE01CalorimeterSD(calorimeterSDname);
|
||||
calorimeterSD->SetROgeometry(fCalorimeterRO);
|
||||
//SDman->AddNewDetector(calorimeterSD);
|
||||
SetSensitiveDetector(fCalorimeter_log, calorimeterSD);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01DetectorParameterDef.icc
|
||||
/// \brief Implementation of the RE01DetectorParameterDef.icc
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01DetectorParameterDef.icc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
fExpHall_x = 600.*cm;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01EventAction.cc
|
||||
/// \brief Implementation of the RE01EventAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01EventAction.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01EventAction.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01Field.cc
|
||||
/// \brief Implementation of the RE01Field class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01Field.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01Field.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01PhysicsList.cc
|
||||
/// \brief Implementation of the RE01PhysicsList class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PhysicsList.cc 68026 2013-03-13 13:45:22Z gcosmo $
|
||||
//
|
||||
#include "RE01PhysicsList.hh"
|
||||
#include "RE01UnknownDecayPhysics.hh"
|
||||
@@ -35,12 +35,12 @@
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
#include "G4IonPhysics.hh"
|
||||
#include "G4QStoppingPhysics.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "G4NeutronTrackingCut.hh"
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
#include "HadronPhysicsQGSP_BERT.hh"
|
||||
#include "G4HadronPhysicsQGSP_BERT.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01PhysicsList::RE01PhysicsList(): G4VModularPhysicsList()
|
||||
@@ -68,10 +68,10 @@ RE01PhysicsList::RE01PhysicsList(): G4VModularPhysicsList()
|
||||
RegisterPhysics( new G4HadronElasticPhysics(ver) );
|
||||
|
||||
// Hadron Physics
|
||||
RegisterPhysics( new HadronPhysicsQGSP_BERT(ver));
|
||||
RegisterPhysics( new G4HadronPhysicsQGSP_BERT(ver));
|
||||
|
||||
// Stopping Physics
|
||||
RegisterPhysics( new G4QStoppingPhysics(ver) );
|
||||
RegisterPhysics( new G4StoppingPhysics(ver) );
|
||||
|
||||
// Ion Physics
|
||||
RegisterPhysics( new G4IonPhysics(ver));
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the RE01PrimaryGeneratorAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PrimaryGeneratorAction.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01PrimaryGeneratorAction.hh"
|
||||
@@ -41,7 +41,8 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction()
|
||||
: G4VUserPrimaryGeneratorAction()
|
||||
: G4VUserPrimaryGeneratorAction(),
|
||||
fHEPEvt(0), fParticleGun(0), fMessenger(0)
|
||||
{
|
||||
const char* filename = "pythia_event.data";
|
||||
fHEPEvt = new G4HEPEvtInterface(filename);
|
||||
@@ -60,12 +61,21 @@ RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction()
|
||||
|
||||
fMessenger = new RE01PrimaryGeneratorMessenger(this);
|
||||
fUseHEPEvt = true;
|
||||
|
||||
G4cout << "*********************************************2" << G4endl;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
#include "G4AutoLock.hh"
|
||||
namespace {
|
||||
G4Mutex RE01PrimGenDestrMutex = G4MUTEX_INITIALIZER;
|
||||
G4Mutex RE01PrimGenMutex = G4MUTEX_INITIALIZER;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01PrimaryGeneratorAction::~RE01PrimaryGeneratorAction()
|
||||
{
|
||||
delete fHEPEvt;
|
||||
G4AutoLock lock(&RE01PrimGenDestrMutex);
|
||||
if(fHEPEvt) {delete fHEPEvt; fHEPEvt = 0;}
|
||||
delete fParticleGun;
|
||||
delete fMessenger;
|
||||
}
|
||||
@@ -74,7 +84,9 @@ RE01PrimaryGeneratorAction::~RE01PrimaryGeneratorAction()
|
||||
void RE01PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
{
|
||||
if(fUseHEPEvt)
|
||||
{ fHEPEvt->GeneratePrimaryVertex(anEvent); }
|
||||
{
|
||||
G4AutoLock lock(&RE01PrimGenMutex);
|
||||
fHEPEvt->GeneratePrimaryVertex(anEvent); }
|
||||
else
|
||||
{ fParticleGun->GeneratePrimaryVertex(anEvent); }
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01PrimaryGeneratorMessenger.cc
|
||||
/// \brief Implementation of the RE01PrimaryGeneratorMessenger class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01PrimaryGeneratorMessenger.cc 68026 2013-03-13 13:45:22Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01PrimaryGeneratorMessenger.hh"
|
||||
@@ -38,7 +38,8 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01PrimaryGeneratorMessenger
|
||||
::RE01PrimaryGeneratorMessenger(RE01PrimaryGeneratorAction * mpga)
|
||||
:G4UImessenger(),fMyAction(mpga)
|
||||
:G4UImessenger(),fMyAction(mpga),
|
||||
fMydetDirectory(0),fGenCmd(0)
|
||||
{
|
||||
fMydetDirectory = new G4UIdirectory("/mydet/");
|
||||
fMydetDirectory->SetGuidance("RE01 detector control commands.");
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE01RegionInformation class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01RegionInformation.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01RegionInformation.hh"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE01RunAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01RunAction.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01RunAction.hh"
|
||||
@@ -45,7 +45,7 @@ RE01RunAction::RE01RunAction()
|
||||
RE01RunAction::~RE01RunAction()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE01RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
{
|
||||
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01StackingAction.cc
|
||||
/// \brief Implementation of the RE01StackingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01StackingAction.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01StackingAction.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01SteppingAction.cc
|
||||
/// \brief Implementation of the RE01SteppingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01SteppingAction.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01SteppingAction.hh"
|
||||
|
||||
@@ -27,14 +27,15 @@
|
||||
/// \brief Implementation of the RE01TrackInformation class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackInformation.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01TrackInformation.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4Allocator<RE01TrackInformation> aTrackInformationAllocator;
|
||||
G4ThreadLocal G4Allocator<RE01TrackInformation> * aTrackInformationAllocator = 0;
|
||||
//G4Allocator<RE01TrackInformation> aTrackInformationAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01TrackInformation::RE01TrackInformation()
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01TrackerHit.cc
|
||||
/// \brief Implementation of the RE01TrackerHit class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerHit.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01TrackerHit.hh"
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
G4Allocator<RE01TrackerHit> RE01TrackerHitAllocator;
|
||||
G4ThreadLocal G4Allocator<RE01TrackerHit> * RE01TrackerHitAllocator = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01TrackerHit::RE01TrackerHit()
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01TrackerParametrisation.cc
|
||||
/// \brief Implementation of the RE01TrackerParametrisation class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerParametrisation.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01TrackerParametrisation.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01TrackerSD.cc
|
||||
/// \brief Implementation of the RE01TrackerSD class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackerSD.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01TrackerSD.hh"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01TrackingAction.cc
|
||||
/// \brief Implementation of the RE01TrackingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01TrackingAction.cc 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01TrackingAction.hh"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE01Trajectory class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01Trajectory.cc 75295 2013-10-30 09:32:52Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE01Trajectory.hh"
|
||||
@@ -47,11 +47,12 @@
|
||||
#include "G4PrimaryParticle.hh"
|
||||
#include "RE01TrackInformation.hh"
|
||||
|
||||
G4Allocator<RE01Trajectory> myTrajectoryAllocator;
|
||||
G4ThreadLocal G4Allocator<RE01Trajectory> * myTrajectoryAllocator = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE01Trajectory::RE01Trajectory(const G4Track* aTrack)
|
||||
:G4VTrajectory()
|
||||
:G4VTrajectory(),
|
||||
fPositionRecord(0),fParticleDefinition(0)
|
||||
{
|
||||
fParticleDefinition = aTrack->GetDefinition();
|
||||
fParticleName = fParticleDefinition->GetParticleName();
|
||||
@@ -123,7 +124,7 @@ void RE01Trajectory::ShowTrajectory(std::ostream& os) const
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE01Trajectory::DrawTrajectory(G4int /*i_mode*/) const
|
||||
void RE01Trajectory::DrawTrajectory() const
|
||||
{
|
||||
|
||||
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file runAndEvent/RE01/src/RE01UnknownDecayPhysics.cc
|
||||
/// \brief Implementation of the RE01UnknownDecayPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE01UnknownDecayPhysics.cc 68761 2013-04-05 12:35:00Z gcosmo $
|
||||
//
|
||||
#include "RE01UnknownDecayPhysics.hh"
|
||||
|
||||
@@ -52,9 +52,9 @@ void RE01UnknownDecayPhysics::ConstructParticle()
|
||||
void RE01UnknownDecayPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
aParticleIterator->reset();
|
||||
while( (*aParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = aParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if(particle->GetParticleName()=="unknown") {
|
||||
pmanager ->AddProcess(&fUnknownDecay);
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
A primitive scorer can score one kind of physical quantity, and
|
||||
creates one hits collection per event. The quantity is collected in
|
||||
G4THitsMap with the copy number of geometry. Here collection name is
|
||||
given as <MultiFunctionalDetector Name>/<PrimitiveScorer Name>.
|
||||
given as "MultiFunctionalDetector Name"/"PrimitiveScorer Name".
|
||||
A primitive scorer can have one filter (SDFilter) for selecting hits
|
||||
to be used for the quantity.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.2 2010-01-11 17:07:33 gcosmo Exp $
|
||||
# $Id: GNUmakefile 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.10 2010-12-07 15:20:46 gunter Exp $
|
||||
$Id: History 76939 2013-11-19 09:52:57Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,22 +15,59 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Nov 11, 2012 I. Hrivnacova (exampleRE02-V09-05-03)
|
||||
November 18, 2013 I.Hrivnacova (exampleRE02-V09-06-09)
|
||||
- Fixed .README
|
||||
|
||||
November 6, 2013 A. Kimura (exampleRE02-V09-06-08)
|
||||
- modified RE02.cc and removed RE02EMPhysics.{cc,hh},
|
||||
RE02GeneralPhysics.{cc,hh}, RE02HadronPhysics.{cc,hh},
|
||||
RE02IonPhysics.{cc,hh}, RE02MuonPhysics.{cc,hh} and
|
||||
RE02PhysicsList.{cc,hh} for MT migration
|
||||
- fixed a warning in RE02Run.cc
|
||||
|
||||
November 4, 2013 D.H. Wright (exampleRE02-V09-06-07)
|
||||
- replaced LEP/HEP models with Bertini, FTF
|
||||
- replaced G4LCapture with G4NeutronRadCature
|
||||
|
||||
October 25, 2013 M.Asai (exampleRE02-V09-06-06)
|
||||
- MT migration.
|
||||
|
||||
August 28, 2013 G.Cosmo (exampleRE02-V09-06-05)
|
||||
- Added G4Ellipsoid to solids enabled for parameterisation in
|
||||
RE02NestedPhantomParameterisation.
|
||||
|
||||
July 30/31, 2013 P.Gumplinger (exampleRE02-V09-06-03/04)
|
||||
- fix (or rather fool) MAC/clang32 compiler to avoid warnings.
|
||||
|
||||
Apr 01, 2013 A.Dotti (exampleRE02-V09-06-02)
|
||||
- New interface for G4MT physics list.
|
||||
|
||||
Feb 15, 2013 I.Hrivnacova
|
||||
- Applied coding guidelines (data members initialization)
|
||||
|
||||
Dec 27, 2012 G.Folger (exampleRE02-V09-06-01)
|
||||
- re-tag, no change.
|
||||
Tag exRunAndEvent-V09-06-00 in runAndEvent missed to inlcude this tag.
|
||||
|
||||
Dec 18, 2012 M.Kelsey (exampleRE02-V09-06-00)
|
||||
- Replace G4AntiProtonAnnihiliationAtRest with G4AntiProtonAbsorptionFritiof.
|
||||
|
||||
Nov 11, 2012 I.Hrivnacova (exampleRE02-V09-05-03)
|
||||
- Updated documentation:
|
||||
- Fixed .README files for artefacts from Markdown support
|
||||
- Removed obsolete instructions (how to compile & link)
|
||||
|
||||
Oct 12, 2012 A. Dotti (exampleRE02-V09-05-02)
|
||||
Oct 12, 2012 A.Dotti (exampleRE02-V09-05-02)
|
||||
- Adding forgotten system of units in physics list file
|
||||
|
||||
Oct 8, 2012 A.Kimura
|
||||
Oct 8, 2012 A.Kimura
|
||||
- revised all codes according to the coding guideline for extended examples
|
||||
- the main program exampleRE02 was renamed RE02.
|
||||
|
||||
Jul 28, 2012 V.Ivanchenko (exampleRE02-V09-05-01)
|
||||
Jul 28, 2012 V.Ivanchenko (exampleRE02-V09-05-01)
|
||||
- fixed elastic physics for ions
|
||||
|
||||
Jan 27, 2012 T.Aso (exampleRE02-V09-05-00)
|
||||
Jan 27, 2012 T.Aso (exampleRE02-V09-05-00)
|
||||
- Fix the indexing scheme of CopyNo() method in the RunAction.
|
||||
|
||||
October 10th, 2011 G.Folger (exampleRE02-V09-04-00)
|
||||
@@ -46,7 +83,7 @@ November 9th, 2010 M.Asai (exampleRE02-V09-03-04)
|
||||
November 8th, 2010 M.Asai (exampleRE02-V09-03-03)
|
||||
- Fixing warning messages.
|
||||
|
||||
November 8th, 2010 John Allison (exampleRE02-V09-03-02)
|
||||
November 8th, 2010 J.Allison (exampleRE02-V09-03-02)
|
||||
- Introduced G4UIExecutive.
|
||||
|
||||
June 4th, 2010 Joseph Perl (exampleRE02-V09-03-01)
|
||||
|
||||
@@ -27,17 +27,20 @@
|
||||
/// \brief Main program of the runAndEvent/RE02 example
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02.cc 76292 2013-11-08 13:10:20Z gcosmo $
|
||||
//
|
||||
//
|
||||
|
||||
#include "RE02DetectorConstruction.hh"
|
||||
#include "QGS_BIC.hh"
|
||||
#include "RE02PrimaryGeneratorAction.hh"
|
||||
#include "RE02RunAction.hh"
|
||||
#include "RE02EventAction.hh"
|
||||
#include "RE02ActionInitialization.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
@@ -53,7 +56,12 @@
|
||||
int main(int argc,char** argv) {
|
||||
|
||||
// Run manager
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
//runManager->SetNumberOfThreads(4);
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// UserInitialization classes (mandatory)
|
||||
//---
|
||||
@@ -81,9 +89,7 @@ int main(int argc,char** argv) {
|
||||
#endif
|
||||
|
||||
// UserAction classes
|
||||
runManager->SetUserAction(new RE02PrimaryGeneratorAction);
|
||||
runManager->SetUserAction(new RE02RunAction);
|
||||
runManager->SetUserAction(new RE02EventAction);
|
||||
runManager->SetUserInitialization(new RE02ActionInitialization);
|
||||
|
||||
//Initialize G4 kernel
|
||||
runManager->Initialize();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.2 2006-11-18 01:37:22 asaim Exp $
|
||||
$Id: README 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE02ActionInitialization.hh 66522 2012-12-19 12:26:04Z ihrivnac $
|
||||
//
|
||||
/// \file include/RE02ActionInitialization.hh
|
||||
/// \brief Definition of the RE02ActionInitialization class
|
||||
//
|
||||
|
||||
#ifndef RE02ActionInitialization_H
|
||||
#define RE02ActionInitialization_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class RE02ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
RE02ActionInitialization();//G4bool bParallelWorld);
|
||||
virtual ~RE02ActionInitialization();
|
||||
|
||||
virtual void Build() const;
|
||||
virtual void BuildForMaster() const;
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02DetectorConstruction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02DetectorConstruction.hh 75682 2013-11-05 09:11:19Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02DetectorConstruction_h
|
||||
@@ -116,8 +116,9 @@ public:
|
||||
virtual ~RE02DetectorConstruction();
|
||||
|
||||
public:
|
||||
// virtual method from G4VUserDetectorCOnstruction.
|
||||
// virtual method from G4VUserDetectorConstruction.
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
public:
|
||||
// Get/Set Access methods for data members
|
||||
@@ -138,6 +139,7 @@ private:
|
||||
G4ThreeVector fPhantomSize; // Size of Water Phantom
|
||||
G4int fNx,fNy,fNz; // Number of segmentation of water phantom.
|
||||
G4bool fInsertLead; // Flag for inserting lead plate in water phantom
|
||||
G4LogicalVolume* fLVPhantomSens;
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02EventAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02EventAction.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02EventAction_h
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/include/RE02HadronPhysics.hh
|
||||
/// \brief Definition of the RE02HadronPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 10-Oct-2003 Full Hadron Processes with Parameterization Model T. Koi
|
||||
|
||||
#ifndef RE02HadronPhysics_h
|
||||
#define RE02HadronPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4hIonisation.hh"
|
||||
|
||||
// Hadronic Processes
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
|
||||
#include "G4PionPlusInelasticProcess.hh"
|
||||
#include "G4PionMinusInelasticProcess.hh"
|
||||
#include "G4KaonPlusInelasticProcess.hh"
|
||||
#include "G4KaonZeroSInelasticProcess.hh"
|
||||
#include "G4KaonZeroLInelasticProcess.hh"
|
||||
#include "G4KaonMinusInelasticProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4AntiProtonInelasticProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4AntiNeutronInelasticProcess.hh"
|
||||
#include "G4LambdaInelasticProcess.hh"
|
||||
#include "G4AntiLambdaInelasticProcess.hh"
|
||||
#include "G4SigmaPlusInelasticProcess.hh"
|
||||
#include "G4SigmaMinusInelasticProcess.hh"
|
||||
#include "G4AntiSigmaPlusInelasticProcess.hh"
|
||||
#include "G4AntiSigmaMinusInelasticProcess.hh"
|
||||
#include "G4XiZeroInelasticProcess.hh"
|
||||
#include "G4XiMinusInelasticProcess.hh"
|
||||
#include "G4AntiXiZeroInelasticProcess.hh"
|
||||
#include "G4AntiXiMinusInelasticProcess.hh"
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4OmegaMinusInelasticProcess.hh"
|
||||
#include "G4AntiOmegaMinusInelasticProcess.hh"
|
||||
|
||||
// Binary Cascade Models
|
||||
#include "G4BinaryCascade.hh"
|
||||
|
||||
// Low energy models
|
||||
#include "G4LElastic.hh"
|
||||
#include "G4LFission.hh"
|
||||
#include "G4LCapture.hh"
|
||||
|
||||
#include "G4LEPionPlusInelastic.hh"
|
||||
#include "G4LEPionMinusInelastic.hh"
|
||||
#include "G4LEKaonPlusInelastic.hh"
|
||||
#include "G4LEKaonZeroSInelastic.hh"
|
||||
#include "G4LEKaonZeroLInelastic.hh"
|
||||
#include "G4LEKaonMinusInelastic.hh"
|
||||
#include "G4LEProtonInelastic.hh"
|
||||
#include "G4LEAntiProtonInelastic.hh"
|
||||
#include "G4LENeutronInelastic.hh"
|
||||
#include "G4LEAntiNeutronInelastic.hh"
|
||||
#include "G4LELambdaInelastic.hh"
|
||||
#include "G4LEAntiLambdaInelastic.hh"
|
||||
#include "G4LESigmaPlusInelastic.hh"
|
||||
#include "G4LESigmaMinusInelastic.hh"
|
||||
#include "G4LEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4LEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4LEXiZeroInelastic.hh"
|
||||
#include "G4LEXiMinusInelastic.hh"
|
||||
#include "G4LEAntiXiZeroInelastic.hh"
|
||||
#include "G4LEAntiXiMinusInelastic.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
#include "G4LEOmegaMinusInelastic.hh"
|
||||
#include "G4LEAntiOmegaMinusInelastic.hh"
|
||||
|
||||
// High-energy Models
|
||||
|
||||
#include "G4HEPionPlusInelastic.hh"
|
||||
#include "G4HEPionMinusInelastic.hh"
|
||||
#include "G4HEKaonPlusInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonMinusInelastic.hh"
|
||||
#include "G4HEProtonInelastic.hh"
|
||||
#include "G4HEAntiProtonInelastic.hh"
|
||||
#include "G4HENeutronInelastic.hh"
|
||||
#include "G4HEAntiNeutronInelastic.hh"
|
||||
#include "G4HELambdaInelastic.hh"
|
||||
#include "G4HEAntiLambdaInelastic.hh"
|
||||
#include "G4HESigmaPlusInelastic.hh"
|
||||
#include "G4HESigmaMinusInelastic.hh"
|
||||
#include "G4HEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4HEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4HEXiZeroInelastic.hh"
|
||||
#include "G4HEXiMinusInelastic.hh"
|
||||
#include "G4HEAntiXiZeroInelastic.hh"
|
||||
#include "G4HEAntiXiMinusInelastic.hh"
|
||||
#include "G4HEOmegaMinusInelastic.hh"
|
||||
#include "G4HEAntiOmegaMinusInelastic.hh"
|
||||
|
||||
// Stopping processes
|
||||
#include "G4AntiProtonAnnihilationAtRest.hh"
|
||||
#include "G4AntiNeutronAnnihilationAtRest.hh"
|
||||
|
||||
//
|
||||
/// User hadron physics constructor
|
||||
///
|
||||
/// applys related processes to hadrons
|
||||
///
|
||||
/// - void ConstructParticle()
|
||||
/// does nothing
|
||||
///
|
||||
/// - void ConstructProcess()
|
||||
/// adds processes to each particle
|
||||
/// pi+ :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4PionPlusInelasticProcess with G4LEPionPlusInelastic and
|
||||
/// G4HEPionPlusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// pi- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4PionMinusInelasticProcess with G4LEPionMinusInelastic and
|
||||
/// G4HEPionMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// K+ :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4KaonPlusInelasticProcess with G4LEKaonPlusInelastic and
|
||||
/// G4HEKaonPlusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// K- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4KaonMinusInelasticProcess with G4LEKaonMinusInelastic and
|
||||
/// G4HEKaonMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// K0L :
|
||||
/// G4HadronElasticProcess with G4LEastic and
|
||||
/// G4KaonZeoLInelasticProcess with G4LEKaonZeroLInelastic and
|
||||
/// G4HEKaonZeroInelastic
|
||||
/// K0S :
|
||||
/// G4HadronElasticProcess with G4LEastic and
|
||||
/// G4KaonZeroSInelasticProcess with G4LEKaonZeroSInelastic and
|
||||
/// G4HEKaonZeroInelastic.
|
||||
/// proton :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4ProtonInelasticProcess with G4BinaryCascade, G4LEProtonInelastic and
|
||||
/// G4HEProtonInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// anti proton :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiProtonInelasticProcess with G4LEAntiProtonInelastic and
|
||||
/// G4HEAntiProtonInelastic,
|
||||
/// G4AntiProtonAnnihilationAtRest, G4hMultipleScattering and G4hIonisation
|
||||
/// neutron :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4NeutronInelasticProcess with G4BinaryCascade, G4LENeutronInelastic
|
||||
/// and G4HENeutronInelastic,
|
||||
/// G4HadronFissionProcess with G4LFission and
|
||||
/// G4HadronCaptureProcess with G4LCapture
|
||||
/// anti neutron :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiNeutronInelasticProcess with G4LEAntiNeutronInelastic and
|
||||
/// G4HEAntiNeutronInelastic and
|
||||
/// G4AntiNeutronAnnihilationAtRest
|
||||
/// lambda :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4LambdaInelasticProcess with G4LELambdaInelastic and
|
||||
/// G4HELambdaInelastic
|
||||
/// anti lambda :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiLambdaInelasticProcess with G4LEAntiLambdaInelastic and
|
||||
/// G4HEAntiLambdaInelastic
|
||||
/// sigma+ :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4SigmaPlusInelasticProcess with G4LESigmaPlusInelastic and
|
||||
/// G4HESigmaPlusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// anti sigma+ :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiSigmaPlusInelasticProcess with G4LEAntiSigmaPlusInelastic and
|
||||
/// G4HEAntiSigmaPlusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// sigma- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4SigmaMinusInelasticProcess with G4LESigmaMinusInelastic and
|
||||
/// G4HESigmaMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// anti sigma- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiSigmaMinusInelasticProcess with G4LEAntiSigmaMinusInelastic and
|
||||
/// G4HEAntiSigmaMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// Xi0 :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4XiZeroInelasticProcess with G4LEXiZeroInelastic and
|
||||
/// G4HEXiZeroInelastic
|
||||
/// anti Xi0 :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiXiZeroInelasticProcess with G4LEAntiXiZeroInelastic and
|
||||
/// G4HEAntiXiZeroInelastic
|
||||
/// Xi- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4XiMinusInelasticProcess with G4LEXiMinusInelastic and
|
||||
/// G4HEXiMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// anti Xi- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiXiMinusInelasticProcess with G4LEAntiXiMinusInelastic and
|
||||
/// G4HEAntiXiMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// omega- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4OmegaMinusInelasticProcess with G4LEOmegaMinusInelastic and
|
||||
/// G4HEOmegaMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// anti omega- :
|
||||
/// G4HadronElasticProcess with G4LElastic,
|
||||
/// G4AntiOmegaMinusInelasticProcess with G4LEAntiOmegaMinusInelastic and
|
||||
/// G4HEAntiOmegaMinusInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
//
|
||||
class RE02HadronPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE02HadronPhysics(const G4String& name="hadron");
|
||||
virtual ~RE02HadronPhysics();
|
||||
|
||||
public:
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle(){;};
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/include/RE02IonPhysics.hh
|
||||
/// \brief Definition of the RE02IonPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
// 05-Jan-2004 Add G4ionIonisation T. Koi
|
||||
//
|
||||
|
||||
#ifndef RE02IonPhysics_h
|
||||
#define RE02IonPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4BinaryLightIonReaction.hh"
|
||||
#include "G4TripathiCrossSection.hh"
|
||||
#include "G4IonsShenCrossSection.hh"
|
||||
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
|
||||
//
|
||||
/// User ion physics constructor
|
||||
///
|
||||
/// applys related processes to ions
|
||||
///
|
||||
/// - void ConstructParticle()
|
||||
/// does nothing
|
||||
///
|
||||
/// - void ConstructProcess()
|
||||
/// adds processes to each particle
|
||||
/// generic ion :
|
||||
/// G4HadronInelasticProcess with G4TripathiCrossSection,
|
||||
/// G4IonsShenCrossSection and G4BinaryLightIonReaction,
|
||||
/// G4hMultipleScattering and G4ionIonisation
|
||||
/// deuteron :
|
||||
/// G4HadronElasticProcess with G4HadronElastic,
|
||||
/// G4DeuteronInelasticProcess with G4LEDeuteronInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// triton :
|
||||
/// G4HadronElasticProcess with G4HadronElastic,
|
||||
/// G4TritonInelasticProcess with G4LETritonInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// alpha :
|
||||
/// G4HadronElasticProcess with G4HadronElastic,
|
||||
/// G4AlphaInelasticProcess with G4LEAlphaInelastic,
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
/// He3 :
|
||||
/// G4hMultipleScattering and G4hIonisation
|
||||
//
|
||||
class RE02IonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE02IonPhysics(const G4String& name="ion");
|
||||
virtual ~RE02IonPhysics();
|
||||
|
||||
public:
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle(){;};
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02NestedPhantomParameterisation class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02NestedPhantomParameterisation.hh 73475 2013-08-28 15:23:19Z gcosmo $
|
||||
//
|
||||
#ifndef RE02NESTEDPARAMETERISATION_HH
|
||||
#define RE02NESTEDPARAMETERISATION_HH
|
||||
@@ -51,6 +51,7 @@ class G4Trap;
|
||||
class G4Cons;
|
||||
class G4Sphere;
|
||||
class G4Orb;
|
||||
class G4Ellipsoid;
|
||||
class G4Torus;
|
||||
class G4Para;
|
||||
class G4Polycone;
|
||||
@@ -95,25 +96,25 @@ class RE02NestedPhantomParameterisation: public G4VNestedParameterisation
|
||||
RE02NestedPhantomParameterisation(const G4ThreeVector& voxelSize,
|
||||
G4int nz,
|
||||
std::vector<G4Material*>& mat);
|
||||
virtual ~RE02NestedPhantomParameterisation();
|
||||
~RE02NestedPhantomParameterisation();
|
||||
|
||||
// Methods required in derived classes
|
||||
// -----------------------------------
|
||||
virtual G4Material* ComputeMaterial(G4VPhysicalVolume *currentVol,
|
||||
const G4int repNo,
|
||||
const G4VTouchable *parentTouch=0
|
||||
G4Material* ComputeMaterial(G4VPhysicalVolume *currentVol,
|
||||
const G4int repNo,
|
||||
const G4VTouchable *parentTouch=0
|
||||
);
|
||||
// Required method, as it is the reason for this class.
|
||||
// Must cope with parentTouch=0 for navigator's SetupHierarchy
|
||||
|
||||
virtual G4int GetNumberOfMaterials() const;
|
||||
virtual G4Material* GetMaterial(G4int idx) const;
|
||||
G4int GetNumberOfMaterials() const;
|
||||
G4Material* GetMaterial(G4int idx) const;
|
||||
// Needed to define materials for instances of Nested Parameterisation
|
||||
// Current convention: each call should return the materials
|
||||
// of all instances with the same mother/ancestor volume.
|
||||
|
||||
virtual void ComputeTransformation(const G4int no,
|
||||
G4VPhysicalVolume *currentPV) const;
|
||||
void ComputeTransformation(const G4int no,
|
||||
G4VPhysicalVolume *currentPV) const;
|
||||
|
||||
// Methods optional in derived classes
|
||||
// -----------------------------------
|
||||
@@ -121,32 +122,35 @@ class RE02NestedPhantomParameterisation: public G4VNestedParameterisation
|
||||
// Additional standard Parameterisation methods,
|
||||
// which can be optionally defined, in case solid is used.
|
||||
|
||||
virtual void ComputeDimensions(G4Box &,
|
||||
void ComputeDimensions(G4Box &,
|
||||
const G4int,
|
||||
const G4VPhysicalVolume *) const;
|
||||
|
||||
private: // Dummy declarations to get rid of warnings ...
|
||||
virtual void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
|
||||
void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Ellipsoid&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Tubs&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Tubs&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
virtual void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*)
|
||||
const {}
|
||||
// G4Material* ComputeMaterial(const G4int repNo,
|
||||
// G4VPhysicalVolume* currentVol,
|
||||
@@ -155,6 +159,7 @@ private: // Dummy declarations to get rid of warnings ...
|
||||
using G4VNestedParameterisation::ComputeMaterial;
|
||||
|
||||
private:
|
||||
|
||||
G4double fdX,fdY,fdZ;
|
||||
G4int fNz;
|
||||
//
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSCellFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSCellFlux.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSCellFlux_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSEnergyDeposit class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSEnergyDeposit.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSEnergyDeposit_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSFlatSurfaceCurrent class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSFlatSurfaceCurrent.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSFlatSurfaceCurrent_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSFlatSurfaceFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSFlatSurfaceFlux.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSFlatSurfaceFlux_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSNofStep class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSNofStep.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSNofStep_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PSPassageCellFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSPassageCellFlux.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PSPassageCellFlux_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PrimaryGeneratorAction.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02PrimaryGeneratorAction_h
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02Run class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02Run.hh 75682 2013-11-05 09:11:19Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE02Run_h
|
||||
@@ -84,6 +84,7 @@ public:
|
||||
// virtual method from G4Run.
|
||||
// The method is overriden in this class for scoring.
|
||||
virtual void RecordEvent(const G4Event*);
|
||||
virtual void Merge(const G4Run*);
|
||||
|
||||
// Access methods for scoring information.
|
||||
// - Number of HitsMap for this RUN.
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Definition of the RE02RunAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02RunAction.hh 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run.mac,v 1.2 2010-06-06 05:16:16 perl Exp $
|
||||
# $Id: run.mac 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
#
|
||||
# Macro file for "exampleRE02.cc"
|
||||
#
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
# $Id: run2.mac,v 1.3 2010-06-06 05:16:16 perl Exp $
|
||||
# $Id: run2.mac 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
#
|
||||
# Macro file for "exampleRE02.cc"
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run3.mac,v 1.3 2010-06-06 05:16:16 perl Exp $
|
||||
# $Id: run3.mac 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
#
|
||||
# Macro file for "exampleRE02.cc"
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run4.mac,v 1.3 2010-06-06 05:16:16 perl Exp $
|
||||
# $Id: run4.mac 66501 2012-12-19 09:25:23Z gcosmo $
|
||||
#
|
||||
# Macro file for "exampleRE02.cc"
|
||||
#
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE02ActionInitialization.cc 66522 2012-12-19 12:26:04Z ihrivnac $
|
||||
//
|
||||
/// \file src/RE02ActionInitialization.cc
|
||||
/// \brief Implementation of the RE02ActionInitialization class
|
||||
//
|
||||
|
||||
#include "RE02ActionInitialization.hh"
|
||||
#include "RE02PrimaryGeneratorAction.hh"
|
||||
#include "RE02RunAction.hh"
|
||||
#include "RE02EventAction.hh"
|
||||
|
||||
RE02ActionInitialization::RE02ActionInitialization()
|
||||
{;}
|
||||
|
||||
RE02ActionInitialization::~RE02ActionInitialization()
|
||||
{;}
|
||||
|
||||
void RE02ActionInitialization::Build() const
|
||||
{
|
||||
//
|
||||
SetUserAction(new RE02PrimaryGeneratorAction);
|
||||
//
|
||||
SetUserAction(new RE02RunAction);
|
||||
//
|
||||
SetUserAction(new RE02EventAction);
|
||||
}
|
||||
|
||||
void RE02ActionInitialization::BuildForMaster() const
|
||||
{
|
||||
//
|
||||
G4UserRunAction* run_action = new RE02RunAction;
|
||||
SetUserAction(run_action);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02DetectorConstruction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02DetectorConstruction.cc 75682 2013-11-05 09:11:19Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE02DetectorConstruction.hh"
|
||||
@@ -104,6 +104,7 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02DetectorConstruction::RE02DetectorConstruction()
|
||||
: G4VUserDetectorConstruction()
|
||||
{
|
||||
// Default size of water phantom,and segmentation.
|
||||
fPhantomSize.setX(200.*mm);
|
||||
@@ -241,7 +242,7 @@ RE02DetectorConstruction::~RE02DetectorConstruction()
|
||||
G4String zVoxName("phantomSens");
|
||||
G4VSolid* solVoxel =
|
||||
new G4Box(zVoxName,sensSize.x()/2.,sensSize.y()/2.,sensSize.z()/2.);
|
||||
G4LogicalVolume* logicPhantomSens = new G4LogicalVolume(solVoxel,water,zVoxName);
|
||||
fLVPhantomSens = new G4LogicalVolume(solVoxel,water,zVoxName);
|
||||
//
|
||||
//
|
||||
std::vector<G4Material*> phantomMat(2,water);
|
||||
@@ -254,7 +255,7 @@ RE02DetectorConstruction::~RE02DetectorConstruction()
|
||||
= new RE02NestedPhantomParameterisation(sensSize/2.,nzCells,phantomMat);
|
||||
//G4VPhysicalVolume * physiPhantomSens =
|
||||
new G4PVParameterised("PhantomSens", // their name
|
||||
logicPhantomSens, // their logical volume
|
||||
fLVPhantomSens, // their logical volume
|
||||
logXRep, // Mother logical volume
|
||||
kUndefined, // Are placed along this axis
|
||||
nzCells, // Number of cells
|
||||
@@ -263,130 +264,11 @@ RE02DetectorConstruction::~RE02DetectorConstruction()
|
||||
// kUndefined, kXAxis, kYAxis, kZAxis.
|
||||
//
|
||||
|
||||
//================================================
|
||||
// Sensitive detectors : MultiFunctionalDetector
|
||||
//================================================
|
||||
//
|
||||
// Sensitive Detector Manager.
|
||||
G4SDManager* pSDman = G4SDManager::GetSDMpointer();
|
||||
//
|
||||
// Sensitive Detector Name
|
||||
G4String phantomSDname = "PhantomSD";
|
||||
|
||||
//------------------------
|
||||
// MultiFunctionalDetector
|
||||
//------------------------
|
||||
//
|
||||
// Define MultiFunctionalDetector with name.
|
||||
G4MultiFunctionalDetector* mFDet
|
||||
= new G4MultiFunctionalDetector(phantomSDname);
|
||||
pSDman->AddNewDetector( mFDet ); // Register SD to SDManager.
|
||||
logicPhantomSens->SetSensitiveDetector(mFDet); // Assign SD to the logical volume.
|
||||
|
||||
//---------------------------------------
|
||||
// SDFilter : Sensitive Detector Filters
|
||||
//---------------------------------------
|
||||
//
|
||||
// Particle Filter for Primitive Scorer with filter name(fltName)
|
||||
// and particle name(particleName),
|
||||
// or particle names are given by add("particle name"); method.
|
||||
//
|
||||
G4String fltName,particleName;
|
||||
//
|
||||
//-- proton filter
|
||||
G4SDParticleFilter* protonFilter =
|
||||
new G4SDParticleFilter(fltName="protonFilter", particleName="proton");
|
||||
//
|
||||
//-- electron filter
|
||||
G4SDParticleFilter* electronFilter =
|
||||
new G4SDParticleFilter(fltName="electronFilter");
|
||||
electronFilter->add(particleName="e+"); // accept electrons.
|
||||
electronFilter->add(particleName="e-"); // accept positorons.
|
||||
//
|
||||
//-- charged particle filter
|
||||
G4SDChargedFilter* chargedFilter =
|
||||
new G4SDChargedFilter(fltName="chargedFilter");
|
||||
|
||||
//------------------------
|
||||
// PS : Primitive Scorers
|
||||
//------------------------
|
||||
// Primitive Scorers are used with SDFilters according to your purpose.
|
||||
//
|
||||
//
|
||||
//-- Primitive Scorer for Energy Deposit.
|
||||
// Total, by protons, by electrons.
|
||||
G4String psName;
|
||||
G4PSEnergyDeposit3D * scorer0 = new G4PSEnergyDeposit3D(psName="totalEDep",
|
||||
fNx,fNy,fNz);
|
||||
G4PSEnergyDeposit3D * scorer1 = new G4PSEnergyDeposit3D(psName="protonEDep",
|
||||
fNx,fNy,fNz);
|
||||
scorer1->SetFilter(protonFilter);
|
||||
|
||||
//
|
||||
//-- Number of Steps for protons
|
||||
G4PSNofStep3D * scorer2 =
|
||||
new G4PSNofStep3D(psName="protonNStep",fNx,fNy,fNz);
|
||||
scorer2->SetFilter(protonFilter);
|
||||
|
||||
//
|
||||
//-- CellFlux for charged particles
|
||||
G4PSPassageCellFlux3D * scorer3 =
|
||||
new G4PSPassageCellFlux3D(psName="chargedPassCellFlux", fNx,fNy,fNz);
|
||||
G4PSCellFlux3D * scorer4 =
|
||||
new G4PSCellFlux3D(psName="chargedCellFlux", fNx,fNy,fNz);
|
||||
G4PSFlatSurfaceFlux3D * scorer5 =
|
||||
new G4PSFlatSurfaceFlux3D(psName="chargedSurfFlux", fFlux_InOut,fNx,fNy,fNz);
|
||||
scorer3->SetFilter(chargedFilter);
|
||||
scorer4->SetFilter(chargedFilter);
|
||||
scorer5->SetFilter(chargedFilter);
|
||||
|
||||
//
|
||||
//------------------------------------------------------------
|
||||
// Register primitive scorers to MultiFunctionalDetector
|
||||
//------------------------------------------------------------
|
||||
mFDet->RegisterPrimitive(scorer0);
|
||||
mFDet->RegisterPrimitive(scorer1);
|
||||
mFDet->RegisterPrimitive(scorer2);
|
||||
mFDet->RegisterPrimitive(scorer3);
|
||||
mFDet->RegisterPrimitive(scorer4);
|
||||
mFDet->RegisterPrimitive(scorer5);
|
||||
|
||||
//========================
|
||||
// More additional Primitive Scoreres
|
||||
//========================
|
||||
//
|
||||
//--- Surface Current for gamma with energy bin.
|
||||
// This example creates four primitive scorers.
|
||||
// 4 bins with energy --- Primitive Scorer Name
|
||||
// 1. to 10 KeV, gammaSurfCurr000
|
||||
// 10 keV to 100 KeV, gammaSurfCurr001
|
||||
// 100 keV to 1 MeV, gammaSurfCurr002
|
||||
// 1 MeV to 10 MeV. gammaSurfCurr003
|
||||
//
|
||||
char name[17];
|
||||
for ( G4int i = 0; i < 4; i++){
|
||||
std::sprintf(name,"gammaSurfCurr%03d",i);
|
||||
G4String psgName(name);
|
||||
G4double kmin = std::pow(10.,(G4double)i)*keV;
|
||||
G4double kmax = std::pow(10.,(G4double)(i+1))*keV;
|
||||
//-- Particle with kinetic energy filter.
|
||||
G4SDParticleWithEnergyFilter* pkinEFilter =
|
||||
new G4SDParticleWithEnergyFilter(fltName="gammaE filter",kmin,kmax);
|
||||
pkinEFilter->add("gamma"); // Accept only gamma.
|
||||
pkinEFilter->show(); // Show accepting condition to stdout.
|
||||
//-- Surface Current Scorer which scores number of tracks in unit area.
|
||||
G4PSFlatSurfaceCurrent3D * scorer =
|
||||
new G4PSFlatSurfaceCurrent3D(psgName,fCurrent_InOut,fNx,fNy,fNz);
|
||||
scorer->SetFilter(pkinEFilter); // Assign filter.
|
||||
mFDet->RegisterPrimitive(scorer); // Register it to MultiFunctionalDetector.
|
||||
}
|
||||
//
|
||||
|
||||
//===============================
|
||||
// Visualization attributes
|
||||
// Visualization attributes
|
||||
//===============================
|
||||
|
||||
G4VisAttributes* boxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0));
|
||||
G4VisAttributes* boxVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0));
|
||||
logicWorld ->SetVisAttributes(boxVisAtt);
|
||||
//logicWorld->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
|
||||
@@ -401,9 +283,131 @@ RE02DetectorConstruction::~RE02DetectorConstruction()
|
||||
logXRep->SetVisAttributes(xRepVisAtt);
|
||||
|
||||
// Skip the visualization for those voxels.
|
||||
logicPhantomSens->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
fLVPhantomSens->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
|
||||
|
||||
return physiWorld;
|
||||
}
|
||||
|
||||
void RE02DetectorConstruction::ConstructSDandField() {
|
||||
|
||||
//================================================
|
||||
// Sensitive detectors : MultiFunctionalDetector
|
||||
//================================================
|
||||
//
|
||||
// Sensitive Detector Manager.
|
||||
G4SDManager* pSDman = G4SDManager::GetSDMpointer();
|
||||
//
|
||||
// Sensitive Detector Name
|
||||
G4String phantomSDname = "PhantomSD";
|
||||
|
||||
//------------------------
|
||||
// MultiFunctionalDetector
|
||||
//------------------------
|
||||
//
|
||||
// Define MultiFunctionalDetector with name.
|
||||
G4MultiFunctionalDetector* mFDet
|
||||
= new G4MultiFunctionalDetector(phantomSDname);
|
||||
pSDman->AddNewDetector( mFDet ); // Register SD to SDManager.
|
||||
fLVPhantomSens->SetSensitiveDetector(mFDet); // Assign SD to the logical volume.
|
||||
|
||||
//---------------------------------------
|
||||
// SDFilter : Sensitive Detector Filters
|
||||
//---------------------------------------
|
||||
//
|
||||
// Particle Filter for Primitive Scorer with filter name(fltName)
|
||||
// and particle name(particleName),
|
||||
// or particle names are given by add("particle name"); method.
|
||||
//
|
||||
G4String fltName,particleName;
|
||||
//
|
||||
//-- proton filter
|
||||
G4SDParticleFilter* protonFilter =
|
||||
new G4SDParticleFilter(fltName="protonFilter", particleName="proton");
|
||||
//
|
||||
//-- electron filter
|
||||
G4SDParticleFilter* electronFilter =
|
||||
new G4SDParticleFilter(fltName="electronFilter");
|
||||
electronFilter->add(particleName="e+"); // accept electrons.
|
||||
electronFilter->add(particleName="e-"); // accept positorons.
|
||||
//
|
||||
//-- charged particle filter
|
||||
G4SDChargedFilter* chargedFilter =
|
||||
new G4SDChargedFilter(fltName="chargedFilter");
|
||||
|
||||
//------------------------
|
||||
// PS : Primitive Scorers
|
||||
//------------------------
|
||||
// Primitive Scorers are used with SDFilters according to your purpose.
|
||||
//
|
||||
//
|
||||
//-- Primitive Scorer for Energy Deposit.
|
||||
// Total, by protons, by electrons.
|
||||
G4String psName;
|
||||
G4PSEnergyDeposit3D * scorer0 = new G4PSEnergyDeposit3D(psName="totalEDep",
|
||||
fNx,fNy,fNz);
|
||||
G4PSEnergyDeposit3D * scorer1 = new G4PSEnergyDeposit3D(psName="protonEDep",
|
||||
fNx,fNy,fNz);
|
||||
scorer1->SetFilter(protonFilter);
|
||||
|
||||
//
|
||||
//-- Number of Steps for protons
|
||||
G4PSNofStep3D * scorer2 =
|
||||
new G4PSNofStep3D(psName="protonNStep",fNx,fNy,fNz);
|
||||
scorer2->SetFilter(protonFilter);
|
||||
|
||||
//
|
||||
//-- CellFlux for charged particles
|
||||
G4PSPassageCellFlux3D * scorer3 =
|
||||
new G4PSPassageCellFlux3D(psName="chargedPassCellFlux", fNx,fNy,fNz);
|
||||
G4PSCellFlux3D * scorer4 =
|
||||
new G4PSCellFlux3D(psName="chargedCellFlux", fNx,fNy,fNz);
|
||||
G4PSFlatSurfaceFlux3D * scorer5 =
|
||||
new G4PSFlatSurfaceFlux3D(psName="chargedSurfFlux", fFlux_InOut,fNx,fNy,fNz);
|
||||
scorer3->SetFilter(chargedFilter);
|
||||
scorer4->SetFilter(chargedFilter);
|
||||
scorer5->SetFilter(chargedFilter);
|
||||
|
||||
//
|
||||
//------------------------------------------------------------
|
||||
// Register primitive scorers to MultiFunctionalDetector
|
||||
//------------------------------------------------------------
|
||||
mFDet->RegisterPrimitive(scorer0);
|
||||
mFDet->RegisterPrimitive(scorer1);
|
||||
mFDet->RegisterPrimitive(scorer2);
|
||||
mFDet->RegisterPrimitive(scorer3);
|
||||
mFDet->RegisterPrimitive(scorer4);
|
||||
mFDet->RegisterPrimitive(scorer5);
|
||||
|
||||
//========================
|
||||
// More additional Primitive Scoreres
|
||||
//========================
|
||||
//
|
||||
//--- Surface Current for gamma with energy bin.
|
||||
// This example creates four primitive scorers.
|
||||
// 4 bins with energy --- Primitive Scorer Name
|
||||
// 1. to 10 KeV, gammaSurfCurr000
|
||||
// 10 keV to 100 KeV, gammaSurfCurr001
|
||||
// 100 keV to 1 MeV, gammaSurfCurr002
|
||||
// 1 MeV to 10 MeV. gammaSurfCurr003
|
||||
//
|
||||
char name[17];
|
||||
for ( G4int i = 0; i < 4; i++){
|
||||
std::sprintf(name,"gammaSurfCurr%03d",i);
|
||||
G4String psgName(name);
|
||||
G4double kmin = std::pow(10.,(G4double)i)*keV;
|
||||
G4double kmax = std::pow(10.,(G4double)(i+1))*keV;
|
||||
//-- Particle with kinetic energy filter.
|
||||
G4SDParticleWithEnergyFilter* pkinEFilter =
|
||||
new G4SDParticleWithEnergyFilter(fltName="gammaE filter",kmin,kmax);
|
||||
pkinEFilter->add("gamma"); // Accept only gamma.
|
||||
pkinEFilter->show(); // Show accepting condition to stdout.
|
||||
//-- Surface Current Scorer which scores number of tracks in unit area.
|
||||
G4PSFlatSurfaceCurrent3D * scorer =
|
||||
new G4PSFlatSurfaceCurrent3D(psgName,fCurrent_InOut,fNx,fNy,fNz);
|
||||
scorer->SetFilter(pkinEFilter); // Assign filter.
|
||||
mFDet->RegisterPrimitive(scorer); // Register it to MultiFunctionalDetector.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,124 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02EMPhysics.cc
|
||||
/// \brief Implementation of the RE02EMPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
// 09-Oct-2003 Change gamma, electron, positorn process T. Koi
|
||||
// 10-Jan-2004 Add Brems. of AlongStepDoIt for e+- T. Koi
|
||||
|
||||
#include "RE02EMPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02EMPhysics::RE02EMPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02EMPhysics::~RE02EMPhysics()
|
||||
{
|
||||
}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02EMPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
//Gamma
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(new G4GammaConversion());
|
||||
pManager->AddDiscreteProcess(new G4ComptonScattering());
|
||||
pManager->AddDiscreteProcess(new G4PhotoElectricEffect());
|
||||
|
||||
//Electorn
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
G4VProcess* theeminusMultipleScattering = new G4eMultipleScattering();
|
||||
G4VProcess* theeminusIonisation = new G4eIonisation();
|
||||
G4VProcess* theeminusBremsstrahlung = new G4eBremsstrahlung();
|
||||
//
|
||||
// add process
|
||||
pManager->AddProcess(theeminusMultipleScattering);
|
||||
pManager->AddProcess(theeminusIonisation);
|
||||
pManager->AddProcess(theeminusBremsstrahlung);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theeminusIonisation, idxAlongStep,2);
|
||||
pManager->SetProcessOrdering(theeminusBremsstrahlung, idxAlongStep,3);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theeminusIonisation, idxPostStep,2);
|
||||
pManager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3);
|
||||
|
||||
//Positron
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
G4VProcess* theeplusMultipleScattering = new G4eMultipleScattering();
|
||||
G4VProcess* theeplusIonisation = new G4eIonisation();
|
||||
G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung();
|
||||
G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation();
|
||||
|
||||
pManager->AddProcess(theeplusMultipleScattering);
|
||||
pManager->AddProcess(theeplusIonisation);
|
||||
pManager->AddProcess(theeplusBremsstrahlung);
|
||||
pManager->AddProcess(theeplusAnnihilation);
|
||||
//
|
||||
// set ordering for AtRestDoIt
|
||||
pManager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theeplusIonisation, idxAlongStep,2);
|
||||
pManager->SetProcessOrdering(theeplusBremsstrahlung, idxAlongStep,3);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theeplusIonisation, idxPostStep,2);
|
||||
pManager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep,3);
|
||||
pManager->SetProcessOrdering(theeplusAnnihilation, idxPostStep,4);
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02EventAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02EventAction.cc 68026 2013-03-13 13:45:22Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE02EventAction.hh"
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02EventAction::RE02EventAction()
|
||||
: G4UserEventAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02GeneralPhysics.cc
|
||||
/// \brief Implementation of the RE02GeneralPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 22-Nov-2004 Construct ALL Particles by T. Koi
|
||||
|
||||
#include "RE02GeneralPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02GeneralPhysics::RE02GeneralPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02GeneralPhysics::~RE02GeneralPhysics()
|
||||
{
|
||||
}
|
||||
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4BosonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4LeptonConstructor.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02GeneralPhysics::ConstructParticle()
|
||||
{
|
||||
// In Alphabetical Order
|
||||
|
||||
// Construct all barions
|
||||
G4BaryonConstructor* baryonConstructor = new G4BaryonConstructor();
|
||||
baryonConstructor -> ConstructParticle();
|
||||
delete baryonConstructor;
|
||||
|
||||
// Construct all bosons (including geantinos)
|
||||
G4BosonConstructor* bosonConstructor = new G4BosonConstructor();
|
||||
bosonConstructor -> ConstructParticle();
|
||||
delete bosonConstructor;
|
||||
|
||||
// Construct all ions
|
||||
G4IonConstructor* ionConstructor = new G4IonConstructor();
|
||||
ionConstructor -> ConstructParticle();
|
||||
delete ionConstructor;
|
||||
|
||||
// Construct all leptons
|
||||
G4LeptonConstructor* leptonConstructor = new G4LeptonConstructor();
|
||||
leptonConstructor -> ConstructParticle();
|
||||
delete leptonConstructor;
|
||||
|
||||
// Construct all mesons
|
||||
G4MesonConstructor* mesonConstructor = new G4MesonConstructor();
|
||||
mesonConstructor -> ConstructParticle();
|
||||
delete mesonConstructor;
|
||||
|
||||
// Construct resonaces and quarks
|
||||
G4ShortLivedConstructor* shortLivedConstructor =
|
||||
new G4ShortLivedConstructor();
|
||||
shortLivedConstructor -> ConstructParticle();
|
||||
delete shortLivedConstructor;
|
||||
|
||||
}
|
||||
|
||||
#include "G4Decay.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02GeneralPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
G4Decay* theDecayProcess = new G4Decay();
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ){
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (theDecayProcess->IsApplicable(*particle)) {
|
||||
pmanager ->AddProcess(theDecayProcess);
|
||||
// set ordering for PostStepDoIt and AtRestDoIt
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
|
||||
pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,703 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02HadronPhysics.cc
|
||||
/// \brief Implementation of the RE02HadronPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 09-Oct-2003 Hadron Physics List with Parameterization Model by T. Koi
|
||||
// 12-Oct-2003 Bug Fixed (KaonMinus) by T. Koi
|
||||
// 16-Nov-2005 Binary Cascade for Protons. by T. Aso
|
||||
// Proton : BinaryCascade < 6 GeV, 4 GeV < LE Model,
|
||||
// Neutron: BinaryCascade < 6 GeV, 4 GeV < LE Model,
|
||||
//
|
||||
|
||||
#include "RE02HadronPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02HadronPhysics::RE02HadronPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02HadronPhysics::~RE02HadronPhysics()
|
||||
{
|
||||
}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02HadronPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
// Pi+ Physics
|
||||
pManager = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
|
||||
// add processes
|
||||
G4HadronElasticProcess* theppElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theppElasticModel = new G4LElastic();
|
||||
theppElasticProcess->RegisterMe(theppElasticModel);
|
||||
pManager->AddDiscreteProcess(theppElasticProcess);
|
||||
|
||||
G4PionPlusInelasticProcess* thePionPlusInelasticProcess =
|
||||
new G4PionPlusInelasticProcess();
|
||||
|
||||
G4LEPionPlusInelastic* thePionPlusLEPModel = new G4LEPionPlusInelastic();
|
||||
G4HEPionPlusInelastic* thePionPlusHEPModel = new G4HEPionPlusInelastic();
|
||||
thePionPlusInelasticProcess->RegisterMe(thePionPlusLEPModel);
|
||||
thePionPlusInelasticProcess->RegisterMe(thePionPlusHEPModel);
|
||||
pManager->AddDiscreteProcess(thePionPlusInelasticProcess);
|
||||
|
||||
G4VProcess* theppMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theppIonisation = new G4hIonisation();
|
||||
//
|
||||
pManager->AddProcess(theppIonisation);
|
||||
pManager->AddProcess(theppMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theppMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theppIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theppMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theppIonisation, idxPostStep,2);
|
||||
|
||||
// Pi- Physics
|
||||
pManager = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
|
||||
G4HadronElasticProcess* thepmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thepmElasticModel = new G4LElastic();
|
||||
thepmElasticProcess->RegisterMe(thepmElasticModel);
|
||||
pManager->AddDiscreteProcess(thepmElasticProcess);
|
||||
|
||||
G4PionMinusInelasticProcess* thePionMinusInelasticProcess =
|
||||
new G4PionMinusInelasticProcess();
|
||||
|
||||
G4LEPionMinusInelastic* thePionMinusLEPModel = new G4LEPionMinusInelastic();
|
||||
G4HEPionMinusInelastic* thePionMinusHEPModel = new G4HEPionMinusInelastic();
|
||||
thePionMinusInelasticProcess->RegisterMe(thePionMinusLEPModel);
|
||||
thePionMinusInelasticProcess->RegisterMe(thePionMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(thePionMinusInelasticProcess);
|
||||
|
||||
G4VProcess* thepmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thepmIonisation = new G4hIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(thepmIonisation);
|
||||
pManager->AddProcess(thepmMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thepmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thepmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thepmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thepmIonisation, idxPostStep,2);
|
||||
|
||||
// K+ Physics
|
||||
pManager = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
|
||||
G4HadronElasticProcess* thekpElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thekpElasticModel = new G4LElastic();
|
||||
thekpElasticProcess->RegisterMe(thekpElasticModel);
|
||||
pManager->AddDiscreteProcess(thekpElasticProcess);
|
||||
|
||||
G4KaonPlusInelasticProcess* theKaonPlusInelasticProcess =
|
||||
new G4KaonPlusInelasticProcess();
|
||||
|
||||
G4LEKaonPlusInelastic* theKaonPlusLEPModel = new G4LEKaonPlusInelastic();
|
||||
G4HEKaonPlusInelastic* theKaonPlusHEPModel = new G4HEKaonPlusInelastic();
|
||||
theKaonPlusInelasticProcess->RegisterMe(theKaonPlusLEPModel);
|
||||
theKaonPlusInelasticProcess->RegisterMe(theKaonPlusHEPModel);
|
||||
pManager->AddDiscreteProcess(theKaonPlusInelasticProcess);
|
||||
|
||||
G4VProcess* thekpMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thekpIonisation = new G4hIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(thekpIonisation);
|
||||
pManager->AddProcess(thekpMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thekpMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thekpIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thekpMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thekpIonisation, idxPostStep,2);
|
||||
|
||||
// K- Physics
|
||||
pManager = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
|
||||
// add processes
|
||||
G4HadronElasticProcess* thekmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thekmElasticModel = new G4LElastic();
|
||||
thekmElasticProcess->RegisterMe(thekmElasticModel);
|
||||
pManager->AddDiscreteProcess(thekmElasticProcess);
|
||||
|
||||
G4KaonMinusInelasticProcess* theKaonMinusInelasticProcess =
|
||||
new G4KaonMinusInelasticProcess();
|
||||
|
||||
G4LEKaonMinusInelastic* theKaonMinusLEPModel = new G4LEKaonMinusInelastic();
|
||||
G4HEKaonMinusInelastic* theKaonMinusHEPModel = new G4HEKaonMinusInelastic();
|
||||
theKaonMinusInelasticProcess->RegisterMe(theKaonMinusLEPModel);
|
||||
theKaonMinusInelasticProcess->RegisterMe(theKaonMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theKaonMinusInelasticProcess);
|
||||
|
||||
G4VProcess* thekmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thekmIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(thekmIonisation);
|
||||
pManager->AddProcess(thekmMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thekmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thekmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thekmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thekmIonisation, idxPostStep,2);
|
||||
|
||||
// Kaon0L Physics
|
||||
pManager = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
|
||||
G4HadronElasticProcess* thek0lElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thek0lElasticModel = new G4LElastic();
|
||||
thek0lElasticProcess->RegisterMe(thek0lElasticModel);
|
||||
pManager->AddDiscreteProcess(thek0lElasticProcess);
|
||||
|
||||
G4KaonZeroLInelasticProcess* theKaonZeroLInelasticProcess =
|
||||
new G4KaonZeroLInelasticProcess();
|
||||
|
||||
G4LEKaonZeroLInelastic* theKaonZeroLLEPModel = new G4LEKaonZeroLInelastic();
|
||||
G4HEKaonZeroInelastic* theKaonZerolHEPModel = new G4HEKaonZeroInelastic();
|
||||
theKaonZeroLInelasticProcess->RegisterMe(theKaonZeroLLEPModel);
|
||||
theKaonZeroLInelasticProcess->RegisterMe(theKaonZerolHEPModel);
|
||||
pManager->AddDiscreteProcess(theKaonZeroLInelasticProcess);
|
||||
|
||||
// Kaon0S Physics
|
||||
pManager = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
|
||||
G4HadronElasticProcess* thek0sElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thek0sElasticModel = new G4LElastic();
|
||||
thek0sElasticProcess->RegisterMe(thek0sElasticModel);
|
||||
pManager->AddDiscreteProcess(thek0sElasticProcess);
|
||||
|
||||
G4KaonZeroSInelasticProcess* theKaonZeroSInelasticProcess =
|
||||
new G4KaonZeroSInelasticProcess();
|
||||
|
||||
G4LEKaonZeroSInelastic* theKaonZeroSLEPModel = new G4LEKaonZeroSInelastic();
|
||||
G4HEKaonZeroInelastic* theKaonZerosHEPModel = new G4HEKaonZeroInelastic();
|
||||
theKaonZeroSInelasticProcess->RegisterMe(theKaonZeroSLEPModel);
|
||||
theKaonZeroSInelasticProcess->RegisterMe(theKaonZerosHEPModel);
|
||||
pManager->AddDiscreteProcess(theKaonZeroSInelasticProcess);
|
||||
|
||||
// Proton Physics
|
||||
pManager = G4Proton::Proton()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thepElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thepElasticModel = new G4LElastic();
|
||||
thepElasticProcess->RegisterMe(thepElasticModel);
|
||||
pManager->AddDiscreteProcess(thepElasticProcess);
|
||||
|
||||
G4ProtonInelasticProcess* theProtonInelasticProcess =
|
||||
new G4ProtonInelasticProcess();
|
||||
|
||||
G4BinaryCascade* theProtonBCModel = new G4BinaryCascade();
|
||||
theProtonBCModel->SetMaxEnergy(6.*GeV);
|
||||
G4LEProtonInelastic* theProtonLEPModel = new G4LEProtonInelastic();
|
||||
theProtonLEPModel->SetMinEnergy(4.*GeV);
|
||||
G4HEProtonInelastic* theProtonHEPModel = new G4HEProtonInelastic();
|
||||
theProtonInelasticProcess->RegisterMe(theProtonBCModel);
|
||||
theProtonInelasticProcess->RegisterMe(theProtonLEPModel);
|
||||
theProtonInelasticProcess->RegisterMe(theProtonHEPModel);
|
||||
pManager->AddDiscreteProcess(theProtonInelasticProcess);
|
||||
|
||||
G4VProcess* thepMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thepIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(thepIonisation);
|
||||
pManager->AddProcess(thepMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thepMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thepIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thepMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thepIonisation, idxPostStep,2);
|
||||
|
||||
// anti-proton Physics
|
||||
pManager = G4AntiProton::AntiProton()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theapElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theapElasticModel = new G4LElastic();
|
||||
theapElasticProcess->RegisterMe(theapElasticModel);
|
||||
pManager->AddDiscreteProcess(theapElasticProcess);
|
||||
|
||||
G4AntiProtonInelasticProcess* theAntiProtonInelasticProcess =
|
||||
new G4AntiProtonInelasticProcess();
|
||||
|
||||
G4LEAntiProtonInelastic* theAntiProtonLEPModel =
|
||||
new G4LEAntiProtonInelastic();
|
||||
G4HEAntiProtonInelastic* theAntiProtonHEPModel =
|
||||
new G4HEAntiProtonInelastic();
|
||||
theAntiProtonInelasticProcess->RegisterMe(theAntiProtonLEPModel);
|
||||
theAntiProtonInelasticProcess->RegisterMe(theAntiProtonHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiProtonInelasticProcess);
|
||||
|
||||
G4AntiProtonAnnihilationAtRest* theAntiProtonAnnihilation =
|
||||
new G4AntiProtonAnnihilationAtRest();
|
||||
pManager->AddRestProcess(theAntiProtonAnnihilation);
|
||||
|
||||
G4VProcess* theapMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theapIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theapIonisation);
|
||||
pManager->AddProcess(theapMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theapMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theapIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theapMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theapIonisation, idxPostStep,2);
|
||||
|
||||
// neutron Physics
|
||||
pManager = G4Neutron::Neutron()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thenElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thenElasticModel = new G4LElastic();
|
||||
thenElasticProcess->RegisterMe(thenElasticModel);
|
||||
pManager->AddDiscreteProcess(thenElasticProcess);
|
||||
|
||||
G4NeutronInelasticProcess* theNeutronInelasticProcess =
|
||||
new G4NeutronInelasticProcess();
|
||||
|
||||
G4BinaryCascade* theNeutronBCModel = new G4BinaryCascade();
|
||||
theNeutronBCModel->SetMaxEnergy(6.*GeV);
|
||||
G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic();
|
||||
theNeutronLEPModel->SetMinEnergy(4.*GeV);
|
||||
G4HENeutronInelastic* theNeutronHEPModel = new G4HENeutronInelastic();
|
||||
theNeutronInelasticProcess->RegisterMe(theNeutronBCModel);
|
||||
theNeutronInelasticProcess->RegisterMe(theNeutronLEPModel);
|
||||
theNeutronInelasticProcess->RegisterMe(theNeutronHEPModel);
|
||||
pManager->AddDiscreteProcess(theNeutronInelasticProcess);
|
||||
|
||||
G4HadronFissionProcess* thenFission = new G4HadronFissionProcess();
|
||||
G4LFission* thenFissionModel = new G4LFission();
|
||||
thenFission->RegisterMe(thenFissionModel);
|
||||
pManager->AddDiscreteProcess(thenFission);
|
||||
|
||||
G4HadronCaptureProcess* thenCapture = new G4HadronCaptureProcess();
|
||||
G4LCapture* thenCaptureModel = new G4LCapture();
|
||||
thenCapture->RegisterMe(thenCaptureModel);
|
||||
pManager->AddDiscreteProcess(thenCapture);
|
||||
|
||||
// anti-neutron Physics
|
||||
pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theanElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theanElasticModel = new G4LElastic();
|
||||
theanElasticProcess->RegisterMe(theanElasticModel);
|
||||
pManager->AddDiscreteProcess(theanElasticProcess);
|
||||
|
||||
G4AntiNeutronInelasticProcess* theAntiNeutronInelasticProcess =
|
||||
new G4AntiNeutronInelasticProcess();
|
||||
|
||||
G4LEAntiNeutronInelastic* theAntiNeutronLEPModel =
|
||||
new G4LEAntiNeutronInelastic();
|
||||
G4HEAntiNeutronInelastic* theAntiNeutronHEPModel =
|
||||
new G4HEAntiNeutronInelastic();
|
||||
theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronLEPModel);
|
||||
theAntiNeutronInelasticProcess->RegisterMe(theAntiNeutronHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiNeutronInelasticProcess);
|
||||
|
||||
G4AntiNeutronAnnihilationAtRest* theAntiNeutronAnnihilation =
|
||||
new G4AntiNeutronAnnihilationAtRest();
|
||||
pManager->AddRestProcess(theAntiNeutronAnnihilation);
|
||||
|
||||
// Lambda Physics
|
||||
pManager = G4Lambda::Lambda()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thel0ElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thel0ElasticModel = new G4LElastic();
|
||||
thel0ElasticProcess->RegisterMe(thel0ElasticModel);
|
||||
pManager->AddDiscreteProcess(thel0ElasticProcess);
|
||||
|
||||
G4LambdaInelasticProcess* theLambdaInelasticProcess =
|
||||
new G4LambdaInelasticProcess();
|
||||
|
||||
G4LELambdaInelastic* theLambdaLEPModel = new G4LELambdaInelastic();
|
||||
G4HELambdaInelastic* theLambdaHEPModel = new G4HELambdaInelastic();
|
||||
theLambdaInelasticProcess->RegisterMe(theLambdaLEPModel);
|
||||
theLambdaInelasticProcess->RegisterMe(theLambdaHEPModel);
|
||||
pManager->AddDiscreteProcess(theLambdaInelasticProcess);
|
||||
|
||||
// Anti-Labda Physics
|
||||
pManager = G4AntiLambda::AntiLambda()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theal0ElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theal0ElasticModel = new G4LElastic();
|
||||
theal0ElasticProcess->RegisterMe(theal0ElasticModel);
|
||||
pManager->AddDiscreteProcess(theal0ElasticProcess);
|
||||
|
||||
G4AntiLambdaInelasticProcess* theAntiLambdaInelasticProcess =
|
||||
new G4AntiLambdaInelasticProcess();
|
||||
|
||||
G4LEAntiLambdaInelastic* theAntiLambdaLEPModel =
|
||||
new G4LEAntiLambdaInelastic();
|
||||
G4HEAntiLambdaInelastic* theAntiLambdaHEPModel =
|
||||
new G4HEAntiLambdaInelastic();
|
||||
theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaLEPModel);
|
||||
theAntiLambdaInelasticProcess->RegisterMe(theAntiLambdaHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiLambdaInelasticProcess);
|
||||
|
||||
// Sigma+ Physics
|
||||
pManager = G4SigmaPlus::SigmaPlus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thespElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thespElasticModel = new G4LElastic();
|
||||
thespElasticProcess->RegisterMe(thespElasticModel);
|
||||
pManager->AddDiscreteProcess(thespElasticProcess);
|
||||
|
||||
G4SigmaPlusInelasticProcess* theSigmaPlusInelasticProcess =
|
||||
new G4SigmaPlusInelasticProcess();
|
||||
|
||||
G4LESigmaPlusInelastic* theSigmaPlusLEPModel = new G4LESigmaPlusInelastic();
|
||||
G4HESigmaPlusInelastic* theSigmaPlusHEPModel = new G4HESigmaPlusInelastic();
|
||||
theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusLEPModel);
|
||||
theSigmaPlusInelasticProcess->RegisterMe(theSigmaPlusHEPModel);
|
||||
pManager->AddDiscreteProcess(theSigmaPlusInelasticProcess);
|
||||
|
||||
G4VProcess* thespMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thespIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(thespIonisation);
|
||||
pManager->AddProcess(thespMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thespMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thespIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thespMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thespIonisation, idxPostStep,2);
|
||||
|
||||
// anti-Sigma+ Physics
|
||||
pManager = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theaspElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theaspElasticModel = new G4LElastic();
|
||||
theaspElasticProcess->RegisterMe(theaspElasticModel);
|
||||
pManager->AddDiscreteProcess(theaspElasticProcess);
|
||||
|
||||
G4AntiSigmaPlusInelasticProcess* theAntiSigmaPlusInelasticProcess =
|
||||
new G4AntiSigmaPlusInelasticProcess();
|
||||
|
||||
G4LEAntiSigmaPlusInelastic* theAntiSigmaPlusLEPModel =
|
||||
new G4LEAntiSigmaPlusInelastic();
|
||||
G4HEAntiSigmaPlusInelastic* theAntiSigmaPlusHEPModel =
|
||||
new G4HEAntiSigmaPlusInelastic();
|
||||
theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusLEPModel);
|
||||
theAntiSigmaPlusInelasticProcess->RegisterMe(theAntiSigmaPlusHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiSigmaPlusInelasticProcess);
|
||||
|
||||
G4VProcess* theaspMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theaspIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theaspIonisation);
|
||||
pManager->AddProcess(theaspMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theaspMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theaspIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theaspMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theaspIonisation, idxPostStep,2);
|
||||
|
||||
// Sigma- Physics
|
||||
pManager = G4SigmaMinus::SigmaMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thesmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thesmElasticModel = new G4LElastic();
|
||||
thesmElasticProcess->RegisterMe(thesmElasticModel);
|
||||
pManager->AddDiscreteProcess(thesmElasticProcess);
|
||||
|
||||
G4SigmaMinusInelasticProcess* theSigmaMinusInelasticProcess =
|
||||
new G4SigmaMinusInelasticProcess();
|
||||
|
||||
G4LESigmaMinusInelastic* theSigmaMinusLEPModel =
|
||||
new G4LESigmaMinusInelastic();
|
||||
G4HESigmaMinusInelastic* theSigmaMinusHEPModel =
|
||||
new G4HESigmaMinusInelastic();
|
||||
theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusLEPModel);
|
||||
theSigmaMinusInelasticProcess->RegisterMe(theSigmaMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theSigmaMinusInelasticProcess);
|
||||
|
||||
G4VProcess* thesmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thesmIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(thesmIonisation);
|
||||
pManager->AddProcess(thesmMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thesmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thesmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thesmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thesmIonisation, idxPostStep,2);
|
||||
|
||||
// anti-Sigma- Physics
|
||||
pManager = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theasmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theasmElasticModel = new G4LElastic();
|
||||
theasmElasticProcess->RegisterMe(theasmElasticModel);
|
||||
pManager->AddDiscreteProcess(theasmElasticProcess);
|
||||
|
||||
G4AntiSigmaMinusInelasticProcess* theAntiSigmaMinusInelasticProcess =
|
||||
new G4AntiSigmaMinusInelasticProcess();
|
||||
|
||||
G4LEAntiSigmaMinusInelastic* theAntiSigmaMinusLEPModel =
|
||||
new G4LEAntiSigmaMinusInelastic();
|
||||
G4HEAntiSigmaMinusInelastic* theAntiSigmaMinusHEPModel =
|
||||
new G4HEAntiSigmaMinusInelastic();
|
||||
theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusLEPModel);
|
||||
theAntiSigmaMinusInelasticProcess->RegisterMe(theAntiSigmaMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiSigmaMinusInelasticProcess);
|
||||
|
||||
G4VProcess* theasmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theasmIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theasmIonisation);
|
||||
pManager->AddProcess(theasmMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theasmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theasmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theasmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theasmIonisation, idxPostStep,2);
|
||||
|
||||
// Xi0 Physics
|
||||
pManager = G4XiZero::XiZero()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thex0ElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thex0ElasticModel = new G4LElastic();
|
||||
thex0ElasticProcess->RegisterMe(thex0ElasticModel);
|
||||
pManager->AddDiscreteProcess(thex0ElasticProcess);
|
||||
|
||||
G4XiZeroInelasticProcess* theXiZeroInelasticProcess =
|
||||
new G4XiZeroInelasticProcess();
|
||||
|
||||
G4LEXiZeroInelastic* theXiZeroLEPModel = new G4LEXiZeroInelastic();
|
||||
G4HEXiZeroInelastic* theXiZeroHEPModel = new G4HEXiZeroInelastic();
|
||||
theXiZeroInelasticProcess->RegisterMe(theXiZeroLEPModel);
|
||||
theXiZeroInelasticProcess->RegisterMe(theXiZeroHEPModel);
|
||||
pManager->AddDiscreteProcess(theXiZeroInelasticProcess);
|
||||
|
||||
// Anti-Xi0 Physics
|
||||
pManager = G4AntiXiZero::AntiXiZero()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theax0ElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theax0ElasticModel = new G4LElastic();
|
||||
theax0ElasticProcess->RegisterMe(theax0ElasticModel);
|
||||
pManager->AddDiscreteProcess(theax0ElasticProcess);
|
||||
|
||||
G4AntiXiZeroInelasticProcess* theAntiXiZeroInelasticProcess =
|
||||
new G4AntiXiZeroInelasticProcess();
|
||||
|
||||
G4LEAntiXiZeroInelastic* theAntiXiZeroLEPModel =
|
||||
new G4LEAntiXiZeroInelastic();
|
||||
G4HEAntiXiZeroInelastic* theAntiXiZeroHEPModel =
|
||||
new G4HEAntiXiZeroInelastic();
|
||||
theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroLEPModel);
|
||||
theAntiXiZeroInelasticProcess->RegisterMe(theAntiXiZeroHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiXiZeroInelasticProcess);
|
||||
|
||||
// Xi- Physics
|
||||
pManager = G4XiMinus::XiMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thexmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* thexmElasticModel = new G4LElastic();
|
||||
thexmElasticProcess->RegisterMe(thexmElasticModel);
|
||||
pManager->AddDiscreteProcess(thexmElasticProcess);
|
||||
|
||||
G4XiMinusInelasticProcess* theXiMinusInelasticProcess =
|
||||
new G4XiMinusInelasticProcess();
|
||||
|
||||
G4LEXiMinusInelastic* theXiMinusLEPModel = new G4LEXiMinusInelastic();
|
||||
G4HEXiMinusInelastic* theXiMinusHEPModel = new G4HEXiMinusInelastic();
|
||||
theXiMinusInelasticProcess->RegisterMe(theXiMinusLEPModel);
|
||||
theXiMinusInelasticProcess->RegisterMe(theXiMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theXiMinusInelasticProcess);
|
||||
|
||||
G4VProcess* thexmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thexmIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(thexmIonisation);
|
||||
pManager->AddProcess(thexmMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thexmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thexmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thexmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thexmIonisation, idxPostStep,2);
|
||||
|
||||
// anti-Xi- Physics
|
||||
pManager = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theaxmElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theaxmElasticModel = new G4LElastic();
|
||||
theaxmElasticProcess->RegisterMe(theaxmElasticModel);
|
||||
pManager->AddDiscreteProcess(theaxmElasticProcess);
|
||||
|
||||
G4AntiXiMinusInelasticProcess* theAntiXiMinusInelasticProcess =
|
||||
new G4AntiXiMinusInelasticProcess();
|
||||
|
||||
G4LEAntiXiMinusInelastic* theAntiXiMinusLEPModel =
|
||||
new G4LEAntiXiMinusInelastic();
|
||||
G4HEAntiXiMinusInelastic* theAntiXiMinusHEPModel =
|
||||
new G4HEAntiXiMinusInelastic();
|
||||
theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusLEPModel);
|
||||
theAntiXiMinusInelasticProcess->RegisterMe(theAntiXiMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiXiMinusInelasticProcess);
|
||||
|
||||
G4VProcess* theaxmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theaxmIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theaxmIonisation);
|
||||
pManager->AddProcess(theaxmMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theaxmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theaxmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theaxmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theaxmIonisation, idxPostStep,2);
|
||||
|
||||
// Omega- Physics
|
||||
pManager = G4OmegaMinus::OmegaMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theomElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theomElasticModel = new G4LElastic();
|
||||
theomElasticProcess->RegisterMe(theomElasticModel);
|
||||
pManager->AddDiscreteProcess(theomElasticProcess);
|
||||
|
||||
G4OmegaMinusInelasticProcess* theOmegaMinusInelasticProcess =
|
||||
new G4OmegaMinusInelasticProcess();
|
||||
|
||||
G4LEOmegaMinusInelastic* theOmegaMinusLEPModel =
|
||||
new G4LEOmegaMinusInelastic();
|
||||
G4HEOmegaMinusInelastic* theOmegaMinusHEPModel =
|
||||
new G4HEOmegaMinusInelastic();
|
||||
theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusLEPModel);
|
||||
theOmegaMinusInelasticProcess->RegisterMe(theOmegaMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theOmegaMinusInelasticProcess);
|
||||
|
||||
G4VProcess* theomMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theomIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theomIonisation);
|
||||
pManager->AddProcess(theomMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theomMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theomIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theomMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theomIonisation, idxPostStep,2);
|
||||
|
||||
// anti-Omega- Physics
|
||||
pManager = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* theaomElasticProcess = new G4HadronElasticProcess();
|
||||
G4LElastic* theaomElasticModel = new G4LElastic();
|
||||
theaomElasticProcess->RegisterMe(theaomElasticModel);
|
||||
pManager->AddDiscreteProcess(theaomElasticProcess);
|
||||
|
||||
G4AntiOmegaMinusInelasticProcess* theAntiOmegaMinusInelasticProcess =
|
||||
new G4AntiOmegaMinusInelasticProcess();
|
||||
|
||||
G4LEAntiOmegaMinusInelastic* theAntiOmegaMinusLEPModel =
|
||||
new G4LEAntiOmegaMinusInelastic();
|
||||
G4HEAntiOmegaMinusInelastic* theAntiOmegaMinusHEPModel =
|
||||
new G4HEAntiOmegaMinusInelastic();
|
||||
theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusLEPModel);
|
||||
theAntiOmegaMinusInelasticProcess->RegisterMe(theAntiOmegaMinusHEPModel);
|
||||
pManager->AddDiscreteProcess(theAntiOmegaMinusInelasticProcess);
|
||||
|
||||
G4VProcess* theaomMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* theaomIonisation = new G4hIonisation();
|
||||
|
||||
pManager->AddProcess(theaomIonisation);
|
||||
pManager->AddProcess(theaomMultipleScattering);
|
||||
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(theaomMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(theaomIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(theaomMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(theaomIonisation, idxPostStep,2);
|
||||
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02IonPhysics.cc
|
||||
/// \brief Implementation of the RE02IonPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 13-Oct-2003 Add Comment for Ionisation of Generic Ion by T. Koi
|
||||
// 05-Jan-2004 Change G. Ion Ionisation from G4hIonisation
|
||||
// to G4ionIonisation T. Koi
|
||||
// 18-Nov-2005 Add Inelastic process with G4BinaryLightIonReaction.
|
||||
// T. Aso
|
||||
|
||||
#include "RE02IonPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02IonPhysics::RE02IonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02IonPhysics::~RE02IonPhysics()
|
||||
{
|
||||
}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4HadronElastic.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02IonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
// Generic Ion
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4VProcess* thegionMultipleScattering = new G4hMultipleScattering();
|
||||
//
|
||||
// G4hIonization may be not able to use for Geanric Ion in future
|
||||
// Please take care using this physics list after v5.2.p02
|
||||
// G4VProcess* thegionIonisation = new G4hIonisation();
|
||||
//
|
||||
// From V6.0 hIonisation does not work for GenericIon
|
||||
G4VProcess* thegionIonisation = new G4ionIonisation();
|
||||
|
||||
// Inelastic process
|
||||
G4HadronInelasticProcess* thegionInelastic =
|
||||
new G4HadronInelasticProcess("IonInelastic",G4GenericIon::GenericIon());
|
||||
thegionInelastic->AddDataSet(new G4TripathiCrossSection);
|
||||
thegionInelastic->AddDataSet(new G4IonsShenCrossSection);
|
||||
G4BinaryLightIonReaction* thegionBCModel = new G4BinaryLightIonReaction;
|
||||
thegionInelastic->RegisterMe(thegionBCModel);
|
||||
|
||||
//
|
||||
pManager->AddProcess(thegionIonisation);
|
||||
pManager->AddProcess(thegionMultipleScattering);
|
||||
pManager->AddDiscreteProcess(thegionInelastic);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thegionMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thegionIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thegionMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thegionIonisation, idxPostStep,2);
|
||||
|
||||
// Deuteron
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thedueElasticProcess = new G4HadronElasticProcess();
|
||||
thedueElasticProcess->RegisterMe(new G4HadronElastic());
|
||||
pManager->AddDiscreteProcess(thedueElasticProcess);
|
||||
|
||||
G4DeuteronInelasticProcess* theDeuteronInelasticProcess =
|
||||
new G4DeuteronInelasticProcess();
|
||||
|
||||
G4LEDeuteronInelastic* theDeuteronLEPModel = new G4LEDeuteronInelastic();
|
||||
theDeuteronInelasticProcess->RegisterMe(theDeuteronLEPModel);
|
||||
pManager->AddDiscreteProcess(theDeuteronInelasticProcess);
|
||||
|
||||
G4VProcess* thedueMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thedueIonisation = new G4hIonisation();
|
||||
//
|
||||
pManager->AddProcess(thedueIonisation);
|
||||
pManager->AddProcess(thedueMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thedueMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thedueIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thedueMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thedueIonisation, idxPostStep,2);
|
||||
|
||||
// Triton
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
|
||||
// add process
|
||||
G4HadronElasticProcess* thetriElasticProcess = new G4HadronElasticProcess();
|
||||
thetriElasticProcess->RegisterMe(new G4HadronElastic());
|
||||
pManager->AddDiscreteProcess(thetriElasticProcess);
|
||||
|
||||
G4TritonInelasticProcess* theTritonInelasticProcess =
|
||||
new G4TritonInelasticProcess();
|
||||
|
||||
G4LETritonInelastic* theTritonLEPModel = new G4LETritonInelastic();
|
||||
theTritonInelasticProcess->RegisterMe(theTritonLEPModel);
|
||||
pManager->AddDiscreteProcess(theTritonInelasticProcess);
|
||||
|
||||
G4VProcess* thetriMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thetriIonisation = new G4hIonisation();
|
||||
//
|
||||
pManager->AddProcess(thetriIonisation);
|
||||
pManager->AddProcess(thetriMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thetriMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thetriIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thetriMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thetriIonisation, idxPostStep,2);
|
||||
|
||||
// Alpha
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
|
||||
// add processes
|
||||
G4HadronElasticProcess* thealElasticProcess = new G4HadronElasticProcess();
|
||||
thealElasticProcess->RegisterMe(new G4HadronElastic());
|
||||
pManager->AddDiscreteProcess(thealElasticProcess);
|
||||
|
||||
G4AlphaInelasticProcess* theAlphaInelasticProcess =
|
||||
new G4AlphaInelasticProcess();
|
||||
|
||||
G4LEAlphaInelastic* theAlphaLEPModel = new G4LEAlphaInelastic();
|
||||
theAlphaInelasticProcess->RegisterMe(theAlphaLEPModel);
|
||||
pManager->AddDiscreteProcess(theAlphaInelasticProcess);
|
||||
|
||||
G4VProcess* thealpMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thealpIonisation = new G4hIonisation();
|
||||
//
|
||||
pManager->AddProcess(thealpIonisation);
|
||||
pManager->AddProcess(thealpMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thealpMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thealpIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thealpMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thealpIonisation, idxPostStep,2);
|
||||
|
||||
// He3
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
|
||||
// add processes
|
||||
G4VProcess* thehe3MultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thehe3Ionisation = new G4hIonisation();
|
||||
//
|
||||
pManager->AddProcess(thehe3Ionisation);
|
||||
pManager->AddProcess(thehe3MultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thehe3MultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thehe3Ionisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thehe3MultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thehe3Ionisation, idxPostStep,2);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02MuonPhysics.cc
|
||||
/// \brief Implementation of the RE02MuonPhysics class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 09-Oct-2003 mu+- tau+- processes are changed by T. Koi
|
||||
// 05-Jan-2004 Add Brem. and PairProd. of AlongStepDoit for mu+- by T. Koi
|
||||
|
||||
#include "RE02MuonPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02MuonPhysics::RE02MuonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02MuonPhysics::~RE02MuonPhysics()
|
||||
{
|
||||
}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4TauMinus.hh"
|
||||
#include "G4TauPlus.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02MuonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
//Muon+
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
G4VProcess* thempMultipleScattering = new G4MuMultipleScattering();
|
||||
G4VProcess* thempBremsstrahlung = new G4MuBremsstrahlung();
|
||||
G4VProcess* thempPairProduction = new G4MuPairProduction();
|
||||
G4VProcess* thempIonisation = new G4MuIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(thempIonisation);
|
||||
pManager->AddProcess(thempMultipleScattering);
|
||||
pManager->AddProcess(thempBremsstrahlung);
|
||||
pManager->AddProcess(thempPairProduction);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thempMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thempIonisation, idxAlongStep,2);
|
||||
pManager->SetProcessOrdering(thempBremsstrahlung, idxAlongStep,3);
|
||||
pManager->SetProcessOrdering(thempPairProduction, idxAlongStep,4);
|
||||
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thempMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thempIonisation, idxPostStep,2);
|
||||
pManager->SetProcessOrdering(thempBremsstrahlung, idxPostStep,3);
|
||||
pManager->SetProcessOrdering(thempPairProduction, idxPostStep,4);
|
||||
|
||||
//Muon-
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
G4VProcess* themmMultipleScattering = new G4MuMultipleScattering();
|
||||
G4VProcess* themmBremsstrahlung = new G4MuBremsstrahlung();
|
||||
G4VProcess* themmPairProduction = new G4MuPairProduction();
|
||||
G4VProcess* themmIonisation = new G4MuIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(themmIonisation);
|
||||
pManager->AddProcess(themmMultipleScattering);
|
||||
pManager->AddProcess(themmBremsstrahlung);
|
||||
pManager->AddProcess(themmPairProduction);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(themmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(themmIonisation, idxAlongStep,2);
|
||||
pManager->SetProcessOrdering(themmBremsstrahlung, idxAlongStep,3);
|
||||
pManager->SetProcessOrdering(themmPairProduction, idxAlongStep,4);
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(themmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(themmIonisation, idxPostStep,2);
|
||||
pManager->SetProcessOrdering(themmBremsstrahlung, idxPostStep,3);
|
||||
pManager->SetProcessOrdering(themmPairProduction, idxPostStep,4);
|
||||
|
||||
// Tau+ Physics
|
||||
pManager = G4TauPlus::TauPlus()->GetProcessManager();
|
||||
G4VProcess* thetpMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thetpIonisation = new G4hIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(thetpIonisation);
|
||||
pManager->AddProcess(thetpMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thetpMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thetpIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thetpMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thetpIonisation, idxPostStep,2);
|
||||
|
||||
// Tau- Physics
|
||||
pManager = G4TauMinus::TauMinus()->GetProcessManager();
|
||||
G4VProcess* thetmMultipleScattering = new G4hMultipleScattering();
|
||||
G4VProcess* thetmIonisation = new G4hIonisation();
|
||||
//
|
||||
// add processes
|
||||
pManager->AddProcess(thetmIonisation);
|
||||
pManager->AddProcess(thetmMultipleScattering);
|
||||
//
|
||||
// set ordering for AlongStepDoIt
|
||||
pManager->SetProcessOrdering(thetmMultipleScattering, idxAlongStep,1);
|
||||
pManager->SetProcessOrdering(thetmIonisation, idxAlongStep,2);
|
||||
//
|
||||
// set ordering for PostStepDoIt
|
||||
pManager->SetProcessOrdering(thetmMultipleScattering, idxPostStep,1);
|
||||
pManager->SetProcessOrdering(thetmIonisation, idxPostStep,2);
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSCellFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSCellFlux.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSCellFlux
|
||||
#include "RE02PSCellFlux.hh"
|
||||
@@ -73,6 +73,8 @@ G4int RE02PSCellFlux::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSEnergyDeposit class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSEnergyDeposit.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSEnergyDeposit
|
||||
#include "RE02PSEnergyDeposit.hh"
|
||||
@@ -74,5 +74,8 @@ G4int RE02PSEnergyDeposit::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSFlatSurfaceCurrent class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSFlatSurfaceCurrent.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSFlatSurfaceCurrent
|
||||
#include "RE02PSFlatSurfaceCurrent.hh"
|
||||
@@ -75,6 +75,8 @@ G4int RE02PSFlatSurfaceCurrent::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSFlatSurfaceFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSFlatSurfaceFlux.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSFlatSurfaceFlux
|
||||
#include "RE02PSFlatSurfaceFlux.hh"
|
||||
@@ -74,6 +74,8 @@ G4int RE02PSFlatSurfaceFlux::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSNofStep class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSNofStep.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSNofStep
|
||||
#include "RE02PSNofStep.hh"
|
||||
@@ -73,6 +73,8 @@ G4int RE02PSNofStep::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PSPassageCellFlux class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PSPassageCellFlux.cc 72957 2013-08-14 14:27:23Z gcosmo $
|
||||
//
|
||||
// RE02PSPassageCellFlux
|
||||
#include "RE02PSPassageCellFlux.hh"
|
||||
@@ -74,6 +74,8 @@ G4int RE02PSPassageCellFlux::GetIndex(G4Step* aStep)
|
||||
G4int ix = touchable->GetReplicaNumber(1);
|
||||
G4int iy = touchable->GetReplicaNumber(2);
|
||||
G4int iz = touchable->GetReplicaNumber(0);
|
||||
|
||||
return iy*fNx*fNz+ix*fNz+iz;
|
||||
|
||||
G4int tmp = fNy;
|
||||
if (tmp) return iy*fNx*fNz+ix*fNz+iz;
|
||||
else return iy*fNx*fNz+ix*fNz+iz;
|
||||
}
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE02/src/RE02PhysicsList.cc
|
||||
/// \brief Implementation of the RE02PhysicsList class
|
||||
//
|
||||
// $Id$
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 28-Jan-04 Add QGSP_BERT and QGSP_BIC for hadronic lists. T. Koi
|
||||
// 22-Nov-04 Comment out QGSP_BERT and QGSP_BIC
|
||||
// Output Notificaiton message
|
||||
// All Particles are created in GeneralPhysics
|
||||
|
||||
#include "RE02PhysicsList.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleWithCuts.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "RE02GeneralPhysics.hh"
|
||||
#include "RE02EMPhysics.hh"
|
||||
#include "RE02MuonPhysics.hh"
|
||||
#include "RE02HadronPhysics.hh"
|
||||
#include "RE02IonPhysics.hh"
|
||||
|
||||
//#include "HadronPhysicsQGSP_BERT.hh"
|
||||
//#include "HadronPhysicsQGSP_BIC.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02PhysicsList::RE02PhysicsList() : G4VModularPhysicsList()
|
||||
{
|
||||
|
||||
G4cout
|
||||
<< "You are using the RE02PhysicsList\n"
|
||||
<< "This PhysicsList originally comes from example/extended/analysis/A01,\n"
|
||||
<< "and is modified in Hadron Physics in order to involve Binary Cascade\n"
|
||||
<< "at low energy region and inelastic process for generic ions.\n"
|
||||
<< "Full set of particles (barions bosons and mesons) will be created and\n"
|
||||
<< "Standard EM Physics and Low & High Energy parameterized models will be "
|
||||
<< "applied.\n"
|
||||
<< "RE02PhysicsList is optimized for robustness and not for any particular "
|
||||
<< "usage.\n"
|
||||
<< "For the hadronic physics, educated guesses of physics list are "
|
||||
<< "prepared\n"
|
||||
<< "for various use cases.\n"
|
||||
<< "When you will start REAL calculations for your own interest, please\n"
|
||||
<< "consider the usage of hadronic_lists instead of RE02PhysicsLists.\n"
|
||||
<< "More information can also be found from the Geant4 HyperNews.\n"
|
||||
<< "http://geant4-hn.slac.stanford.edu:5090/Geant4-HyperNews/index\n"
|
||||
<< G4endl;
|
||||
|
||||
// default cut value (1.0mm)
|
||||
defaultCutValue = 1.0*mm;
|
||||
SetVerboseLevel(1);
|
||||
|
||||
// General Physics ( Create ALL Particle and apply Decay )
|
||||
RegisterPhysics( new RE02GeneralPhysics("general") );
|
||||
|
||||
// EM Physics ( Apply related Processes to gamma and e-/+)
|
||||
RegisterPhysics( new RE02EMPhysics("standard EM"));
|
||||
|
||||
// Muon Physics ( Apply related processes to mu and tau
|
||||
RegisterPhysics( new RE02MuonPhysics("muon"));
|
||||
|
||||
// Hadron Physics ( Apply related processes to hadrons )
|
||||
RegisterPhysics( new RE02HadronPhysics("hadron"));
|
||||
// We do not use hadronic lists since v7.
|
||||
//RegisterPhysics( new HadronPhysicsQGSP_BERT("hadron"));
|
||||
//RegisterPhysics( new HadronPhysicsQGSP_BIC("hadron"));
|
||||
|
||||
// Ion Physics ( Apply related processes to ions )
|
||||
RegisterPhysics( new RE02IonPhysics("ion"));
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
RE02PhysicsList::~RE02PhysicsList()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02PhysicsList::SetCuts()
|
||||
{
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
SetCutsWithDefault();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02PrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02PrimaryGeneratorAction.cc 68026 2013-03-13 13:45:22Z gcosmo $
|
||||
//
|
||||
|
||||
#include "RE02PrimaryGeneratorAction.hh"
|
||||
@@ -43,6 +43,8 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//
|
||||
RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction()
|
||||
: G4VUserPrimaryGeneratorAction(),
|
||||
fParticleGun(0)
|
||||
{
|
||||
G4int n_particle = 1;
|
||||
fParticleGun = new G4ParticleGun(n_particle);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02Run class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02Run.cc 76292 2013-11-08 13:10:20Z gcosmo $
|
||||
//
|
||||
|
||||
//=====================================================================
|
||||
@@ -95,7 +95,8 @@ RE02Run::RE02Run(const std::vector<G4String> mfdName) : G4Run()
|
||||
G4int collectionID = pSDman->GetCollectionID(fullCollectionName);
|
||||
//
|
||||
if ( collectionID >= 0 ){
|
||||
G4cout << "++ "<<fullCollectionName<< " id " << collectionID << G4endl;
|
||||
G4cout << "++ "<<fullCollectionName<< " id " << collectionID
|
||||
<< G4endl;
|
||||
// Store obtained HitsCollection information into data members.
|
||||
// And, creates new G4THitsMap for accumulating quantities during RUN.
|
||||
fCollName.push_back(fullCollectionName);
|
||||
@@ -160,6 +161,24 @@ void RE02Run::RecordEvent(const G4Event* aEvent)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
void RE02Run::Merge(const G4Run * aRun) {
|
||||
const RE02Run * localRun = static_cast<const RE02Run *>(aRun);
|
||||
|
||||
//=======================================================
|
||||
// Merge HitsMap of working threads
|
||||
//=======================================================
|
||||
G4int nCol = localRun->fCollID.size();
|
||||
for ( G4int i = 0; i < nCol ; i++ ){ // Loop over HitsCollection
|
||||
if ( localRun->fCollID[i] >= 0 ){
|
||||
*fRunMap[i] += *localRun->fRunMap[i];
|
||||
}
|
||||
}
|
||||
|
||||
G4Run::Merge(aRun);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//
|
||||
// Access method for HitsMap of the RUN
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the RE02RunAction class
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: RE02RunAction.cc 75682 2013-11-05 09:11:19Z gcosmo $
|
||||
//
|
||||
#include "RE02RunAction.hh"
|
||||
#include "RE02Run.hh"
|
||||
@@ -51,7 +51,8 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
// Constructor
|
||||
RE02RunAction::RE02RunAction()
|
||||
: fNx(0), fNy(0), fNz(0)
|
||||
: G4UserRunAction(),
|
||||
fNx(0), fNy(0), fNz(0)
|
||||
{
|
||||
// - Prepare data member for RE02Run.
|
||||
// vector represents a list of MultiFunctionalDetector names.
|
||||
@@ -86,6 +87,8 @@ void RE02RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
//==
|
||||
void RE02RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
{
|
||||
if(!IsMaster()) return;
|
||||
|
||||
//- RE02Run object.
|
||||
RE02Run* re02Run = (RE02Run*)aRun;
|
||||
//--- Dump all socred quantities involved in RE02Run.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.1 2007-11-13 19:55:43 asaim Exp $
|
||||
# $Id: GNUmakefile 66379 2012-12-18 09:46:33Z gcosmo $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -16,7 +16,7 @@ all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
visclean:
|
||||
rm -f g4*.prim g4*.eps g4*.wrl
|
||||
rm -f .DAWN_*
|
||||
CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS))
|
||||
CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O))
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.4 2010-11-08 20:14:41 allison Exp $
|
||||
$Id: History 69567 2013-05-08 12:43:15Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,22 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
May 02, 2013 M. Asai (exampleRE03-V09-06-03)
|
||||
- Migrate to G4VUserActionInitalization so that it works
|
||||
for both sequential and multi-threaded modes.
|
||||
|
||||
May 01, 2013 M. Asai (exampleRE03-V09-06-02)
|
||||
- Fully migrated to the latest API.
|
||||
|
||||
Apr 17, 2013 M. Asai (exampleRE03-V09-06-01)
|
||||
- Preparation for ref-04 API
|
||||
|
||||
Mar 27, 2013 M. Asai (exampleRE03-V09-06-00)
|
||||
- Migrated to multi-threaded version. For internal use only
|
||||
|
||||
Feb 15, 2013 I. Hrivnacova
|
||||
- Applied coding guidelines (data members initialization)
|
||||
|
||||
Oct 15, 2012 I.Hrivnacova (exampleRE03-V09-05-01)
|
||||
- Replaced tabulators with space characters
|
||||
|
||||
|
||||
@@ -29,14 +29,17 @@
|
||||
//
|
||||
// $Id: $
|
||||
//
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4ScoringManager.hh"
|
||||
|
||||
#include "RE03DetectorConstruction.hh"
|
||||
#include "QGS_BIC.hh"
|
||||
#include "RE03PrimaryGeneratorAction.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
#include "RE03ActionInitialization.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "G4VisExecutive.hh"
|
||||
@@ -55,7 +58,12 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// Construct the run manager
|
||||
//
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
runManager->SetNumberOfThreads(4);
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// Activate UI-command base scorer
|
||||
G4ScoringManager * scManager = G4ScoringManager::GetScoringManager();
|
||||
@@ -71,13 +79,13 @@ int main(int argc,char** argv)
|
||||
G4VUserDetectorConstruction* detector = new RE03DetectorConstruction;
|
||||
runManager->SetUserInitialization(detector);
|
||||
//
|
||||
G4VUserPhysicsList* physics = new QGS_BIC;
|
||||
G4VUserPhysicsList* physics = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physics);
|
||||
|
||||
// Set user action classes
|
||||
// Set user action classes through Worker Initialization
|
||||
//
|
||||
G4VUserPrimaryGeneratorAction* gen_action = new RE03PrimaryGeneratorAction;
|
||||
runManager->SetUserAction(gen_action);
|
||||
RE03ActionInitialization* actions = new RE03ActionInitialization;
|
||||
runManager->SetUserInitialization(actions);
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// Visualization manager
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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 runAndEvent/RE03/include/RE03ActionInitialization.hh
|
||||
/// \brief Definition of the RE03ActionInitialization class
|
||||
//
|
||||
//
|
||||
// $Id: RE03ActionInitialization.hh 66780 2013-01-12 14:56:35Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef RE03ActionInitialization_h
|
||||
#define RE03ActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class RE03ActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
RE03ActionInitialization();
|
||||
virtual ~RE03ActionInitialization();
|
||||
|
||||
public:
|
||||
virtual void Build() const;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user