Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/src/GIDI_settings_particle.cc

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/hadronic/models/lend/src/GIDI_settings_particle.cc (Version 11.3.0) and /processes/hadronic/models/lend/src/GIDI_settings_particle.cc (Version 6.0)


  1 /*                                                  1 
  2 # <<BEGIN-copyright>>                             
  3 # <<END-copyright>>                               
  4 */                                                
  5                                                   
  6 #include <iostream>                               
  7 #include <cmath>                                  
  8                                                   
  9 #include "GIDI_settings.hh"                       
 10                                                   
 11 using namespace GIDI;                             
 12                                                   
 13 /*                                                
 14 ==============================================    
 15 */                                                
 16 GIDI_settings_particle::GIDI_settings_particle    
 17                                                   
 18     initialize( PoPId, transporting, energyMod    
 19 }                                                 
 20 /*                                                
 21 ==============================================    
 22 */                                                
 23 GIDI_settings_particle::GIDI_settings_particle    
 24                                                   
 25     initialize( particle.mPoPId, particle.mTra    
 26     setGroup( particle.mGroup );                  
 27     for( std::vector<GIDI_settings_processedFl    
 28         mProcessedFluxes.push_back( *iter );      
 29     }                                             
 30 }                                                 
 31 /*                                                
 32 ==============================================    
 33 */                                                
 34 int GIDI_settings_particle::initialize( int Po    
 35                                                   
 36     mPoPId = PoPId;                               
 37     mTransporting = transporting;                 
 38     int energyMode_ =   ( energyMode & GIDI_se    
 39                       + ( energyMode & GIDI_se    
 40 //                    + ( energyMode & GIDI_se    
 41                         ;                         
 42                                                   
 43     if( energyMode_ != energyMode ) throw 1;      
 44     mEnergyMode = energyMode;                     
 45                                                   
 46     mGroupX = NULL;                               
 47     setGroup( mGroup );                           
 48     return( 0 );                                  
 49 }                                                 
 50 /*                                                
 51 ==============================================    
 52 */                                                
 53 void GIDI_settings_particle::setGroup( GIDI_se    
 54                                                   
 55     nfu_status status_nf;                         
 56                                                   
 57     mGroup = group;                               
 58                                                   
 59     if( mGroupX != NULL ) ptwX_free( mGroupX )    
 60     mGroupX = NULL;                               
 61     if( mGroup.size( ) > 0 ) {                    
 62         if( ( mGroupX = ptwX_create( (int) mGr    
 63     }                                             
 64 }                                                 
 65 /*                                                
 66 ==============================================    
 67 */                                                
 68 GIDI_settings_particle::~GIDI_settings_particl    
 69                                                   
 70     if( mGroupX != NULL ) ptwX_free( mGroupX )    
 71 }                                                 
 72 /*                                                
 73 ==============================================    
 74 */                                                
 75 int GIDI_settings_particle::addFlux( statusMes    
 76                                                   
 77     double temperature = flux.getTemperature(     
 78     std::vector<GIDI_settings_processedFlux>::    
 79                                                   
 80     for( iter = mProcessedFluxes.begin( ); ite    
 81         if( temperature <= iter->getTemperatur    
 82     }                                             
 83 // BRB need to check if temperature is the sam    
 84     mProcessedFluxes.insert( iter, GIDI_settin    
 85     return( 0 );                                  
 86 }                                                 
 87 /*                                                
 88 ==============================================    
 89 */                                                
 90 GIDI_settings_processedFlux const *GIDI_settin    
 91                                                   
 92     double priorTemperature, lastTemperature;     
 93     std::vector<GIDI_settings_processedFlux>::    
 94                                                   
 95     if( mProcessedFluxes.size( ) == 0 ) return    
 96                                                   
 97     priorTemperature = mProcessedFluxes[0].get    
 98     //TK adds next line                           
 99     lastTemperature  = mProcessedFluxes[0].get    
100     for( iter = mProcessedFluxes.begin( ); ite    
101         lastTemperature = iter->getTemperature    
102         if( lastTemperature > temperature ) br    
103         //TK add next line                        
104         priorTemperature = iter->getTemperatur    
105     }                                             
106     if( iter == mProcessedFluxes.end( ) ) {       
107         --iter; }                                 
108     else {                                        
109         //if( fabs( lastTemperature - temperat    
110         //TK modified above line                  
111         if( std::fabs( lastTemperature - tempe    
112     }                                             
113     return( &(*iter) );                           
114 }                                                 
115 /*                                                
116 ==============================================    
117 */                                                
118 ptwXPoints *GIDI_settings_particle::groupFunct    
119                                                   
120     if( mGroupX == NULL ) return( NULL );         
121     GIDI_settings_processedFlux const *process    
122     if( processedFlux == NULL ) return( NULL )    
123     return( processedFlux->groupFunction( smr,    
124 }                                                 
125                                                   
126 /*  ---- GIDI_settings_processedFlux ----  */     
127 /*                                                
128 ==============================================    
129 */                                                
130 GIDI_settings_processedFlux::GIDI_settings_pro    
131                                                   
132     nfu_status status_nf;                         
133     ptwXYPoints *fluxXY = NULL;                   
134     ptwXPoints *groupedFluxX;                     
135     GIDI_settings_flux_order const *fluxOrder;    
136     double const *energies, *fluxes;              
137                                                   
138     for( int order = 0; order < (int) flux.siz    
139         fluxOrder = flux[order];                  
140         energies = fluxOrder->getEnergies( );     
141         fluxes = fluxOrder->getFluxes( );         
142         if( ( fluxXY = ptwXY_createFrom_Xs_Ys(    
143             fluxOrder->size( ), energies, flux    
144         mFluxXY.push_back( fluxXY );              
145         if( ( groupedFluxX = ptwXY_groupOneFun    
146         mGroupedFlux.push_back( groupedFluxX )    
147     }                                             
148     return;                                       
149                                                   
150 err:                                              
151     throw 1;                                      
152 }                                                 
153 /*                                                
154 ==============================================    
155 */                                                
156 GIDI_settings_processedFlux::GIDI_settings_pro    
157                                                   
158     nfu_status status_nf;                         
159     ptwXYPoints *fluxXY;                          
160     ptwXPoints *fluxX;                            
161                                                   
162     for( int order = 0; order < (int) mFlux.si    
163         if( ( fluxXY = ptwXY_clone( flux.mFlux    
164         mFluxXY.push_back( fluxXY );              
165         if( ( fluxX = ptwX_clone( flux.mGroupe    
166         mGroupedFlux.push_back( fluxX );          
167     }                                             
168     return;                                       
169                                                   
170 err:                                              
171     for( std::vector<ptwXYPoints *>::iterator     
172     for( std::vector<ptwXPoints *>::iterator i    
173     throw 1;                                      
174 }                                                 
175 /*                                                
176 ==============================================    
177 */                                                
178 GIDI_settings_processedFlux& GIDI_settings_pro    
179   if ( this != &flux ) {                          
180     // Clean-up existing things                   
181     for( std::vector<ptwXYPoints *>::iterator     
182     for( std::vector<ptwXPoints *>::iterator i    
183     // Now assign                                 
184     mFlux = flux.mFlux;                           
185     nfu_status status_nf;                         
186     ptwXYPoints *fluxXY;                          
187     ptwXPoints *fluxX;                            
188     for( int order = 0; order < (int) mFlux.si    
189         if( ( fluxXY = ptwXY_clone( flux.mFlux    
190         mFluxXY.push_back( fluxXY );              
191         if( ( fluxX = ptwX_clone( flux.mGroupe    
192         mGroupedFlux.push_back( fluxX );          
193     }                                             
194   }                                               
195   return *this;                                   
196                                                   
197 err:                                              
198     for( std::vector<ptwXYPoints *>::iterator     
199     for( std::vector<ptwXPoints *>::iterator i    
200     throw 1;                                      
201 }                                                 
202 /*                                                
203 ==============================================    
204 */                                                
205 GIDI_settings_processedFlux::~GIDI_settings_pr    
206                                                   
207     for( std::vector<ptwXYPoints *>::iterator     
208     for( std::vector<ptwXPoints *>::iterator i    
209 }                                                 
210 /*                                                
211 ==============================================    
212 */                                                
213 ptwXPoints *GIDI_settings_processedFlux::group    
214                                                   
215     nfu_status status_nf;                         
216     ptwXYPoints *fluxXY;                          
217     ptwXPoints *groupedX;                         
218                                                   
219     if( groupX == NULL ) return( NULL );          
220     if( order < 0 ) order = 0;                    
221     if( order >= (int) mFluxXY.size( ) ) order    
222                                                   
223     fluxXY = ptwXY_xSlice( mFluxXY[order], ptw    
224 //    if( fluxXY == NULL ) smr_setReportError2    
225                                                   
226     groupedX = ptwXY_groupTwoFunctions( ptwXY1    
227     ptwXY_free( fluxXY );                         
228 //    if( groupedX == NULL ) smr_setReportErro    
229     return( groupedX );                           
230 }                                                 
231