Import Geant4 10.0.0 source tree
This commit is contained in:
Executable → Regular
+20
-20
@@ -23,13 +23,13 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XAlminumElectrodeHit.hh
|
||||
/// \brief Definition of the XAlminumElectrodeHit class
|
||||
/// \file exoticphysics/phonon/include/XAluminumElectrodeHit.hh
|
||||
/// \brief Definition of the XAluminumElectrodeHit class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XAluminumElectrodeHit.hh 76246 2013-11-08 11:17:29Z gcosmo $
|
||||
//
|
||||
#ifndef XAlminumElectrodeHit_h
|
||||
#define XAlminumElectrodeHit_h 1
|
||||
#ifndef XAluminumElectrodeHit_h
|
||||
#define XAluminumElectrodeHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
@@ -39,15 +39,15 @@
|
||||
class G4AttDef;
|
||||
class G4AttValue;
|
||||
|
||||
class XAlminumElectrodeHit : public G4VHit
|
||||
class XAluminumElectrodeHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
XAlminumElectrodeHit();
|
||||
virtual ~XAlminumElectrodeHit();
|
||||
XAlminumElectrodeHit(const XAlminumElectrodeHit &right);
|
||||
const XAlminumElectrodeHit& operator=(const XAlminumElectrodeHit &right);
|
||||
int operator==(const XAlminumElectrodeHit &right) const;
|
||||
XAluminumElectrodeHit();
|
||||
virtual ~XAluminumElectrodeHit();
|
||||
XAluminumElectrodeHit(const XAluminumElectrodeHit &right);
|
||||
const XAluminumElectrodeHit& operator=(const XAluminumElectrodeHit &right);
|
||||
int operator==(const XAluminumElectrodeHit &right) const;
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aHit);
|
||||
@@ -58,14 +58,14 @@ class XAlminumElectrodeHit : public G4VHit
|
||||
virtual void Print();
|
||||
|
||||
private:
|
||||
G4double time;
|
||||
G4double fTime;
|
||||
G4double fEdep;
|
||||
G4ThreeVector fLocalPos;
|
||||
G4ThreeVector fWorldPos;
|
||||
|
||||
public:
|
||||
inline void SetTime(G4double t) { time = t; }
|
||||
inline G4double GetTime() const { return time; }
|
||||
inline void SetTime(G4double t) { fTime = t; }
|
||||
inline G4double GetTime() const { return fTime; }
|
||||
inline void SetEDep(G4double e) { fEdep = e; }
|
||||
inline G4double GetEDep() const { return fEdep; }
|
||||
inline void SetLocalPos(G4ThreeVector xyz) { fLocalPos = xyz; }
|
||||
@@ -74,20 +74,20 @@ class XAlminumElectrodeHit : public G4VHit
|
||||
inline G4ThreeVector GetWorldPos() const { return fWorldPos; }
|
||||
};
|
||||
|
||||
typedef G4THitsCollection<XAlminumElectrodeHit> XAlminumElectrodeHitsCollection;
|
||||
typedef G4THitsCollection<XAluminumElectrodeHit> XAluminumElectrodeHitsCollection;
|
||||
|
||||
extern G4Allocator<XAlminumElectrodeHit> XAlminumElectrodeHitAllocator;
|
||||
extern G4Allocator<XAluminumElectrodeHit> XAluminumElectrodeHitAllocator;
|
||||
|
||||
inline void* XAlminumElectrodeHit::operator new(size_t)
|
||||
inline void* XAluminumElectrodeHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*)XAlminumElectrodeHitAllocator.MallocSingle();
|
||||
aHit = (void*)XAluminumElectrodeHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
inline void XAlminumElectrodeHit::operator delete(void* aHit)
|
||||
inline void XAluminumElectrodeHit::operator delete(void* aHit)
|
||||
{
|
||||
XAlminumElectrodeHitAllocator.FreeSingle((XAlminumElectrodeHit*) aHit);
|
||||
XAluminumElectrodeHitAllocator.FreeSingle((XAluminumElectrodeHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
Executable → Regular
+13
-13
@@ -23,16 +23,16 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XAlminumElectrodeSensitivity.hh
|
||||
/// \brief Definition of the XAlminumElectrodeSensitivity class
|
||||
/// \file exoticphysics/phonon/include/XAluminumElectrodeSensitivity.hh
|
||||
/// \brief Definition of the XAluminumElectrodeSensitivity class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XAluminumElectrodeSensitivity.hh 76246 2013-11-08 11:17:29Z gcosmo $
|
||||
//
|
||||
#ifndef XAlminumElectrodeSensitivity_h
|
||||
#define XAlminumElectrodeSensitivity_h 1
|
||||
#ifndef XAluminumElectrodeSensitivity_h
|
||||
#define XAluminumElectrodeSensitivity_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "XAlminumElectrodeHit.hh"
|
||||
#include "XAluminumElectrodeHit.hh"
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
@@ -44,26 +44,26 @@ class G4TouchableHistory;
|
||||
using namespace std;
|
||||
|
||||
|
||||
class XAlminumElectrodeSensitivity : public G4VSensitiveDetector
|
||||
class XAluminumElectrodeSensitivity : public G4VSensitiveDetector
|
||||
{
|
||||
|
||||
public:
|
||||
XAlminumElectrodeSensitivity(G4String);
|
||||
virtual ~XAlminumElectrodeSensitivity();
|
||||
XAluminumElectrodeSensitivity(G4String);
|
||||
virtual ~XAluminumElectrodeSensitivity();
|
||||
|
||||
virtual void Initialize(G4HCofThisEvent*);
|
||||
virtual G4bool ProcessHits(G4Step*,G4TouchableHistory*);
|
||||
virtual void EndOfEvent(G4HCofThisEvent*);
|
||||
|
||||
XAlminumElectrodeHitsCollection* GetHitsCollection();
|
||||
static XAlminumElectrodeHitsCollection* hitsCollection;
|
||||
XAluminumElectrodeHitsCollection* GetHitsCollection();
|
||||
static XAluminumElectrodeHitsCollection* fHitsCollection;
|
||||
|
||||
private:
|
||||
//XAlminumElectrodeHitsCollection * hitsCollection;
|
||||
//XAluminumElectrodeHitsCollection * hitsCollection;
|
||||
ofstream fWriter; //writing hit posn to file. Temporary fix.
|
||||
ofstream fWriter2; //writing timing information to file. Temporary fix.
|
||||
|
||||
G4int HCID;
|
||||
G4int fHCID;
|
||||
};
|
||||
|
||||
|
||||
Executable → Regular
+20
-26
@@ -26,7 +26,7 @@
|
||||
/// \file exoticphysics/phonon/include/XDetectorConstruction.hh
|
||||
/// \brief Definition of the XDetectorConstruction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XDetectorConstruction.hh 76246 2013-11-08 11:17:29Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef XDetectorConstruction_h
|
||||
@@ -34,39 +34,33 @@
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
#include "XLatticeManager3.hh"
|
||||
|
||||
|
||||
|
||||
class G4Material;
|
||||
class G4VPhysicalVolume;
|
||||
class XDetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
public:
|
||||
XDetectorConstruction();
|
||||
virtual ~XDetectorConstruction();
|
||||
|
||||
class XDetectorConstruction : public G4VUserDetectorConstruction {
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
|
||||
XDetectorConstruction();
|
||||
virtual ~XDetectorConstruction();
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
|
||||
private:
|
||||
void DefineMaterials();
|
||||
void SetupGeometry();
|
||||
|
||||
private:
|
||||
|
||||
static const G4String fsCrystalMapsDir;
|
||||
|
||||
G4Material* fLiquidHelium;
|
||||
G4Material* fGermanium;
|
||||
G4Material* fAlminum;
|
||||
G4Material* fTungsten;
|
||||
G4VPhysicalVolume* fWorldPhys;
|
||||
G4bool fConstructed;
|
||||
G4bool fIfField;
|
||||
|
||||
public:
|
||||
inline void Field(G4bool bl) { fIfField = bl; }
|
||||
|
||||
private:
|
||||
G4Material* fLiquidHelium;
|
||||
G4Material* fGermanium;
|
||||
G4Material* fAluminum;
|
||||
G4Material* fTungsten;
|
||||
G4VPhysicalVolume* fWorldPhys;
|
||||
G4bool fConstructed;
|
||||
G4bool fIfField;
|
||||
|
||||
public:
|
||||
inline void Field(G4bool bl) { fIfField = bl; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XLPhonon.hh
|
||||
/// \brief Definition of the XLPhonon class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XLPhonon_h
|
||||
#define XLPhonon_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
|
||||
class XLPhonon : public G4ParticleDefinition
|
||||
{
|
||||
private:
|
||||
static XLPhonon* theInstance;
|
||||
|
||||
private:
|
||||
XLPhonon () {}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
/* static void SetXLatticeManager(XLatticeManager2*);
|
||||
static XLatticeManager2* GetXLatticeManager();*/
|
||||
~XLPhonon (){}
|
||||
|
||||
static XLPhonon* Definition();
|
||||
static XLPhonon* PhononDefinition();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XLatticeManager3.hh
|
||||
/// \brief Definition of the XLatticeManager3 class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XLatticeManager3_h
|
||||
#define XLatticeManager3_h 1
|
||||
|
||||
|
||||
#define MAXLAT 10 //maximum number of different crystal lattices supported
|
||||
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "XPhysicalLattice.hh"
|
||||
|
||||
class XLatticeManager3
|
||||
{
|
||||
private:
|
||||
static XLatticeManager3* LM;
|
||||
|
||||
protected:
|
||||
XLatticeManager3();
|
||||
~XLatticeManager3();
|
||||
|
||||
XPhysicalLattice* fLatticeList[MAXLAT];
|
||||
int fTotalLattices;
|
||||
|
||||
public:
|
||||
|
||||
static XLatticeManager3* GetXLatticeManager();
|
||||
|
||||
XPhysicalLattice* GetXPhysicalLattice(G4VPhysicalVolume*);
|
||||
bool RegisterLattice(XPhysicalLattice*);
|
||||
bool HasLattice(G4VPhysicalVolume*);
|
||||
double MapKtoV(G4VPhysicalVolume*,int,const G4ThreeVector &);
|
||||
G4ThreeVector MapKtoVDir(G4VPhysicalVolume*,int,const G4ThreeVector &);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,99 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XLogicalLattice.hh
|
||||
/// \brief Definition of the XLogicalLattice class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XLogicalLattice_h
|
||||
#define XLogicalLattice_h
|
||||
|
||||
#define MAXRES 322 //maximum one dimensional map resolution
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
class XLogicalLattice{
|
||||
|
||||
private:
|
||||
|
||||
int fVresTheta; //velocity map theta resolution (inclination)
|
||||
int fVresPhi; //velocity map phi resolution (azimuth)
|
||||
int fDresTheta; //direction map theta resn
|
||||
int fDresPhi; //direction map phi resn
|
||||
|
||||
double fMap[3][MAXRES][MAXRES]; //map for group velocity scalars
|
||||
double fN_map[3][MAXRES][MAXRES][3];//normalized map containing group V direction unit vectors
|
||||
|
||||
double fA; //Scaling constant for Anh.Dec. mean free path
|
||||
double fB; //Scaling constant for Iso.Scat. mean free path
|
||||
double fDosL; //Density of states for L-phonons
|
||||
double fDosST; //Density of states for ST-phonons
|
||||
double fDosFT; //Density of states for FT-phonons
|
||||
double fBeta, fGamma, fLambda, fMu; //dynamical constants for material
|
||||
|
||||
|
||||
ifstream fMapFile;
|
||||
int fThetaRes, fPhiRes;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
|
||||
XLogicalLattice();
|
||||
~XLogicalLattice();
|
||||
|
||||
void SetDynamicalConstants(double, double, double, double);
|
||||
void SetScatteringConstant(G4double);
|
||||
void SetAnhDecConstant(G4double);
|
||||
void SetLDOS(double);
|
||||
void SetSTDOS(double);
|
||||
void SetFTDOS(double);
|
||||
|
||||
double GetBeta();
|
||||
double GetGamma();
|
||||
double GetLambda();
|
||||
double GetMu();
|
||||
G4double GetScatteringConstant();
|
||||
G4double GetAnhDecConstant();
|
||||
double GetLDOS();
|
||||
double GetSTDOS();
|
||||
double GetFTDOS();
|
||||
|
||||
bool LoadMap(int, int, int, string);
|
||||
bool Load_NMap(int, int, int, string);
|
||||
double MapKtoV(int, G4ThreeVector); //Get full group velocity vector
|
||||
G4ThreeVector MapKtoVDir(int, G4ThreeVector);//Get normalized group velocity direction so that normalisatioon does not have to be done at run time
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,95 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhononDownconversionProcess.hh
|
||||
/// \brief Definition of the XPhononDownconversionProcess class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XPhononDownconversionProcess_h
|
||||
#define XPhononDownconversionProcess_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
|
||||
#include "XPhysicalLattice.hh"
|
||||
|
||||
class XPhononDownconversionProcess : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
XPhononDownconversionProcess(const G4String& processName ="XPhononDownconversionProcess" );
|
||||
|
||||
virtual ~XPhononDownconversionProcess();
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(
|
||||
const G4Track&, const G4Step& );
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double GetMeanFreePath(
|
||||
const G4Track&, G4double, G4ForceCondition* );
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
double fBeta, fGamma, fLambda, fMu;
|
||||
|
||||
// hide assignment operator as private
|
||||
XPhononDownconversionProcess(XPhononDownconversionProcess&);
|
||||
XPhononDownconversionProcess& operator=(const XPhononDownconversionProcess& right);
|
||||
|
||||
// relative probability that anharmonic decay occurs L->L'+T'
|
||||
inline double GetLTDecayProb(G4double, G4double);
|
||||
inline double GetTTDecayProb(G4double, G4double);
|
||||
inline double MakeLDeviation(G4double, G4double);
|
||||
inline double MakeTTDeviation(G4double, G4double);
|
||||
inline double MakeTDeviation(G4double, G4double);
|
||||
void MakeTTSecondaries(const G4Track&);
|
||||
void MakeLTSecondaries(const G4Track&);
|
||||
|
||||
|
||||
|
||||
XPhysicalLattice* Lattice;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhononReflectionProcess.hh
|
||||
/// \brief Definition of the XPhononReflectionProcess class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XPhononReflectionProcess_h
|
||||
#define XPhononReflectionProcess_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
|
||||
class G4Material;
|
||||
|
||||
class XPhononReflectionProcess : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
XPhononReflectionProcess(const G4String& processName ="XPhononReflectionProcess" );
|
||||
|
||||
virtual ~XPhononReflectionProcess();
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(
|
||||
const G4Track&, const G4Step& );
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&);
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double GetMeanFreePath(
|
||||
const G4Track&, G4double, G4ForceCondition* );
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
XPhononReflectionProcess(XPhononReflectionProcess&);
|
||||
XPhononReflectionProcess& operator=(const XPhononReflectionProcess& right);
|
||||
|
||||
private:
|
||||
|
||||
G4Material* fAlminum;
|
||||
G4double kCarTolerance;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhononScatteringProcess.hh
|
||||
/// \brief Definition of the XPhononScatteringProcess class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XPhononScatteringProcess_h
|
||||
#define XPhononScatteringProcess_h 1
|
||||
#define LON 0
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "XLatticeManager3.hh"
|
||||
|
||||
class XPhononScatteringProcess : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
XPhononScatteringProcess(const G4String& processName ="XPhononScattering" );
|
||||
|
||||
virtual ~XPhononScatteringProcess();
|
||||
|
||||
virtual G4VParticleChange* PostStepDoIt(
|
||||
const G4Track&, const G4Step& );
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double GetMeanFreePath(
|
||||
const G4Track&, G4double, G4ForceCondition* );
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator as private
|
||||
XPhononScatteringProcess(XPhononScatteringProcess&);
|
||||
XPhononScatteringProcess& operator=(const XPhononScatteringProcess& right);
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Executable → Regular
+1
-1
@@ -26,7 +26,7 @@
|
||||
/// \file exoticphysics/phonon/include/XPhononStackingAction.hh
|
||||
/// \brief Definition of the XPhononStackingAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XPhononStackingAction.hh 76246 2013-11-08 11:17:29Z gcosmo $
|
||||
//
|
||||
#ifndef XPhononStackingAction_h
|
||||
#define XPhononStackingAction_h 1
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhononTrackInformation.hh
|
||||
/// \brief Definition of the XPhononTrackInformation class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XPhononTrackInformation_h
|
||||
#define XPhononTrackInformation_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4VUserTrackInformation.hh"
|
||||
|
||||
class XPhononTrackInformation : public G4VUserTrackInformation
|
||||
{
|
||||
|
||||
public:
|
||||
XPhononTrackInformation();
|
||||
XPhononTrackInformation(const G4Track* aTrack);
|
||||
XPhononTrackInformation(const XPhononTrackInformation* aTrackInfo);
|
||||
XPhononTrackInformation(G4ThreeVector kNew);
|
||||
virtual ~XPhononTrackInformation();
|
||||
|
||||
inline void *operator new(size_t);
|
||||
inline void operator delete(void *aTrackInfo);
|
||||
inline int operator == (const XPhononTrackInformation& right) const {return (this==&right);}
|
||||
|
||||
XPhononTrackInformation& operator = (const XPhononTrackInformation& right);
|
||||
|
||||
//void SetSourceTrackInformation(const G4Track* aTrack);
|
||||
void Print() const;
|
||||
|
||||
private:
|
||||
G4ThreeVector fK;
|
||||
|
||||
public:
|
||||
inline G4ThreeVector GetK() const {return fK;}
|
||||
inline void SetK(G4ThreeVector kNew){fK=G4ThreeVector(kNew);}
|
||||
|
||||
};
|
||||
|
||||
extern G4Allocator<XPhononTrackInformation> aTrackInformationAllocator;
|
||||
|
||||
inline void* XPhononTrackInformation::operator new(size_t)
|
||||
{ void* aTrackInfo;
|
||||
aTrackInfo = (void*)aTrackInformationAllocator.MallocSingle();
|
||||
return aTrackInfo;
|
||||
|
||||
}
|
||||
|
||||
inline void XPhononTrackInformation::operator delete(void *aTrackInfo)
|
||||
{ aTrackInformationAllocator.FreeSingle((XPhononTrackInformation*)aTrackInfo);}
|
||||
|
||||
#endif
|
||||
@@ -1,92 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhysicalLattice.hh
|
||||
/// \brief Definition of the XPhysicalLattice class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
#ifndef XPhysicalLattice_h
|
||||
#define XPhysicalLattice_h 1
|
||||
|
||||
#include "XLogicalLattice.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4AffineTransform.hh"
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
|
||||
|
||||
class XPhysicalLattice{
|
||||
|
||||
private:
|
||||
G4double fTheta, fPhi;
|
||||
XLogicalLattice* fLattice;
|
||||
G4VPhysicalVolume* fVolume;
|
||||
|
||||
double fA; //Scaling constant for Anh.Dec. mean free path
|
||||
double fB; //Scaling constant for Iso.Scat. mean free path
|
||||
double fDosL; //Density of states for L-phonons
|
||||
double fDosST; //Density of states for ST-phonons
|
||||
double fDosFT; //Density of states for FT-phonons
|
||||
double fBeta, fGamma, fLambda, fMu; //dynamical constants for material
|
||||
|
||||
|
||||
public:
|
||||
G4AffineTransform fLocalToGlobal;
|
||||
G4AffineTransform fGlobalToLocal;
|
||||
|
||||
void SetDynamicalConstants(double, double, double, double);
|
||||
void SetScatteringConstant(G4double);
|
||||
void SetAnhDecConstant(G4double);
|
||||
void SetLDOS(double);
|
||||
void SetSTDOS(double);
|
||||
void SetFTDOS(double);
|
||||
|
||||
double GetBeta();
|
||||
double GetGamma();
|
||||
double GetLambda();
|
||||
double GetMu();
|
||||
G4double GetScatteringConstant();
|
||||
G4double GetAnhDecConstant();
|
||||
double GetLDOS();
|
||||
double GetSTDOS();
|
||||
double GetFTDOS();
|
||||
|
||||
|
||||
XPhysicalLattice();
|
||||
XPhysicalLattice(G4VPhysicalVolume*, XLogicalLattice*);
|
||||
~XPhysicalLattice();
|
||||
double MapKtoV(int, G4ThreeVector);
|
||||
G4ThreeVector MapKtoVDir(int, G4ThreeVector);
|
||||
G4VPhysicalVolume* GetVolume();
|
||||
void SetPhysicalVolume(G4VPhysicalVolume*);
|
||||
void SetXLogicalLattice(XLogicalLattice*);
|
||||
void SetLatticeOrientation(G4double, G4double);
|
||||
void SetMillerOrientation(int, int, int);
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Executable → Regular
+13
-15
@@ -26,30 +26,28 @@
|
||||
/// \file exoticphysics/phonon/include/XPhysicsList.hh
|
||||
/// \brief Definition of the XPhysicsList class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XPhysicsList.hh 76938 2013-11-19 09:51:36Z gcosmo $
|
||||
//
|
||||
// 20131117 Add verbosity argument, to set verbosity from main program
|
||||
|
||||
#ifndef XPhysicsList_h
|
||||
#define XPhysicsList_h 1
|
||||
|
||||
#include "G4VUserPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class XPhysicsList: public G4VUserPhysicsList
|
||||
{
|
||||
public:
|
||||
XPhysicsList();
|
||||
~XPhysicsList();
|
||||
|
||||
public:
|
||||
// Construct particle and physics
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
void SetCuts();
|
||||
private:
|
||||
|
||||
class XPhysicsList : public G4VUserPhysicsList {
|
||||
public:
|
||||
XPhysicsList(G4int verbose=0);
|
||||
~XPhysicsList();
|
||||
|
||||
// Construct particle and physics
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
virtual void SetCuts();
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif /* XPhysicsList_h */
|
||||
|
||||
|
||||
|
||||
|
||||
Executable → Regular
+2
-2
@@ -26,7 +26,7 @@
|
||||
/// \file exoticphysics/phonon/include/XPrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the XPrimaryGeneratorAction class
|
||||
//
|
||||
// $Id$
|
||||
// $Id: XPrimaryGeneratorAction.hh 76246 2013-11-08 11:17:29Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef XPrimaryGeneratorAction_h
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
virtual void GeneratePrimaries(G4Event*);
|
||||
|
||||
private:
|
||||
G4ParticleGun* particleGun;
|
||||
G4ParticleGun* fParticleGun;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XTPhononFast.hh
|
||||
/// \brief Definition of the XTPhononFast class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
#ifndef XTPhononFast_h
|
||||
#define XTPhononFast_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
|
||||
class XTPhononFast : public G4ParticleDefinition
|
||||
{
|
||||
private:
|
||||
static XTPhononFast* theInstance;
|
||||
|
||||
private:
|
||||
XTPhononFast () {}
|
||||
|
||||
|
||||
public:
|
||||
~XTPhononFast (){}
|
||||
|
||||
static XTPhononFast* Definition();
|
||||
static XTPhononFast* PhononDefinition();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XTPhononSlow.hh
|
||||
/// \brief Definition of the XTPhononSlow class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
#ifndef XTPhononSlow_h
|
||||
#define XTPhononSlow_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
class XTPhononSlow : public G4ParticleDefinition
|
||||
{
|
||||
private:
|
||||
static XTPhononSlow* theInstance;
|
||||
|
||||
private:
|
||||
XTPhononSlow () {}
|
||||
|
||||
public:
|
||||
|
||||
|
||||
~XTPhononSlow (){}
|
||||
|
||||
static XTPhononSlow* Definition();
|
||||
static XTPhononSlow* PhononDefinition();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user