Import Geant4 7.0.0 source tree
This commit is contained in:
@@ -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: RE01BosonPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01BosonPhysics_h
|
||||
#define RE01BosonPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class RE01BosonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE01BosonPhysics(const G4String& name = "boson");
|
||||
virtual ~RE01BosonPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01CalorimeterHit.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
|
||||
#ifndef RE01CalorimeterHit_h
|
||||
#define RE01CalorimeterHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4Transform3D.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
#include "RE01TrackInformation.hh"
|
||||
|
||||
class RE01CalorimeterHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
RE01CalorimeterHit();
|
||||
RE01CalorimeterHit(G4LogicalVolume* logVol,G4int z,G4int phi);
|
||||
~RE01CalorimeterHit();
|
||||
RE01CalorimeterHit(const RE01CalorimeterHit &right);
|
||||
const RE01CalorimeterHit& operator=(const RE01CalorimeterHit &right);
|
||||
G4int operator==(const RE01CalorimeterHit &right) const;
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aHit);
|
||||
|
||||
void Draw();
|
||||
void Print();
|
||||
|
||||
private:
|
||||
G4int ZCellID;
|
||||
G4int PhiCellID;
|
||||
G4double edep;
|
||||
G4ThreeVector pos;
|
||||
G4RotationMatrix rot;
|
||||
const G4LogicalVolume* pLogV;
|
||||
G4double edepByATrack;
|
||||
RE01TrackInformation trackInfo;
|
||||
|
||||
public:
|
||||
inline void SetCellID(G4int z,G4int phi)
|
||||
{
|
||||
ZCellID = z;
|
||||
PhiCellID = phi;
|
||||
}
|
||||
inline G4int GetZ() { return ZCellID; }
|
||||
inline G4int GetPhi() { return PhiCellID; }
|
||||
inline void SetEdep(G4double de)
|
||||
{ edep = de; edepByATrack = de; }
|
||||
inline void AddEdep(G4double de)
|
||||
{ edep += de; edepByATrack += de; }
|
||||
inline G4double GetEdep()
|
||||
{ return edep; }
|
||||
inline G4double GetEdepByATrack()
|
||||
{ return edepByATrack; }
|
||||
inline void ClearEdepByATrack()
|
||||
{ edepByATrack = 0.; trackInfo = RE01TrackInformation(); }
|
||||
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; }
|
||||
inline void SetTrackInformation(const G4Track* aTrack)
|
||||
{
|
||||
RE01TrackInformation* anInfo = (RE01TrackInformation*)(aTrack->GetUserInformation());
|
||||
trackInfo = *anInfo;
|
||||
}
|
||||
inline RE01TrackInformation* GetTrackInformation()
|
||||
{ return &trackInfo; }
|
||||
};
|
||||
|
||||
typedef G4THitsCollection<RE01CalorimeterHit> RE01CalorimeterHitsCollection;
|
||||
|
||||
extern G4Allocator<RE01CalorimeterHit> RE01CalorimeterHitAllocator;
|
||||
|
||||
inline void* RE01CalorimeterHit::operator new(size_t)
|
||||
{
|
||||
void *aHit;
|
||||
aHit = (void *) RE01CalorimeterHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
inline void RE01CalorimeterHit::operator delete(void *aHit)
|
||||
{
|
||||
RE01CalorimeterHitAllocator.FreeSingle((RE01CalorimeterHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01CalorimeterParametrisation.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01CalorimeterParametrisation_H
|
||||
#define RE01CalorimeterParametrisation_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VPVParameterisation.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4Tubs;
|
||||
|
||||
// Dummy declarations to get rid of warnings ...
|
||||
class G4Trd;
|
||||
class G4Trap;
|
||||
class G4Cons;
|
||||
class G4Sphere;
|
||||
class G4Torus;
|
||||
class G4Para;
|
||||
class G4Hype;
|
||||
class G4Box;
|
||||
class G4Orb;
|
||||
class G4Polycone;
|
||||
class G4Polyhedra;
|
||||
|
||||
class RE01CalorimeterParametrisation : public G4VPVParameterisation
|
||||
{
|
||||
public:
|
||||
|
||||
RE01CalorimeterParametrisation();
|
||||
virtual ~RE01CalorimeterParametrisation();
|
||||
void ComputeTransformation(const G4int copyNo,
|
||||
G4VPhysicalVolume *physVol) const;
|
||||
void ComputeDimensions( G4Tubs & calorimeterLayer,
|
||||
const G4int copyNo,
|
||||
const G4VPhysicalVolume * physVol) const;
|
||||
|
||||
private: // Dummy declarations to get rid of warnings ...
|
||||
|
||||
void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Box&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
#include "RE01DetectorParameterDef.hh"
|
||||
|
||||
};
|
||||
|
||||
#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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: RE01CalorimeterROGeometry.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01CalorimeterROGeometry_h
|
||||
#define RE01CalorimeterROGeometry_h 1
|
||||
|
||||
#include "G4VReadOutGeometry.hh"
|
||||
|
||||
class RE01CalorimeterROGeometry : public G4VReadOutGeometry
|
||||
{
|
||||
public:
|
||||
RE01CalorimeterROGeometry();
|
||||
RE01CalorimeterROGeometry(G4String);
|
||||
~RE01CalorimeterROGeometry();
|
||||
|
||||
private:
|
||||
G4VPhysicalVolume* Build();
|
||||
|
||||
#include "RE01DetectorParameterDef.hh"
|
||||
|
||||
};
|
||||
|
||||
#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: RE01CalorimeterSD.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01CalorimeterSD_h
|
||||
#define RE01CalorimeterSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "RE01CalorimeterHit.hh"
|
||||
class G4Step;
|
||||
class G4HCofThisEvent;
|
||||
class G4TouchableHistory;
|
||||
|
||||
class RE01CalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
|
||||
public:
|
||||
RE01CalorimeterSD(G4String name);
|
||||
~RE01CalorimeterSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*HCE);
|
||||
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
|
||||
void EndOfEvent(G4HCofThisEvent*HCE);
|
||||
void clear();
|
||||
void DrawAll();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
RE01CalorimeterHitsCollection *CalCollection;
|
||||
int CellID[20][48];
|
||||
const int numberOfCellsInZ;
|
||||
const int numberOfCellsInPhi;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#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: RE01DecayPhysics.hh,v 1.1 2004/11/26 07:37:39 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef RE01DecayPhysics_h
|
||||
#define RE01DecayPhysics_h 1
|
||||
|
||||
// #include "globals.hh"
|
||||
// #include "G4ios.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
|
||||
#include "G4Decay.hh"
|
||||
#include "G4UnknownDecay.hh"
|
||||
|
||||
class RE01DecayPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE01DecayPhysics(const G4String& name = "decay");
|
||||
virtual ~RE01DecayPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
protected:
|
||||
G4Decay fDecayProcess;
|
||||
G4UnknownDecay fUnknownDecay;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01DetectorConstruction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01DetectorConstruction_h
|
||||
#define RE01DetectorConstruction_h 1
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
|
||||
class RE01DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
RE01DetectorConstruction();
|
||||
~RE01DetectorConstruction();
|
||||
|
||||
public:
|
||||
G4VPhysicalVolume* Construct();
|
||||
|
||||
private:
|
||||
|
||||
#include "RE01DetectorParameterDef.hh"
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01DetectorParameterDef.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
G4double expHall_x;
|
||||
G4double expHall_y;
|
||||
G4double expHall_z;
|
||||
|
||||
G4double trkTubs_rmax;
|
||||
G4double trkTubs_rmin;
|
||||
G4double trkTubs_dz;
|
||||
G4double trkTubs_sphi;
|
||||
G4double trkTubs_dphi;
|
||||
|
||||
G4int notrkLayers;
|
||||
G4double tracker_radius[5];
|
||||
G4double tracker_thick;
|
||||
G4double tracker_length[5];
|
||||
|
||||
G4double caloTubs_rmax;
|
||||
G4double caloTubs_rmin;
|
||||
G4double caloTubs_dz;
|
||||
G4double caloTubs_sphi;
|
||||
G4double caloTubs_dphi;
|
||||
|
||||
G4int nocaloLayers;
|
||||
G4double absorber_thick;
|
||||
G4double scinti_thick;
|
||||
|
||||
G4int segmentsinZ;
|
||||
G4double caloRing_rmax;
|
||||
G4double caloRing_rmin;
|
||||
G4double caloRing_dz;
|
||||
G4double caloRing_sphi;
|
||||
G4double caloRing_dphi;
|
||||
|
||||
G4int segmentsinPhi;
|
||||
G4double caloCell_rmax;
|
||||
G4double caloCell_rmin;
|
||||
G4double caloCell_dz;
|
||||
G4double caloCell_sphi;
|
||||
G4double caloCell_dphi;
|
||||
|
||||
|
||||
@@ -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: RE01DummySD.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
//
|
||||
// Dummy sensitive used only to flag sensitivity
|
||||
// in cells of RO geometry.
|
||||
//
|
||||
|
||||
#ifndef RE01DummySD_h
|
||||
#define RE01DummySD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
class G4Step;
|
||||
|
||||
class RE01DummySD : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
RE01DummySD();
|
||||
~RE01DummySD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*) {;}
|
||||
G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;}
|
||||
void EndOfEvent(G4HCofThisEvent*) {;}
|
||||
void clear() {;}
|
||||
void DrawAll() {;}
|
||||
void PrintAll() {;}
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01EventAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01EventAction_h
|
||||
#define RE01EventAction_h 1
|
||||
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4PrimaryParticle;
|
||||
|
||||
class RE01EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
RE01EventAction();
|
||||
~RE01EventAction();
|
||||
|
||||
public:
|
||||
void BeginOfEventAction(const G4Event*);
|
||||
void EndOfEventAction(const G4Event*);
|
||||
|
||||
private:
|
||||
G4int trackerCollID;
|
||||
G4int calorimeterCollID;
|
||||
G4int muonCollID;
|
||||
|
||||
void PrintPrimary(G4PrimaryParticle* pp,G4int ind);
|
||||
};
|
||||
|
||||
#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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: RE01Field.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01Field_H
|
||||
#define RE01Field_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4MagneticField.hh"
|
||||
|
||||
class RE01Field : public G4MagneticField
|
||||
{
|
||||
public:
|
||||
RE01Field();
|
||||
~RE01Field();
|
||||
|
||||
void GetFieldValue( const double Point[3],
|
||||
double *Bfield ) const;
|
||||
|
||||
private:
|
||||
G4double Bz;
|
||||
G4double rmax_sq;
|
||||
G4double zmax;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,341 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01HadronPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01HadronPhysics_h
|
||||
#define RE01HadronPhysics_h 1
|
||||
|
||||
// #include "globals.hh"
|
||||
// #include "G4ios.hh"
|
||||
// #include <vector>
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
/*
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
|
||||
#include "G4PionPlusInelasticProcess.hh"
|
||||
#include "G4PionMinusInelasticProcess.hh"
|
||||
#include "G4KaonPlusInelasticProcess.hh"
|
||||
#include "G4KaonZeroSInelasticProcess.hh"
|
||||
#include "G4KaonZeroLInelasticProcess.hh"
|
||||
#include "G4KaonMinusInelasticProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4AntiProtonInelasticProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4AntiNeutronInelasticProcess.hh"
|
||||
#include "G4LambdaInelasticProcess.hh"
|
||||
#include "G4AntiLambdaInelasticProcess.hh"
|
||||
#include "G4SigmaPlusInelasticProcess.hh"
|
||||
#include "G4SigmaMinusInelasticProcess.hh"
|
||||
#include "G4AntiSigmaPlusInelasticProcess.hh"
|
||||
#include "G4AntiSigmaMinusInelasticProcess.hh"
|
||||
#include "G4XiZeroInelasticProcess.hh"
|
||||
#include "G4XiMinusInelasticProcess.hh"
|
||||
#include "G4AntiXiZeroInelasticProcess.hh"
|
||||
#include "G4AntiXiMinusInelasticProcess.hh"
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4OmegaMinusInelasticProcess.hh"
|
||||
#include "G4AntiOmegaMinusInelasticProcess.hh"
|
||||
|
||||
// Low-energy Models
|
||||
#include "G4LElastic.hh"
|
||||
#include "G4LFission.hh"
|
||||
#include "G4LCapture.hh"
|
||||
|
||||
#include "G4LEPionPlusInelastic.hh"
|
||||
#include "G4LEPionMinusInelastic.hh"
|
||||
#include "G4LEKaonPlusInelastic.hh"
|
||||
#include "G4LEKaonZeroSInelastic.hh"
|
||||
#include "G4LEKaonZeroLInelastic.hh"
|
||||
#include "G4LEKaonMinusInelastic.hh"
|
||||
#include "G4LEProtonInelastic.hh"
|
||||
#include "G4LEAntiProtonInelastic.hh"
|
||||
#include "G4LENeutronInelastic.hh"
|
||||
#include "G4LEAntiNeutronInelastic.hh"
|
||||
#include "G4LELambdaInelastic.hh"
|
||||
#include "G4LEAntiLambdaInelastic.hh"
|
||||
#include "G4LESigmaPlusInelastic.hh"
|
||||
#include "G4LESigmaMinusInelastic.hh"
|
||||
#include "G4LEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4LEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4LEXiZeroInelastic.hh"
|
||||
#include "G4LEXiMinusInelastic.hh"
|
||||
#include "G4LEAntiXiZeroInelastic.hh"
|
||||
#include "G4LEAntiXiMinusInelastic.hh"
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
#include "G4LEOmegaMinusInelastic.hh"
|
||||
#include "G4LEAntiOmegaMinusInelastic.hh"
|
||||
|
||||
// High-energy Models
|
||||
|
||||
#include "G4HEPionPlusInelastic.hh"
|
||||
#include "G4HEPionMinusInelastic.hh"
|
||||
#include "G4HEKaonPlusInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEKaonMinusInelastic.hh"
|
||||
#include "G4HEProtonInelastic.hh"
|
||||
#include "G4HEAntiProtonInelastic.hh"
|
||||
#include "G4HENeutronInelastic.hh"
|
||||
#include "G4HEAntiNeutronInelastic.hh"
|
||||
#include "G4HELambdaInelastic.hh"
|
||||
#include "G4HEAntiLambdaInelastic.hh"
|
||||
#include "G4HESigmaPlusInelastic.hh"
|
||||
#include "G4HESigmaMinusInelastic.hh"
|
||||
#include "G4HEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4HEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4HEXiZeroInelastic.hh"
|
||||
#include "G4HEXiMinusInelastic.hh"
|
||||
#include "G4HEAntiXiZeroInelastic.hh"
|
||||
#include "G4HEAntiXiMinusInelastic.hh"
|
||||
#include "G4HEOmegaMinusInelastic.hh"
|
||||
#include "G4HEAntiOmegaMinusInelastic.hh"
|
||||
|
||||
// Stopping processes
|
||||
#include "G4AntiProtonAnnihilationAtRest.hh"
|
||||
#include "G4AntiNeutronAnnihilationAtRest.hh"
|
||||
|
||||
#ifdef TRIUMF_STOP_PIMINUS
|
||||
#include "G4PionMinusAbsorptionAtRest.hh"
|
||||
#else
|
||||
#include "G4PiMinusAbsorptionAtRest.hh"
|
||||
#endif
|
||||
#ifdef TRIUMF_STOP_KMINUS
|
||||
#include "G4KaonMinusAbsorption.hh"
|
||||
#else
|
||||
#include "G4KaonMinusAbsorptionAtRest.hh"
|
||||
#endif
|
||||
|
||||
// quark gluon string model with chips afterburner.
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
#include "G4GeneratorPrecompoundInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
|
||||
*/
|
||||
|
||||
class RE01HadronPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE01HadronPhysics(const G4String& name ="hadron");
|
||||
virtual ~RE01HadronPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
/*
|
||||
protected:
|
||||
// Pi +
|
||||
G4PionPlusInelasticProcess thePionPlusInelastic;
|
||||
G4LEPionPlusInelastic* theLEPionPlusModel;
|
||||
G4MultipleScattering thePionPlusMult;
|
||||
G4hIonisation thePionPlusIonisation;
|
||||
|
||||
// Pi -
|
||||
G4PionMinusInelasticProcess thePionMinusInelastic;
|
||||
G4LEPionMinusInelastic* theLEPionMinusModel;
|
||||
G4MultipleScattering thePionMinusMult;
|
||||
G4hIonisation thePionMinusIonisation;
|
||||
#ifdef TRIUMF_STOP_PIMINUS
|
||||
G4PionMinusAbsorptionAtRest thePionMinusAbsorption;
|
||||
#else
|
||||
G4PiMinusAbsorptionAtRest thePionMinusAbsorption;
|
||||
#endif
|
||||
|
||||
// pi+ and pi-
|
||||
|
||||
G4TheoFSGenerator theTheoModel;
|
||||
G4ExcitationHandler theHandler;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface theCascade;
|
||||
G4QGSModel< G4QGSParticipants > theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
|
||||
// K +
|
||||
G4KaonPlusInelasticProcess theKaonPlusInelastic;
|
||||
G4LEKaonPlusInelastic* theLEKaonPlusModel;
|
||||
G4HEKaonPlusInelastic* theHEKaonPlusModel;
|
||||
G4MultipleScattering theKaonPlusMult;
|
||||
G4hIonisation theKaonPlusIonisation;
|
||||
|
||||
// K -
|
||||
G4KaonMinusInelasticProcess theKaonMinusInelastic;
|
||||
G4LEKaonMinusInelastic* theLEKaonMinusModel;
|
||||
G4HEKaonMinusInelastic* theHEKaonMinusModel;
|
||||
G4MultipleScattering theKaonMinusMult;
|
||||
G4hIonisation theKaonMinusIonisation;
|
||||
#ifdef TRIUMF_STOP_KMINUS
|
||||
G4KaonMinusAbsorption theKaonMinusAbsorption;
|
||||
#else
|
||||
G4PiMinusAbsorptionAtRest theKaonMinusAbsorption;
|
||||
#endif
|
||||
|
||||
// K0L
|
||||
G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
|
||||
G4LEKaonZeroLInelastic* theLEKaonZeroLModel;
|
||||
G4HEKaonZeroInelastic* theHEKaonZeroLModel;
|
||||
|
||||
// K0S
|
||||
G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
|
||||
G4LEKaonZeroSInelastic* theLEKaonZeroSModel;
|
||||
G4HEKaonZeroInelastic* theHEKaonZeroSModel;
|
||||
|
||||
// Proton
|
||||
G4ProtonInelasticProcess theProtonInelastic;
|
||||
G4LEProtonInelastic* theLEProtonModel;
|
||||
G4HEProtonInelastic* theHEProtonModel;
|
||||
G4MultipleScattering theProtonMult;
|
||||
G4hIonisation theProtonIonisation;
|
||||
|
||||
// anti-proton
|
||||
G4AntiProtonInelasticProcess theAntiProtonInelastic;
|
||||
G4LEAntiProtonInelastic* theLEAntiProtonModel;
|
||||
G4HEAntiProtonInelastic* theHEAntiProtonModel;
|
||||
G4MultipleScattering theAntiProtonMult;
|
||||
G4hIonisation theAntiProtonIonisation;
|
||||
G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation;
|
||||
|
||||
// neutron
|
||||
G4NeutronInelasticProcess theNeutronInelastic;
|
||||
G4LENeutronInelastic* theLENeutronModel;
|
||||
G4HENeutronInelastic* theHENeutronModel;
|
||||
G4HadronFissionProcess theNeutronFission;
|
||||
G4LFission* theNeutronFissionModel;
|
||||
G4HadronCaptureProcess theNeutronCapture;
|
||||
G4LCapture* theNeutronCaptureModel;
|
||||
|
||||
|
||||
// anti-neutron
|
||||
G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
|
||||
G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
|
||||
G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
|
||||
G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation;
|
||||
|
||||
// Lambda
|
||||
G4LambdaInelasticProcess theLambdaInelastic;
|
||||
G4LELambdaInelastic* theLELambdaModel;
|
||||
G4HELambdaInelastic* theHELambdaModel;
|
||||
|
||||
// AntiLambda
|
||||
G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
|
||||
G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
|
||||
G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
|
||||
|
||||
// SigmaMinus
|
||||
G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
|
||||
G4LESigmaMinusInelastic* theLESigmaMinusModel;
|
||||
G4HESigmaMinusInelastic* theHESigmaMinusModel;
|
||||
G4MultipleScattering theSigmaMinusMult;
|
||||
G4hIonisation theSigmaMinusIonisation;
|
||||
|
||||
// AntiSigmaMinus
|
||||
G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
|
||||
G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
|
||||
G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
|
||||
G4MultipleScattering theAntiSigmaMinusMult;
|
||||
G4hIonisation theAntiSigmaMinusIonisation;
|
||||
|
||||
// SigmaPlus
|
||||
G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
|
||||
G4LESigmaPlusInelastic* theLESigmaPlusModel;
|
||||
G4HESigmaPlusInelastic* theHESigmaPlusModel;
|
||||
G4MultipleScattering theSigmaPlusMult;
|
||||
G4hIonisation theSigmaPlusIonisation;
|
||||
|
||||
// AntiSigmaPlus
|
||||
G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
|
||||
G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
|
||||
G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
|
||||
G4MultipleScattering theAntiSigmaPlusMult;
|
||||
G4hIonisation theAntiSigmaPlusIonisation;
|
||||
|
||||
// XiZero
|
||||
G4XiZeroInelasticProcess theXiZeroInelastic;
|
||||
G4LEXiZeroInelastic* theLEXiZeroModel;
|
||||
G4HEXiZeroInelastic* theHEXiZeroModel;
|
||||
|
||||
// AntiXiZero
|
||||
G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
|
||||
G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
|
||||
G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
|
||||
|
||||
// XiMinus
|
||||
G4XiMinusInelasticProcess theXiMinusInelastic;
|
||||
G4LEXiMinusInelastic* theLEXiMinusModel;
|
||||
G4HEXiMinusInelastic* theHEXiMinusModel;
|
||||
G4MultipleScattering theXiMinusMult;
|
||||
G4hIonisation theXiMinusIonisation;
|
||||
|
||||
// AntiXiMinus
|
||||
G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
|
||||
G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
|
||||
G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
|
||||
G4MultipleScattering theAntiXiMinusMult;
|
||||
G4hIonisation theAntiXiMinusIonisation;
|
||||
|
||||
// OmegaMinus
|
||||
G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
|
||||
G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
|
||||
G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
|
||||
G4MultipleScattering theOmegaMinusMult;
|
||||
G4hIonisation theOmegaMinusIonisation;
|
||||
|
||||
// AntiOmegaMinus
|
||||
G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
|
||||
G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
|
||||
G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
|
||||
G4MultipleScattering theAntiOmegaMinusMult;
|
||||
G4hIonisation theAntiOmegaMinusIonisation;
|
||||
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01IonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01IonPhysics_h
|
||||
#define RE01IonPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
|
||||
class RE01IonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE01IonPhysics(const G4String& name ="ion");
|
||||
virtual ~RE01IonPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01LeptonPhysics.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef RE01LeptonPhysics_h
|
||||
#define RE01LeptonPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
|
||||
class RE01LeptonPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
RE01LeptonPhysics(const G4String& name ="lepton");
|
||||
virtual ~RE01LeptonPhysics();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each particle type will be instantiated
|
||||
virtual void ConstructParticle();
|
||||
|
||||
// This method will be invoked in the Construct() method.
|
||||
// each physics process will be instantiated and
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
};
|
||||
|
||||
#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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: RE01PhysicsList.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef RE01PhysicsList_h
|
||||
#define RE01PhysicsList_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
|
||||
class RE01PhysicsList: public G4VModularPhysicsList
|
||||
{
|
||||
public:
|
||||
RE01PhysicsList();
|
||||
virtual ~RE01PhysicsList();
|
||||
|
||||
virtual void SetCuts();
|
||||
};
|
||||
|
||||
#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: RE01PrimaryGeneratorAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01PrimaryGeneratorAction_h
|
||||
#define RE01PrimaryGeneratorAction_h 1
|
||||
|
||||
#include "G4VUserPrimaryGeneratorAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VPrimaryGenerator;
|
||||
class G4Event;
|
||||
class RE01PrimaryGeneratorMessenger;
|
||||
|
||||
class RE01PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
|
||||
{
|
||||
public:
|
||||
RE01PrimaryGeneratorAction();
|
||||
~RE01PrimaryGeneratorAction();
|
||||
|
||||
public:
|
||||
void GeneratePrimaries(G4Event* anEvent);
|
||||
|
||||
private:
|
||||
G4VPrimaryGenerator* HEPEvt;
|
||||
G4VPrimaryGenerator* particleGun;
|
||||
RE01PrimaryGeneratorMessenger* messenger;
|
||||
G4bool useHEPEvt;
|
||||
|
||||
public:
|
||||
inline void SetHEPEvtGenerator(G4bool f)
|
||||
{ useHEPEvt = f; }
|
||||
inline G4bool GetHEPEvtGenerator()
|
||||
{ return useHEPEvt; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01PrimaryGeneratorMessenger.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01PrimaryGeneratorMessenger_h
|
||||
#define RE01PrimaryGeneratorMessenger_h 1
|
||||
|
||||
class RE01PrimaryGeneratorAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class RE01PrimaryGeneratorMessenger: public G4UImessenger
|
||||
{
|
||||
public:
|
||||
RE01PrimaryGeneratorMessenger(RE01PrimaryGeneratorAction* mpga);
|
||||
~RE01PrimaryGeneratorMessenger();
|
||||
|
||||
public:
|
||||
void SetNewValue(G4UIcommand * command,G4String newValues);
|
||||
G4String GetCurrentValue(G4UIcommand * command);
|
||||
|
||||
private:
|
||||
RE01PrimaryGeneratorAction * myAction;
|
||||
|
||||
private: //commands
|
||||
G4UIdirectory * mydetDirectory;
|
||||
G4UIcmdWithAString * genCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01RegionInformation.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01RegionInformation_H
|
||||
#define RE01RegionInformation_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VUserRegionInformation.hh"
|
||||
|
||||
class RE01RegionInformation : public G4VUserRegionInformation
|
||||
{
|
||||
public:
|
||||
RE01RegionInformation();
|
||||
~RE01RegionInformation();
|
||||
void Print() const;
|
||||
|
||||
private:
|
||||
G4bool isWorld;
|
||||
G4bool isTracker;
|
||||
G4bool isCalorimeter;
|
||||
|
||||
public:
|
||||
inline void SetWorld(G4bool v=true) {isWorld = v;}
|
||||
inline void SetTracker(G4bool v=true) {isTracker = v;}
|
||||
inline void SetCalorimeter(G4bool v=true) {isCalorimeter = v;}
|
||||
inline G4bool IsWorld() const {return isWorld;}
|
||||
inline G4bool IsTracker() const {return isTracker;}
|
||||
inline G4bool IsCalorimeter() const {return isCalorimeter;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01RunAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01RunAction_h
|
||||
#define RE01RunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
|
||||
class G4Run;
|
||||
|
||||
class RE01RunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
RE01RunAction();
|
||||
~RE01RunAction();
|
||||
|
||||
public:
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
void EndOfRunAction(const G4Run*);
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01StackingAction.hh,v 1.1 2004/11/26 07:37:40 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01StackingAction_H
|
||||
#define RE01StackingAction_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UserStackingAction.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4VHitsCollection;
|
||||
|
||||
class RE01StackingAction : public G4UserStackingAction
|
||||
{
|
||||
public:
|
||||
RE01StackingAction();
|
||||
virtual ~RE01StackingAction();
|
||||
|
||||
public:
|
||||
virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
|
||||
virtual void NewStage();
|
||||
virtual void PrepareNewEvent();
|
||||
|
||||
private:
|
||||
G4VHitsCollection* GetCalCollection();
|
||||
|
||||
G4int stage;
|
||||
G4int trackerHitsColID;
|
||||
G4int calorimeterHitsColID;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01SteppingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01SteppingAction_H
|
||||
#define RE01SteppingAction_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UserSteppingAction.hh"
|
||||
|
||||
class RE01SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
RE01SteppingAction();
|
||||
virtual ~RE01SteppingAction();
|
||||
|
||||
virtual void UserSteppingAction(const G4Step*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01TrackInformation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackInformation_h
|
||||
#define RE01TrackInformation_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4VUserTrackInformation.hh"
|
||||
|
||||
class RE01TrackInformation : public G4VUserTrackInformation
|
||||
{
|
||||
public:
|
||||
RE01TrackInformation();
|
||||
RE01TrackInformation(const G4Track* aTrack);
|
||||
RE01TrackInformation(const RE01TrackInformation* aTrackInfo);
|
||||
virtual ~RE01TrackInformation();
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aTrackInfo);
|
||||
inline int operator ==(const RE01TrackInformation& right) const
|
||||
{return (this==&right);}
|
||||
|
||||
RE01TrackInformation& operator =(const RE01TrackInformation& right);
|
||||
|
||||
void SetSourceTrackInformation(const G4Track* aTrack);
|
||||
void Print() const;
|
||||
|
||||
private:
|
||||
// Information of the primary track at the primary vertex
|
||||
G4int originalTrackID; // Track ID of primary particle
|
||||
G4ParticleDefinition* particleDefinition;
|
||||
G4ThreeVector originalPosition;
|
||||
G4ThreeVector originalMomentum;
|
||||
G4double originalEnergy;
|
||||
G4double originalTime;
|
||||
|
||||
G4int trackingStatus;
|
||||
// trackingStatus = 1 : primary or secondary track which has not yet reached to calorimeter
|
||||
// = 0 : track which or ancester of which has reached to calorimeter
|
||||
|
||||
// = 2 : track or its ancester had once reached to calorimeter and
|
||||
// then escaped from it
|
||||
// Information of the track which reached to the calorimeter boundary at the boundary surface
|
||||
// This information is valid only for trackingStatus = 0 or 2
|
||||
G4int sourceTrackID;
|
||||
G4ParticleDefinition* sourceDefinition;
|
||||
G4ThreeVector sourcePosition;
|
||||
G4ThreeVector sourceMomentum;
|
||||
G4double sourceEnergy;
|
||||
G4double sourceTime;
|
||||
|
||||
public:
|
||||
inline G4int GetOriginalTrackID() const {return originalTrackID;}
|
||||
inline G4ParticleDefinition* GetOriginalParticle() const {return particleDefinition;}
|
||||
inline G4ThreeVector GetOriginalPosition() const {return originalPosition;}
|
||||
inline G4ThreeVector GetOriginalMomentum() const {return originalMomentum;}
|
||||
inline G4double GetOriginalEnergy() const {return originalEnergy;}
|
||||
inline G4double GetOriginalTime() const {return originalTime;}
|
||||
|
||||
inline G4int GetTrackingStatus() const {return trackingStatus;}
|
||||
inline void SetTrackingStatus(G4int i) {trackingStatus = i;}
|
||||
|
||||
inline G4int GetSourceTrackID() const {return sourceTrackID;}
|
||||
inline G4ParticleDefinition* GetSourceParticle() const {return sourceDefinition;}
|
||||
inline G4ThreeVector GetSourcePosition() const {return sourcePosition;}
|
||||
inline G4ThreeVector GetSourceMomentum() const {return sourceMomentum;}
|
||||
inline G4double GetSourceEnergy() const {return sourceEnergy;}
|
||||
inline G4double GetSourceTime() const {return sourceTime;}
|
||||
};
|
||||
|
||||
extern G4Allocator<RE01TrackInformation> aTrackInformationAllocator;
|
||||
|
||||
inline void* RE01TrackInformation::operator new(size_t)
|
||||
{ void* aTrackInfo;
|
||||
aTrackInfo = (void*)aTrackInformationAllocator.MallocSingle();
|
||||
return aTrackInfo;
|
||||
}
|
||||
|
||||
inline void RE01TrackInformation::operator delete(void *aTrackInfo)
|
||||
{ aTrackInformationAllocator.FreeSingle((RE01TrackInformation*)aTrackInfo);}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01TrackerHit.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01TrackerHit_h
|
||||
#define RE01TrackerHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class RE01TrackerHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
RE01TrackerHit();
|
||||
~RE01TrackerHit();
|
||||
RE01TrackerHit(const RE01TrackerHit &right);
|
||||
const RE01TrackerHit& operator=(const RE01TrackerHit &right);
|
||||
G4int operator==(const RE01TrackerHit &right) const;
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aHit);
|
||||
|
||||
void Draw();
|
||||
void Print();
|
||||
|
||||
private:
|
||||
G4double edep;
|
||||
G4ThreeVector pos;
|
||||
G4int trackID;
|
||||
|
||||
public:
|
||||
inline void SetEdep(G4double de)
|
||||
{ edep = de; }
|
||||
inline G4double GetEdep() const
|
||||
{ return edep; }
|
||||
inline void SetPos(G4ThreeVector xyz)
|
||||
{ pos = xyz; }
|
||||
inline G4ThreeVector GetPos() const
|
||||
{ return pos; }
|
||||
inline void SetTrackID(G4int i)
|
||||
{ trackID = i; }
|
||||
inline G4int GetTrackID() const
|
||||
{ return trackID; }
|
||||
};
|
||||
|
||||
typedef G4THitsCollection<RE01TrackerHit> RE01TrackerHitsCollection;
|
||||
|
||||
extern G4Allocator<RE01TrackerHit> RE01TrackerHitAllocator;
|
||||
|
||||
inline void* RE01TrackerHit::operator new(size_t)
|
||||
{
|
||||
void *aHit;
|
||||
aHit = (void *) RE01TrackerHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
inline void RE01TrackerHit::operator delete(void *aHit)
|
||||
{
|
||||
RE01TrackerHitAllocator.FreeSingle((RE01TrackerHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01TrackerParametrisation.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01TrackerParametrisation_H
|
||||
#define RE01TrackerParametrisation_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VPVParameterisation.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
class G4Tubs;
|
||||
|
||||
// Dummy declarations to get rid of warnings ...
|
||||
class G4Trd;
|
||||
class G4Trap;
|
||||
class G4Cons;
|
||||
class G4Sphere;
|
||||
class G4Torus;
|
||||
class G4Para;
|
||||
class G4Hype;
|
||||
class G4Box;
|
||||
class G4Orb;
|
||||
class G4Polycone;
|
||||
class G4Polyhedra;
|
||||
|
||||
class RE01TrackerParametrisation : public G4VPVParameterisation
|
||||
{
|
||||
public:
|
||||
|
||||
RE01TrackerParametrisation();
|
||||
virtual ~RE01TrackerParametrisation();
|
||||
void ComputeTransformation(const G4int copyNo,
|
||||
G4VPhysicalVolume *physVol) const;
|
||||
void ComputeDimensions( G4Tubs & trackerLayer,
|
||||
const G4int copyNo,
|
||||
const G4VPhysicalVolume * physVol) const;
|
||||
|
||||
private: // Dummy declarations to get rid of warnings ...
|
||||
|
||||
void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Box&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {}
|
||||
|
||||
private:
|
||||
|
||||
#include "RE01DetectorParameterDef.hh"
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01TrackerSD.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
#ifndef RE01TrackerSD_h
|
||||
#define RE01TrackerSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "RE01TrackerHit.hh"
|
||||
class G4Step;
|
||||
class G4HCofThisEvent;
|
||||
class G4TouchableHistory;
|
||||
|
||||
class RE01TrackerSD : public G4VSensitiveDetector
|
||||
{
|
||||
|
||||
public:
|
||||
RE01TrackerSD(G4String name);
|
||||
~RE01TrackerSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*HCE);
|
||||
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
|
||||
void EndOfEvent(G4HCofThisEvent*HCE);
|
||||
void clear();
|
||||
void DrawAll();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
RE01TrackerHitsCollection *trackerCollection;
|
||||
|
||||
public:
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01TrackingAction.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01TrackingAction_h
|
||||
#define RE01TrackingAction_h 1
|
||||
|
||||
#include "G4UserTrackingAction.hh"
|
||||
|
||||
|
||||
class RE01TrackingAction : public G4UserTrackingAction {
|
||||
|
||||
public:
|
||||
RE01TrackingAction(){};
|
||||
virtual ~RE01TrackingAction(){};
|
||||
|
||||
virtual void PreUserTrackingAction(const G4Track*);
|
||||
virtual void PostUserTrackingAction(const G4Track*);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,120 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RE01Trajectory.hh,v 1.1 2004/11/26 07:37:41 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef RE01Trajectory_h
|
||||
#define RE01Trajectory_h 1
|
||||
|
||||
#include "G4VTrajectory.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include <stdlib.h>
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4TrajectoryPoint.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
#include <vector>
|
||||
|
||||
class G4Polyline;
|
||||
|
||||
typedef std::vector<G4VTrajectoryPoint*> RE01TrajectoryPointContainer;
|
||||
|
||||
class RE01Trajectory : public G4VTrajectory
|
||||
{
|
||||
public:
|
||||
RE01Trajectory();
|
||||
RE01Trajectory(const G4Track* aTrack);
|
||||
RE01Trajectory(RE01Trajectory &);
|
||||
virtual ~RE01Trajectory();
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
inline int operator == (const RE01Trajectory& right) const
|
||||
{return (this==&right);}
|
||||
|
||||
virtual G4int GetTrackID() const
|
||||
{ return fTrackID; }
|
||||
virtual G4int GetParentID() const
|
||||
{ return fParentID; }
|
||||
virtual G4String GetParticleName() const
|
||||
{ return ParticleName; }
|
||||
virtual G4double GetCharge() const
|
||||
{ return PDGCharge; }
|
||||
virtual G4int GetPDGEncoding() const
|
||||
{ return PDGEncoding; }
|
||||
virtual G4ThreeVector GetInitialMomentum() const
|
||||
{ return momentum; }
|
||||
virtual int GetPointEntries() const
|
||||
{ return positionRecord->size(); }
|
||||
virtual G4VTrajectoryPoint* GetPoint(G4int i) const
|
||||
{ return (*positionRecord)[i]; }
|
||||
|
||||
virtual void ShowTrajectory(std::ostream& os=G4cout) const;
|
||||
virtual void DrawTrajectory(G4int i_mode=0) const;
|
||||
virtual void AppendStep(const G4Step* aStep);
|
||||
virtual void MergeTrajectory(G4VTrajectory* secondTrajectory);
|
||||
|
||||
G4ParticleDefinition* GetParticleDefinition();
|
||||
|
||||
inline const G4int GetTrackStatus() const
|
||||
{ return fTrackStatus; }
|
||||
inline const G4ThreeVector& GetVertexPosition() const
|
||||
{ return vertexPosition; }
|
||||
inline G4double GetGlobalTime() const
|
||||
{ return globalTime; }
|
||||
private:
|
||||
RE01TrajectoryPointContainer* positionRecord;
|
||||
G4int fTrackID;
|
||||
G4int fParentID;
|
||||
G4int fTrackStatus;
|
||||
G4ParticleDefinition* fpParticleDefinition;
|
||||
G4String ParticleName;
|
||||
G4double PDGCharge;
|
||||
G4int PDGEncoding;
|
||||
G4ThreeVector momentum;
|
||||
G4ThreeVector vertexPosition;
|
||||
G4double globalTime;
|
||||
|
||||
};
|
||||
|
||||
extern G4Allocator<RE01Trajectory> myTrajectoryAllocator;
|
||||
|
||||
inline void* RE01Trajectory::operator new(size_t)
|
||||
{
|
||||
void* aTrajectory;
|
||||
aTrajectory = (void*)myTrajectoryAllocator.MallocSingle();
|
||||
return aTrajectory;
|
||||
}
|
||||
|
||||
inline void RE01Trajectory::operator delete(void* aTrajectory)
|
||||
{
|
||||
myTrajectoryAllocator.FreeSingle((RE01Trajectory*)aTrajectory);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user