Import Geant4 0.0.0 source tree
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05CalorimeterHit.hh,v 2.2 1998/07/12 02:42:10 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05CalorimeterHit_h
|
||||
#define ExN05CalorimeterHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
|
||||
class ExN05CalorimeterHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
ExN05CalorimeterHit();
|
||||
ExN05CalorimeterHit(G4LogicalVolume* logVol);
|
||||
~ExN05CalorimeterHit();
|
||||
ExN05CalorimeterHit(const ExN05CalorimeterHit &right);
|
||||
const ExN05CalorimeterHit& operator=(const ExN05CalorimeterHit &right);
|
||||
int operator==(const ExN05CalorimeterHit &right) const;
|
||||
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aHit);
|
||||
|
||||
void Draw();
|
||||
void Print();
|
||||
|
||||
private:
|
||||
G4double edep;
|
||||
G4ThreeVector pos;
|
||||
G4RotationMatrix rot;
|
||||
const G4LogicalVolume* pLogV;
|
||||
|
||||
public:
|
||||
inline void SetEdep(G4double de)
|
||||
{ edep = de; };
|
||||
inline void AddEdep(G4double de)
|
||||
{ edep += de; };
|
||||
inline G4double GetEdep()
|
||||
{ return edep; };
|
||||
inline void SetPos(G4ThreeVector xyz)
|
||||
{ pos = xyz; };
|
||||
inline G4ThreeVector GetPos()
|
||||
{ return pos; };
|
||||
inline void SetRot(G4RotationMatrix rmat)
|
||||
{ rot = rmat; };
|
||||
inline G4RotationMatrix GetRot()
|
||||
{ return rot; };
|
||||
inline const G4LogicalVolume * GetLogV()
|
||||
{ return pLogV; };
|
||||
|
||||
};
|
||||
|
||||
typedef G4THitsCollection<ExN05CalorimeterHit> ExN05CalorimeterHitsCollection;
|
||||
|
||||
extern G4Allocator<ExN05CalorimeterHit> ExN05CalorimeterHitAllocator;
|
||||
|
||||
inline void* ExN05CalorimeterHit::operator new(size_t)
|
||||
{
|
||||
void *aHit;
|
||||
aHit = (void *) ExN05CalorimeterHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
inline void ExN05CalorimeterHit::operator delete(void *aHit)
|
||||
{
|
||||
ExN05CalorimeterHitAllocator.FreeSingle((ExN05CalorimeterHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05CalorimeterSD.hh,v 2.4 1998/12/11 19:14:02 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05CalorimeterSD_h
|
||||
#define ExN05CalorimeterSD_h 1
|
||||
|
||||
#include "ExN05CalorimeterHit.hh"
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
class ExN05CalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
|
||||
public:
|
||||
ExN05CalorimeterSD(G4String name, G4int nCells, G4String colName);
|
||||
~ExN05CalorimeterSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*HCE);
|
||||
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
|
||||
void EndOfEvent(G4HCofThisEvent*HCE);
|
||||
void clear();
|
||||
void DrawAll();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
ExN05CalorimeterHitsCollection *CalCollection;
|
||||
|
||||
int* CellID;
|
||||
int numberOfCells;
|
||||
int HCID;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05DetectorConstruction.hh,v 2.3 1998/12/10 04:11:02 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef ExN05DetectorConstruction_h
|
||||
#define ExN05DetectorConstruction_h 1
|
||||
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4UserLimits;
|
||||
class ExN05DetectorMessenger;
|
||||
|
||||
class ExN05DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
ExN05DetectorConstruction();
|
||||
~ExN05DetectorConstruction();
|
||||
|
||||
public:
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
|
||||
// methods for UserLimits in crystal
|
||||
void UseUserLimits(G4bool value);
|
||||
G4bool IsUseUserLimits() { return fUseUserLimits; }
|
||||
G4double GetMaxTimeInCrystal() const { return theMaxTimeCutsInCrystal; }
|
||||
G4double GetMinEkineInCrystal() const { return theMinEkineCutsInCrystal; }
|
||||
G4double GetMinRangeInCrystal() const { return theMinRangeCutsInCrystal; }
|
||||
void SetMaxTimeInCrystal(G4double value);
|
||||
void SetMinEkineInCrystal(G4double value);
|
||||
void SetMinRangeInCrystal(G4double value);
|
||||
|
||||
private:
|
||||
G4LogicalVolume* theCrystalLog;
|
||||
G4LogicalVolume* theTowerLog;
|
||||
|
||||
G4bool fUseUserLimits;
|
||||
G4UserLimits* theUserLimitsForCrystal;
|
||||
G4double theMaxTimeCutsInCrystal;
|
||||
G4double theMinEkineCutsInCrystal;
|
||||
G4double theMinRangeCutsInCrystal;
|
||||
|
||||
// messeneger
|
||||
ExN05DetectorMessenger* theMessenger;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05DetectorMessenger.hh,v 2.1 1998/08/14 08:21:17 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef ExN05DetectorMessenger_h
|
||||
#define ExN05DetectorMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class ExN05DetectorConstruction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithADoubleAndUnit;
|
||||
|
||||
class ExN05DetectorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
ExN05DetectorMessenger(ExN05DetectorConstruction * myDet);
|
||||
~ExN05DetectorMessenger();
|
||||
|
||||
void SetNewValue(G4UIcommand * command,G4String newValues);
|
||||
G4String GetCurrentValue(G4UIcommand * command);
|
||||
|
||||
private:
|
||||
ExN05DetectorConstruction* myDetector;
|
||||
|
||||
G4UIdirectory* mydetDir;
|
||||
G4UIcmdWithAString* SwitchCmd;
|
||||
G4UIcmdWithADoubleAndUnit* TmaxCmd;
|
||||
G4UIcmdWithADoubleAndUnit* EminCmd;
|
||||
G4UIcmdWithADoubleAndUnit* RminCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05EMShowerModel.hh,v 2.1 1998/12/10 04:07:36 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
//----------------------------------------------
|
||||
// Parameterisation of e+/e-/gamma producing hits
|
||||
// The hits are the same as defined in the detailed
|
||||
// simulation.
|
||||
//----------------------------------------------
|
||||
#ifndef ExN05EMShowerModel_h
|
||||
#define ExN05EMShowerModel_h 1
|
||||
|
||||
#include "ExN05EnergySpot.hh"
|
||||
|
||||
#include "G4VFastSimulationModel.hh"
|
||||
#include "G4Step.hh"
|
||||
#include "G4VTouchable.hh"
|
||||
#include "G4TouchableHistory.hh"
|
||||
#include <rw/tvordvec.h>
|
||||
|
||||
class ExN05EMShowerModel : public G4VFastSimulationModel
|
||||
{
|
||||
public:
|
||||
//-------------------------
|
||||
// Constructor, destructor
|
||||
//-------------------------
|
||||
ExN05EMShowerModel (G4String, G4LogicalVolume*);
|
||||
ExN05EMShowerModel (G4String);
|
||||
~ExN05EMShowerModel ();
|
||||
|
||||
//------------------------------
|
||||
// Virtual methods of the base
|
||||
// class to be coded by the user
|
||||
//------------------------------
|
||||
|
||||
// -- IsApplicable
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
// -- ModelTrigger
|
||||
G4bool ModelTrigger(const G4FastTrack &);
|
||||
// -- User method DoIt
|
||||
void DoIt(const G4FastTrack&, G4FastStep&);
|
||||
|
||||
private:
|
||||
void AssignSpotAndCallHit(const ExN05EnergySpot &eSpot);
|
||||
void FillFakeStep(const ExN05EnergySpot &eSpot);
|
||||
void Explode(const G4FastTrack&);
|
||||
void BuildDetectorResponse();
|
||||
G4Step *fFakeStep;
|
||||
G4StepPoint *fFakePreStepPoint, *fFakePostStepPoint;
|
||||
G4VTouchable*fpTouchable;
|
||||
G4Navigator *fpNavigator;
|
||||
G4bool fNaviSetup;
|
||||
|
||||
RWTValOrderedVector<ExN05EnergySpot> feSpotList;
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,48 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05EnergySpot.hh,v 2.2 1998/12/10 04:11:07 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef ExN05EnergySpot_h
|
||||
#define ExN05EnergySpot_h
|
||||
|
||||
#include "G4ThreeVector.hh"
|
||||
class G4Colour;
|
||||
|
||||
class ExN05EnergySpot
|
||||
{
|
||||
public:
|
||||
ExN05EnergySpot();
|
||||
ExN05EnergySpot(const G4ThreeVector& point, G4double E);
|
||||
~ExN05EnergySpot();
|
||||
|
||||
inline void SetEnergy(const G4double& E) {Energy = E;}
|
||||
inline G4double GetEnergy() const {return Energy;}
|
||||
|
||||
inline void SetPosition(const G4ThreeVector& point) {Point = point;}
|
||||
inline G4ThreeVector GetPosition() const {return Point;}
|
||||
|
||||
// Required by Rogue Wave explicitely,
|
||||
// when using RWTValOrderedVector<ExN05EnergySpot>
|
||||
int operator==(const ExN05EnergySpot& eSpot) const
|
||||
{
|
||||
return (Energy==eSpot.Energy && Point==eSpot.Point) ? 1 : 0;
|
||||
};
|
||||
|
||||
// Draw:
|
||||
void Draw(G4Colour* color = NULL);
|
||||
// Print:
|
||||
void Print();
|
||||
|
||||
|
||||
private:
|
||||
G4double Energy;
|
||||
G4ThreeVector Point;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,42 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05EventAction.hh,v 2.2 1998/12/10 04:11:11 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05EventAction_h
|
||||
#define ExN05EventAction_h 1
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Event;
|
||||
|
||||
class ExN05EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
ExN05EventAction();
|
||||
~ExN05EventAction();
|
||||
|
||||
public:
|
||||
void BeginOfEventAction();
|
||||
void EndOfEventAction();
|
||||
|
||||
private:
|
||||
G4int calorimeterCollID;
|
||||
G4int hadCalorimeterCollID;
|
||||
G4bool drawFlag;
|
||||
|
||||
public:
|
||||
inline void SetDrawFlag(G4bool val)
|
||||
{ drawFlag = val; };
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05EventActionMessenger.hh,v 2.1 1998/07/12 02:42:14 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05EventActionMessenger_h
|
||||
#define ExN05EventActionMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithABool;
|
||||
|
||||
class ExN05EventAction;
|
||||
|
||||
class ExN05EventActionMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
ExN05EventActionMessenger(ExN05EventAction* EA);
|
||||
void SetNewValue(G4UIcommand* command, G4String newValues);
|
||||
private:
|
||||
ExN05EventAction* EventAction;
|
||||
G4UIdirectory* eventDirectory;
|
||||
G4UIcmdWithABool* drawEventCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05MaxTimeCuts.hh,v 2.2 1998/08/16 14:09:50 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ------------------------------------------------------------
|
||||
// 14 Aug. 1998 H.Kurashige
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef ExN05MaxTimeCuts_h
|
||||
#define ExN05MaxTimeCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "ExN05SpecialCuts.hh"
|
||||
|
||||
|
||||
class ExN05MaxTimeCuts : public ExN05SpecialCuts
|
||||
{
|
||||
public:
|
||||
|
||||
ExN05MaxTimeCuts(const G4String& processName ="ExN05MaxTimeCuts" );
|
||||
|
||||
~ExN05MaxTimeCuts();
|
||||
|
||||
// PostStep GPIL
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
ExN05MaxTimeCuts(ExN05MaxTimeCuts&);
|
||||
ExN05MaxTimeCuts& operator=(const ExN05MaxTimeCuts& right);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05MinEkineCuts.hh,v 2.2 1998/08/16 14:09:51 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ------------------------------------------------------------
|
||||
// 14 Aug. 1998 H.Kurashige
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef ExN05MinEkineCuts_h
|
||||
#define ExN05MinEkineCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "ExN05SpecialCuts.hh"
|
||||
|
||||
|
||||
class ExN05MinEkineCuts : public ExN05SpecialCuts
|
||||
{
|
||||
public:
|
||||
|
||||
ExN05MinEkineCuts(const G4String& processName ="ExN05MinEkineCuts" );
|
||||
|
||||
~ExN05MinEkineCuts();
|
||||
|
||||
// PostStep GPIL
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
ExN05MinEkineCuts(ExN05MinEkineCuts&);
|
||||
ExN05MinEkineCuts& operator=(const ExN05MinEkineCuts& right);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05MinRangeCuts.hh,v 2.2 1998/08/16 14:09:51 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ------------------------------------------------------------
|
||||
// 14 Aug. 1998 H.Kurashige
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef ExN05MinRangeCuts_h
|
||||
#define ExN05MinRangeCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "ExN05SpecialCuts.hh"
|
||||
|
||||
|
||||
class ExN05MinRangeCuts : public ExN05SpecialCuts
|
||||
{
|
||||
public:
|
||||
|
||||
ExN05MinRangeCuts(const G4String& processName ="ExN05MinRangeCuts" );
|
||||
|
||||
~ExN05MinRangeCuts();
|
||||
|
||||
// PostStep GPIL
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
ExN05MinRangeCuts(ExN05MinRangeCuts&);
|
||||
ExN05MinRangeCuts& operator=(const ExN05MinRangeCuts& right);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05PhysicsList.hh,v 2.2 1998/08/14 08:21:17 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
#ifndef ExN05PhysicsList_h
|
||||
#define ExN05PhysicsList_h 1
|
||||
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class ExN05PhysicsList: public G4VUserPhysicsList
|
||||
{
|
||||
public:
|
||||
ExN05PhysicsList();
|
||||
virtual ~ExN05PhysicsList();
|
||||
|
||||
protected:
|
||||
// Construct particle and physics
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
//
|
||||
virtual void SetCuts(G4double aCut);
|
||||
|
||||
protected:
|
||||
// these methods Construct particles
|
||||
virtual void ConstructBosons();
|
||||
virtual void ConstructLeptons();
|
||||
virtual void ConstructMesons();
|
||||
virtual void ConstructBarions();
|
||||
virtual void ConstructIons();
|
||||
|
||||
protected:
|
||||
// these methods Construct physics processes and register them
|
||||
void AddParameterisation();
|
||||
virtual void ConstructGeneral();
|
||||
virtual void ConstructEM();
|
||||
virtual void ConstructHad();
|
||||
virtual void ConstructLeptHad();
|
||||
virtual void AddTransportation();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05PiModel.hh,v 2.0 1998/07/02 14:09:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
//----------------------------------------
|
||||
// Simple example of a "parameterisation".
|
||||
//----------------------------------------
|
||||
#ifndef ExN05PiModel_h
|
||||
#define ExN05PiModel_h 1
|
||||
|
||||
#include "G4VFastSimulationModel.hh"
|
||||
|
||||
class ExN05PiModel : public G4VFastSimulationModel
|
||||
{
|
||||
public:
|
||||
//-------------------------
|
||||
// Constructor, destructor
|
||||
//-------------------------
|
||||
ExN05PiModel (G4LogicalVolume *anEnvelope);
|
||||
~ExN05PiModel ();
|
||||
|
||||
//------------------------------
|
||||
// Virtual methods of the base
|
||||
// class to be coded by the user
|
||||
//------------------------------
|
||||
|
||||
// -- IsApplicable
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
// -- ModelTrigger
|
||||
G4bool ModelTrigger(const G4FastTrack &);
|
||||
// -- User method DoIt
|
||||
void DoIt(const G4FastTrack&, G4FastStep&);
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,62 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05PionShowerModel.hh,v 2.1 1998/12/10 04:05:49 verderi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
//----------------------------------------------
|
||||
// Parameterisation for pi+/pi- producing hits.
|
||||
//----------------------------------------------
|
||||
#ifndef ExN05PionShowerModel_h
|
||||
#define ExN05PionShowerModel_h 1
|
||||
|
||||
#include "ExN05EnergySpot.hh"
|
||||
|
||||
#include "G4VFastSimulationModel.hh"
|
||||
#include "G4Step.hh"
|
||||
#include "G4VTouchable.hh"
|
||||
#include "G4TouchableHistory.hh"
|
||||
#include <rw/tvordvec.h>
|
||||
|
||||
class ExN05PionShowerModel : public G4VFastSimulationModel
|
||||
{
|
||||
public:
|
||||
//-------------------------
|
||||
// Constructor, destructor
|
||||
//-------------------------
|
||||
ExN05PionShowerModel (G4String, G4LogicalVolume*);
|
||||
ExN05PionShowerModel (G4String);
|
||||
~ExN05PionShowerModel ();
|
||||
|
||||
//------------------------------
|
||||
// Virtual methods of the base
|
||||
// class to be coded by the user
|
||||
//------------------------------
|
||||
|
||||
// -- IsApplicable
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
// -- ModelTrigger
|
||||
G4bool ModelTrigger(const G4FastTrack &);
|
||||
// -- User method DoIt
|
||||
void DoIt(const G4FastTrack&, G4FastStep&);
|
||||
|
||||
private:
|
||||
void AssignSpotAndCallHit(const ExN05EnergySpot &eSpot);
|
||||
void FillFakeStep(const ExN05EnergySpot &eSpot);
|
||||
void Explode(const G4FastTrack&);
|
||||
void BuildDetectorResponse();
|
||||
G4Step *fFakeStep;
|
||||
G4StepPoint *fFakePreStepPoint, *fFakePostStepPoint;
|
||||
G4VTouchable*fpTouchable;
|
||||
G4Navigator *fpNavigator;
|
||||
G4bool fNaviSetup;
|
||||
|
||||
RWTValOrderedVector<ExN05EnergySpot> feSpotList;
|
||||
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,36 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05PrimaryGeneratorAction.hh,v 2.1 1998/07/12 02:42:16 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05PrimaryGeneratorAction_h
|
||||
#define ExN05PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
|
||||
class G4ParticleGun;
|
||||
class G4Event;
|
||||
|
||||
class ExN05PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
ExN05PrimaryGeneratorAction();
|
||||
~ExN05PrimaryGeneratorAction();
|
||||
|
||||
public:
|
||||
void GeneratePrimaries(G4Event* anEvent);
|
||||
G4ParticleGun* GetParticleGun();
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05RunAction.hh,v 2.1 1998/07/12 02:42:16 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05RunAction_h
|
||||
#define ExN05RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "G4Timer.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Run;
|
||||
|
||||
class ExN05RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
ExN05RunAction();
|
||||
~ExN05RunAction();
|
||||
|
||||
public:
|
||||
void BeginOfRunAction(G4Run* aRun);
|
||||
void EndOfRunAction(G4Run* aRun);
|
||||
|
||||
private:
|
||||
G4Timer* timer;
|
||||
G4int runIDcounter;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05SpecialCuts.hh,v 2.3 1998/08/16 14:09:52 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD group
|
||||
// ------------------------------------------------------------
|
||||
// 15 April 1998 M.Maire
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef ExN05SpecialCuts_h
|
||||
#define ExN05SpecialCuts_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VProcess.hh"
|
||||
|
||||
|
||||
class ExN05SpecialCuts : public G4VProcess
|
||||
{
|
||||
public:
|
||||
|
||||
ExN05SpecialCuts(const G4String& processName ="ExN05SpecialCut" );
|
||||
|
||||
~ExN05SpecialCuts(){};
|
||||
|
||||
virtual G4double PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition
|
||||
);
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
);
|
||||
|
||||
// no operation in AtRestGPIL
|
||||
virtual G4double AtRestGetPhysicalInteractionLength(
|
||||
const G4Track& ,
|
||||
G4ForceCondition*
|
||||
){ return -1.0; };
|
||||
|
||||
// no operation in AtRestDoIt
|
||||
virtual G4VParticleChange* AtRestDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
){return NULL;};
|
||||
|
||||
// no operation in AlongStepGPIL
|
||||
virtual G4double AlongStepGetPhysicalInteractionLength(
|
||||
const G4Track&,
|
||||
G4double ,
|
||||
G4double ,
|
||||
G4double& ,
|
||||
G4GPILSelection*
|
||||
){ return -1.0; };
|
||||
|
||||
// no operation in AlongStepDoIt
|
||||
virtual G4VParticleChange* AlongStepDoIt(
|
||||
const G4Track& ,
|
||||
const G4Step&
|
||||
) {return NULL;};
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right){return *this;};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05SteppingAction.hh,v 2.1 1998/07/12 02:42:17 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05SteppingAction_h
|
||||
#define ExN05SteppingAction_h 1
|
||||
|
||||
#include "G4UserSteppingAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class ExN05SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
ExN05SteppingAction();
|
||||
~ExN05SteppingAction(){};
|
||||
|
||||
void UserSteppingAction();
|
||||
|
||||
private:
|
||||
G4bool drawFlag;
|
||||
|
||||
public:
|
||||
inline void SetDrawFlag(G4bool val)
|
||||
{ drawFlag = val; };
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,37 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 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: ExN05SteppingActionMessenger.hh,v 2.1 1998/07/12 02:42:18 urbi Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
|
||||
#ifndef ExN05SteppingActionMessenger_h
|
||||
#define ExN05SteppingActionMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
|
||||
class ExN05SteppingAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithABool;
|
||||
|
||||
|
||||
class ExN05SteppingActionMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
ExN05SteppingActionMessenger(ExN05SteppingAction *SA);
|
||||
void SetNewValue(G4UIcommand* command, G4String newValues);
|
||||
private:
|
||||
ExN05SteppingAction* SteppingAction;
|
||||
G4UIdirectory* stepDirectory;
|
||||
G4UIcmdWithABool* drawStepCmd;
|
||||
G4UIcmdWithABool* verboseStepCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// -----------------------------------
|
||||
// Header file for RandomGamma:
|
||||
// adaptation of RNGAMA function from
|
||||
// KERNLIB
|
||||
// -----------------------------------
|
||||
|
||||
|
||||
#ifndef RandomGamma_h
|
||||
#define RanfomGamma_h 1
|
||||
|
||||
extern double RandomGamma(double);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user