Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/biasing/importance/include/G4ImportanceProcess.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 /processes/biasing/importance/include/G4ImportanceProcess.hh (Version 11.3.0) and /processes/biasing/importance/include/G4ImportanceProcess.hh (Version 9.5.p2)


  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 // G4ImportanceProcess                            
 27 //                                                
 28 // Class description:                             
 29 //                                                
 30 // Used internally by importance sampling in t    
 31 // This process is a forced post step process.    
 32 // importance sampling if the particle crosses    
 33 // "mass" geometry.                               
 34                                                   
 35 // Author: Michael Dressel, 2002                  
 36 // -------------------------------------------    
 37 #ifndef G4ImportanceProcess_hh                    
 38 #define G4ImportanceProcess_hh 1                  
 39                                                   
 40 #include "G4VProcess.hh"                          
 41 #include "G4VTrackTerminator.hh"                  
 42 #include "G4VTouchable.hh"                        
 43                                                   
 44 class G4SamplingPostStepAction;                   
 45 class G4VImportanceAlgorithm;                     
 46 class G4VIStore;                                  
 47                                                   
 48 class G4Step;                                     
 49 class G4Navigator;                                
 50 class G4TransportationManager;                    
 51 class G4PathFinder;                               
 52                                                   
 53 #include "G4FieldTrack.hh"                        
 54 #include "G4TouchableHandle.hh"                   
 55 #include "G4MultiNavigator.hh"   // For ELimit    
 56                                                   
 57 class G4ImportanceProcess : public G4VProcess,    
 58 {                                                 
 59                                                   
 60  public:                                          
 61                                                   
 62   G4ImportanceProcess(const G4VImportanceAlgor    
 63                       const G4VIStore &aIstore    
 64                       const G4VTrackTerminator    
 65                       const G4String &aName =     
 66                             G4bool para = fals    
 67     // creates a G4ParticleChange                 
 68                                                   
 69   virtual ~G4ImportanceProcess();                 
 70     // delete the G4ParticleChange                
 71                                                   
 72   G4ImportanceProcess(const G4ImportanceProces    
 73   G4ImportanceProcess &operator=(const G4Impor    
 74                                                   
 75   //------------------------------------------    
 76   // Set Parallel World                           
 77   //------------------------------------------    
 78                                                   
 79   void SetParallelWorld(const G4String& parall    
 80                                                   
 81   //------------------------------------------    
 82   //     Process interface                        
 83   //------------------------------------------    
 84                                                   
 85   void StartTracking(G4Track*);                   
 86                                                   
 87                                                   
 88   virtual G4double                                
 89   PostStepGetPhysicalInteractionLength(const G    
 90                                        G4doubl    
 91                                        G4Force    
 92     // make process beeing forced                 
 93                                                   
 94   virtual G4VParticleChange* PostStepDoIt(cons    
 95     // manage the importance sampling in the "    
 96                                                   
 97   virtual void KillTrack() const;                 
 98     // used in case no scoring process follows    
 99                                                   
100   virtual const G4String& GetName() const;        
101                                                   
102   //  no operation in  AtRestDoIt and  AlongSt    
103                                                   
104   virtual G4double                                
105   AlongStepGetPhysicalInteractionLength(const     
106                                         G4doub    
107                                         G4doub    
108                                         G4doub    
109                                         G4GPIL    
110   virtual G4double                                
111   AtRestGetPhysicalInteractionLength(const G4T    
112                                      G4ForceCo    
113                                                   
114   virtual G4VParticleChange* AtRestDoIt(const     
115   virtual G4VParticleChange* AlongStepDoIt(con    
116                                                   
117  private:                                         
118                                                   
119   void CopyStep(const G4Step& step);              
120                                                   
121   G4Step* fGhostStep = nullptr;                   
122   G4StepPoint* fGhostPreStepPoint = nullptr;      
123   G4StepPoint* fGhostPostStepPoint = nullptr;     
124                                                   
125   G4ParticleChange* fParticleChange = nullptr;    
126   const G4VImportanceAlgorithm &fImportanceAlg    
127   const G4VIStore& fIStore;                       
128   G4SamplingPostStepAction* fPostStepAction =     
129                                                   
130   G4TransportationManager* fTransportationMana    
131   G4PathFinder* fPathFinder = nullptr;            
132                                                   
133   // -------------------------------              
134   // Navigation in the Ghost World:               
135   // -------------------------------              
136   G4String             fGhostWorldName = "NoPa    
137   G4VPhysicalVolume*   fGhostWorld = nullptr;     
138   G4Navigator*         fGhostNavigator = nullp    
139   G4int                fNavigatorID = -1;         
140   G4TouchableHandle    fOldGhostTouchable;        
141   G4TouchableHandle    fNewGhostTouchable;        
142   G4FieldTrack         fFieldTrack = '0';         
143   G4double             fGhostSafety = -1;         
144   G4bool               fOnBoundary = false;       
145                                                   
146   G4bool               fParaflag = false;         
147   G4FieldTrack         fEndTrack = '0';           
148   ELimited             feLimited = kDoNot;        
149 };                                                
150                                                   
151 #endif                                            
152