Import Geant4 1.0.0 source tree
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The set of hits is defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6CalorHit_h
|
||||
#define Em6CalorHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6CalorHit : public G4VHit
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6CalorHit();
|
||||
~Em6CalorHit();
|
||||
Em6CalorHit(const Em6CalorHit&);
|
||||
const Em6CalorHit& operator=(const Em6CalorHit&);
|
||||
int operator==(const Em6CalorHit&) const;
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
|
||||
void Print();
|
||||
|
||||
public:
|
||||
|
||||
void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;};
|
||||
void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;};
|
||||
|
||||
G4double GetEdepAbs() { return EdepAbs; };
|
||||
G4double GetTrakAbs() { return TrackLengthAbs; };
|
||||
G4double GetEdepGap() { return EdepGap; };
|
||||
G4double GetTrakGap() { return TrackLengthGap; };
|
||||
|
||||
private:
|
||||
|
||||
G4double EdepAbs, TrackLengthAbs;
|
||||
G4double EdepGap, TrackLengthGap;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
typedef G4THitsCollection<Em6CalorHit> Em6CalorHitsCollection;
|
||||
|
||||
extern G4Allocator<Em6CalorHit> Em6CalorHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void* Em6CalorHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*) Em6CalorHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void Em6CalorHit::operator delete(void* aHit)
|
||||
{
|
||||
Em6CalorHitAllocator.FreeSingle((Em6CalorHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The sensitive detector is defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6CalorimeterSD_h
|
||||
#define Em6CalorimeterSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em6DetectorConstruction;
|
||||
class G4HCofThisEvent;
|
||||
class G4Step;
|
||||
#include "Em6CalorHit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6CalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6CalorimeterSD(G4String, Em6DetectorConstruction* );
|
||||
~Em6CalorimeterSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*);
|
||||
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
|
||||
void EndOfEvent(G4HCofThisEvent*);
|
||||
void clear();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
|
||||
Em6CalorHitsCollection* CalCollection;
|
||||
Em6DetectorConstruction* Detector;
|
||||
G4int* HitID;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// -------------------------------------------------------------
|
||||
// GEANT 4 class example
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
// History: based on object model of
|
||||
// 2nd December 1995, G.Cosmo
|
||||
// ---------- Em6DetectorConstruction -------
|
||||
// by Vladimir Ivanchenko, 23 July 1999
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6DetectorConstruction_h
|
||||
#define Em6DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4LogicalVolume;
|
||||
class G4VPhysicalVolume;
|
||||
class G4Material;
|
||||
class G4UniformMagField;
|
||||
class Em6DetectorMessenger;
|
||||
class Em6CalorimeterSD;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
|
||||
Em6DetectorConstruction();
|
||||
~Em6DetectorConstruction();
|
||||
|
||||
public:
|
||||
|
||||
void SetAbsorberMaterial (G4String);
|
||||
void SetAbsorberThickness(G4double);
|
||||
void SetAbsorberSizeYZ (G4double);
|
||||
|
||||
void SetAbsorberXpos(G4double);
|
||||
|
||||
void SetWorldMaterial(G4String);
|
||||
void SetWorldSizeX (G4double);
|
||||
void SetWorldSizeYZ (G4double);
|
||||
|
||||
void SetMagField(G4double);
|
||||
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
void UpdateGeometry();
|
||||
|
||||
public:
|
||||
|
||||
void PrintCalorParameters();
|
||||
|
||||
G4Material* GetAbsorberMaterial() {return AbsorberMaterial;};
|
||||
G4double GetAbsorberThickness() {return AbsorberThickness;};
|
||||
G4double GetAbsorberSizeYZ() {return AbsorberSizeYZ;};
|
||||
|
||||
G4double GetAbsorberXpos() {return XposAbs;};
|
||||
G4double GetxstartAbs() {return xstartAbs;};
|
||||
G4double GetxendAbs() {return xendAbs;};
|
||||
|
||||
G4Material* GetWorldMaterial() {return WorldMaterial;};
|
||||
G4double GetWorldSizeX() {return WorldSizeX;};
|
||||
G4double GetWorldSizeYZ() {return WorldSizeYZ;};
|
||||
|
||||
const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;};
|
||||
const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;};
|
||||
|
||||
private:
|
||||
|
||||
G4Material* AbsorberMaterial;
|
||||
G4double AbsorberThickness;
|
||||
G4double AbsorberSizeYZ;
|
||||
|
||||
G4int NumberOfAbsorbers;
|
||||
|
||||
G4double XposAbs;
|
||||
G4double xstartAbs, xendAbs;
|
||||
|
||||
G4Material* WorldMaterial;
|
||||
G4double WorldSizeX;
|
||||
G4double WorldSizeYZ;
|
||||
|
||||
G4bool defaultWorld;
|
||||
|
||||
G4Box* solidWorld; //pointer to the solid World
|
||||
G4LogicalVolume* logicWorld; //pointer to the logical World
|
||||
G4VPhysicalVolume* physiWorld; //pointer to the physical World
|
||||
|
||||
G4Box* solidAbsorber; //pointer to the solid Absorber
|
||||
G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber
|
||||
G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber
|
||||
|
||||
G4UniformMagField* magField; //pointer to the magnetic field
|
||||
|
||||
Em6DetectorMessenger* detectorMessenger; //pointer to the Messenger
|
||||
Em6CalorimeterSD* calorimeterSD; //pointer to the sensitive detector
|
||||
|
||||
private:
|
||||
|
||||
void DefineMaterials();
|
||||
void ComputeCalorParameters();
|
||||
G4VPhysicalVolume* ConstructCalorimeter();
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void Em6DetectorConstruction::ComputeCalorParameters()
|
||||
{
|
||||
// Compute derived parameters of the 1st absorber
|
||||
|
||||
xstartAbs = XposAbs-0.5*AbsorberThickness;
|
||||
xendAbs = XposAbs+0.5*AbsorberThickness;
|
||||
|
||||
if (defaultWorld)
|
||||
{
|
||||
WorldSizeX = 2.0*AbsorberThickness*NumberOfAbsorbers;
|
||||
WorldSizeYZ = 1.2*AbsorberSizeYZ;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Detector mesenger is defined.
|
||||
// Class Description - end
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6DetectorMessenger_h
|
||||
#define Em6DetectorMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em6DetectorConstruction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithoutParameter;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6DetectorMessenger: public G4UImessenger
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6DetectorMessenger(Em6DetectorConstruction* );
|
||||
~Em6DetectorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em6DetectorConstruction* Em6Detector;
|
||||
|
||||
G4UIdirectory* Em6detDir;
|
||||
|
||||
G4UIcmdWithAString* AbsMaterCmd;
|
||||
G4UIcmdWithADoubleAndUnit* AbsThickCmd;
|
||||
G4UIcmdWithADoubleAndUnit* AbsSizYZCmd;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* AbsXposCmd;
|
||||
|
||||
G4UIcmdWithAString* WorldMaterCmd;
|
||||
G4UIcmdWithADoubleAndUnit* WorldXCmd;
|
||||
G4UIcmdWithADoubleAndUnit* WorldYZCmd;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* MagFieldCmd;
|
||||
G4UIcmdWithoutParameter* UpdateCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Event action definition.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6EventAction_h
|
||||
#define Em6EventAction_h 1
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em6RunAction;
|
||||
class Em6EventActionMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6EventAction : public G4UserEventAction
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6EventAction(Em6RunAction* Em6RA);
|
||||
~Em6EventAction();
|
||||
|
||||
void BeginOfEventAction(const G4Event*);
|
||||
void EndOfEventAction(const G4Event*);
|
||||
G4int GetEventno();
|
||||
void setEventVerbose(G4int level);
|
||||
|
||||
void CountStepsCharged() ;
|
||||
void CountStepsNeutral() ;
|
||||
void AddCharged() ;
|
||||
void AddNeutral() ;
|
||||
void AddE();
|
||||
void AddP();
|
||||
void SetTr();
|
||||
void SetRef();
|
||||
|
||||
void SetDrawFlag(G4String val) {drawFlag = val;};
|
||||
|
||||
private:
|
||||
G4int calorimeterCollID;
|
||||
Em6EventActionMessenger* eventMessenger;
|
||||
Em6RunAction* runaction;
|
||||
G4int verboselevel;
|
||||
G4double nstep,nstepCharged,nstepNeutral;
|
||||
G4double Nch,Nne;
|
||||
G4double NE,NP;
|
||||
G4double Transmitted,Reflected ;
|
||||
|
||||
G4String drawFlag;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Event action messenger.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6EventActionMessenger_h
|
||||
#define Em6EventActionMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em6EventAction;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6EventActionMessenger: public G4UImessenger
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6EventActionMessenger(Em6EventAction*);
|
||||
~Em6EventActionMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
Em6EventAction* eventAction;
|
||||
G4UIcmdWithAnInteger* setVerboseCmd;
|
||||
G4UIcmdWithAString* DrawCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,78 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The list of particles and processes are defined in this class.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6PhysicsList_h
|
||||
#define Em6PhysicsList_h 1
|
||||
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em6DetectorConstruction;
|
||||
class Em6PhysicsListMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6PhysicsList: public G4VUserPhysicsList
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6PhysicsList( Em6DetectorConstruction*);
|
||||
~Em6PhysicsList();
|
||||
|
||||
protected:
|
||||
// Construct particle and physics
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
void SetCuts();
|
||||
|
||||
protected:
|
||||
// these methods Construct particles
|
||||
void ConstructBosons();
|
||||
void ConstructLeptons();
|
||||
void ConstructMesons();
|
||||
void ConstructBarions();
|
||||
void ConstructIons();
|
||||
|
||||
protected:
|
||||
// these methods Construct physics processes and register them
|
||||
void ConstructGeneral();
|
||||
void ConstructEM();
|
||||
|
||||
public: // Without description
|
||||
|
||||
void SetGammaCut(G4double);
|
||||
void SetElectronCut(G4double);
|
||||
void SetProtonCut(G4double);
|
||||
void SetCutsByEnergy(G4double);
|
||||
void GetRange(G4double);
|
||||
void SetMaxStep(G4double);
|
||||
|
||||
private:
|
||||
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForProton;
|
||||
|
||||
G4double MaxChargedStep;
|
||||
|
||||
Em6DetectorConstruction* pDet;
|
||||
Em6PhysicsListMessenger* physicsListMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The messenger for physics list class.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6PhysicsListMessenger_h
|
||||
#define Em6PhysicsListMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class Em6PhysicsList;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6PhysicsListMessenger: public G4UImessenger
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6PhysicsListMessenger(Em6PhysicsList*);
|
||||
~Em6PhysicsListMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
Em6PhysicsList* Em6List;
|
||||
|
||||
G4UIcmdWithADoubleAndUnit* cutGCmd;
|
||||
G4UIcmdWithADoubleAndUnit* cutECmd;
|
||||
G4UIcmdWithADoubleAndUnit* cutPCmd;
|
||||
G4UIcmdWithADoubleAndUnit* rCmd;
|
||||
G4UIcmdWithADoubleAndUnit* eCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setMaxStepCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Inicialisation of particle gun.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6PrimaryGeneratorAction_h
|
||||
#define Em6PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
class Em6DetectorConstruction;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6PrimaryGeneratorAction(Em6DetectorConstruction*);
|
||||
~Em6PrimaryGeneratorAction();
|
||||
|
||||
void GeneratePrimaries(G4Event*);
|
||||
static G4String GetPrimaryName() ;
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
Em6DetectorConstruction* Em6Detector;
|
||||
|
||||
static G4String thePrimaryParticleName;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The user has a possibility to define and to fill his histograms in this class.
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6RunAction_h
|
||||
#define Em6RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4IonC12.hh"
|
||||
#include "G4IonAr40.hh"
|
||||
#include "G4IonFe56.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include <iostream.h>
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6RunMessenger;
|
||||
|
||||
class HepTupleManager;
|
||||
class HepHistogram;
|
||||
|
||||
class G4Run;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6RunAction : public G4UserRunAction
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6RunAction();
|
||||
~Em6RunAction();
|
||||
|
||||
public: // With description
|
||||
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
// In this method histogramms are booked
|
||||
|
||||
void EndOfRunAction(const G4Run*);
|
||||
// In this method bookHisto method is called in which histogramms are filled
|
||||
|
||||
public: // Without description
|
||||
|
||||
void CountEvent();
|
||||
void CountParticles(G4double,G4double);
|
||||
void AddEP(G4double,G4double);
|
||||
void AddEdeps(G4double Eabs);
|
||||
void AddTrackLength(G4double tlabs);
|
||||
void AddnStepsCharged(G4double ns);
|
||||
void AddnStepsNeutral(G4double ns);
|
||||
|
||||
void AddTrRef(G4double tr,G4double ref);
|
||||
|
||||
void FillEn(G4double En);
|
||||
void FillTh(G4double Th);
|
||||
void FillThBack(G4double Th);
|
||||
void FillR(G4double R);
|
||||
void FillTt(G4double Tt);
|
||||
void FillTb(G4double Tt);
|
||||
void FillTsec(G4double T);
|
||||
void FillGammaSpectrum(G4double E);
|
||||
void FillNbOfSteps(G4double nstep);
|
||||
void Fillvertexz(G4double z);
|
||||
|
||||
void SethistName(G4String name) ;
|
||||
|
||||
void SetnbinStep(G4int nbin);
|
||||
void SetSteplow(G4double Slow);
|
||||
void SetStephigh(G4double Shigh);
|
||||
|
||||
void SetnbinEn(G4int nbin);
|
||||
void SetEnlow(G4double Elow);
|
||||
void SetEnhigh(G4double Enhigh);
|
||||
|
||||
void SetnbinTt(G4int nbin);
|
||||
void SetTtlow(G4double Ttlow);
|
||||
void SetTthigh(G4double Tthigh);
|
||||
|
||||
void SetnbinTb(G4int nbin);
|
||||
void SetTblow(G4double Tblow);
|
||||
void SetTbhigh(G4double Tbhigh);
|
||||
|
||||
void SetnbinTsec(G4int nbin);
|
||||
void SetTseclow(G4double Tlow);
|
||||
void SetTsechigh(G4double Thigh);
|
||||
|
||||
void SetnbinTh(G4int nbin);
|
||||
void SetThlow(G4double Thlow);
|
||||
void SetThhigh(G4double Thhigh);
|
||||
|
||||
void SetnbinThBack(G4int nbin);
|
||||
void SetThlowBack(G4double Thlow);
|
||||
void SetThhighBack(G4double Thhigh);
|
||||
|
||||
void SetnbinR(G4int nbin);
|
||||
void SetRlow(G4double Rlow);
|
||||
void SetRhigh(G4double Rhigh);
|
||||
|
||||
void SetnbinGamma(G4int nbin);
|
||||
void SetElowGamma(G4double Elow);
|
||||
void SetEhighGamma(G4double Ehigh);
|
||||
|
||||
void Setnbinzvertex(G4int nbin);
|
||||
void Setzlow(G4double z);
|
||||
void Setzhigh(G4double z);
|
||||
|
||||
private:
|
||||
|
||||
void bookHisto();
|
||||
void FillLowEnergyTest();
|
||||
|
||||
private:
|
||||
|
||||
G4String histName ;
|
||||
HepTupleManager* hbookManager;
|
||||
HepHistogram *histo1, *histo2, *histo3, *histo4, *histo5 ;
|
||||
HepHistogram *histo6, *histo7, *histo8, *histo9, *histo10;
|
||||
HepHistogram *histo11, *histo12, *histo13, *histo14, *histo15;
|
||||
HepHistogram *histo21, *histo22, *histo23, *histo24, *histo25;
|
||||
HepHistogram *histo31, *histo32, *histo33, *histo34, *histo35;
|
||||
HepHistogram *histo41, *histo42, *histo43, *histo44, *histo45;
|
||||
HepHistogram *histo51, *histo52, *histo53, *histo54, *histo55;
|
||||
HepHistogram *histo61, *histo62, *histo63, *histo64, *histo65;
|
||||
HepHistogram *histo71, *histo72, *histo73, *histo74, *histo75, *histo76;
|
||||
HepHistogram *histo81, *histo82, *histo83, *histo84, *histo85, *histo86;
|
||||
|
||||
G4double LowestEnergy,HighestEnergy;
|
||||
G4int TotBin;
|
||||
|
||||
G4ParticleDefinition* theProton ;
|
||||
const G4Electron* theElectron ;
|
||||
|
||||
G4double EnergySumAbs,EnergySquareSumAbs;
|
||||
G4double tlSumAbs,tlsquareSumAbs;
|
||||
G4double nStepSumCharged,nStepSum2Charged ;
|
||||
G4double nStepSumNeutral,nStepSum2Neutral ;
|
||||
G4double TotNbofEvents;
|
||||
G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral;
|
||||
G4double Selectron,Spositron;
|
||||
|
||||
G4double Transmitted,Reflected ;
|
||||
|
||||
G4double entryStep,underStep,overStep,distStep[200];
|
||||
G4double Steplow,Stephigh,dStep;
|
||||
G4int nbinStep;
|
||||
G4double entryEn,underEn,overEn,distEn[200];
|
||||
G4double Enlow,Enhigh,dEn;
|
||||
G4int nbinEn;
|
||||
G4double entryTt,underTt,overTt,distTt[200];
|
||||
G4double Ttlow,Tthigh,dTt;
|
||||
G4int nbinTt;
|
||||
G4double Ttmean,Tt2mean;
|
||||
G4double entryTb,underTb,overTb,distTb[200];
|
||||
G4double Tblow,Tbhigh,dTb;
|
||||
G4int nbinTb;
|
||||
G4double Tbmean,Tb2mean;
|
||||
G4double entryTsec,underTsec,overTsec,distTsec[200];
|
||||
G4double Tseclow,Tsechigh,dTsec;
|
||||
G4int nbinTsec;
|
||||
G4double entryTh,underTh,overTh,distTh[200];
|
||||
G4double Thlow,Thhigh,dTh;
|
||||
G4int nbinTh;
|
||||
G4double entryThback,underThback,overThback,distThback[200];
|
||||
G4double Thlowback,Thhighback,dThback;
|
||||
G4int nbinThback;
|
||||
G4double entryR ,underR ,overR ,distR[200];
|
||||
G4double Rlow,Rhigh,dR;
|
||||
G4int nbinR;
|
||||
G4double Rmean,R2mean;
|
||||
G4double entryGamma,underGamma,overGamma,distGamma[200];
|
||||
G4double ElowGamma,EhighGamma,dEGamma;
|
||||
G4int nbinGamma ;
|
||||
G4double entryvertexz,undervertexz,oververtexz,distvertexz[200];
|
||||
G4double zlow,zhigh,dz;
|
||||
G4int nbinvertexz;
|
||||
|
||||
Em6RunMessenger* runMessenger ;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The run messenger is defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6RunMessenger_h
|
||||
#define Em6RunMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6RunAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAnInteger;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
class G4UIcmdWithADouble;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6RunMessenger: public G4UImessenger
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6RunMessenger(Em6RunAction* );
|
||||
~Em6RunMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* ,G4String );
|
||||
|
||||
private:
|
||||
|
||||
Em6RunAction* runAction;
|
||||
|
||||
G4UIdirectory* plotDir;
|
||||
|
||||
G4UIcmdWithAString* sethistNameCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinStepCmd;
|
||||
G4UIcmdWithADouble* setSteplowCmd;
|
||||
G4UIcmdWithADouble* setStephighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinEnCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEnlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEnhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinGammaCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setElowGammaCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setEhighGammaCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTtCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTtlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTthighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTbCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTblowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTbhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinTsecCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTseclowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setTsechighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinRCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setRlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setRhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinThCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThhighCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinThbackCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThlowbackCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setThhighbackCmd;
|
||||
|
||||
G4UIcmdWithAnInteger* setnbinzvertexCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setzlowCmd;
|
||||
G4UIcmdWithADoubleAndUnit* setzhighCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Step cut is defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6StepCut_h
|
||||
#define Em6StepCut_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6StepCut : public G4VDiscreteProcess
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6StepCut(const G4String& processName ="UserStepCut" );
|
||||
Em6StepCut(Em6StepCut &);
|
||||
|
||||
~Em6StepCut();
|
||||
|
||||
G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&);
|
||||
|
||||
void SetMaxStep(G4double);
|
||||
|
||||
protected:
|
||||
|
||||
// it is not needed here !
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
Em6StepCut& operator=(const Em6StepCut &right);
|
||||
|
||||
private:
|
||||
|
||||
G4double MaxChargedStep;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// inlined function members implementation
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double Em6StepCut::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
G4double ProposedStep = DBL_MAX;
|
||||
|
||||
if((MaxChargedStep > 0.) &&
|
||||
(aTrack.GetVolume() != NULL) &&
|
||||
(aTrack.GetVolume()->GetName() == "Absorber") &&
|
||||
(aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge() != 0.))
|
||||
ProposedStep = MaxChargedStep;
|
||||
|
||||
return ProposedStep;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4VParticleChange* Em6StepCut::PostStepDoIt(
|
||||
const G4Track& aTrack,
|
||||
const G4Step&
|
||||
)
|
||||
{
|
||||
// do nothing
|
||||
aParticleChange.Initialize(aTrack);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double Em6StepCut::GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
return 0.;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// Actions on each step are defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6SteppingAction_h
|
||||
#define Em6SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class Em6DetectorConstruction;
|
||||
class Em6RunAction;
|
||||
class Em6EventAction;
|
||||
class Em6SteppingMessenger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6SteppingAction(Em6DetectorConstruction*, Em6EventAction*,
|
||||
Em6RunAction* );
|
||||
~Em6SteppingAction();
|
||||
|
||||
void UserSteppingAction(const G4Step*);
|
||||
|
||||
private:
|
||||
Em6DetectorConstruction* detector;
|
||||
Em6EventAction* eventaction;
|
||||
Em6RunAction* runaction;
|
||||
Em6SteppingMessenger* steppingMessenger;
|
||||
|
||||
G4int IDnow,IDold;
|
||||
G4int evnoold ;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,48 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// Class Description:
|
||||
// The stepping messenger is defined
|
||||
// Class Description - end
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6SteppingMessenger_h
|
||||
#define Em6SteppingMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6SteppingAction;
|
||||
class G4UIdirectory;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6SteppingMessenger: public G4UImessenger
|
||||
{
|
||||
public: // Without description
|
||||
|
||||
Em6SteppingMessenger(Em6SteppingAction* );
|
||||
~Em6SteppingMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand* ,G4String );
|
||||
|
||||
private:
|
||||
|
||||
Em6SteppingAction* steppingAction;
|
||||
|
||||
G4UIdirectory* steppingDir;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
// Class Description:
|
||||
// Example Visualization Manager implementing virtual function
|
||||
// RegisterGraphicsSystems. Exploits C-pre-processor variables
|
||||
// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if
|
||||
// environment variables of the same name are set.
|
||||
// So all you have to do is set environment variables and compile and
|
||||
// instantiate this in your main().
|
||||
// Alternatively, you can implement an empty function here and just
|
||||
// register the systems you want in your main(), e.g.:
|
||||
// G4VisManager* myVisManager = new MyVisManager;
|
||||
// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem);
|
||||
// The run messenger is defined
|
||||
// Class Description - end
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#ifndef Em6VisManager_h
|
||||
#define Em6VisManager_h 1
|
||||
|
||||
#include "G4VisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class Em6VisManager: public G4VisManager {
|
||||
|
||||
public: // Without description
|
||||
|
||||
Em6VisManager ();
|
||||
|
||||
private:
|
||||
|
||||
void RegisterGraphicsSystems ();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,81 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4IonAr40.hh,v 1.2.4.1 1999/12/07 20:47:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// History: first implementation, based on object model of
|
||||
// 4-th April 1996, G.Cosmo
|
||||
// ****************************************************************
|
||||
// Added particle definitions, H.Kurashige, 19 April 1996
|
||||
// Revised, G.Cosmo, 6 June 1996
|
||||
// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// Class Description:
|
||||
// The new ion Ar40+ is defined as G4VIon.
|
||||
// Each class inheriting from G4VIon
|
||||
// corresponds to a particle type; one and only one
|
||||
// instance for each class is guaranteed.
|
||||
// Class Description - end
|
||||
|
||||
#ifndef G4IonAr40_h
|
||||
#define G4IonAr40_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VIon.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### IonAr40 ###
|
||||
// ######################################################################
|
||||
|
||||
class G4IonAr40 : public G4VIon
|
||||
{
|
||||
private:
|
||||
static G4IonAr40 theIonAr40;
|
||||
static G4double theIonAr40LengthCut;
|
||||
static G4double* theIonAr40KineticEnergyCuts;
|
||||
|
||||
public: // Without description
|
||||
|
||||
G4IonAr40(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable
|
||||
);
|
||||
virtual ~G4IonAr40();
|
||||
|
||||
static G4IonAr40* IonAr40Definition();
|
||||
static G4IonAr40* IonAr40() {return &theIonAr40;}
|
||||
static G4double GetCuts() {return theIonAr40LengthCut;}
|
||||
static G4double* GetCutsInEnergy() {return theIonAr40KineticEnergyCuts;};
|
||||
|
||||
void SetCuts(G4double aCut);
|
||||
};
|
||||
|
||||
inline void G4IonAr40::SetCuts(G4double aCut)
|
||||
{
|
||||
CalcEnergyCuts(aCut);
|
||||
theIonAr40LengthCut = theCutInMaxInteractionLength;
|
||||
theIonAr40KineticEnergyCuts = theKineticEnergyCuts;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,82 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4IonC12.hh,v 1.2.4.1 1999/12/07 20:47:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// History: first implementation, based on object model of
|
||||
// 4-th April 1996, G.Cosmo
|
||||
// ****************************************************************
|
||||
// Added particle definitions, H.Kurashige, 19 April 1996
|
||||
// Revised, G.Cosmo, 6 June 1996
|
||||
// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// Class Description:
|
||||
// The new ion C12+ is defined as G4VIon.
|
||||
// Each class inheriting from G4VIon
|
||||
// corresponds to a particle type; one and only one
|
||||
// instance for each class is guaranteed.
|
||||
// Class Description - end
|
||||
|
||||
|
||||
#ifndef G4IonC12_h
|
||||
#define G4IonC12_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VIon.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### IonC12 ###
|
||||
// ######################################################################
|
||||
|
||||
class G4IonC12 : public G4VIon
|
||||
{
|
||||
private:
|
||||
static G4IonC12 theIonC12;
|
||||
static G4double theIonC12LengthCut;
|
||||
static G4double* theIonC12KineticEnergyCuts;
|
||||
|
||||
public: // Without description
|
||||
|
||||
G4IonC12(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable
|
||||
);
|
||||
virtual ~G4IonC12();
|
||||
|
||||
static G4IonC12* IonC12Definition();
|
||||
static G4IonC12* IonC12() {return &theIonC12;}
|
||||
static G4double GetCuts() {return theIonC12LengthCut;}
|
||||
static G4double* GetCutsInEnergy() {return theIonC12KineticEnergyCuts;};
|
||||
|
||||
void SetCuts(G4double aCut);
|
||||
};
|
||||
|
||||
inline void G4IonC12::SetCuts(G4double aCut)
|
||||
{
|
||||
CalcEnergyCuts(aCut);
|
||||
theIonC12LengthCut = theCutInMaxInteractionLength;
|
||||
theIonC12KineticEnergyCuts = theKineticEnergyCuts;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,82 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4IonFe56.hh,v 1.2.4.1 1999/12/07 20:47:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-01-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// History: first implementation, based on object model of
|
||||
// 4-th April 1996, G.Cosmo
|
||||
// ****************************************************************
|
||||
// Added particle definitions, H.Kurashige, 19 April 1996
|
||||
// Revised, G.Cosmo, 6 June 1996
|
||||
// Added not static GetEnergyCuts() and GetLengthCuts(), G.Cosmo, 11 July 1996
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
// Class Description:
|
||||
// The new ion Fe56+ is defined as G4VIon.
|
||||
// Each class inheriting from G4VIon
|
||||
// corresponds to a particle type; one and only one
|
||||
// instance for each class is guaranteed.
|
||||
// Class Description - end
|
||||
|
||||
#ifndef G4IonFe56_h
|
||||
#define G4IonFe56_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VIon.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### IonFe56 ###
|
||||
// ######################################################################
|
||||
|
||||
class G4IonFe56 : public G4VIon
|
||||
{
|
||||
private:
|
||||
static G4IonFe56 theIonFe56;
|
||||
static G4double theIonFe56LengthCut;
|
||||
static G4double* theIonFe56KineticEnergyCuts;
|
||||
|
||||
public: // Without description
|
||||
|
||||
G4IonFe56(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable
|
||||
);
|
||||
virtual ~G4IonFe56();
|
||||
|
||||
static G4IonFe56* IonFe56Definition();
|
||||
static G4IonFe56* IonFe56() {return &theIonFe56;}
|
||||
static G4double GetCuts() {return theIonFe56LengthCut;}
|
||||
static G4double* GetCutsInEnergy() {return theIonFe56KineticEnergyCuts;};
|
||||
|
||||
void SetCuts(G4double aCut);
|
||||
};
|
||||
|
||||
inline void G4IonFe56::SetCuts(G4double aCut)
|
||||
{
|
||||
CalcEnergyCuts(aCut);
|
||||
theIonFe56LengthCut = theCutInMaxInteractionLength;
|
||||
theIonFe56KineticEnergyCuts = theKineticEnergyCuts;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user