Import Geant4 5.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:15:15 +02:00
parent 37fff30d2e
commit fbd4999cf7
4396 changed files with 56662 additions and 52446 deletions
@@ -0,0 +1,90 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07CalorHit.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07CalorHit_h
#define ExN07CalorHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
class ExN07CalorHit : public G4VHit
{
public:
ExN07CalorHit();
virtual ~ExN07CalorHit();
ExN07CalorHit(const ExN07CalorHit&);
const ExN07CalorHit& operator=(const ExN07CalorHit&);
int operator==(const ExN07CalorHit&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
virtual void Draw();
virtual void Print();
public:
inline void AddEnergy(G4double de)
{ Edep += de; }
inline void AddStep(G4double dl)
{
TrackLength += dl;
nStep++;
}
inline G4double GetEdep() const
{ return Edep; }
inline G4double GetTrak() const
{ return TrackLength; }
inline G4int GetNStep() const
{ return nStep; }
private:
G4double Edep;
G4double TrackLength;
G4int nStep;
};
typedef G4THitsCollection<ExN07CalorHit> ExN07CalorHitsCollection;
extern G4Allocator<ExN07CalorHit> ExN07CalorHitAllocator;
inline void* ExN07CalorHit::operator new(size_t)
{
void* aHit;
aHit = (void*) ExN07CalorHitAllocator.MallocSingle();
return aHit;
}
inline void ExN07CalorHit::operator delete(void* aHit)
{
ExN07CalorHitAllocator.FreeSingle((ExN07CalorHit*) aHit);
}
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07CalorimeterSD.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07CalorimeterSD_h
#define ExN07CalorimeterSD_h 1
class G4HCofThisEvent;
class G4Step;
class G4TouchableHistory;
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
#include "ExN07CalorHit.hh"
class ExN07CalorimeterSD : public G4VSensitiveDetector
{
public:
ExN07CalorimeterSD(G4String);
virtual ~ExN07CalorimeterSD();
virtual void Initialize(G4HCofThisEvent*);
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
virtual void EndOfEvent(G4HCofThisEvent*);
virtual void clear();
virtual void DrawAll();
virtual void PrintAll();
private:
static G4int numberOfLayers;
ExN07CalorHitsCollection* AbsCollection;
ExN07CalorHitsCollection* GapCollection;
G4int AbsCollID;
G4int GapCollID;
public:
static void SetNumberOfLayers(G4int nl)
{ numberOfLayers = nl; }
};
#endif
@@ -0,0 +1,94 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07DetectorConstruction.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
#ifndef ExN07DetectorConstruction_h
#define ExN07DetectorConstruction_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4LogicalVolume;
class G4VPhysicalVolume;
class G4PVParameterised;
class G4Material;
class G4Box;
class ExN07GapParameterisation;
class ExN07DetectorMessenger;
class ExN07DetectorConstruction : public G4VUserDetectorConstruction
{
public:
ExN07DetectorConstruction();
virtual ~ExN07DetectorConstruction();
public:
virtual G4VPhysicalVolume* Construct();
public:
void UpdateGeometry();
void PrintCalorParameters() const;
void SetAbsorberMaterial(G4String materialChoice);
G4String GetAbsorberMaterial() const;
void SetGapMaterial(G4String materialChoice);
G4String GetGapMaterial() const;
void SetSerialGeometry(G4bool ser);
void SetNumberOfLayers(G4int nl);
inline G4int GetNumberOfLayers() const
{ return numberOfLayers; }
inline G4bool IsSerial() const
{ return serial; }
private:
void DefineMaterials();
private:
G4int numberOfLayers;
G4Material* worldMaterial;
G4Material* absorberMaterial;
G4Material* gapMaterial;
G4Box* gapSolid;
G4LogicalVolume* worldLogical;
G4LogicalVolume* calorLogical[3];
G4LogicalVolume* layerLogical[3];
G4VPhysicalVolume* worldPhysical;
G4VPhysicalVolume* calorPhysical[3];
G4PVParameterised* layerPhysical[3];
G4bool serial;
ExN07GapParameterisation* gapParam;
ExN07DetectorMessenger* detectorMessenger;
};
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07DetectorMessenger.hh,v 1.2 2003/04/08 15:46:59 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07DetectorMessenger_h
#define ExN07DetectorMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class ExN07DetectorConstruction;
class G4UIdirectory;
class G4UIcmdWithAString;
class G4UIcmdWithABool;
class G4UIcmdWithAnInteger;
class ExN07DetectorMessenger: public G4UImessenger
{
public:
ExN07DetectorMessenger(ExN07DetectorConstruction* );
virtual ~ExN07DetectorMessenger();
virtual void SetNewValue(G4UIcommand*, G4String);
virtual G4String GetCurrentValue(G4UIcommand * command);
private:
ExN07DetectorConstruction* ExN07Detector;
G4UIdirectory* N07Dir;
G4UIcmdWithAString* AbsMaterCmd;
G4UIcmdWithAString* GapMaterCmd;
G4UIcmdWithAnInteger* numLayerCmd;
G4UIcmdWithABool* SerialCmd;
G4UIcmdWithAnInteger* verboseCmd;
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07EventAction.hh,v 1.2 2003/04/08 15:47:00 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07EventAction_h
#define ExN07EventAction_h 1
#include "G4UserEventAction.hh"
#include "globals.hh"
class ExN07EventAction : public G4UserEventAction
{
public:
ExN07EventAction();
virtual ~ExN07EventAction();
public:
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
private:
G4int calorimeterCollID[6];
static G4int verboseLevel;
public:
static void SetVerboseLevel(G4int i)
{ verboseLevel = i; }
static G4int GetVerboseLevel()
{ return verboseLevel; }
};
#endif
@@ -0,0 +1,70 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07GapParameterisation.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
// A parameterisation that describes a series of boxes along Z
// The boxes have equal size.
//
#ifndef ExN07GapParameterisation_H
#define ExN07GapParameterisation_H 1
#include "globals.hh"
#include "G4VPVParameterisation.hh"
class G4VPhysicalVolume;
class G4Material;
class ExN07GapParameterisation : public G4VPVParameterisation
{
public:
ExN07GapParameterisation();
virtual ~ExN07GapParameterisation();
virtual void ComputeTransformation(const G4int copyNo,
G4VPhysicalVolume* physVol) const;
virtual G4Material* ComputeMaterial(const G4int copyNo,
G4VPhysicalVolume* physVol);
private:
G4int numberOfLayers;
G4Material* absMaterial;
G4Material* gapMaterial;
public:
inline void SetNumberOfLayers(G4int nl)
{ numberOfLayers = nl; }
inline void SetAbsorberMaterial(G4Material* mat)
{ absMaterial = mat; }
inline void SetGapMaterial(G4Material* mat)
{ gapMaterial = mat; }
};
#endif
@@ -0,0 +1,64 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07PhysicsList.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07PhysicsList_h
#define ExN07PhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
class ExN07PhysicsList: public G4VUserPhysicsList
{
public:
ExN07PhysicsList();
~ExN07PhysicsList();
protected:
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
void SetCuts();
protected:
// these methods Construct particles
void ConstructBosons();
void ConstructLeptons();
void ConstructMesons();
void ConstructBaryons();
protected:
// these methods Construct physics processes and register them
void ConstructGeneral();
void ConstructEM();
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07PrimaryGeneratorAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07PrimaryGeneratorAction_h
#define ExN07PrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4ParticleGun;
class G4Event;
class ExN07PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
ExN07PrimaryGeneratorAction();
virtual ~ExN07PrimaryGeneratorAction();
public:
virtual void GeneratePrimaries(G4Event*);
private:
G4ParticleGun* particleGun;
G4bool serial;
public:
inline void SetSerial(G4bool ser)
{ serial = ser; }
};
#endif
+97
View File
@@ -0,0 +1,97 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07Run.hh,v 1.3 2003/04/09 23:20:58 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07Run_h
#define ExN07Run_h 1
#include "globals.hh"
#include "G4Run.hh"
#include "G4Allocator.hh"
class G4Event;
class G4HCtable;
class G4DCtable;
class ExN07Run : public G4Run
{
public:
ExN07Run();
virtual ~ExN07Run();
inline void *operator new(size_t);
inline void operator delete(void* aRun);
public:
virtual void RecordEvent(const G4Event*);
private:
G4double totE[6];
G4double totL[6];
G4int nStep[6];
G4int nGamma[6];
G4int nElectron[6];
G4int nPositron[6];
G4double eMinGamma[6];
G4double eMinElectron[6];
G4double eMinPositron[6];
public:
inline G4double GetTotalE(G4int i) const
{ return totE[i]; }
inline G4double GetTotalL(G4int i) const
{ return totL[i]; }
inline G4int GetNStep(G4int i) const
{ return nStep[i]; }
inline G4int GetNGamma(G4int i) const
{ return nGamma[i]; }
inline G4int GetNElectron(G4int i) const
{ return nElectron[i]; }
inline G4int GetNPositron(G4int i) const
{ return nPositron[i]; }
inline G4double GetEMinGamma(G4int i) const
{ return eMinGamma[i]; }
inline G4double GetEMinElectron(G4int i) const
{ return eMinElectron[i]; }
inline G4double GetEMinPositron(G4int i) const
{ return eMinPositron[i]; }
};
extern G4Allocator<ExN07Run> anExN07RunAllocator;
inline void* ExN07Run::operator new(size_t)
{
void* aRun;
aRun = (void*)anExN07RunAllocator.MallocSingle();
return aRun;
}
inline void ExN07Run::operator delete(void* aRun)
{
anExN07RunAllocator.FreeSingle((ExN07Run*)aRun);
}
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07RunAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
#ifndef ExN07RunAction_h
#define ExN07RunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
class G4Run;
class ExN07RunAction : public G4UserRunAction
{
public:
ExN07RunAction();
~ExN07RunAction();
public:
G4Run* GenerateRun();
void EndOfRunAction(const G4Run*);
};
#endif
@@ -0,0 +1,60 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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. *
// ********************************************************************
//
#ifndef ExN07StackingAction_H
#define ExN07StackingAction_H 1
#include "globals.hh"
#include "G4UserStackingAction.hh"
class G4Track;
class ExN07StackingAction : public G4UserStackingAction
{
public:
ExN07StackingAction();
virtual ~ExN07StackingAction();
public:
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
virtual void PrepareNewEvent();
private:
static G4int nGamma[6];
static G4int nElectron[6];
static G4int nPositron[6];
static G4double eMinGamma[6];
static G4double eMinElectron[6];
static G4double eMinPositron[6];
public:
static G4int GetNGamma(G4int i) { return nGamma[i]; }
static G4int GetNElectron(G4int i) { return nElectron[i]; }
static G4int GetNPositron(G4int i) { return nPositron[i]; }
static G4double GetEMinGamma(G4int i) { return eMinGamma[i]; }
static G4double GetEMinElectron(G4int i) { return eMinElectron[i]; }
static G4double GetEMinPositron(G4int i) { return eMinPositron[i]; }
};
#endif
@@ -0,0 +1,51 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * 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: ExN07VisManager.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $
// GEANT4 tag $Name: geant4-05-01 $
//
//
#ifndef ExN07VisManager_h
#define ExN07VisManager_h 1
#ifdef G4VIS_USE
#include "G4VisManager.hh"
class ExN07VisManager: public G4VisManager {
public:
ExN07VisManager ();
private:
void RegisterGraphicsSystems ();
};
#endif
#endif