39 #include "starlightconfig.h"
45 using namespace starlightConstants;
50 #define NOT_REQUIRED false
54 : _baseFileName (
"baseFileName",
"slight"),
55 _targetBeamZ (
"TARGET_BEAM_Z",0),
56 _targetBeamA (
"TARGET_BEAM_A",0),
57 _electronBeamLorentzGamma (
"ELECTRON_BEAM_GAMMA",0),
58 _targetBeamLorentzGamma (
"TARGET_BEAM_GAMMA",0),
63 _nmbWBins (
"W_N_BINS",0),
66 _nmbEnergyBins (
"EGA_N_BINS",0),
73 _productionMode (
"PROD_MODE",0),
74 _nmbEventsTot (
"N_EVENTS",0),
75 _prodParticleId (
"PROD_PID",0),
76 _randomSeed (
"RND_SEED",0),
77 _beamBreakupMode (
"BREAKUP_MODE",0),
81 _nmbPtBinsInterference (
"INT_PT_N_BINS",0),
82 _ptBinWidthInterference(
"INT_PT_WIDTH",0),
86 _maxGammaEnergy (
"MAX_GAMMA_ENERGY",600000.0,
NOT_REQUIRED),
172 if(nParameters == -1)
174 printWarn <<
"could not open file '" << _configFileName <<
"'" << endl;
180 printInfo <<
"successfully read input parameters from '" << _configFileName <<
"'" << endl;
182 printWarn <<
"problems reading input parameters from '" << _configFileName <<
"'" << endl
199 double _totalEnergy_lab = 1.0*_electronEnergy_lab + _ionEnergy_lab;
200 double _totalPz_lab = _ionPz_lab + _electronPz_lab;
201 _rap_CM = (1.0/2.0)*log((_totalEnergy_lab + _totalPz_lab)/(_totalEnergy_lab - _totalPz_lab));
202 double _totalEnergy_COM;
203 _totalEnergy_COM = sqrt((_totalEnergy_lab) * (_totalEnergy_lab) - (_totalPz_lab) * (_totalPz_lab));
215 std::cout <<
"Rapidity electron beam: " << rap1 <<
", rapidity target beam: " << rap2 <<
", rapidity CMS system: " <<
_rap_CM <<
", beam gamma in CMS: " <<
_beamLorentzGamma<< std::endl;
216 std::cout <<
"Rapidity beam 1 in beam 2 frame: " << rap1-rap2 <<
", beam 1 gamma in beam 2 frame: " <<
_targetLorentzGamma<< std::endl;
223 printWarn <<
"tritium is not currently supported" << endl;
227 printWarn << endl<<
"For rho meson production, you should choose the wide resonance option (production mode = 3)" << endl;
274 printWarn <<
" cannot enable interference for incoherent production " << endl;
280 double defaultMinW = 0;
281 double defaultMaxW = 0;
294 defaultMinW = mass - 5*
width;
295 defaultMaxW = mass + 5*
width;
303 defaultMinW = mass - 5*
width;
304 defaultMaxW = mass + 5*
width;
312 defaultMinW = mass - 5*
width;
313 defaultMaxW = mass + 5*
width;
321 defaultMinW = mass - 5*
width;
322 defaultMaxW = mass + 5*
width;
330 defaultMinW = mass - 5*
width;
331 defaultMaxW = mass + 5*
width;
339 defaultMinW = mass - 5*
width;
340 defaultMaxW = mass + 5*
width;
348 defaultMinW = mass - 5*
width;
349 defaultMaxW = mass + 5*
width;
364 defaultMinW = mass - 5*
width;
365 defaultMaxW = mass + 5*
width;
377 defaultMaxW = mass + 5 *
width;
386 defaultMaxW = mass + 5 *
width;
403 defaultMinW = mass - 5 *
width;
404 defaultMaxW = mass + 5 *
width;
412 defaultMinW = mass - 5 *
width;
413 defaultMaxW = mass + 5 *
width;
422 defaultMaxW = mass + 5 *
width;
430 defaultMinW = mass - 5 *
width;
431 defaultMaxW = mass + 5 *
width;
439 defaultMinW = mass - 5 *
width;
440 defaultMaxW = mass + 5 *
width;
444 cout<<
"In inputParameters setting J/psi mass!"<<endl;
449 defaultMinW = mass - 5 *
width;
450 defaultMaxW = mass + 5 *
width;
458 defaultMinW = mass - 5 *
width;
459 defaultMaxW = mass + 5 *
width;
467 defaultMinW = mass - 5 *
width;
468 defaultMaxW = mass + 5 *
width;
476 defaultMinW = mass - 5 *
width;
477 defaultMaxW = mass + 5 *
width;
485 defaultMinW = mass - 5 *
width;
486 defaultMaxW = mass + 5 *
width;
494 defaultMinW = mass - 5 *
width;
495 defaultMaxW = mass + 5 *
width;
503 defaultMinW = mass - 5 *
width;
504 defaultMaxW = mass + 5 *
width;
512 defaultMinW = mass - 5 *
width;
513 defaultMaxW = mass + 5 *
width;
521 defaultMinW = mass - 5 *
width;
522 defaultMaxW = mass + 5 *
width;
530 defaultMinW = mass - 5 *
width;
531 defaultMaxW = mass + 5 *
width;
539 defaultMinW = mass - 5 *
width;
540 defaultMaxW = mass + 5 *
width;
548 defaultMinW = mass - 5 *
width;
549 defaultMaxW = mass + 5 *
width;
557 defaultMinW = mass - 5 *
width;
558 defaultMaxW = mass + 5 *
width;
571 printWarn <<
"maxW must be greater than minW" << endl;
580 printWarn <<
"maxW_GA must be greater than minW_GP" << endl;
588 printWarn <<
"ERROR: The current input minimum CoM energy (_minW_GP) is: "<<
_minW_GP
589 <<
" which is larger than the total center-of-mass energy of the electron-ion system: "
590 <<_totalEnergy_COM << endl;
591 cout<<
"Exiting now..." << endl;
599 <<
". Continuing with default "<<endl;
610 printInfo <<
"using the following " << *
this;
620 out <<
"starlight parameters:" << endl
625 <<
" mass W of produced hadronic system ..... " <<
_minW.
value() <<
" < W < " <<
_maxW.
value() <<
" GeV/c^2" << endl
626 <<
" # of W bins ............................ " <<
_nmbWBins.
value() << endl
632 out <<
" minumum pT.......................... " <<
_ptCutMin.
value() <<
" GeV/c" << endl
633 <<
" maximum pT.......................... " <<
_ptCutMax.
value() <<
" GeV/c" << endl;}
636 out <<
" minumum eta......................... " <<
_etaCutMin.
value() << endl
637 <<
" maximum eta......................... " <<
_etaCutMax.
value() << endl;}
641 <<
" seed for random generator .............. " <<
_randomSeed.
value() << endl
650 out <<
" coherent scattering off nucleus ........ no" << endl;}
652 out <<
" coherent scattering off nucleus ........ yes" << endl;
656 out <<
" fixed photon Q2 range .................. " <<
_minGammaQ2.
value() <<
" < Q2 < "
661 out <<
" Impulse VM parameter.................... "<<
_impulseVM.
value()<<endl;
675 <<
"W_MAX" <<
maxW () <<endl
676 <<
"W_MIN" <<
minW () <<endl
677 <<
"W_GP_MAX" <<
maxW_GP () <<endl
678 <<
"W_GP_MIN" <<
minW_GP () <<endl