Import Geant4 8.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:36:02 +02:00
parent d93e1e39a9
commit 8a51e0bc40
5471 changed files with 99628 additions and 55248 deletions
@@ -0,0 +1,104 @@
//
// ********************************************************************
// * 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 ExGflashDetectorConstruction_h
#define ExGflashDetectorConstruction_h 1
#include "globals.hh"
#include "G4VUserDetectorConstruction.hh"
class G4Box;
class G4LogicalVolume;
class G4VPhysicalVolume;
class GFlashHomoShowerParameterisation;
class GFlashHitMaker;
class GFlashShowerModel;
class GFlashParticleBounds;
class ExGflashDetectorConstruction : public G4VUserDetectorConstruction
{
public:
ExGflashDetectorConstruction();
~ExGflashDetectorConstruction();
G4VPhysicalVolume* Construct();
const G4VPhysicalVolume* GetCristal(int num__crystal)
{return m_crystal_phys[num__crystal];};
private:
G4LogicalVolume* m_experimentalHall_log;
G4LogicalVolume* m_calo_log;
G4VPhysicalVolume* m_experimentalHall_phys;
G4VPhysicalVolume* m_calo_phys;
G4Box *m_experimentalHall_box;
G4double m_experimentalHall_x;
G4double m_experimentalHall_y;
G4double m_experimentalHall_z;
G4double m_calo_xside;
G4double m_calo_yside;
G4double m_calo_zside;
G4int m_NbOfCrystals; // Nb of chambers in the tracker region
G4double m_CrystalWidth; // width of the chambers
G4double m_CrystalWidht;
G4double m_CrystalLenght;
//@@@ ExGflashDetectorConstruction : wie mache ich das am besten ?
G4Box *m_crystal[100];
G4LogicalVolume* m_crystal_log[100];
G4VPhysicalVolume* m_crystal_phys[100];
// Gflash members
GFlashHomoShowerParameterisation *m_theParameterisation;
GFlashHitMaker *m_theHMaker;
GFlashParticleBounds *m_theParticleBounds;
GFlashShowerModel* m_theFastShowerModel;
G4Region* aRegion;
};
#endif
@@ -0,0 +1,42 @@
//
// ********************************************************************
// * 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 ExGflashEventAction_h
#define ExGflashEventAction_h
#include "globals.hh"
#include "G4UserEventAction.hh"
class ExGflashEventAction: public G4UserEventAction {
public:
ExGflashEventAction();
~ExGflashEventAction();
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
private:
G4int nevent;
G4double dtime;
G4int calorimeterCollectionId;
};
#endif
@@ -0,0 +1,114 @@
//
// ********************************************************************
// * 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 ExGflashHit_h
#define ExGflashHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
#include "G4LogicalVolume.hh"
#include "G4Transform3D.hh"
#include "G4RotationMatrix.hh"
class ExGflashHit : public G4VHit
{
public:
ExGflashHit();
ExGflashHit(G4LogicalVolume* logVol);
~ExGflashHit();
ExGflashHit(const ExGflashHit &right);
const ExGflashHit& operator=(const ExGflashHit &right);
int operator==(const ExGflashHit &right) const;
inline void *operator new(size_t);
inline void operator delete(void *aHit);
void *operator new(size_t,void*p){return p;}
#ifndef G4NOT_ISO_DELETES
void operator delete(void *aHit,void*){}
#endif
void Draw();
void Print();
private:
G4double edep;
G4ThreeVector pos;
G4int crystalnumber;
G4ThreeVector start;
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 G4int GetCrystalNum()
{ return crystalnumber; };
inline void SetCrystalNum(G4int num)
{ crystalnumber=num; };
inline G4ThreeVector GetPos()
{ return pos; };
inline void SetStart(G4ThreeVector xyz)
{ start = xyz; };
inline G4ThreeVector GetStart()
{ return start; };
inline void SetRot(G4RotationMatrix rmat)
{ rot = rmat; };
inline G4RotationMatrix GetRot()
{ return rot; };
inline const G4LogicalVolume * GetLogV()
{ return pLogV; };
};
typedef G4THitsCollection<ExGflashHit> ExGflashHitsCollection;
extern G4Allocator<ExGflashHit> ExGflashHitAllocator;
inline void* ExGflashHit::operator new(size_t)
{
void *aHit;
aHit = (void *) ExGflashHitAllocator.MallocSingle();
return aHit;
}
inline void ExGflashHit::operator delete(void *aHit)
{
ExGflashHitAllocator.FreeSingle((ExGflashHit*) aHit);
}
#endif
@@ -0,0 +1,28 @@
//
// ********************************************************************
// * 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 ExGflashHitsCollection_h
#define ExGflashHitsCollection_h
#include "G4THitsCollection.hh"
class ExGflashHit;
typedef G4THitsCollection<ExGflashHit> ExGflashHitsCollection;
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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 MATERIALMANAGER_H
#define MATERIALMANAGER_H
using namespace std;
#include "G4Element.hh"
#include "G4Material.hh"
#include <map>
#include <iostream>
typedef map< G4String, G4Element*, less<G4String> > ElementList;
typedef map< G4String, G4Material*, less<G4String> > MaterialList;
class ExGflashMaterialManager {
private:
ElementList elist;
MaterialList mlist;
ExGflashMaterialManager() {initialize();}
static ExGflashMaterialManager *mpointer;
public:
static ExGflashMaterialManager* GetMaterialManager()
{
if (!mpointer)
mpointer=new ExGflashMaterialManager;
return mpointer;
}
void storeElement(G4String, G4String, double, double);
G4Element* getElement(G4String);
void storeMaterial(G4String, double, double, double);
void storeMaterial(G4String, double, int);
G4Material* getMaterial(G4String);
void addMaterial(G4String,G4String,double);
void addElement(G4String,G4String,double);
void addElement(G4String,G4String,int);
void printElementTable();
void printMaterialTable();
void initialize();
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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 ExGflashPhysicsList_h
#define ExGflashPhysicsList_h 1
using namespace std;
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
class ExGflashPhysicsList: public G4VUserPhysicsList
{
public:
ExGflashPhysicsList();
virtual ~ExGflashPhysicsList();
protected:
// Construct particle and physics
virtual void ConstructParticle();
virtual void ConstructProcess();
//
virtual void SetCuts();
protected:
// these methods Construct particles
virtual void ConstructBosons();
virtual void ConstructLeptons();
virtual void ConstructMesons();
virtual void ConstructBaryons();
virtual void ConstructIons();
protected:
// these methods Construct physics processes and register them
void AddParameterisation();
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void AddTransportation();
};
#endif
@@ -0,0 +1,47 @@
//
// ********************************************************************
// * 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 ExGflashPrimaryGeneratorAction_h
#define ExGflashPrimaryGeneratorAction_h
#include "G4ThreeVector.hh"
#include "G4GeneralParticleSource.hh"
#include "G4ParticleTable.hh"
#include "G4ParticleDefinition.hh"
#include "G4VUserPrimaryGeneratorAction.hh"
class G4Event;
class ExGflashPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
public:
ExGflashPrimaryGeneratorAction();
~ExGflashPrimaryGeneratorAction();
void GeneratePrimaries(G4Event* anEvent);
private:
G4GeneralParticleSource * particleGun;
};
#endif
@@ -0,0 +1,47 @@
//
// ********************************************************************
// * 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 ExGflashRunAction_h
#define ExGflashRunAction_h
using namespace std;
#include "G4UserRunAction.hh"
#include "globals.hh"
class G4Run;
class ExGflashRunAction : public G4UserRunAction
{
public:
ExGflashRunAction();
~ExGflashRunAction();
void BeginOfRunAction(const G4Run* aRun);
void EndOfRunAction(const G4Run* aRun);
void setRunID (int i) {runID=i;};
private:
G4int runID;
};
#endif
@@ -0,0 +1,50 @@
//
// ********************************************************************
// * 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 TILE05SENSITIVEDETECTOR_H
#define TILE05SENSITIVEDETECTOR_H
using namespace std;
#include "G4VSensitiveDetector.hh"
#include "G4VGFlashSensitiveDetector.hh"
#include "G4GFlashSpot.hh"
#include "ExGflashDetectorConstruction.hh"
#include "ExGflashHitsCollection.hh"
#include "globals.hh"
class G4Step;
class G4HCofThisEvent;
class G4TouchableHistory;
class ExGflashSensitiveDetector: public G4VSensitiveDetector ,public G4VGFlashSensitiveDetector{
public:
ExGflashSensitiveDetector(G4String, ExGflashDetectorConstruction* det);
~ExGflashSensitiveDetector();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
G4bool ProcessHits(G4GFlashSpot*aSpot,G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
private:
ExGflashHitsCollection* caloHitsCollection;
G4double edep;
ExGflashDetectorConstruction* Detector;
};
#endif
@@ -0,0 +1,35 @@
//
// ********************************************************************
// * 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 ExGflashVisManager_h
#define ExGflashVisManager_h
using namespace std;
#include "G4VisManager.hh"
class ExGflashVisManager: public G4VisManager {
public:
ExGflashVisManager ();
private:
void RegisterGraphicsSystems ();
};
#endif