Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// \file F02ActionInitialization.hh
/// \brief Definition of the F02ActionInitialization class
//
//
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02ActionInitialization_h
#define F02ActionInitialization_h 1
#include "G4VUserActionInitialization.hh"
class F02DetectorConstruction;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
/// Action initialization class.
class F02ActionInitialization : public G4VUserActionInitialization
{
public:
F02ActionInitialization(F02DetectorConstruction*);
virtual ~F02ActionInitialization();
virtual void BuildForMaster() const;
virtual void Build() const;
virtual G4VSteppingVerbose* InitializeSteppingVerbose() const;
private:
F02DetectorConstruction* fDetConstruction;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -26,11 +26,10 @@
/// \file field/field02/include/F02CalorHit.hh
/// \brief Definition of the F02CalorHit class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// $Id: F02CalorHit.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02CalorHit_h
#define F02CalorHit_h 1
@@ -39,15 +38,16 @@
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02CalorHit : public G4VHit
{
public:
F02CalorHit();
~F02CalorHit();
F02CalorHit(const F02CalorHit&);
virtual ~F02CalorHit();
const F02CalorHit& operator=(const F02CalorHit&);
G4int operator==(const F02CalorHit&) const;
@@ -55,46 +55,46 @@ class F02CalorHit : public G4VHit
inline void operator delete(void*);
virtual void Print();
public:
void AddAbs(G4double de, G4double dl) {fEdepAbs += de; fTrackLengthAbs += dl;};
void AddGap(G4double de, G4double dl) {fEdepGap += de; fTrackLengthGap += dl;};
G4double GetEdepAbs() { return fEdepAbs; };
G4double GetTrackAbs() { return fTrackLengthAbs; };
G4double GetEdepGap() { return fEdepGap; };
G4double GetTrackGap() { return fTrackLengthGap; };
void AddAbs(G4double de, G4double dl)
{fEdepAbs += de; fTrackLengthAbs += dl;};
void AddGap(G4double de, G4double dl)
{fEdepGap += de; fTrackLengthGap += dl;};
G4double GetEdepAbs() { return fEdepAbs; };
G4double GetTrackAbs() { return fTrackLengthAbs; };
G4double GetEdepGap() { return fEdepGap; };
G4double GetTrackGap() { return fTrackLengthGap; };
private:
G4double fEdepAbs, fTrackLengthAbs;
G4double fEdepGap, fTrackLengthGap;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
typedef G4THitsCollection<F02CalorHit> F02CalorHitsCollection;
extern G4Allocator<F02CalorHit> F02CalorHitAllocator;
extern G4ThreadLocal G4Allocator<F02CalorHit>* F02CalorHitAllocator;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline void* F02CalorHit::operator new(size_t)
{
void* aHit;
aHit = (void*) F02CalorHitAllocator.MallocSingle();
return aHit;
if(!F02CalorHitAllocator)
F02CalorHitAllocator = new G4Allocator<F02CalorHit>;
return (void*) F02CalorHitAllocator->MallocSingle();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline void F02CalorHit::operator delete(void* aHit)
{
F02CalorHitAllocator.FreeSingle((F02CalorHit*) aHit);
F02CalorHitAllocator->FreeSingle((F02CalorHit*) aHit);
}
#endif
@@ -26,45 +26,39 @@
/// \file field/field02/include/F02CalorimeterSD.hh
/// \brief Definition of the F02CalorimeterSD class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// $Id: F02CalorimeterSD.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02CalorimeterSD_h
#define F02CalorimeterSD_h 1
#include "G4VSensitiveDetector.hh"
#include "F02CalorHit.hh"
#include "globals.hh"
class F02DetectorConstruction;
class G4HCofThisEvent;
class G4Step;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02CalorimeterSD : public G4VSensitiveDetector
{
public:
F02CalorimeterSD(G4String, F02DetectorConstruction* );
~F02CalorimeterSD();
virtual ~F02CalorimeterSD();
virtual void Initialize(G4HCofThisEvent*);
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void PrintAll();
private:
F02CalorHitsCollection* fCalCollection;
F02CalorHitsCollection* fCalCollection;
F02DetectorConstruction* fDetector;
G4int* fHitID;
};
#endif
@@ -26,84 +26,89 @@
/// \file field/field02/include/F02DetectorConstruction.hh
/// \brief Definition of the F02DetectorConstruction class
//
// $Id$
//
//
// $Id: F02DetectorConstruction.hh 77484 2013-11-25 10:11:57Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02DetectorConstruction_h
#define F02DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
#include "G4ios.hh"
class F02DetectorMessenger;
class F02CalorimeterSD;
class F02ElectricFieldSetup;
#include "G4Cache.hh"
class G4Box;
class G4Tubs;
class G4LogicalVolume;
class G4VPhysicalVolume;
class G4Material;
class G4UniformMagField;
class F02DetectorMessenger;
class F02CalorimeterSD;
class F02ElectricFieldSetup;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02DetectorConstruction : public G4VUserDetectorConstruction
{
public:
F02DetectorConstruction();
~F02DetectorConstruction();
virtual ~F02DetectorConstruction();
public:
void SetAbsorberMaterial (G4String);
void SetAbsorberThickness(G4double);
void SetAbsorberRadius(G4double);
void SetAbsorberMaterial (G4String);
void SetAbsorberThickness(G4double);
void SetAbsorberRadius(G4double);
void SetAbsorberZpos(G4double);
void SetWorldMaterial(G4String);
void SetWorldSizeZ(G4double);
void SetWorldSizeR(G4double);
virtual G4VPhysicalVolume* Construct();
virtual void ConstructSDandField();
void UpdateGeometry();
public:
void PrintCalorParameters();
G4Material* GetWorldMaterial() {return fWorldMaterial;};
G4double GetWorldSizeZ() {return fWorldSizeZ;};
G4double GetWorldSizeR() {return fWorldSizeR;};
G4double GetAbsorberZpos() {return fZAbsorber;};
G4double GetZStartAbs() {return fZStartAbs;};
G4double GetZEndAbs() {return fZEndAbs;};
G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;};
G4double GetAbsorberThickness() {return fAbsorberThickness;};
G4double GetAbsorberRadius() {return fAbsorberRadius;};
const G4VPhysicalVolume* GetPhysiWorld() {return fPhysiWorld;};
const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;};
G4LogicalVolume* GetLogicalAbsorber() {return fLogicAbsorber;};
void PrintCalorParameters();
G4Material* GetWorldMaterial() {return fWorldMaterial;}
G4double GetWorldSizeZ() {return fWorldSizeZ;}
G4double GetWorldSizeR() {return fWorldSizeR;}
G4double GetAbsorberZpos() {return fZAbsorber;}
G4double GetZStartAbs() {return fZStartAbs;}
G4double GetZEndAbs() {return fZEndAbs;}
G4Material* GetAbsorberMaterial() {return fAbsorberMaterial;}
G4double GetAbsorberThickness(){return fAbsorberThickness;}
G4double GetAbsorberRadius() {return fAbsorberRadius;}
const G4VPhysicalVolume* GetPhysiWorld() {return fPhysiWorld;}
const G4VPhysicalVolume* GetAbsorber() {return fPhysiAbsorber;}
G4LogicalVolume* GetLogicalAbsorber() {return fLogicAbsorber;}
private:
G4Tubs* fSolidWorld; // pointer to the solid World
G4LogicalVolume* fLogicWorld; // pointer to the logical World
G4VPhysicalVolume* fPhysiWorld; // pointer to the physical World
F02DetectorMessenger* fDetectorMessenger; // pointer -> Messenger
G4Cache<F02CalorimeterSD*> fCalorimeterSD; // pointer -> sensitive detector
G4Cache<F02ElectricFieldSetup*> fEmFieldSetup;
G4Tubs* fSolidWorld; // pointer to the solid World
G4LogicalVolume* fLogicWorld; // pointer to the logical World
G4VPhysicalVolume* fPhysiWorld; // pointer to the physical World
G4Tubs* fSolidAbsorber; // pointer to the solid Absorber
G4LogicalVolume* fLogicAbsorber; // pointer to the logical Absorber
G4VPhysicalVolume* fPhysiAbsorber; // pointer to the physical Absorber
F02ElectricFieldSetup* fEmFieldSetup; // pointer to the field helper
F02DetectorMessenger* fDetectorMessenger; // pointer to the Messenger
F02CalorimeterSD* fCalorimeterSD; // pointer to the sensitive detector
G4Material* fAbsorberMaterial;
G4double fAbsorberThickness;
G4double fAbsorberRadius;
@@ -111,26 +116,26 @@ class F02DetectorConstruction : public G4VUserDetectorConstruction
G4double fZAbsorber;
G4double fZStartAbs, fZEndAbs;
G4Material* fWorldMaterial;
G4double fWorldSizeR;
G4double fWorldSizeZ;
private:
void DefineMaterials();
void ComputeCalorParameters();
G4VPhysicalVolume* ConstructCalorimeter();
G4VPhysicalVolume* ConstructCalorimeter();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline void F02DetectorConstruction::ComputeCalorParameters()
{
// Compute derived parameters of the calorimeter
// Compute derived parameters of the calorimeter
fZStartAbs = fZAbsorber-0.5*fAbsorberThickness;
fZEndAbs = fZAbsorber+0.5*fAbsorberThickness;
fZStartAbs = fZAbsorber-0.5*fAbsorberThickness;
fZEndAbs = fZAbsorber+0.5*fAbsorberThickness;
}
@@ -26,38 +26,40 @@
/// \file field/field02/include/F02DetectorMessenger.hh
/// \brief Definition of the F02DetectorMessenger class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02DetectorMessenger.hh 77123 2013-11-21 16:13:28Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02DetectorMessenger_h
#define F02DetectorMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class F02DetectorConstruction;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWithoutParameter;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02DetectorMessenger: public G4UImessenger
{
public:
F02DetectorMessenger(F02DetectorConstruction* );
~F02DetectorMessenger();
virtual ~F02DetectorMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
F02DetectorConstruction* fDetector;
G4UIdirectory* fDetDir;
G4UIcmdWithAString* fAbsMaterCmd;
@@ -69,10 +71,6 @@ class F02DetectorMessenger: public G4UImessenger
G4UIcmdWithAString* fWorldMaterCmd;
G4UIcmdWithADoubleAndUnit* fWorldZCmd;
G4UIcmdWithADoubleAndUnit* fWorldRCmd;
G4UIcmdWithoutParameter* fUpdateCmd;
};
#endif
@@ -26,11 +26,15 @@
/// \file field/field02/include/F02ElectricFieldSetup.hh
/// \brief Definition of the F02ElectricFieldSetup class
//
// $Id$
//
// $Id: F02ElectricFieldSetup.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02ElectricFieldSetup_H
#define F02ElectricFieldSetup_H
#ifndef F02ElectricFieldSetup_h
#define F02ElectricFieldSetup_h 1
#include "G4ElectricField.hh"
#include "G4UniformElectricField.hh"
@@ -41,24 +45,23 @@ class G4EquationOfMotion;
class G4Mag_EqRhs;
class G4EqMagElectricField;
class G4MagIntegratorStepper;
class G4MagInt_Driver;
class G4MagInt_Driver;
class F02FieldMessenger;
/// A class for control of the Electric Field of the detector.
///
/// The field for this case is uniform.
/// It is simply a 'setup' class that creates the field and necessary
/// It is simply a 'setup' class that creates the field and necessary
/// other parts
class F02ElectricFieldSetup
class F02ElectricFieldSetup
{
public:
F02ElectricFieldSetup(G4ThreeVector); // The value of the field
F02ElectricFieldSetup(); // A zero field
F02ElectricFieldSetup(G4ThreeVector) ; // The value of the field
F02ElectricFieldSetup() ; // A zero field
virtual ~F02ElectricFieldSetup();
~F02ElectricFieldSetup() ;
void SetStepperType( G4int i) { fStepperType = i ; }
void SetStepper();
@@ -73,26 +76,28 @@ public:
protected:
// Find the global Field Manager
G4FieldManager* GetGlobalFieldManager() ;
// Find the global Field Manager
G4FieldManager* GetGlobalFieldManager();
private:
G4FieldManager* fFieldManager ;
G4ChordFinder* fChordFinder ;
G4FieldManager* fFieldManager;
G4EqMagElectricField* fEquation ;
G4ChordFinder* fChordFinder;
G4EqMagElectricField* fEquation;
G4ElectricField* fEMfield;
G4ThreeVector fElFieldValue ;
G4ThreeVector fElFieldValue;
G4MagIntegratorStepper* fStepper ;
G4MagIntegratorStepper* fStepper;
G4MagInt_Driver* fIntgrDriver;
G4int fStepperType ;
G4int fStepperType;
G4double fMinStep ;
G4double fMinStep;
F02FieldMessenger* fFieldMessenger;
@@ -26,42 +26,45 @@
/// \file field/field02/include/F02EventAction.hh
/// \brief Definition of the F02EventAction class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02EventAction.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02EventAction_h
#define F02EventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
#include "G4UserEventAction.hh"
class F02RunAction;
class F02EventActionMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02EventAction : public G4UserEventAction
{
public:
F02EventAction(F02RunAction* F02RA);
~F02EventAction();
virtual ~F02EventAction();
public:
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
void SetEventVerbose(G4int level) {fVerboseLevel = level;}
void SetPrintModulo(G4int val) {fPrintModulo = val;};
void SetPrintModulo(G4int val) {fPrintModulo = val;}
private:
G4int fCalorimeterCollID;
F02EventActionMessenger* fEventMessenger;
F02RunAction* fRunAction;
G4int fVerboseLevel;
G4int fPrintModulo;
G4int fPrintModulo;
};
#endif
@@ -26,35 +26,34 @@
/// \file field/field02/include/F02EventActionMessenger.hh
/// \brief Definition of the F02EventActionMessenger class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02EventActionMessenger.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02EventActionMessenger_h
#define F02EventActionMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class F02EventAction;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02EventActionMessenger: public G4UImessenger
{
public:
F02EventActionMessenger(F02EventAction*);
~F02EventActionMessenger();
virtual ~F02EventActionMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
F02EventAction* fEventAction;
F02EventAction* fEventAction;
G4UIcmdWithAnInteger* fSetVerboseCmd;
G4UIcmdWithAnInteger* fPrintCmd;
};
@@ -26,45 +26,43 @@
/// \file field/field02/include/F02FieldMessenger.hh
/// \brief Definition of the F02FieldMessenger class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02FieldMessenger.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02FieldMessenger_h
#define F02FieldMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class F02ElectricFieldSetup;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
class G4UIcmdWithADouble;
class G4UIcmdWithADoubleAndUnit;
class G4UIcmdWithoutParameter;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02FieldMessenger: public G4UImessenger
{
public:
F02FieldMessenger(F02ElectricFieldSetup* );
~F02FieldMessenger();
virtual ~F02FieldMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
F02ElectricFieldSetup* fElFieldSetup;
G4UIdirectory* fFieldDir;
G4UIcmdWithAnInteger* fStepperCmd;
G4UIcmdWithADoubleAndUnit* fElFieldCmd;
G4UIcmdWithADoubleAndUnit* fMinStepCmd;
G4UIcmdWithoutParameter* fUpdateCmd;
};
#endif
@@ -27,53 +27,37 @@
/// \brief Definition of the F02PhysicsList class
//
//
// $Id$
// $Id: F02PhysicsList.hh 77794 2013-11-28 09:54:17Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02PhysicsList_h
#define F02PhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
class G4PhotoElectricEffect;
class G4ComptonScattering;
class G4GammaConversion;
class G4PAIonisation ;
class G4ForwardXrayTR ;
class G4eIonisation;
class G4eBremsstrahlung;
class G4eplusAnnihilation;
class G4MuIonisation;
class G4MuBremsstrahlung;
class G4MuPairProduction;
class G4hIonisation;
class G4hIonisationPlus;
class F02StepCut;
class F02DetectorConstruction;
class F02PhysicsListMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02PhysicsList: public G4VUserPhysicsList
{
public:
F02PhysicsList( F02DetectorConstruction*);
~F02PhysicsList();
virtual ~F02PhysicsList();
protected:
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
virtual void ConstructParticle();
virtual void ConstructProcess();
void SetCuts();
protected:
// these methods Construct particles
// these methods construct particles
void ConstructBosons();
void ConstructLeptons();
void ConstructMesons();
@@ -81,9 +65,8 @@ class F02PhysicsList: public G4VUserPhysicsList
protected:
// these methods Construct physics processes and register them
// these methods construct physics processes and register them
// void AddParameterisation();
void ConstructGeneral();
void ConstructEM();
@@ -94,37 +77,17 @@ class F02PhysicsList: public G4VUserPhysicsList
void SetMaxStep(G4double);
public:
public:
G4double MaxChargedStep;
G4double fMaxChargedStep;
private:
G4PhotoElectricEffect* thePhotoElectricEffect;
G4ComptonScattering* theComptonScattering;
G4GammaConversion* theGammaConversion;
G4eIonisation* theeminusIonisation;
G4eBremsstrahlung* theeminusBremsstrahlung;
G4double fCutForGamma;
G4double fCutForElectron;
G4PAIonisation* fPAIonisation ;
G4ForwardXrayTR* fForwardXrayTR ;
G4eIonisation* theeplusIonisation;
G4eBremsstrahlung* theeplusBremsstrahlung;
G4eplusAnnihilation* theeplusAnnihilation;
F02StepCut* theeminusStepCut ;
F02StepCut* theeplusStepCut ;
G4double cutForGamma;
G4double cutForElectron;
F02DetectorConstruction* pDet;
F02PhysicsListMessenger* physicsListMessenger;
F02DetectorConstruction* fDet;
F02PhysicsListMessenger* fPhysicsListMessenger;
};
#endif
@@ -27,17 +27,15 @@
/// \brief Definition of the F02PhysicsListMessenger class
//
//
// $Id$
// $Id: F02PhysicsListMessenger.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02PhysicsListMessenger_h
#define F02PhysicsListMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class F02PhysicsList;
@@ -45,27 +43,23 @@ class G4UIcmdWithoutParameter;
class G4UIcmdWithADouble;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02PhysicsListMessenger: public G4UImessenger
{
public:
F02PhysicsListMessenger(F02PhysicsList*);
~F02PhysicsListMessenger();
void SetNewValue(G4UIcommand*, G4String);
virtual ~F02PhysicsListMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
F02PhysicsList* F02List;
F02PhysicsList* fF02List;
G4UIcmdWithADoubleAndUnit* setMaxStepCmd;
G4UIcmdWithADoubleAndUnit* fSetMaxStepCmd;
G4UIcmdWithADoubleAndUnit* cutGCmd;
G4UIcmdWithADoubleAndUnit* cutECmd;
G4UIcmdWithADoubleAndUnit* cutPCmd;
G4UIcmdWithADoubleAndUnit* rCmd;
G4UIcmdWithADoubleAndUnit* eCmd;
G4UIcmdWithADoubleAndUnit* fCutGCmd;
G4UIcmdWithADoubleAndUnit* fCutECmd;
};
#endif
@@ -26,51 +26,53 @@
/// \file field/field02/include/F02PrimaryGeneratorAction.hh
/// \brief Definition of the F02PrimaryGeneratorAction class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02PrimaryGeneratorAction.hh 77893 2013-11-29 08:57:22Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02PrimaryGeneratorAction_h
#define F02PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
#include "G4VUserPrimaryGeneratorAction.hh"
class F02DetectorConstruction;
class F02PrimaryGeneratorMessenger;
class G4ParticleGun;
class G4Event;
class F02DetectorConstruction;
class F02PrimaryGeneratorMessenger;
class G4ParticleDefinition;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
F02PrimaryGeneratorAction(F02DetectorConstruction*);
~F02PrimaryGeneratorAction();
F02PrimaryGeneratorAction(F02DetectorConstruction*);
virtual ~F02PrimaryGeneratorAction();
public:
virtual void GeneratePrimaries(G4Event*);
void SetRndmFlag(G4String val) { fRndmFlag = val;}
void SetRndmFlag(G4String val) { fRndmFlag = val; }
void SetXVertex(G4double x);
void SetYVertex(G4double y);
void SetZVertex(G4double z);
static G4String GetPrimaryName() ;
static G4String GetPrimaryName();
private:
static G4String fgPrimaryParticleName ;
G4ParticleGun* fParticleGun; //pointer a to G4 service class
F02DetectorConstruction* fDetector; //pointer to the geometry
G4ParticleGun* fParticleGun;// pointer a to G4 service class
F02DetectorConstruction* fDetector; // pointer to the geometry
F02PrimaryGeneratorMessenger* fMessenger; // messenger of this class
G4String fRndmFlag; // flag for a random impact point
F02PrimaryGeneratorMessenger* fGunMessenger; //messenger of this class
G4String fRndmFlag; //flag for random impact point
static G4ParticleDefinition* fgPrimaryParticle;
G4double fXVertex, fYVertex, fZVertex;
G4bool fVertexDefined ;
G4bool fVertexDefined;
};
#endif
@@ -26,34 +26,34 @@
/// \file field/field02/include/F02PrimaryGeneratorMessenger.hh
/// \brief Definition of the F02PrimaryGeneratorMessenger class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02PrimaryGeneratorMessenger.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02PrimaryGeneratorMessenger_h
#define F02PrimaryGeneratorMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class F02PrimaryGeneratorAction;
class G4UIcmdWithAString;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02PrimaryGeneratorMessenger: public G4UImessenger
{
public:
F02PrimaryGeneratorMessenger(F02PrimaryGeneratorAction*);
~F02PrimaryGeneratorMessenger();
virtual ~F02PrimaryGeneratorMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
private:
F02PrimaryGeneratorAction* fAction;
F02PrimaryGeneratorAction* fAction;
G4UIcmdWithAString* fRndmCmd;
G4UIcmdWithADoubleAndUnit* fSetXVertexCmd;
G4UIcmdWithADoubleAndUnit* fSetYVertexCmd;
@@ -61,4 +61,3 @@ class F02PrimaryGeneratorMessenger: public G4UImessenger
};
#endif
@@ -26,41 +26,40 @@
/// \file field/field02/include/F02RunAction.hh
/// \brief Definition of the F02RunAction class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//
// $Id: F02RunAction.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02RunAction_h
#define F02RunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class F02RunMessenger;
class G4Run;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02RunAction : public G4UserRunAction
{
public:
F02RunAction();
~F02RunAction();
virtual ~F02RunAction();
public:
virtual void BeginOfRunAction(const G4Run*);
virtual void EndOfRunAction(const G4Run*);
virtual void EndOfRunAction(const G4Run*);
void SetRndmFreq(G4int val) {fSaveRndm = val;}
G4int GetRndmFreq() {return fSaveRndm;}
G4int GetRndmFreq() const {return fSaveRndm;}
private:
F02RunMessenger* fMessenger;
G4int fSaveRndm;
G4int fSaveRndm;
};
#endif
@@ -26,45 +26,43 @@
/// \file field/field02/include/F02RunMessenger.hh
/// \brief Definition of the F02RunMessenger class
//
// $Id$
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// $Id: F02RunMessenger.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02RunMessenger_h
#define F02RunMessenger_h 1
#include "G4UImessenger.hh"
#include "G4ios.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class F02RunAction;
class G4UIdirectory;
class G4UIcmdWithAnInteger;
class G4UIcmdWithAString;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02RunMessenger: public G4UImessenger
{
public:
F02RunMessenger(F02RunAction* );
~F02RunMessenger();
virtual ~F02RunMessenger();
virtual void SetNewValue(G4UIcommand* ,G4String );
private:
F02RunAction* fRunAction;
G4UIdirectory* fRndmDir;
G4UIcmdWithAnInteger* fRndmSaveCmd;
G4UIcmdWithAString* fRndmReadCmd;
F02RunAction* fRunAction;
G4UIdirectory* fRndmDir;
G4UIcmdWithAnInteger* fRndmSaveCmd;
G4UIcmdWithAString* fRndmReadCmd;
};
#endif
@@ -26,25 +26,28 @@
/// \file field/field02/include/F02StepCut.hh
/// \brief Definition of the F02StepCut class
//
// $Id$
//
//
// $Id: F02StepCut.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02StepCut_h
#define F02StepCut_h 1
#include "G4VDiscreteProcess.hh"
#include "G4Step.hh"
#include "G4ios.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02StepCut : public G4VDiscreteProcess
{
public:
public:
F02StepCut(const G4String& processName ="UserStepCut" );
F02StepCut(F02StepCut &);
~F02StepCut();
virtual ~F02StepCut();
virtual G4double PostStepGetPhysicalInteractionLength(
const G4Track& track,
@@ -53,7 +56,7 @@ class F02StepCut : public G4VDiscreteProcess
);
virtual G4VParticleChange* PostStepDoIt(
const G4Track& ,
const G4Track&,
const G4Step&
);
@@ -67,24 +70,19 @@ class F02StepCut : public G4VDiscreteProcess
G4ForceCondition* condition
);
private:
// hide assignment operator as private
F02StepCut & operator=(const F02StepCut &right);
// hide assignment operator as private
F02StepCut & operator=(const F02StepCut &right);
private:
G4double fMaxChargedStep ;
G4double fMaxChargedStep;
};
// inlined function members implementation
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Step.hh"
#include "G4Track.hh"
#include "G4UserLimits.hh"
#include "G4VParticleChange.hh"
#include "G4EnergyLossTables.hh"
// inlined function members implementation
inline G4double F02StepCut::PostStepGetPhysicalInteractionLength(
const G4Track& aTrack,
@@ -94,17 +92,19 @@ inline G4double F02StepCut::PostStepGetPhysicalInteractionLength(
// condition is set to "Not Forced"
*condition = NotForced;
G4double ProposedStep = DBL_MAX;
G4double proposedStep = DBL_MAX;
if((fMaxChargedStep > 0.) &&
(aTrack.GetVolume() != 0) &&
(aTrack.GetVolume()->GetName() == "Absorber") &&
(aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge() != 0.))
ProposedStep = fMaxChargedStep ;
proposedStep = fMaxChargedStep;
return ProposedStep;
return proposedStep;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline G4VParticleChange* F02StepCut::PostStepDoIt(
const G4Track& aTrack,
const G4Step&
@@ -115,6 +115,8 @@ inline G4VParticleChange* F02StepCut::PostStepDoIt(
return &aParticleChange;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
inline G4double F02StepCut::GetMeanFreePath(const G4Track&,
G4double,
G4ForceCondition*)
@@ -123,4 +125,3 @@ inline G4double F02StepCut::GetMeanFreePath(const G4Track&,
}
#endif
@@ -26,28 +26,42 @@
/// \file field/field02/include/F02SteppingVerbose.hh
/// \brief Definition of the F02SteppingVerbose class
//
// $Id$
//
// $Id: F02SteppingVerbose.hh 76247 2013-11-08 11:18:52Z gcosmo $
//
//
//---------------------------------------------------------------
//
// F01SteppingVerbose.hh
//
// Description:
// This class manages the vervose outputs in G4SteppingManager.
//
//
// Contact:
// Questions and comments to this code should be sent to
// Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
// Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//
//---------------------------------------------------------------
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef F02SteppingVerbose_h
#define F02SteppingVerbose_h 1
#include "G4SteppingVerbose.hh"
/// This class manages the verbose outputs in G4SteppingManager.
///
/// Contact: \n
/// Questions and comments to this code should be sent to
/// - Katsuya Amako (e-mail: Katsuya.Amako@kek.jp)
/// - Takashi Sasaki (e-mail: Takashi.Sasaki@kek.jp)
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class F02SteppingVerbose : public G4SteppingVerbose
class F02SteppingVerbose : public G4SteppingVerbose
{
public:
public:
F02SteppingVerbose();
~F02SteppingVerbose();
// Constructor/Destructor
virtual ~F02SteppingVerbose();
virtual void StepInfo();
virtual void TrackingStarted();