#include "G4ParticleGun.hh"
#include "G4Electron.hh"
#include "G4Event.hh"
#include "globals.hh"
#include "MollerPrimaryGenAction.hh"
#include "RootAnalysis.hh"
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 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.
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 }