MollerPrimaryGenAction_inelasticep.cc File Reference

#include "G4ParticleGun.hh"
#include "G4Electron.hh"
#include "G4Event.hh"
#include "globals.hh"
#include "MollerPrimaryGenAction.hh"
#include "RootAnalysis.hh"
Include dependency graph for MollerPrimaryGenAction_inelasticep.cc:

Go to the source code of this file.

Defines

#define r0   2.818
#define pi   3.14159
#define me   0.511E-3
#define Euler   0.5772157
#define d2r   pi/180.
#define r2d   180/pi
#define gevfm   0.1973
#define pmu   2.79
#define alpha   0.007299

Functions

double SigT (double k)

Define Documentation

#define alpha   0.007299

Definition at line 37 of file MollerPrimaryGenAction_inelasticep.cc.

#define d2r   pi/180.

Definition at line 32 of file MollerPrimaryGenAction_inelasticep.cc.

#define Euler   0.5772157

Definition at line 31 of file MollerPrimaryGenAction_inelasticep.cc.

#define gevfm   0.1973

Definition at line 35 of file MollerPrimaryGenAction_inelasticep.cc.

#define me   0.511E-3

Definition at line 30 of file MollerPrimaryGenAction_inelasticep.cc.

#define pi   3.14159

Definition at line 29 of file MollerPrimaryGenAction_inelasticep.cc.

#define pmu   2.79

Definition at line 36 of file MollerPrimaryGenAction_inelasticep.cc.

#define r0   2.818

Definition at line 28 of file MollerPrimaryGenAction_inelasticep.cc.

#define r2d   180/pi

Definition at line 33 of file MollerPrimaryGenAction_inelasticep.cc.


Function Documentation

double SigT ( double  k  ) 

Definition at line 314 of file MollerPrimaryGenAction_inelasticep.cc.

Referenced by MollerPrimaryGenAction::GeneratePrimaries_inelasticep_dustin().

00314                       {
00315   double sigt ; 
00316   sigt=0 ;
00317   /* histogram-type fit to world data from PDG over Delta, S11, tc.*/
00318   /* switch to linear interpolation
00319    * rather than block
00320   if(k > 0.175) sigt=0.08 ;
00321   if(k > 0.196) sigt=0.12 ;
00322   if(k > 0.214) sigt=0.17 ;
00323   if(k > 0.233) sigt=0.21 ;
00324   if(k > 0.251) sigt=0.32 ;
00325   if(k > 0.251) sigt=0.32 ;
00326   if(k > 0.251) sigt=0.32 ;
00327   if(k > 0.271) sigt=0.40 ;
00328   if(k > 0.290) sigt=0.50 ;
00329   if(k > 0.310) sigt=0.53 ;
00330   if(k > 0.330) sigt=0.50 ;
00331   if(k > 0.350) sigt=0.45 ;
00332   if(k > 0.370) sigt=0.41 ;
00333   if(k > 0.390) sigt=0.32 ;
00334   if(k > 0.410) sigt=0.24 ;
00335   if(k > 0.430) sigt=0.22 ;
00336   if(k > 0.450) sigt=0.18 ;
00337   if(k > 0.470) sigt=0.17 ;
00338   if(k > 0.520) sigt=0.18 ;
00339   if(k > 0.550) sigt=0.21 ;
00340   if(k > 0.600) sigt=0.22 ;
00341   if(k > 0.650) sigt=0.24 ;
00342   if(k > 0.700) sigt=0.27 ;
00343   if(k > 0.750) sigt=0.25 ;
00344   if(k > 0.800) sigt=0.25 ;
00345   if(k > 0.750) sigt=0.25 ;
00346   if(k > 0.800) sigt=0.22 ;
00347   if(k > 0.900) sigt=0.21 ;
00348   if(k > 0.950) sigt=0.215;
00349   if(k > 1.000) sigt=0.225;
00350   if(k > 1.050) sigt=0.215;
00351   if(k > 1.100) sigt=0.185;
00352   if(k > 1.150) sigt=0.165;
00353   if(k > 1.200) sigt=0.15 ;
00354   if(k > 1.300) sigt=0.16 ;
00355   if(k > 1.400) sigt=0.15 ;
00356   */
00357   /* use fit to sigt (in mb) from Caldwell */
00358 
00359   static const int nbin = 37;
00360 
00361 
00362   double kval[nbin] = { 0.175, 0.196, 0.214, 0.233, 0.251, 0.251, 0.251, 0.271, 0.290, 0.310, 0.330, 0.350, 0.370, 0.390, 0.410, 0.430, 0.450, 0.470, 0.520, 0.550, 0.600, 0.650, 0.700, 0.750, 0.800, 0.750, 0.800, 0.900, 0.950, 1.000, 1.050, 1.100, 1.150, 1.200, 1.300, 1.400, 1.5 };
00363 
00364   double tval[nbin] = { 0.08, 0.12, 0.17, 0.21, 0.32, 0.32, 0.32, 0.40, 0.50, 0.53, 0.50, 0.45, 0.41, 0.32, 0.24, 0.22, 0.18, 0.17, 0.18, 0.21, 0.22, 0.24, 0.27, 0.25, 0.25, 0.25, 0.22, 0.21, 0.215, 0.225, 0.215, 0.185, 0.165, 0.15, 0.16, 0.15, 0.15};
00365 
00366 
00367   int idx = 0;
00368 
00369   if(k > 1.5){
00370       sigt=0.0987 + 0.0649/sqrt(k) ;
00371   } else { 
00372 
00373       while( !( kval[idx] < k && k <= kval[idx+1] ) && idx < nbin-1 ){ idx++; }
00374 
00375       // Didn't find a good value
00376       if( idx == nbin-1 ) { 
00377     assert( k < 0.175 );
00378     sigt = 0.0; 
00379       }
00380       else {
00381     assert( 0 <= idx && idx < nbin-1 );
00382 
00383     double intval = (k - kval[idx])/(kval[idx+1]-kval[idx]);
00384 
00385     assert( 0.0 <= intval && intval < 1.0 );
00386 
00387     sigt = tval[idx]*(1.0-intval) + tval[idx+1]*intval;
00388       }
00389   }
00390 
00391   return sigt ;
00392 }      

Here is the caller graph for this function:


Generated on 16 Jun 2013 for mollersim by  doxygen 1.6.1