Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

neugen_wrapper Class Reference

Debdatta Bhattacharya (Pitt) <deb4@fnal.gov> Costas Andreopoulos (Rutherford Lab.) <C.V.Andreopoulos@rl.ac.uk> Hugh Gallagher (Tufts University) <gallag@minos.phy.tufts.edu> _______________________________________________________________________________. More...

#include <neugen3_dummy.h>

List of all members.

Public Member Functions

 neugen_wrapper ()
 neugen_wrapper (const char *name)
 neugen_wrapper (const neugen_config *config)
 ~neugen_wrapper ()
const char * name (void) const
void set_default_config (void)
void reconfigure (const neugen_config *config)
void set_cuts (neugen_cuts *cuts)
void no_cuts (void)
float xsec (float e, interaction *ni, neugen_cuts *cuts=0)
float exclusive_xsec (float e, interaction *ni, final_state *final, neugen_cuts *cuts=0)
float diff_xsec (float e, kinematic_variable_t kid, float kval, interaction *ni, neugen_cuts *cuts=0)
float exclusive_diff_xsec (float e, kinematic_variable_t kid, float kval, interaction *ni, final_state *final, neugen_cuts *cuts=0)
float reweight (TLorentzVector *pnu, TLorentzVector *pnucleon, kinematic_variable_t kvid1, float kv1, kinematic_variable_t kvid2, float kv2, interaction *ni, process_t proc, final_state *fi, neugen_config *newconf, neugen_config *oldconf=0, double stdXSec=0)
float offshell_diff_xsec (TLorentzVector *pnu, TLorentzVector *pnucleon, interaction *ni, process_t proc, final_state *fi, kinematic_variable_t kvid1, float kv1, kinematic_variable_t kvid2, float kv2)
xsec_vs_energyxsec_spline (float emin, float emax, int nbins, interaction *ni, neugen_cuts *cuts=0)
xsec_vs_energyexclusive_xsec_spline (float emin, float emax, int nbins, interaction *ni, final_state *final, neugen_cuts *cuts=0)
void print (ostream &stream) const
void print_configuration ()
void begin_generation ()
 neugen_wrapper ()
 neugen_wrapper (const char *name)
 neugen_wrapper (const neugen_config *config)
 ~neugen_wrapper ()
const char * name (void) const
void set_default_config (void)
void reconfigure (const neugen_config *config)
void set_cuts (neugen_cuts *cuts)
void no_cuts (void)
float xsec (float e, interaction *ni, neugen_cuts *cuts=0)
float exclusive_xsec (float e, interaction *ni, final_state *final, neugen_cuts *cuts=0)
float diff_xsec (float e, kinematic_variable_t kid, float kval, interaction *ni, neugen_cuts *cuts=0)
float exclusive_diff_xsec (float e, kinematic_variable_t kid, float kval, interaction *ni, final_state *final, neugen_cuts *cuts=0)
float reweight (TLorentzVector *pnu, TLorentzVector *pnucleon, kinematic_variable_t kvid1, float kv1, kinematic_variable_t kvid2, float kv2, interaction *ni, process_t proc, final_state *fi, neugen_config *newconf, neugen_config *oldconf=0, double stdXSec=0)
float reweight (TLorentzVector *pnu, TLorentzVector *pnucleon, kinematic_variable_t kvid1, float kv1, kinematic_variable_t kvid2, float kv2, interaction *ni, process_t proc, final_state *fi, neugen_config *newconf, double stdXSec, bool load=true)
float offshell_diff_xsec (TLorentzVector *pnu, TLorentzVector *pnucleon, interaction *ni, process_t proc, final_state *fi, kinematic_variable_t kvid1, float kv1, kinematic_variable_t kvid2, float kv2)
xsec_vs_energyxsec_spline (float emin, float emax, int nbins, interaction *ni, neugen_cuts *cuts=0)
xsec_vs_energyexclusive_xsec_spline (float emin, float emax, int nbins, interaction *ni, final_state *final, neugen_cuts *cuts=0)
void print (ostream &stream) const
void print_configuration ()
void begin_generation ()

Private Member Functions

void init (void)
void init (void)

Private Attributes

string _name
neugen_config_config
neugen_config_config

Friends

ostream & operator<< (ostream &stream, const neugen_wrapper &conf)
ostream & operator<< (ostream &stream, const neugen_wrapper &conf)


Detailed Description

Debdatta Bhattacharya (Pitt) <deb4@fnal.gov> Costas Andreopoulos (Rutherford Lab.) <C.V.Andreopoulos@rl.ac.uk> Hugh Gallagher (Tufts University) <gallag@minos.phy.tufts.edu> _______________________________________________________________________________.

____________________________________________________________________________

??

Definition at line 92 of file neugen3_dummy.h.


Constructor & Destructor Documentation

neugen_wrapper::neugen_wrapper  ) 
 

Definition at line 29 of file neugen_wrapper.cxx.

References _config, init(), and neugen_config::set_best_parameters().

00029                                :
00030 _name("default")
00031 {
00032   init();
00033   _config = new neugen_config("defaultConfig");
00034   _config->set_best_parameters();
00035 }
//____________________________________________________________________________

neugen_wrapper::neugen_wrapper const char *  name  ) 
 

Definition at line 37 of file neugen_wrapper.cxx.

References _config, init(), and neugen_config::set_best_parameters().

00037                                                 :
00038 _name(name)
00039 {
00040   init();
00041   _config = new neugen_config("defaultConfig");
00042   _config->set_best_parameters();
00043 }
//____________________________________________________________________________

neugen_wrapper::neugen_wrapper const neugen_config config  ) 
 

Definition at line 45 of file neugen_wrapper.cxx.

References init(), and reconfigure().

00046 {
00047   init();
00048   reconfigure(config);
00049 }

neugen_wrapper::~neugen_wrapper  ) 
 

Definition at line 51 of file neugen_wrapper.cxx.

00052 {
00053   if(_config) delete _config;
00054 }

neugen_wrapper::neugen_wrapper  ) 
 

neugen_wrapper::neugen_wrapper const char *  name  ) 
 

neugen_wrapper::neugen_wrapper const neugen_config config  ) 
 

neugen_wrapper::~neugen_wrapper  ) 
 


Member Function Documentation

void neugen_wrapper::begin_generation  )  [inline]
 

Definition at line 114 of file neugen_wrapper.h.

References begin_generation_().

00114 {begin_generation_();}

void neugen_wrapper::begin_generation  )  [inline]
 

Definition at line 142 of file neugen3_dummy.h.

Referenced by MadMKAnalysis::CreatePAN(), and NuIntranuke::InitReweight().

00142 { ; }

float neugen_wrapper::diff_xsec float  e,
kinematic_variable_t  kid,
float  kval,
interaction ni,
neugen_cuts cuts = 0
 

float neugen_wrapper::diff_xsec float  e,
kinematic_variable_t  kid,
float  kval,
interaction ni,
neugen_cuts cuts = 0
 

Definition at line 315 of file neugen_wrapper.cxx.

References dsig_value_(), interaction::getNucleus(), interaction::getProcess(), no_cuts(), nucleus_t, and set_cuts().

00317 {
00318   float val=0.;
00319 
00320 // Get Process  and nucleus
00321   int       process = ni->getProcess();
00322   nucleus_t nucleus = ni->getNucleus();
00323 
00324   if(cuts)  set_cuts(cuts);
00325   else      no_cuts();
00326   
00327 // Get cross section
00328   int kvid = kid;
00329   int nuc  = nucleus;
00330 
00331   dsig_value_(&e,&kvid,&kval,&nuc,&process,&val);
00332 
00333   return val;
00334 }

float neugen_wrapper::exclusive_diff_xsec float  e,
kinematic_variable_t  kid,
float  kval,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

float neugen_wrapper::exclusive_diff_xsec float  e,
kinematic_variable_t  kid,
float  kval,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

Definition at line 336 of file neugen_wrapper.cxx.

References dsig_value_(), interaction::getNucleus(), interaction::getProcess(), no_cuts(), nucleus_t, and set_cuts().

00338 {
00339   float val=0.;
00340 
00341 // Get Process  and nucleus
00342   int       process = ni->getProcess(final);
00343   nucleus_t nucleus = ni->getNucleus();
00344 
00345   if(cuts)  set_cuts(cuts);
00346   else      no_cuts();
00347   
00348 // Get cross section
00349 
00350   int nuc  = nucleus;
00351   int kvid = kid;
00352 
00353   dsig_value_(&e,&kvid,&kval,&nuc,&process,&val);
00354 
00355   return val;
00356 }

float neugen_wrapper::exclusive_xsec float  e,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

float neugen_wrapper::exclusive_xsec float  e,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

Definition at line 296 of file neugen_wrapper.cxx.

References interaction::getNucleus(), interaction::getProcess(), no_cuts(), nucleus_t, set_cuts(), and sig_value_().

Referenced by exclusive_xsec_spline().

00298 {
00299   float val=0.;
00300 
00301 // Define Process
00302   int       process = ni->getProcess(final);
00303   nucleus_t nucleus = ni->getNucleus();
00304 
00305   if(cuts)  set_cuts(cuts);
00306   else      no_cuts();
00307 
00308   int nuc = nucleus;
00309 
00310   sig_value_(&e,&nuc,&process,&val);
00311 
00312   return val;
00313 }

xsec_vs_energy* neugen_wrapper::exclusive_xsec_spline float  emin,
float  emax,
int  nbins,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

xsec_vs_energy * neugen_wrapper::exclusive_xsec_spline float  emin,
float  emax,
int  nbins,
interaction ni,
final_state final,
neugen_cuts cuts = 0
 

Definition at line 546 of file neugen_wrapper.cxx.

References exclusive_xsec().

00549 {
00550   assert(emin < emax && nbins > 0);
00551 
00552   double * E    = new double[nbins];
00553   double * XSec = new double[nbins];
00554 
00555   double de = (emax - emin) / ( nbins - 1);
00556 
00557   for(int ie = 0; ie < nbins; ie++) {
00558 
00559       E[ie]    = emin + ie * de;
00560       XSec[ie] = exclusive_xsec(E[ie], ni, final, cuts);
00561 
00562       cout << "xsec(" << E[ie] << ") = " << XSec[ie] << endl;
00563   }
00564 
00565   xsec_vs_energy * spline = new xsec_vs_energy(nbins, E, XSec);
00566 
00567   //delete [] E;
00568   //delete [] XSec;
00569 
00570   return spline;
00571 }

void neugen_wrapper::init void   )  [private]
 

void neugen_wrapper::init void   )  [private]
 

Definition at line 580 of file neugen_wrapper.cxx.

References _config, and set_default_config().

Referenced by neugen_wrapper().

00581 {
00582   set_default_config();
00583   _config = 0;
00584 }  

const char* neugen_wrapper::name void   )  const [inline]
 

Definition at line 65 of file neugen_wrapper.h.

00065 { return _name.c_str(); }

const char* neugen_wrapper::name void   )  const [inline]
 

Definition at line 102 of file neugen3_dummy.h.

00102 { return _name.c_str(); }

void neugen_wrapper::no_cuts void   ) 
 

void neugen_wrapper::no_cuts void   ) 
 

Definition at line 431 of file neugen_wrapper.cxx.

References set_kvcuts_(), and set_masks_().

Referenced by diff_xsec(), exclusive_diff_xsec(), exclusive_xsec(), and xsec().

00432 {
00433 // Turn off cuts
00434 
00435   int   procmask =  0;
00436   int   kvid     =  0;
00437   float kvmin    = -9999999.;
00438   float kvmax    =  9999999.;
00439   bool  valid    =  true;
00440 
00441   set_kvcuts_(&kvid,&kvmin,&kvmax);
00442 
00443   set_masks_(&procmask,&valid,&valid,&valid);
00444 }

float neugen_wrapper::offshell_diff_xsec TLorentzVector *  pnu,
TLorentzVector *  pnucleon,
interaction ni,
process_t  proc,
final_state fi,
kinematic_variable_t  kvid1,
float  kv1,
kinematic_variable_t  kvid2,
float  kv2
 

float neugen_wrapper::offshell_diff_xsec TLorentzVector *  pnu,
TLorentzVector *  pnucleon,
interaction ni,
process_t  proc,
final_state fi,
kinematic_variable_t  kvid1,
float  kv1,
kinematic_variable_t  kvid2,
float  kv2
 

Definition at line 358 of file neugen_wrapper.cxx.

References final_state::getMultiplicity(), interaction::getNucleus(), interaction::getProcess(), nucleus_t, and offshell_differential_().

Referenced by NeugenWeightCalculator::GetWeight(), NuTransition::GetXSecNeugen(), and reweight().

00362 {
00363   float val=0.;
00364 
00365   float p4nu[4] = {0.,0.,0.,0.};
00366   p4nu[0] = pnu->Px();
00367   p4nu[1] = pnu->Py();
00368   p4nu[2] = pnu->Pz();
00369   p4nu[3] = pnu->E();
00370   float p4in[4] = {0.,0.,0.,0.};
00371   p4in[0] = pnucleon->Px();
00372   p4in[1] = pnucleon->Py();
00373   p4in[2] = pnucleon->Pz();
00374   p4in[3] = pnucleon->E();
00375 
00376 // Get Process  and nucleus
00377   nucleus_t nucleus = ni->getNucleus();
00378   int nuc           = nucleus;
00379   int process       = ni->getProcess();
00380   int itype         = proc;
00381   int imult         = fi ->getMultiplicity();
00382   int kid1          = kvid1;
00383   int kid2          = kvid2;
00384  
00385 // Get cross section
00386 
00387   offshell_differential_(p4nu,p4in,&nuc,&process,&itype, 
00388                         &kid1, &kv1, &kid2, &kv2,&imult, &val);
00389   /*
00390     cout << "pnu = (" << p4nu[0] << "," << p4nu[1] << "," << p4nu[2] << "," << p4nu[3] << ")" << endl;
00391     cout << "pin = (" << p4in[0] << "," << p4in[1] << "," << p4in[2] << "," << p4in[3] << ")" << endl;
00392     cout << "nuc = " << nuc << " process = " << process << " itype = " << itype 
00393     << " kid1 = " << kid1 << " kv1 = " << kv1 << " kid2 = " << kid2 << " kv2 = " << kv2 
00394     << " imult = " << imult << " offshell_diff = " << val << endl;
00395   */
00396 
00397   return val;
00398 }

void neugen_wrapper::print ostream &  stream  )  const
 

void neugen_wrapper::print ostream &  stream  )  const
 

Definition at line 573 of file neugen_wrapper.cxx.

References _config, and _name.

Referenced by operator<<().

00574 {
00575   stream << "Name:..........." << _name  << endl;
00576   stream << "Current config: " << endl;
00577   stream << *_config << endl;
00578 }

void neugen_wrapper::print_configuration  )  [inline]
 

Definition at line 113 of file neugen_wrapper.h.

References print_configuration_().

void neugen_wrapper::print_configuration  )  [inline]
 

Definition at line 141 of file neugen3_dummy.h.

Referenced by MadMKAnalysis::CreatePAN(), and NuIntranuke::InitReweight().

00141 { ; }

void neugen_wrapper::reconfigure const neugen_config config  ) 
 

void neugen_wrapper::reconfigure const neugen_config config  ) 
 

Definition at line 56 of file neugen_wrapper.cxx.

References _config, neugen_config::coh_r0(), neugen_config::coh_rei(), neugen_config::config_name(), neugen_config::config_no(), neugen_config::dis_res(), e_vbn, e_vbp, e_vn, e_vp, initialize_configuration_(), neugen_config::kno_a1(), neugen_config::kno_a2(), neugen_config::kno_a3(), neugen_config::kno_a4(), neugen_config::kno_b1(), neugen_config::kno_b2(), neugen_config::kno_b3(), neugen_config::kno_b4(), neugen_config::kno_c1(), neugen_config::kno_c2(), neugen_config::kno_c3(), neugen_config::kno_c4(), neugen_config::ma_coh(), neugen_config::ma_qe(), neugen_config::ma_res(), neugen_config::nres(), neugen_config::pdf_group(), neugen_config::pdf_set(), neugen_config::qel_eta(), neugen_config::qel_fa0(), neugen_config::res_omega(), neugen_config::res_z(), set_parameters_(), set_pdfset_(), neugen_config::wcutd(), and neugen_config::wcutr().

Referenced by neugen_wrapper(), NuIntranuke::Reweight(), and reweight().

00057 {
00058 
00059   if(_config) delete _config;
00060   _config = new neugen_config(config);
00061 
00062   int five  = 5;
00063   int six   = 6;
00064   int seven = 7;
00065   int eight = 8;
00066   int nine  = 9;
00067   int four = 4;
00068   int three = 3;
00069 
00070 
00071   float val = 0;
00072   int tempi=0;
00073   char *temps;
00074   int lok;
00075 
00076 
00077   float q2min = 0.;
00078   int pdfgroup = _config->pdf_group();
00079   int pdfset = _config->pdf_set();
00080   set_pdfset_(&pdfgroup,&pdfset,&q2min);
00081 
00082   //moved this block of code before setting the xsection parameters
00083   //change made by Hugh G. and Tricia V. on 12-16-05
00084   tempi = _config->config_no();
00085   temps = _config->config_name();
00086   //  initialize_configuration_(temps,&seven,&tempi,&lok);
00087   int temps_len = strlen(temps);
00088   initialize_configuration_(temps,&seven,&tempi,&lok, temps_len);
00089   //  initialize_configuration_(temps,strlen(temps),&seven,&tempi,&lok);//no!
00090 
00091 
00092   //CC
00093   //multiplicity = 2 states
00094   char c_kno_r112[9] = "KNO_R112";
00095   val = _config->dis_res(1,2, e_vp);
00096   set_parameters_(c_kno_r112,&eight,&val);
00097  
00098   char c_kno_r122[9] = "KNO_R122";
00099   val = _config->dis_res(1,2, e_vn);
00100   set_parameters_(c_kno_r122,&eight,&val);
00101 
00102   char c_kno_r132[9] = "KNO_R132";
00103   val = _config->dis_res(1,2, e_vbp);
00104   set_parameters_(c_kno_r132,&eight,&val);
00105 
00106   char c_kno_r142[9] = "KNO_R142";
00107   val = _config->dis_res(1,2, e_vbn);
00108   set_parameters_(c_kno_r142,&eight,&val);
00109 
00110   //multiplicity = 3 states
00111   char c_kno_r113[9] = "KNO_R113";
00112   val = _config->dis_res(1,3, e_vp);
00113   set_parameters_(c_kno_r113,&eight,&val);
00114 
00115   char c_kno_r123[9] = "KNO_R123";
00116   val = _config->dis_res(1,3, e_vn);
00117   set_parameters_(c_kno_r123,&eight,&val);
00118 
00119   char c_kno_r133[9] = "KNO_R133";
00120   val = _config->dis_res(1,3, e_vbp);
00121   set_parameters_(c_kno_r133,&eight,&val);
00122 
00123   char c_kno_r143[9] = "KNO_R143";
00124   val = _config->dis_res(1,3, e_vbn);
00125   set_parameters_(c_kno_r143,&eight,&val);
00126 
00127   //NC
00128   //multiplicity = 2 states
00129   char c_kno_r212[9] = "KNO_R212";
00130   val = _config->dis_res(2,2, e_vp);
00131   set_parameters_(c_kno_r212,&eight,&val);
00132  
00133   char c_kno_r222[9] = "KNO_R222";
00134   val = _config->dis_res(2,2, e_vn);
00135   set_parameters_(c_kno_r222,&eight,&val);
00136 
00137   char c_kno_r232[9] = "KNO_R232";
00138   val = _config->dis_res(2,2, e_vbp);
00139   set_parameters_(c_kno_r232,&eight,&val);
00140 
00141   char c_kno_r242[9] = "KNO_R242";
00142   val = _config->dis_res(2,2, e_vbn);
00143   set_parameters_(c_kno_r242,&eight,&val);
00144 
00145   //multiplicity = 3 states
00146   char c_kno_r213[9] = "KNO_R213";
00147   val = _config->dis_res(2,3, e_vp);
00148   set_parameters_(c_kno_r213,&eight,&val);
00149 
00150   char c_kno_r223[9] = "KNO_R223";
00151   val = _config->dis_res(2,3, e_vn);
00152   set_parameters_(c_kno_r223,&eight,&val);
00153 
00154   char c_kno_r233[9] = "KNO_R233";
00155   val = _config->dis_res(2,3, e_vbp);
00156   set_parameters_(c_kno_r233,&eight,&val);
00157 
00158   char c_kno_r243[9] = "KNO_R243";
00159   val = _config->dis_res(2,3, e_vbn);
00160   set_parameters_(c_kno_r243,&eight,&val);
00161 
00162 
00163 
00164   char c_qel_ma[7] = "QEL_MA";
00165   val = _config->ma_qe();
00166   set_parameters_(c_qel_ma,&six,&val);
00167 
00168   char c_res_ma[7] = "RES_MA";
00169   val = _config->ma_res();
00170   set_parameters_(c_res_ma,&six,&val);
00171 
00172   char c_coh_ma[7] = "COH_MA";
00173   val = _config->ma_coh();
00174   set_parameters_(c_coh_ma,&six,&val);
00175 
00176   char c_qel_fa0[8] = "QEL_FA0";
00177   val = _config->qel_fa0();
00178   set_parameters_(c_qel_fa0,&seven,&val);
00179 
00180   char c_qel_eta[8] = "QEL_ETA";
00181   val = _config->qel_eta();
00182   set_parameters_(c_qel_eta,&seven,&val);
00183 
00184   char c_res_omega[10] = "RES_OMEGA";
00185   val = _config->res_omega();
00186   set_parameters_(c_res_omega,&nine,&val);
00187 
00188   char c_res_z[6] = "RES_Z";
00189   val = _config->res_z();
00190   set_parameters_(c_res_z,&five,&val);
00191 
00192   char c_coh_r0[7] = "COH_R0";
00193   val = _config->coh_r0();
00194   set_parameters_(c_coh_r0,&six,&val);
00195 
00196   char c_coh_rei[8] = "COH_REI";
00197   val = _config->coh_rei();
00198   set_parameters_(c_coh_rei,&seven,&val);
00199 
00200   char c_kno_a1[7] = "KNO_A1";
00201   val = _config->kno_a1();
00202   set_parameters_(c_kno_a1,&six,&val);
00203 
00204   char c_kno_a2[7] = "KNO_A2";
00205   val = _config->kno_a2();
00206   set_parameters_(c_kno_a2,&six,&val);
00207 
00208   char c_kno_a3[7] = "KNO_A3";
00209   val = _config->kno_a3();
00210   set_parameters_(c_kno_a3,&six,&val);
00211 
00212   char c_kno_a4[7] = "KNO_A4";
00213   val = _config->kno_a4();
00214   set_parameters_(c_kno_a4,&six,&val);
00215 
00216   char c_kno_b1[7] = "KNO_B1";
00217   val = _config->kno_b1();
00218   set_parameters_(c_kno_b1,&six,&val);
00219 
00220   char c_kno_b2[7] = "KNO_B2";
00221   val = _config->kno_b2();
00222   set_parameters_(c_kno_b2,&six,&val);
00223 
00224   char c_kno_b3[7] = "KNO_B3";
00225   val = _config->kno_b3();
00226   set_parameters_(c_kno_b3,&six,&val);
00227 
00228   char c_kno_b4[7] = "KNO_B4";
00229   val = _config->kno_b4();
00230   set_parameters_(c_kno_b4,&six,&val);
00231 
00232   char c_kno_c1[7] = "KNO_C1";
00233   val = _config->kno_c1();
00234   set_parameters_(c_kno_c1,&six,&val);
00235 
00236   char c_kno_c2[7] = "KNO_C2";
00237   val = _config->kno_c2();
00238   set_parameters_(c_kno_c2,&six,&val);
00239 
00240   char c_kno_c3[7] = "KNO_C3";
00241   val = _config->kno_c3();
00242   set_parameters_(c_kno_c3,&six,&val);
00243 
00244   char c_kno_c4[7] = "KNO_C4";
00245   val = _config->kno_c4();
00246   set_parameters_(c_kno_c4,&six,&val);
00247 
00248 
00249   //wcuts
00250   //added 12-16-05, hugh and trish
00251   char c_byht_wcutd[7] = "WCUTD";
00252   val = _config->wcutd();
00253   set_parameters_(c_byht_wcutd,&five,&val);
00254                                                                                                    
00255   char c_byht_wcutr[7] = "WCUTR";
00256   val = _config->wcutr();
00257   set_parameters_(c_byht_wcutr,&five,&val);
00258                                                                                                    
00259   char c_byht_nres[5] = "NRES";
00260   tempi = _config->nres();
00261   val = tempi + 0.5;
00262   set_parameters_(c_byht_nres, &four,&val);
00263                                                                                                    
00264   char c_byht_dcf[4] = "DCF";
00265   val = _config->nres();
00266   set_parameters_(c_byht_dcf,  &three,&val);
00267   
00268 //  cout<<"In neugenwrapper::reconfigure, I'm trying to set "<<_config->config_name()<<endl;
00269 //  print_configuration_();
00270   
00271 }  

float neugen_wrapper::reweight TLorentzVector *  pnu,
TLorentzVector *  pnucleon,
kinematic_variable_t  kvid1,
float  kv1,
kinematic_variable_t  kvid2,
float  kv2,
interaction ni,
process_t  proc,
final_state fi,
neugen_config newconf,
double  stdXSec,
bool  load = true
 

Definition at line 491 of file neugen_wrapper.cxx.

References offshell_diff_xsec(), reconfigure(), and neugen_cuts::setOneProcess().

00496 {
00497   if(proc==4||proc==5) return 1; // can't reweight coherent interactions at this time
00498  
00499   //Only reconfigure if ordered to explicitly otherwise assume stdXsec gives you 
00500   //   the denominator  
00501   if(load)    reconfigure(newconf);
00502                                                                                 
00503   neugen_cuts *cut = new neugen_cuts();
00504   cut->setOneProcess(proc);
00505                                                                                 
00506   float xsec_old = stdXSec;
00507                                                                                 
00508   float xsec_new = offshell_diff_xsec(pnu, pnucleon,
00509                                       ni, proc, fi,
00510                                       kvid1, kv1, kvid2, kv2);
00511                                                                                 
00512   delete cut;  // delete above local new'd neugen_cuts
00513                                                                                 
00514   if(stdXSec>0) return xsec_new/stdXSec;
00515   if(xsec_old==0) return 1;
00516   return xsec_new/xsec_old;
00517 }

float neugen_wrapper::reweight TLorentzVector *  pnu,
TLorentzVector *  pnucleon,
kinematic_variable_t  kvid1,
float  kv1,
kinematic_variable_t  kvid2,
float  kv2,
interaction ni,
process_t  proc,
final_state fi,
neugen_config newconf,
neugen_config oldconf = 0,
double  stdXSec = 0
 

float neugen_wrapper::reweight TLorentzVector *  pnu,
TLorentzVector *  pnucleon,
kinematic_variable_t  kvid1,
float  kv1,
kinematic_variable_t  kvid2,
float  kv2,
interaction ni,
process_t  proc,
final_state fi,
neugen_config newconf,
neugen_config oldconf = 0,
double  stdXSec = 0
 

Definition at line 446 of file neugen_wrapper.cxx.

References _config, offshell_diff_xsec(), reconfigure(), and neugen_cuts::setOneProcess().

Referenced by NeugenWeightCalculator::GetWeight().

00452 {
00453 
00454   if(proc==4||proc==5) return 1; // can't reweight coherent interactions at this time
00455   neugen_config *cur_config = new neugen_config(_config);
00456 
00457   neugen_cuts *cut = new neugen_cuts();
00458   cut->setOneProcess(proc);
00459 
00460   float xsec_old = 0;
00461   if(stdXSec==0) {
00462     if(oldconf) reconfigure(oldconf);
00463     xsec_old = offshell_diff_xsec(pnu, pnucleon, 
00464                                   ni, proc, fi, 
00465                                   kvid1, kv1, kvid2, kv2);
00466   }
00467 
00468 //  print_configuration_();
00469 //  cout<<"OLD XSEC "<<xsec_old<<endl;
00470   
00471   reconfigure(newconf);
00472   float xsec_new = offshell_diff_xsec(pnu, pnucleon, 
00473                                       ni, proc, fi, 
00474                                       kvid1, kv1, kvid2, kv2);
00475 
00476 //  print_configuration_();
00477 //  cout<<"NEW XSEC "<<xsec_new<<endl;
00478 
00479 
00480   reconfigure(cur_config);
00481   delete cur_config;
00482 
00483   delete cut;  // delete above local new'd neugen_cuts
00484 
00485   if(stdXSec>0) return xsec_new/stdXSec;
00486   if(xsec_old==0) return 1;
00487   return xsec_new/xsec_old; 
00488 }

void neugen_wrapper::set_cuts neugen_cuts cuts  ) 
 

void neugen_wrapper::set_cuts neugen_cuts cuts  ) 
 

Definition at line 400 of file neugen_wrapper.cxx.

References neugen_cuts::cutKvid(), neugen_cuts::isCutSet(), kinematic_variable_t, neugen_cuts::kvmax(), neugen_cuts::kvmin(), neugen_cuts::procmask(), set_kvcuts_(), set_masks_(), neugen_cuts::sumDis(), neugen_cuts::sumQel(), and neugen_cuts::sumRes().

Referenced by diff_xsec(), exclusive_diff_xsec(), exclusive_xsec(), and xsec().

00401 {
00402 // Set Cuts
00403   float kvmin = 0.;
00404   float kvmax = 0.;
00405   int   kvid  = 0;
00406 
00407   kinematic_variable_t kv;
00408 
00409   if(cuts->isCutSet()) {
00410 
00411     kv    = cuts->cutKvid();
00412     kvmin = cuts->kvmin();
00413     kvmax = cuts->kvmax();
00414     kvid  = kv;
00415 
00416   } else {
00417     kvmin = -9999999.;
00418     kvmax =  9999999.;
00419   }
00420 
00421   int procmask = cuts->procmask();
00422   bool sumqel  = cuts->sumQel();
00423   bool sumres  = cuts->sumRes();
00424   bool sumdis  = cuts->sumDis();
00425 
00426   set_kvcuts_(&kvid,&kvmin,&kvmax);
00427 
00428   set_masks_(&procmask,&sumqel,&sumres,&sumdis);
00429 }

void neugen_wrapper::set_default_config void   ) 
 

void neugen_wrapper::set_default_config void   ) 
 

Definition at line 273 of file neugen_wrapper.cxx.

References set_default_parameters_().

Referenced by init().

00274 {
00275   set_default_parameters_();
00276 }

float neugen_wrapper::xsec float  e,
interaction ni,
neugen_cuts cuts = 0
 

float neugen_wrapper::xsec float  e,
interaction ni,
neugen_cuts cuts = 0
 

Definition at line 278 of file neugen_wrapper.cxx.

References interaction::getNucleus(), interaction::getProcess(), no_cuts(), nucleus_t, set_cuts(), and sig_value_().

Referenced by NuSystematic::NeugenXSecShiftScale(), NuSystematic::QELXSecShiftScale(), NuSystematic::ResXSecShiftScale(), and xsec_spline().

00279 {
00280   float val=0.;
00281 
00282 // get process and nucleus
00283   int       process = ni->getProcess();
00284   nucleus_t nucleus = ni->getNucleus();
00285 
00286   if(cuts)  set_cuts(cuts);
00287   else      no_cuts();
00288   
00289   int nuc = nucleus;
00290 
00291   sig_value_(&e,&nuc,&process,&val);
00292 
00293   return val;
00294 }

xsec_vs_energy* neugen_wrapper::xsec_spline float  emin,
float  emax,
int  nbins,
interaction ni,
neugen_cuts cuts = 0
 

xsec_vs_energy * neugen_wrapper::xsec_spline float  emin,
float  emax,
int  nbins,
interaction ni,
neugen_cuts cuts = 0
 

Definition at line 520 of file neugen_wrapper.cxx.

References xsec().

00522 {
00523   assert(emin < emax && nbins > 1);
00524 
00525   double * E    = new double[nbins];
00526   double * XSec = new double[nbins];
00527 
00528   double de = (emax - emin) / ( nbins - 1);
00529 
00530   for(int ie = 0; ie < nbins; ie++) {
00531 
00532       E[ie]    = emin + ie * de;
00533       XSec[ie] = xsec (E[ie], ni, cuts);
00534 
00535       cout << "xsec(" << E[ie] << ") = " << XSec[ie] << endl;
00536   }
00537 
00538   xsec_vs_energy * spline = new xsec_vs_energy(nbins, E, XSec);
00539 
00540   //delete [] E;
00541   //delete [] XSec;
00542 
00543   return spline;
00544 }


Friends And Related Function Documentation

ostream& operator<< ostream &  stream,
const neugen_wrapper conf
[friend]
 

Definition at line 23 of file neugen_wrapper.cxx.

00024 {
00025   conf.print(stream);
00026   return stream;
00027 }

ostream& operator<< ostream &  stream,
const neugen_wrapper conf
[friend]
 

Definition at line 23 of file neugen_wrapper.cxx.

00024 {
00025   conf.print(stream);
00026   return stream;
00027 }


Member Data Documentation

neugen_config* neugen_wrapper::_config [private]
 

Definition at line 122 of file neugen_wrapper.h.

neugen_config* neugen_wrapper::_config [private]
 

Definition at line 150 of file neugen3_dummy.h.

Referenced by init(), neugen_wrapper(), print(), reconfigure(), and reweight().

string neugen_wrapper::_name [private]
 

Definition at line 121 of file neugen_wrapper.h.

Referenced by print().


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:40 2010 for loon by  doxygen 1.3.9.1