Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TransitionRadiationPhysics Class Reference

#include <TransitionRadiationPhysics.hh>

Inheritance diagram for TransitionRadiationPhysics:
Collaboration diagram for TransitionRadiationPhysics:

Public Member Functions

 TransitionRadiationPhysics (G4int verb, DetectorConstruction *ptr)
 
virtual ~TransitionRadiationPhysics ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
void SetXTRModel (const G4String &name)
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 45 of file TransitionRadiationPhysics.hh.

Constructor & Destructor Documentation

TransitionRadiationPhysics::TransitionRadiationPhysics ( G4int  verb,
DetectorConstruction ptr 
)

Definition at line 54 of file TransitionRadiationPhysics.cc.

56  : G4VPhysicsConstructor("XTR"),
57  fDetector(ptr),
58  fVerbose(verb),
59  fXTRModel("transpM")
60 {}
G4VPhysicsConstructor(const G4String &="")
TransitionRadiationPhysics::~TransitionRadiationPhysics ( )
virtual

Definition at line 64 of file TransitionRadiationPhysics.cc.

65 {}

Member Function Documentation

virtual void TransitionRadiationPhysics::ConstructParticle ( void  )
inlinevirtual

Implements G4VPhysicsConstructor.

Definition at line 52 of file TransitionRadiationPhysics.hh.

52 {};
void TransitionRadiationPhysics::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 69 of file TransitionRadiationPhysics.cc.

70 {
71  if("dummy" == fXTRModel) { return; }
72  if(0 < fVerbose) {
73  G4cout<< "TransitionRadiationPhysics: XTR model <" << fXTRModel
74  << ">" <<G4endl;
75  }
76  RadiatorDescription* rDescription = fDetector->GetRadiatorDescription();
77 
78  if(fXTRModel == "gammaR" ) {
79 
80  fXTRProcess = new G4GammaXTRadiator(rDescription->fLogicalVolume,
81  100., 100.,
82  rDescription->fFoilMaterial,
83  rDescription->fGasMaterial,
84  rDescription->fFoilThickness,
85  rDescription->fGasThickness,
86  rDescription->fFoilNumber,
87  "GammaXTRadiator");
88  }
89  else if(fXTRModel == "gammaM" )
90  {
91  fXTRProcess = new G4XTRGammaRadModel(rDescription->fLogicalVolume,
92  100., 100.,
93  rDescription->fFoilMaterial,
94  rDescription->fGasMaterial,
95  rDescription->fFoilThickness,
96  rDescription->fGasThickness,
97  rDescription->fFoilNumber,
98  "GammaXTRadiator");
99  }
100  else if(fXTRModel == "strawR" )
101  {
102  fXTRProcess = new G4StrawTubeXTRadiator(rDescription->fLogicalVolume,
103  rDescription->fFoilMaterial,
104  rDescription->fGasMaterial,
105  0.53,
106  3.14159,
107  fDetector->GetAbsorberMaterial(),
108  true,
109  "strawXTRadiator");
110  }
111  else if(fXTRModel == "regR" )
112  {
113  fXTRProcess = new G4RegularXTRadiator(rDescription->fLogicalVolume,
114  rDescription->fFoilMaterial,
115  rDescription->fGasMaterial,
116  rDescription->fFoilThickness,
117  rDescription->fGasThickness,
118  rDescription->fFoilNumber,
119  "RegularXTRadiator");
120  }
121  else if(fXTRModel == "transpR" )
122  {
123  // G4TransparentRegXTRadiator*
124  fXTRProcess = new G4TransparentRegXTRadiator(rDescription->fLogicalVolume,
125  rDescription->fFoilMaterial,
126  rDescription->fGasMaterial,
127  rDescription->fFoilThickness,
128  rDescription->fGasThickness,
129  rDescription->fFoilNumber,
130  "RegularXTRadiator");
131  }
132  else if(fXTRModel == "regM" )
133  {
134  fXTRProcess = new G4XTRRegularRadModel(rDescription->fLogicalVolume,
135  rDescription->fFoilMaterial,
136  rDescription->fGasMaterial,
137  rDescription->fFoilThickness,
138  rDescription->fGasThickness,
139  rDescription->fFoilNumber,
140  "RegularXTRadiator");
141 
142  }
143  else if(fXTRModel == "transpM" )
144  {
145  fXTRProcess = new XTRTransparentRegRadModel(rDescription->fLogicalVolume,
146  rDescription->fFoilMaterial,
147  rDescription->fGasMaterial,
148  rDescription->fFoilThickness,
149  rDescription->fGasThickness,
150  rDescription->fFoilNumber,
151  "RegularXTRadiator");
152  }
153  if(!fXTRProcess) {
154  if(0 < fVerbose) {
155  G4cout<< "TransitionRadiationPhysics: XTR model <" << fXTRModel
156  << "> is not known - no XTR process defined" <<G4endl;
157  }
158  return;
159  }
160 
161  fXTRProcess->SetVerboseLevel(fVerbose);
162 
164  G4ProcessManager* manager = elec->GetProcessManager();
165  manager->AddDiscreteProcess(fXTRProcess);
166 
168  manager = posi->GetProcessManager();
169  manager->AddDiscreteProcess(fXTRProcess);
170 }
RadiatorDescription * GetRadiatorDescription() const
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4GLOB_DLL std::ostream G4cout
G4Material * GetAbsorberMaterial()
static G4Positron * Positron()
Definition: G4Positron.cc:94
G4ProcessManager * GetProcessManager() const
static G4Electron * Electron()
Definition: G4Electron.cc:94
#define G4endl
Definition: G4ios.hh:61
G4LogicalVolume * fLogicalVolume
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:437

Here is the call graph for this function:

void TransitionRadiationPhysics::SetXTRModel ( const G4String name)
inline

Definition at line 59 of file TransitionRadiationPhysics.hh.

59 { fXTRModel = name; };
const XML_Char * name
Definition: expat.h:151

Here is the caller graph for this function:


The documentation for this class was generated from the following files: