Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/STCyclotron/include/STCyclotronDetectorConstruction.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/STCyclotron/include/STCyclotronDetectorConstruction.hh (Version 11.3.0) and /examples/advanced/STCyclotron/include/STCyclotronDetectorConstruction.hh (Version 8.3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //  Author: F. Poignant, floriane.poignant@gma    
 27 //                                                
 28 /// file STCyclotronDetectorConstruction.cc       
 29                                                   
 30 #ifndef STCyclotronDetectorConstruction_h         
 31 #define STCyclotronDetectorConstruction_h 1       
 32                                                   
 33 #include "G4VUserDetectorConstruction.hh"         
 34 #include "globals.hh"                             
 35 #include "G4PhysicalConstants.hh"                 
 36 #include <fstream>                                
 37                                                   
 38 class G4VPhysicalVolume;                          
 39 class G4LogicalVolume;                            
 40 class G4Region;                                   
 41 class G4Tubs;                                     
 42 class G4Material;                                 
 43 class STCyclotronDetectorMessenger;               
 44 class G4Element;                                  
 45                                                   
 46 /// Detector construction class to define mate    
 47                                                   
 48 class STCyclotronDetectorConstruction : public    
 49 {                                                 
 50 public:                                           
 51   STCyclotronDetectorConstruction();              
 52   ~STCyclotronDetectorConstruction();             
 53                                                   
 54   G4VPhysicalVolume* Construct();                 
 55   void ConstructSDandField();                     
 56                                                   
 57   void SetTargetDiameter(G4double );              
 58   void SetTargetIsotopeName(G4String );           
 59   void SetTargetIsotopeZ(G4double );              
 60   void SetTargetIsotopeN(G4int );                 
 61   void SetTargetIsotopeA(G4double );              
 62   void SetTargetElementName(G4String );           
 63   void SetTargetElementSymbole(G4String );        
 64   void SetTargetElementNComponents(G4int );       
 65   void SetTargetElementAbundance(G4double );      
 66   void SetTargetMaterialDensity(G4double );       
 67   void SetTargetMaterialNComponents(G4int );      
 68   void SetTargetMaterialFractionMass(G4double     
 69   void SetTargetNaturalElement(G4String );        
 70   void SetTargetNaturalMaterialFractionMass(G4    
 71   G4bool UpdateMaterial();                        
 72   void SetTargetMaterial(G4String );              
 73                                                   
 74   void SetFoilIsotopeName(G4String );             
 75   void SetFoilIsotopeZ(G4double );                
 76   void SetFoilIsotopeN(G4int );                   
 77   void SetFoilIsotopeA(G4double );                
 78   void SetFoilElementName(G4String );             
 79   void SetFoilElementSymbole(G4String );          
 80   void SetFoilElementNComponents(G4int );         
 81   void SetFoilElementAbundance(G4double );        
 82   void SetFoilMaterialDensity(G4double );         
 83   void SetFoilMaterialNComponents(G4int );        
 84   void SetFoilMaterialFractionMass(G4double );    
 85   void SetFoilNaturalElement(G4String );          
 86   void SetFoilNaturalMaterialFractionMass(G4do    
 87   G4bool UpdateFoilMaterial();                    
 88   void SetFoilMaterial(G4String );                
 89                                                   
 90   void SetTargetThickness(G4double );             
 91   void SetFoilThickness(G4double );               
 92                                                   
 93   //Get methods                                   
 94   inline G4double GetTargetPosition1(){return     
 95   inline G4double GetTargetPosition2(){return     
 96   inline G4double GetVolumeTarget(){return pi*    
 97   inline G4double GetFoilPosition1(){return fZ    
 98   inline G4double GetTargetVolume(){return fTa    
 99   inline G4double GetFoilVolume(){return fFoil    
100   inline G4double GetFoilThickness(){return fF    
101   inline G4double GetTargetThickness(){return     
102   inline G4double GetTargetDiameter(){return f    
103                                                   
104 private:                                          
105                                                   
106   STCyclotronDetectorMessenger* fDetectorMesse    
107                                                   
108   //Messenger parameters                          
109   G4double fTarget_diameter;                      
110   std::vector<G4String> fIsotopeName;             
111   std::vector<G4double> fIsotopeZ;                
112   std::vector<G4int>    fIsotopeN;                
113   std::vector<G4double> fIsotopeA;                
114   std::vector<G4String> fElementName;             
115   std::vector<G4String> fElementSymbole;          
116   std::vector<G4int>    fElementNComponents;      
117   std::vector<G4double> fElementAbundance;        
118   std::vector<G4String> fNaturalElementName;      
119   std::vector<G4double> fNaturalMaterialFracti    
120   G4double fDensity_target;                       
121   G4int    fTarget_NComponents;                   
122   std::vector<G4double> fMaterialFractionMass;    
123                                                   
124   std::vector<G4String> fIsotopeNameFoil;         
125   std::vector<G4double> fIsotopeZFoil;            
126   std::vector<G4int>    fIsotopeNFoil;            
127   std::vector<G4double> fIsotopeAFoil;            
128   std::vector<G4String> fElementNameFoil;         
129   std::vector<G4String> fElementSymboleFoil;      
130   std::vector<G4int>    fElementNComponentsFoi    
131   std::vector<G4double> fElementAbundanceFoil;    
132   std::vector<G4String> fNaturalElementNameFoi    
133   std::vector<G4double> fNaturalMaterialFracti    
134   G4double fDensity_foil;                         
135   G4int    fFoil_NComponents;                     
136   std::vector<G4double> fMaterialFractionMassF    
137                                                   
138   G4double fTarget_thickness;                     
139   G4double fFoil_thickness;                       
140                                                   
141   //Parameters that are used/modified in the s    
142   //When modifying the target parameters          
143                                                   
144   //Material                                      
145   G4Material* fTarget_Material;                   
146   G4Material* fFoil_Material;                     
147   //Foil                                          
148   G4double fZ_foil_position;                      
149   G4Tubs* fSolidFoil;                             
150   G4LogicalVolume* fLogicFoil;                    
151   G4VPhysicalVolume* fPhysFoil;                   
152   //WORLD                                         
153   G4LogicalVolume* fLogicWorld;                   
154   //PART 3                                        
155   G4double fLayer_z_position_PART3;               
156   G4VPhysicalVolume* fPhysLayer_PART3;            
157   G4VPhysicalVolume* fPhysTube_PART3;             
158   //PART 4                                        
159   G4double fTube_outerRadius_PART4;               
160   G4double fTube_length_PART4;                    
161   G4double fLayer_z_position_PART4;               
162   G4VPhysicalVolume* fPhysTube_PART4;             
163   G4VPhysicalVolume* fPhysLayer_PART4;            
164   G4double fLayer1_z_position_PART4;              
165   G4VPhysicalVolume* fPhysLayer1_PART4;           
166   //Target                                        
167   G4LogicalVolume* fLogicTarget;                  
168   G4double fTarget_z_position;                    
169   G4Tubs* fSolidTarget;                           
170   G4VPhysicalVolume* fPhysTarget;                 
171   //PART 5                                        
172   G4double fLayer1_z_position_PART5;              
173   G4VPhysicalVolume* fPhysLayer1_PART5;           
174   G4double fLayer2_z_position_PART5;              
175   G4VPhysicalVolume* fPhysLayer2_PART5;           
176   G4double fLayer3_z_position_PART5;              
177   G4VPhysicalVolume* fPhysLayer3_PART5;           
178                                                   
179   G4Region* fRegionTarget;                        
180   G4Region* fRegionFoil;                          
181                                                   
182   G4double fTargetVolume;                         
183   G4double fFoilVolume;                           
184                                                   
185   std::ofstream fParametersSummary;               
186                                                   
187 };                                                
188 #endif                                            
189