NuZBeamReweight Class Reference

#include <NuZBeamReweight.h>

List of all members.

Public Member Functions

 NuZBeamReweight ()
 ~NuZBeamReweight ()
void ExtractZBeamReweight (NuEvent &nu, bool useCustom=false) const
void ExtractZBeamReweight (NuMCEvent &numc, bool useCustom=false) const
void ExtractZBeamReweightCustom (NuEvent &nu) const
void ExtractZBeamReweightCustom (NuMCEvent &numc) const
void ExtractZBeamReweight (const NtpStRecord &ntp, const NtpSREvent &evt, NuEvent &nu) const
void ExtractZBeamReweight (const NtpStRecord &ntp, NuEvent &nu) const
void GetBeamWeightsOnly (NuEvent &nu) const
void CalcGeneratorReweight (const NtpStRecord &ntp, const NtpSREvent &evt, NuEvent &nu) const
void CalcGeneratorReweight (NuEvent &nu) const
double GetWeightHelium (NuEvent &nu) const
SKZPWeightCalculatorGetSKZPWeightCalculator (const NuEvent &nu) const
SKZPWeightCalculatorGetSKZPWeightCalculatorCustom () const
const Char_t * AsString (SKZPWeightCalculator::SKZPConfig_t c) const

Private Member Functions

bool EventPreCheck (NuEvent &nu) const
void GetWeights (NuEvent &nu, SKZPWeightCalculator &wc, bool beamOnly=false) const
void GetWeights (NuEvent &nu, SKZPWeightCalculator &wc, SKZPWeightCalculator::RunPeriod_t rp, bool beamOnly=false) const
void GetRFWeights (NuEvent &nu, SKZPWeightCalculator &wc) const
void AddNeugenWeightCalculator () const
void CompareMCEventInfo (const MCEventInfo &ei, const MCEventInfo &ei2) const
RegistryCreateNeugenRegistry (const NuEvent &nu) const
void MCEventInfoFilla (MCEventInfo *ei, const NuEvent &nu) const

Detailed Description

Definition at line 19 of file NuZBeamReweight.h.


Constructor & Destructor Documentation

NuZBeamReweight::NuZBeamReweight (  ) 

Definition at line 36 of file NuZBeamReweight.cxx.

References Msg::kDebug, and MSG.

00037 {
00038   MSG("NuZBeamReweight",Msg::kDebug)
00039     <<"Running NuZBeamReweight Constructor..."<<endl;
00040 
00041 
00042   MSG("NuZBeamReweight",Msg::kDebug)
00043     <<"Finished NuZBeamReweight Constructor"<<endl;
00044 }

NuZBeamReweight::~NuZBeamReweight (  ) 

Definition at line 48 of file NuZBeamReweight.cxx.

References Msg::kDebug, and MSG.

00049 {
00050   MSG("NuZBeamReweight",Msg::kDebug)
00051     <<"Running NuZBeamReweight Destructor..."<<endl;
00052 
00053 
00054   MSG("NuZBeamReweight",Msg::kDebug)
00055     <<"Finished NuZBeamReweight Destructor"<<endl;
00056 }


Member Function Documentation

void NuZBeamReweight::AddNeugenWeightCalculator (  )  const [private]

make a WeightCalculator and add it to the MCReweight singleton

Definition at line 788 of file NuZBeamReweight.cxx.

References MCReweight::AddWeightCalculator(), MCReweight::Instance(), Msg::kInfo, MAXMSG, and n.

Referenced by CalcGeneratorReweight().

00789 {
00791   Bool_t firstTime=true;
00792   if (firstTime) {
00793     firstTime=false;
00794     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00795       <<"Adding NeugenWeightCalculator to MCReweight singleton"<<endl;
00796     static NeugenWeightCalculator *n=new NeugenWeightCalculator();
00797     MCReweight* mcr=&MCReweight::Instance();
00798     mcr->AddWeightCalculator(n);
00799   }
00800 }

const Char_t * NuZBeamReweight::AsString ( SKZPWeightCalculator::SKZPConfig_t  c  )  const

Definition at line 910 of file NuZBeamReweight.cxx.

References SKZPWeightCalculator::kBoston, SKZPWeightCalculator::kDetXs, SKZPWeightCalculator::kDogwood1_Daikon07, SKZPWeightCalculator::kDogwood1_Daikon07_v2, SKZPWeightCalculator::kDogwood5_Daikon07_2012, SKZPWeightCalculator::kMINOSplus_2014, SKZPWeightCalculator::kMINOSplus_2014_v2, SKZPWeightCalculator::kPiMinus, SKZPWeightCalculator::kPRL, and SKZPWeightCalculator::kUnknown.

Referenced by GetSKZPWeightCalculator().

00911 {
00912   // return char string in cannonical offline form
00913   switch (c) {
00914   case SKZPWeightCalculator::kPRL:     return "PRL";
00915   case SKZPWeightCalculator::kBoston:  return "Boston";
00916   case SKZPWeightCalculator::kPiMinus: return "PiMinus_CedarDaikon";
00917   case SKZPWeightCalculator::kDetXs:   return "DetXs";
00918   case SKZPWeightCalculator::kDogwood1_Daikon07: return "Dogwood1_Daikon07";
00919   case SKZPWeightCalculator::kDogwood1_Daikon07_v2: return "Dogwood1_Daikon07_v2";
00920   case SKZPWeightCalculator::kDogwood5_Daikon07_2012: return "Dogwood5_Daikon07_2012";
00921   case SKZPWeightCalculator::kMINOSplus_2014: return "MINOSplus_2014";
00922   case SKZPWeightCalculator::kMINOSplus_2014_v2: return "MINOSplus_2014_v2";
00923   case SKZPWeightCalculator::kUnknown: return "Unknown"; break;
00924   default:         return "!?Bad Value Passed?!"; break;
00925   }
00926 }

void NuZBeamReweight::CalcGeneratorReweight ( NuEvent nu  )  const

Definition at line 455 of file NuZBeamReweight.cxx.

References AddNeugenWeightCalculator(), MCReweight::ComputeWeight(), CreateNeugenRegistry(), NuEvent::generatorConfigNo, NuEvent::generatorWeight, MCReweight::Instance(), ReleaseType::IsDaikon(), Msg::kInfo, MAXMSG, MCEventInfoFilla(), NuEvent::releaseType, NuEvent::sGeneratorConfigName, NuEvent::useGeneratorReweight, and MCEventInfo::UseStoredXSec().

00456 {
00457   if (!nu.useGeneratorReweight) {
00458     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00459       <<"CalcGeneratorReweight(nu): not calculating Generator reweight"
00460       <<" since nu.useGeneratorReweight="<<nu.useGeneratorReweight
00461       <<endl;
00462     return;
00463   }
00464 
00465   if (ReleaseType::IsDaikon(nu.releaseType)) {
00466     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00467       <<"Not doing CalcGeneratorReweight(nu) for Daikon, not required"
00468       <<endl;
00469     return;
00470   }
00471 
00472   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00473     <<"CalcGeneratorReweight(nu):"<<endl
00474     <<"  generator:config_name="<<nu.sGeneratorConfigName
00475     <<"  generator:config_no="<<nu.generatorConfigNo
00476     <<endl;
00477 
00478   //declare the registry and create it only once
00479   static Registry* rwtconfig=this->CreateNeugenRegistry(nu);
00480 
00481   //make a WeightCalculator and add it to the MCReweight singleton
00482   this->AddNeugenWeightCalculator();
00483 
00484   //fill MCEventInfo
00485   MCEventInfo ei;
00486   ei.UseStoredXSec(true);
00487   //ReweightHelpers::MCEventInfoFilla(&ei,st,thidx);
00488   this->MCEventInfoFilla(&ei,nu);
00489 
00490   //Compute the MODBYRS3 weight
00491   Double_t generatorweight=1.;
00492   NuParent* np=0;
00493   if (nu.useGeneratorReweight){
00494     MCReweight* mcr=&MCReweight::Instance();
00495     generatorweight=mcr->ComputeWeight(&ei,np,rwtconfig);
00496   }
00497 
00498   //set the output of the function
00499   nu.generatorWeight=generatorweight;
00500 }

void NuZBeamReweight::CalcGeneratorReweight ( const NtpStRecord ntp,
const NtpSREvent evt,
NuEvent nu 
) const

Compute the generator weight (e.g. MODBYRS) this method does a sanity check so keep for now plan to kill off all dependence on NtpS* in the longer term

Definition at line 377 of file NuZBeamReweight.cxx.

References AddNeugenWeightCalculator(), CompareMCEventInfo(), MCReweight::ComputeWeight(), CreateNeugenRegistry(), NuEvent::generatorConfigNo, NuEvent::generatorWeight, NtpSREvent::index, MCReweight::Instance(), ReleaseType::IsDaikon(), Msg::kDebug, Msg::kInfo, SimFlag::kMC, MAXMSG, MCEventInfoFilla(), NtpTHEvent::neumc, NuEvent::releaseType, NuEvent::sGeneratorConfigName, NuEvent::simFlag, NtpStRecord::thevt, NuEvent::useGeneratorReweight, and MCEventInfo::UseStoredXSec().

Referenced by NuAnalysis::ExtractPIDsAndWeights().

00380 {
00384 
00385   //return if not MC
00386   if (nu.simFlag!=SimFlag::kMC) {
00387     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00388       <<"Not doing CalcGeneratorReweight"
00389       <<"for simFlag="<<nu.simFlag<<endl;
00390 
00391     //set the weights to 1 that would otherwise be set below
00392     nu.generatorWeight=1;//no reweighting
00393     return;
00394   }
00395 
00396   if (!nu.useGeneratorReweight) {
00397     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00398       <<"CalcGeneratorReweight: not calculating Generator reweight"
00399       <<" since nu.useGeneratorReweight="<<nu.useGeneratorReweight
00400       <<endl;
00401     return;
00402   }
00403 
00404   if (ReleaseType::IsDaikon(nu.releaseType)) {
00405     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00406       <<"Not calculating Generator weight for Daikon, not required"
00407       <<endl;
00408     return;
00409   }
00410 
00411   MAXMSG("NuZBeamReweight",Msg::kDebug,100)
00412     <<"CalcGeneratorReweight:"<<endl
00413     <<"  generator:config_name="<<nu.sGeneratorConfigName
00414     <<"  generator:config_no="<<nu.generatorConfigNo
00415     <<endl;
00416 
00417   //declare the registry and create it only once
00418   static Registry* rwtconfig=this->CreateNeugenRegistry(nu);
00419 
00420   //make a WeightCalculator and add it to the MCReweight singleton
00421   this->AddNeugenWeightCalculator();
00422 
00423   //get the MC info from the ntp
00424   TClonesArray& thevtTca=*ntp.thevt;
00425   const NtpTHEvent* the=
00426     dynamic_cast<NtpTHEvent*>(thevtTca[evt.index]);
00427   Int_t thidx=the->neumc;
00428 
00429   //fill MCEventInfo to do MODBYRS3;
00430   MCEventInfo ei;
00431   ei.UseStoredXSec(true);
00432   NtpStRecord* st=const_cast<NtpStRecord*>(&ntp);//nasty!
00433   ReweightHelpers::MCEventInfoFilla(&ei,st,thidx);
00434 
00435   //a second one for a sanity check on the values in the NuEvent
00436   MCEventInfo ei2;
00437   ei2.UseStoredXSec(true);
00438   this->MCEventInfoFilla(&ei2,nu);
00439   this->CompareMCEventInfo(ei,ei2);
00440 
00441   //Compute the MODBYRS3 weight
00442   Double_t generatorweight=1.;
00443   NuParent* np=0;
00444   if (nu.useGeneratorReweight){
00445     MCReweight* mcr=&MCReweight::Instance();
00446     generatorweight=mcr->ComputeWeight(&ei,np,rwtconfig);
00447   }
00448 
00449   //set the output of the function
00450   nu.generatorWeight=generatorweight;
00451 }

void NuZBeamReweight::CompareMCEventInfo ( const MCEventInfo ei,
const MCEventInfo ei2 
) const [private]

Definition at line 826 of file NuZBeamReweight.cxx.

References MCEventInfo::had_fs, MCEventInfo::initial_state, Msg::kError, MAXMSG, and MCEventInfo::nucleus.

Referenced by CalcGeneratorReweight().

00828 {
00829   if (ei.initial_state!=ei2.initial_state ||
00830       ei.nucleus!=ei2.nucleus ||
00831       ei.had_fs!=ei2.had_fs){
00832     MAXMSG("NuZBeamReweight",Msg::kError,300)
00833       <<"Ahhh, CompareMCEventInfo difference found:"<<endl
00834       <<"1st: initial_state="<<ei.initial_state
00835       <<", nucleus="<<ei.nucleus
00836       <<", had_fs="<<ei.had_fs
00837       <<endl
00838       <<"2nd: initial_state="<<ei2.initial_state
00839       <<", nucleus="<<ei2.nucleus
00840       <<", had_fs="<<ei2.had_fs
00841       <<endl
00842       <<"NOTE: This discrepancy has to be understood if we"
00843       <<" are to trust the generator reweighting"
00844       <<endl;
00845   }
00846 }

Registry * NuZBeamReweight::CreateNeugenRegistry ( const NuEvent nu  )  const [private]

Definition at line 804 of file NuZBeamReweight.cxx.

References Registry::Clear(), NuEvent::generatorConfigNo, Registry::LockKeys(), Registry::LockValues(), Registry::Set(), NuEvent::sGeneratorConfigName, Registry::UnLockKeys(), and Registry::UnLockValues().

Referenced by CalcGeneratorReweight().

00805 {
00806   static Registry* rwtconfig=0;
00807 
00808   //create it the first time
00809   if (rwtconfig==0){
00810 
00811     //fill the registry to tell MCReweight to do MODBYRS3
00812     rwtconfig=new Registry();
00813     rwtconfig->UnLockValues();
00814     rwtconfig->UnLockKeys();
00815     rwtconfig->Clear();
00816     rwtconfig->Set("neugen:config_name",nu.sGeneratorConfigName.c_str());
00817     rwtconfig->Set("neugen:config_no",nu.generatorConfigNo);
00818     rwtconfig->LockValues();
00819     rwtconfig->LockKeys();
00820   }
00821   return rwtconfig;
00822 }

bool NuZBeamReweight::EventPreCheck ( NuEvent nu  )  const [private]

Definition at line 541 of file NuZBeamReweight.cxx.

References NuEvent::beamType, NuEvent::beamWeight, NuEvent::detectorWeightNM, NuEvent::detectorWeightNMB, Msg::kInfo, BeamType::kM000z200i_nova, BeamType::kM000z200i_nova_rev, SimFlag::kMC, SKZPWeightCalculator::kUnknown, MAXMSG, NuEvent::reweightVersion, NuEvent::runPeriod, NuEvent::shwEnWeight, NuEvent::simFlag, and NuEvent::trkEnWeight.

Referenced by ExtractZBeamReweight(), and GetBeamWeightsOnly().

00542 {
00543   bool eventGood = true;
00544   
00545   if (nu.runPeriod == 0 && BeamType::kM000z200i_nova != nu.beamType ) {
00546     if (//BeamType::kM000z200i_nova == nu.beamType ||
00547         BeamType::kM000z200i_nova_rev == nu.beamType){
00548       MAXMSG("NuZBeamReweight",Msg::kInfo,10)
00549         << "Not extracting SKZP weights for NOvA beam" << endl;
00550       eventGood = false;
00551     }
00552     else{
00553       MAXMSG("NuZBeamReweight",Msg::kInfo,100)
00554         << "Daikon04-era weights for nu.runPeriod="<< nu.runPeriod
00555         << " are no longer supported.  Now you need a valid (>1) "
00556         << "run period to get SKZP weights.  No weights obtained." << endl;
00557       eventGood = false;
00558     }
00559   }
00560   
00561   if (nu.simFlag != SimFlag::kMC) {
00562     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00563     << "Not doing ExtractZBeamReweight for Data (nu.simFlag = "
00564     << nu.simFlag << ")" << endl;
00565     eventGood = false;
00566   }
00567   
00568   
00569   if (nu.reweightVersion==SKZPWeightCalculator::kUnknown) {
00570     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00571     <<"Not doing ExtractZBeamReweight for kUnknown reweightVersion="
00572     << nu.reweightVersion << endl;
00573         
00574     eventGood = false;
00575   }
00576     
00577   if (nu.runPeriod == -1) {
00578     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00579     << "Not doing ExtractZBeamReweight by user choice (nu.runPeriod = " 
00580     << nu.runPeriod << ")" << endl;
00581     eventGood = false;
00582   }
00583   
00584   if (!eventGood) {
00585     //set the weights to 1 that would otherwise come from SKZPWeightCalculator
00586     nu.trkEnWeight=1;//no reweighting
00587     nu.shwEnWeight=1;//no reweighting
00588     nu.beamWeight=1;//no reweighting
00589     nu.detectorWeightNMB=1;//no reweighting
00590     nu.detectorWeightNM=1;//no reweighting
00591         
00592     return false;
00593   }
00594 
00595   return true;
00596 }

void NuZBeamReweight::ExtractZBeamReweight ( const NtpStRecord ntp,
NuEvent nu 
) const

Definition at line 161 of file NuZBeamReweight.cxx.

References ExtractZBeamReweight(), Msg::kError, and MAXMSG.

00163 {
00164   MAXMSG("NuZBeamReweight",Msg::kError,2000)
00165     <<"NuZBeamReweight::ExtractZBeamReweight(const NtpStRecord& ntp,NuEvent& nu) const"
00166     <<" is deprecated, passing off to ExtractZBeamReweight(NuEvent& nu)!"<<endl;
00167   this->ExtractZBeamReweight(nu);
00168 }

void NuZBeamReweight::ExtractZBeamReweight ( const NtpStRecord ntp,
const NtpSREvent evt,
NuEvent nu 
) const

Definition at line 151 of file NuZBeamReweight.cxx.

References ExtractZBeamReweight().

00154 {
00155   //get the weights
00156   this->ExtractZBeamReweight(nu);
00157 }

void NuZBeamReweight::ExtractZBeamReweight ( NuMCEvent numc,
bool  useCustom = false 
) const

Definition at line 98 of file NuZBeamReweight.cxx.

References NuReco::ApplyReweights(), NuMCEvent::beamWeight, NuEvent::beamWeight, NuMCEvent::detectorWeight, NuEvent::detectorWeight, NuMCEvent::detectorWeightNM, NuEvent::detectorWeightNM, NuEvent::detectorWeightNMB, NuMCEvent::detectorWeightNMB, NuLibrary::ext, ExtractZBeamReweight(), NuMCEvent::fluxErr, NuEvent::fluxErr, NuEvent::generatorWeight, NuMCEvent::generatorWeight, NuLibrary::Instance(), Msg::kInfo, MAXMSG, NuExtraction::NuEventFromNuMCEvent(), NuLibrary::reco, NuEvent::reweightVersion, NuMCEvent::rw, NuEvent::rw, NuEvent::rwActual, NuMCEvent::rwActual, NuMCEvent::shwEnWeight, NuEvent::shwEnWeight, NuMCEvent::trkEnWeight, and NuEvent::trkEnWeight.

00099 {
00100   if (!useCustom) {
00101     MAXMSG("NuZBeamReweight",Msg::kInfo,1) << "Extracting beam weights for a NuMCEvent." << endl
00102     << "  Be aware that unless you have previously extracted weights for a NuEvent" << endl
00103     << "  NuZBeamReweight does not know what reweightVersion to use because that" << endl
00104     << "  information is not stored in NuMCEvent.  If you have previously gotten" << endl
00105     << "  weights for a NuEvent the same reweightVersion *should* be used.  If not" << endl
00106     << "  the reweightVersion defaults to 7 (kDogwood5_Daikon07_2012).  Check the" << endl
00107     << "  logs carefully.  The *correct* solution here is to add reweightVersion" << endl
00108     << "  to NuMCEvent -- but not at this late stage." << endl;
00109   }
00110 
00111   const NuLibrary& lib=NuLibrary::Instance();
00112 
00113   NuEvent nu;
00114   lib.ext.NuEventFromNuMCEvent(numc, nu);
00115   nu.reweightVersion = 7; // Forcing to kDogwood5_Daikon07_2012
00116   ExtractZBeamReweight(nu);
00117   lib.reco.ApplyReweights(nu);
00118 
00119   //copy the weights
00120   numc.rw=nu.rw;
00121   numc.fluxErr=nu.fluxErr;
00122   numc.rwActual=nu.rwActual;
00123   numc.generatorWeight=nu.generatorWeight;
00124   numc.detectorWeight=nu.detectorWeight;
00125 
00126   numc.trkEnWeight=nu.trkEnWeight;
00127   numc.shwEnWeight=nu.shwEnWeight;
00128   numc.beamWeight=nu.beamWeight;
00129   numc.detectorWeightNMB=nu.detectorWeightNMB;
00130   numc.detectorWeightNM=nu.detectorWeightNM;
00131 }

void NuZBeamReweight::ExtractZBeamReweight ( NuEvent nu,
bool  useCustom = false 
) const

Definition at line 60 of file NuZBeamReweight.cxx.

References EventPreCheck(), GetSKZPWeightCalculator(), GetSKZPWeightCalculatorCustom(), GetWeights(), Msg::kInfo, and MAXMSG.

Referenced by NuAnalysis::ExtractPIDsAndWeights(), ExtractZBeamReweight(), ExtractZBeamReweightCustom(), NuAnalysis::LIRejectionTest(), NuAnalysis::LoopOverTruthInfo(), NuDSTAna::MakeMicroDst2010(), NuDSTAna::MakeMicroDst2014(), NuDSTAna::MakeMicroDstHe(), NuDSTAna::MakeMicroDstNC2012(), NuDSTAna::NDQPRB(), NuDSTAna::QPStudy(), and NuDSTAna::RHCTest().

00061 {
00062 
00063   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00064     <<"Running ExtractZBeamReweight..."<<endl;
00065 
00066   // Protect people's gDirectory from being unexpectedly stomped on
00067   TDirectory* restore = gDirectory;
00068 
00069   if (!this->EventPreCheck(nu)) return;
00070 
00071 //  // Use NA49 NuMu-only weights for RHC
00072 //  if (nu.hornIsReverse ||
00073 //      nu.runPeriod == 4 ||
00074 //      nu.beamType == BeamType::kL010z185i_rev) {
00075 //    MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00076 //    <<"Using numu-only weights for RHC"<<endl;
00077 //    useCustom = true;
00078 //  }
00079 
00080   //get a reference
00081   SKZPWeightCalculator* wc;
00082   if (useCustom) {
00083     wc = this->GetSKZPWeightCalculatorCustom();
00084   }
00085   else {
00086     wc = this->GetSKZPWeightCalculator(nu);
00087   }
00088 
00089 
00090   GetWeights(nu, *wc);
00091   
00092   // Protect people's gDirectory from being unexpectedly stomped on
00093   restore->cd();
00094 }

void NuZBeamReweight::ExtractZBeamReweightCustom ( NuMCEvent numc  )  const

Definition at line 143 of file NuZBeamReweight.cxx.

References ExtractZBeamReweight().

00144 {
00145   this->ExtractZBeamReweight(numc, true);
00146 }

void NuZBeamReweight::ExtractZBeamReweightCustom ( NuEvent nu  )  const

Definition at line 135 of file NuZBeamReweight.cxx.

References ExtractZBeamReweight().

00136 {
00137   this->ExtractZBeamReweight(nu, true);
00138 }

void NuZBeamReweight::GetBeamWeightsOnly ( NuEvent nu  )  const

Definition at line 173 of file NuZBeamReweight.cxx.

References EventPreCheck(), GetSKZPWeightCalculator(), GetWeights(), Msg::kInfo, and MAXMSG.

Referenced by NuFluxHelper::FillMMHelpers(), and NuFluxHelper::FillNonMMHelpers().

00174 {
00175 
00176   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00177   <<"Running GetZBeamReweight..."<<endl;
00178 
00179   if (!this->EventPreCheck(nu)) return;
00180 
00181   //get a reference
00182   SKZPWeightCalculator* wc=this->GetSKZPWeightCalculator(nu);
00183   
00184   GetWeights(nu, *wc, true);
00185 }

void NuZBeamReweight::GetRFWeights ( NuEvent nu,
SKZPWeightCalculator wc 
) const [private]

Definition at line 770 of file NuZBeamReweight.cxx.

References NuEvent::beamWeight, NuEvent::detectorWeightNM, NuEvent::detectorWeightNMB, NuEvent::fluxErr, Msg::kInfo, MSG, NuEvent::shwEnWeight, and NuEvent::trkEnWeight.

00771 {
00772   MSG("NuZBeamReweight",Msg::kInfo) << "Older run faction weights are no longer "
00773   << "supported, not getting any weights." << endl;
00774   
00775   nu.trkEnWeight       = 1;
00776   nu.shwEnWeight       = 1;
00777   nu.beamWeight        = 1;
00778   nu.fluxErr           = 1;
00779   nu.detectorWeightNMB = 1;
00780   nu.detectorWeightNM  = 1;
00781 }

SKZPWeightCalculator * NuZBeamReweight::GetSKZPWeightCalculator ( const NuEvent nu  )  const

Definition at line 190 of file NuZBeamReweight.cxx.

References AsString(), NuEvent::beamType, Msg::kDebug, Msg::kInfo, BeamType::kL010z185i, BeamType::kL010z185i_rev, SKZPWeightCalculator::kRunI, SKZPWeightCalculator::kRunII, MAXMSG, MSG, SKZPWeightCalculator::PrintReweightConfig(), NuEvent::reweightVersion, SKZPWeightCalculator::SetRunFrac(), and BeamType::ToZarko().

Referenced by ExtractZBeamReweight(), and GetBeamWeightsOnly().

00191 {
00192 
00193   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00194   <<"Loading normal weights"<<endl;
00195 
00196   //make a weight calculator, defining the skzp version to use
00197   static SKZPWeightCalculator* pwc=0;
00198 
00199   //create the weight calculator on the first call
00200   if (pwc==0) {
00201     //get a string of the reweightVersion
00202     string sReweightVersion=this->AsString
00203       (static_cast<SKZPWeightCalculator::SKZPConfig_t>
00204        (nu.reweightVersion));
00205     MSG("NuZBeamReweight",Msg::kInfo)
00206       <<"To access database, using the string="<<sReweightVersion<<endl;
00207 
00208     TDirectory* tmpd = gDirectory;
00209     MSG("NuZBeamReweight",Msg::kDebug)
00210       <<"TDirectory before Reweight is:"<<endl;
00211     //tmpd->Print();
00212 
00213     //create the weight calculator
00214     //read constants from DB
00215     pwc=new SKZPWeightCalculator(sReweightVersion,true);
00216 
00217     // Can always do this since it will only be accessed when getting RFWeights
00218     //define and set the numbers of POTs in each run period
00219     //numbers from Andy Blakes minos-doc-3727
00220     Float_t potRunI=1.269e20;
00221     //runIIa=1.229
00222     //runIIb=0.721
00223     Float_t potRunII=1.950e20;
00224     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00225     <<"ExtractZBeamReweight: SetRunFrac w/ potRunI="<<potRunI
00226     <<", potRunII="<<potRunII<<endl;
00227 
00228     Int_t Ibeam;
00229     if (nu.beamType == BeamType::kL010z185i_rev) {
00230       MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00231       << "Changing beamtype from kL010z185i_rev to kL010z185i for SKZP weighting" << endl;
00232       Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(BeamType::kL010z185i));
00233     }
00234     else {
00235       Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(nu.beamType));
00236     }
00237 
00238 
00239     pwc->SetRunFrac(Ibeam,SKZPWeightCalculator::kRunI,potRunI);
00240     pwc->SetRunFrac(Ibeam,SKZPWeightCalculator::kRunII,potRunII);
00241 
00242     //print the config
00243     pwc->PrintReweightConfig(cout);
00244 
00245     MSG("NuZBeamReweight",Msg::kDebug)
00246       <<"TDirectory after building Zbeam and Zflux is:"<<endl;
00247     //gDirectory->Print();
00248     MSG("NuZBeamReweight",Msg::kDebug)
00249       <<"After reseting gDirectory its location is:"<<endl;
00250     gDirectory=tmpd;
00251     //gDirectory->Print();
00252   }
00253 
00254   return pwc;
00255 }

SKZPWeightCalculator * NuZBeamReweight::GetSKZPWeightCalculatorCustom (  )  const

Definition at line 260 of file NuZBeamReweight.cxx.

References SKZPWeightCalculator::ChangeParameters(), det, Msg::kDebug, Msg::kInfo, BeamType::kL010z185i, SKZPWeightCalculator::kRunI, SKZPWeightCalculator::kRunII, MAXMSG, MSG, SKZPWeightCalculator::PrintReweightConfig(), SKZPWeightCalculator::SetRunFrac(), and BeamType::ToZarko().

Referenced by ExtractZBeamReweight(), and GetWeightHelium().

00261 {
00262   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00263   <<"Loading numu-only weights"<<endl;
00264 
00265   //make a weight calculator, defining the skzp version to use
00266   static SKZPWeightCalculator* pwc=0;
00267 
00268   //create the weight calculator on the first call
00269   if (pwc==0) {
00270 
00271     TDirectory* tmpd = gDirectory;
00272     MSG("NuZBeamReweight",Msg::kDebug) <<"TDirectory before Reweight is:"<<endl;
00273 
00274     //create the weight calculator
00275     //read constants from DB
00276     pwc=new SKZPWeightCalculator("DetXs",true);
00277 
00278     pwc->PrintReweightConfig(cout);
00279 
00280     std::vector<double> beam;
00281     std::vector<double> fluk;
00282     std::vector<double> det;
00283 
00284     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00285     MSG("NuZBeamReweight",Msg::kInfo) << "Setting new target positions." << std::endl;
00286 
00287     // target positions
00288     beam.push_back(1.52410);
00289     beam.push_back(-3.34533);
00290     beam.push_back(-3.68550);
00291     beam.push_back(0.177135);
00292     beam.push_back(-1.73917);
00293     beam.push_back(-0.0842292);
00294 
00295     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00296     MSG("NuZBeamReweight",Msg::kInfo) << "Setting new hadron production parameters." << std::endl;
00297 
00298     // pi+
00299     fluk.push_back(0.53363);
00300     fluk.push_back(-4.09962);
00301     fluk.push_back(0.959969);
00302     fluk.push_back(0.464735);
00303     fluk.push_back(0.948545);
00304     fluk.push_back(1.22209);
00305 
00306     // K+
00307     fluk.push_back(5.69124);
00308     fluk.push_back(17.4408);
00309     fluk.push_back(1.49750);
00310     fluk.push_back(0.972495);
00311     fluk.push_back(0.968975);
00312     fluk.push_back(2.19318);
00313 
00314     // pi-
00315     fluk.push_back(1.05039);
00316     fluk.push_back(-0.867787);
00317 
00318     // K-
00319     fluk.push_back(0.842913);
00320     fluk.push_back(0.0595505);
00321 
00322     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00323     MSG("NuZBeamReweight",Msg::kInfo) << "Setting new detector parameters." << std::endl;
00324 
00325     // detector parameters
00326     det.push_back(-0.0183836);
00327     det.push_back(-0.244669);
00328     det.push_back(0.0); // numubar NC at nominal
00329     det.push_back(1.0); // numubar CC xsec at nominal
00330     det.push_back(0.342342);
00331     det.push_back(0.00517944);
00332     det.push_back(0.389318);
00333     det.push_back(-0.136436);
00334 
00335     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00336     MSG("NuZBeamReweight",Msg::kInfo) << "Calling change parameters." << std::endl;
00337 
00338     pwc->ChangeParameters(&beam,&fluk,&det);
00339 
00340     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00341     MSG("NuZBeamReweight",Msg::kInfo) << "Changed parameters, new configuration:" << std::endl;
00342     MSG("NuZBeamReweight",Msg::kInfo) << std::endl;
00343 
00344 
00345     // Can always do this since iy will only be accessed when getting RFWeights
00346     //define and set the numbers of POTs in each run period
00347     //numbers from Andy Blakes minos-doc-3727
00348     Float_t potRunI=1.269e20;
00349     //runIIa=1.229
00350     //runIIb=0.721
00351     Float_t potRunII=1.950e20;
00352     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00353     <<"ExtractZBeamReweight: SetRunFrac w/ potRunI="<<potRunI
00354     <<", potRunII="<<potRunII<<endl;
00355     const Int_t Ibeam=BeamType::ToZarko(BeamType::kL010z185i);
00356     pwc->SetRunFrac(Ibeam,SKZPWeightCalculator::kRunI,potRunI);
00357     pwc->SetRunFrac(Ibeam,SKZPWeightCalculator::kRunII,potRunII);
00358 
00359 
00360     //print the config
00361     pwc->PrintReweightConfig(cout);
00362 
00363     MSG("NuZBeamReweight",Msg::kDebug)
00364     <<"TDirectory after building Zbeam and Zflux is:"<<endl;
00365     //gDirectory->Print();
00366     MSG("NuZBeamReweight",Msg::kDebug)
00367     <<"After reseting gDirectory its location is:"<<endl;
00368     gDirectory=tmpd;
00369     //gDirectory->Print();
00370   }
00371 
00372   return pwc;
00373 }

double NuZBeamReweight::GetWeightHelium ( NuEvent nu  )  const

Definition at line 505 of file NuZBeamReweight.cxx.

References NuEvent::beamType, det, NuEvent::detector, SKZPWeightCalculator::GetHeliumWeight(), ReleaseType::GetMCSubVersion(), GetSKZPWeightCalculatorCustom(), NuEvent::inu, ReleaseType::IsDaikon(), Msg::kInfo, BeamType::kL010z185i, BeamType::kL010z185i_rev, Msg::kWarning, MAXMSG, NuEvent::neuEnMC, NuUtilities::PrintRelease(), NuEvent::releaseType, and BeamType::ToZarko().

Referenced by NuDSTAna::MakeMicroDstHe(), and NuDSTAna::RHCTest().

00506 {
00507   if (ReleaseType::IsDaikon(nu.releaseType) &&
00508       ReleaseType::GetMCSubVersion(nu.releaseType) > 4) {
00509     MAXMSG("NuZBeamReweight",Msg::kWarning, 10)
00510     << "Asking for He weights for releaseType = "
00511     << NuUtilities::PrintRelease(nu.releaseType)
00512     << " -- He should already be accounted for.  Returning 1." << endl;
00513     return 1;
00514   }
00515 
00516   // It doesn't matter which weight calculator we get
00517   SKZPWeightCalculator *wc = this->GetSKZPWeightCalculatorCustom();
00518 
00519   int inu = nu.inu;
00520   double E = nu.neuEnMC;
00521   int det = nu.detector;
00522   int Ibeam;
00523   if (nu.beamType == BeamType::kL010z185i_rev) {
00524     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00525     << "Changing beamtype from kL010z185i_rev to kL010z185i for SKZP weighting" << endl;
00526     Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(BeamType::kL010z185i));
00527     inu *= -1;
00528   }
00529   else {
00530     Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(nu.beamType));
00531   }
00532 
00533 
00534   return wc->GetHeliumWeight(det, Ibeam, inu, E);
00535 }

void NuZBeamReweight::GetWeights ( NuEvent nu,
SKZPWeightCalculator wc,
SKZPWeightCalculator::RunPeriod_t  rp,
bool  beamOnly = false 
) const [private]

int ccnc, double true_enu,int inu,

Definition at line 636 of file NuZBeamReweight.cxx.

References NuEvent::beamType, NuEvent::beamWeight, NuEvent::detector, NuEvent::detectorWeightNM, NuEvent::detectorWeightNMB, NuEvent::fluxErr, SKZPWeightCalculator::GetBeamWeight(), SKZPWeightCalculator::GetFluxError(), SKZPWeightCalculator::GetWeight(), NuEvent::iaction, NuEvent::inu, Msg::kDebug, Msg::kInfo, BeamType::kL010z185i, BeamType::kL010z185i_rev, MAXMSG, MCEventInfoFilla(), NuEvent::neuEnMC, SKZPWeightCalculator::SetSampleSelection(), NuEvent::shwEn, NuEvent::shwEnMC, NuEvent::shwEnWeight, BeamType::ToZarko(), NuEvent::tptype, NuEvent::tpx, NuEvent::tpy, NuEvent::tpz, NuEvent::trkEn, NuEvent::trkEnWeight, and MCEventInfo::UseStoredXSec().

00639 {
00640   //fill MCEventInfo
00641   MCEventInfo ei;
00642   if (!beamOnly) {
00643     ei.UseStoredXSec(true);
00644     this->MCEventInfoFilla(&ei,nu);
00645   }
00646 
00647   //convert the std BeamType into Zarko's convention
00648   //was 2=le010z185i (Zbeam.h)
00649   Int_t Ibeam;
00650   if (nu.beamType == BeamType::kL010z185i_rev) {
00651     MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00652     << "Changing beamtype from kL010z185i_rev to kL010z185i for SKZP weighting" << endl;
00653     Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(BeamType::kL010z185i));
00654   }
00655   else {
00656     Ibeam = BeamType::ToZarko(static_cast<BeamType::BeamType_t>(nu.beamType));
00657   }
00658 
00659   //copied from SKZPWeightCalculator
00660   Int_t ccnc=nu.iaction;
00661   Double_t true_enu=nu.neuEnMC;//p4neu[3]
00662   Double_t true_eshw=nu.shwEnMC;//p4shw[3]
00663   Int_t inu=nu.inu;
00664   Float_t nsigma=1;
00665   //FUTURE VERSIONS may use this:
00666   //parenttype = fi->ptype;
00667   //parentpz = 1.*fi->pppz;
00668   //parentpy = 1.*fi->ppdydz*parentpz;
00669   //parentpx = 1.*fi->ppdxdz*parentpz;
00670   Int_t parenttype = nu.tptype;
00671   Double_t parentpz = nu.tpz;
00672   Double_t parentpy = nu.tpy;
00673   Double_t parentpx = nu.tpx;
00674   Double_t pt = sqrt(parentpy*parentpy+parentpx*parentpx);
00675 
00676   //create variables that are passed by reference to function to fill
00677   Double_t new_reco_emu=0;
00678   Double_t new_reco_eshw=0;
00679   Double_t beamweight=0;
00680   Double_t detweightNMB=0;
00681   Double_t detweightNM=0;
00682   Float_t trkEnWeight=1;
00683   Float_t shwEnWeight=1;
00684 
00685   if (beamOnly) {
00686     // Get only the beam weights
00687     beamweight = wc.GetBeamWeight(nu.detector, Ibeam, parenttype, pt,
00688                                   parentpz, true_enu, inu, rp);
00689   }
00690   else {
00691     // Get the skzp weights (beam and detector)
00692     wc.SetSampleSelection("NuMuBar");
00693     wc.GetWeight(nu.detector,Ibeam,
00694                  parenttype,pt,parentpz,ccnc,true_enu,inu,
00695                  nu.trkEn,nu.shwEn,new_reco_emu,new_reco_eshw,
00696                  beamweight,detweightNMB,rp,true_eshw,&ei);
00697 
00698 
00699 
00700     MAXMSG("NuZBeamReweight",Msg::kDebug,200)
00701     <<endl<<"iaction="<<nu.iaction
00702     <<", nu.trkEn="<<nu.trkEn<<", nu.shwEn="<<nu.shwEn<<endl;
00703 
00704     MAXMSG("NuZBeamReweight",Msg::kDebug,200)
00705     <<"NMB: newEmu="<<new_reco_emu
00706     <<", newEShw="<<new_reco_eshw
00707     <<", detNMB="<<detweightNMB
00708     <<", beamW="<<beamweight<<endl;
00709 
00710     //get the skzp weights (beam and detector)
00711     wc.SetSampleSelection("NuMu");
00712     wc.GetWeight(nu.detector,Ibeam,
00713                  parenttype,pt,parentpz,ccnc,true_enu,inu,
00714                  nu.trkEn,nu.shwEn,new_reco_emu,new_reco_eshw,
00715                  beamweight,detweightNM,rp,true_eshw,&ei);
00716 
00717     MAXMSG("NuZBeamReweight",Msg::kDebug,200)
00718     <<"NM:  newEmu="<<new_reco_emu
00719     <<", newEshw="<<new_reco_eshw
00720     <<",  detNM="<<detweightNM
00721     <<", beamW="<<beamweight<<endl;
00722 
00723     //new for kDetXs
00724     //double GetWeight(int det, int Ibeam,
00725     //     int tptype, double pt, double pz,
00727     //     double reco_emu, double reco_eshw,
00728     //     double &new_reco_emu, double &new_reco_eshw,
00729     //     double &beamweight, double &detweight,
00730     //     RunPeriod_t rp=kRunI,double true_eshw=-1,MCEventInfo *ei=0);
00731 
00732     if (nu.trkEn) trkEnWeight=new_reco_emu/nu.trkEn;
00733     if (nu.shwEn) shwEnWeight=new_reco_eshw/nu.shwEn;
00734   }
00735 
00736   //get the flux errors
00737   Float_t fluxErr = wc.GetFluxError(nu.detector,Ibeam,inu,true_enu, rp, nsigma);  
00738   
00739   
00740   MAXMSG("NuZBeamReweight",Msg::kDebug,300)
00741   << "Wgts for run " << (int)rp
00742   << ", b="   << beamweight
00743   << ", dNMB="<< detweightNMB
00744   << ", dNM=" << detweightNM
00745   << ", trk=" << trkEnWeight
00746   << ", shw=" << shwEnWeight
00747   << endl
00748   << "energyMC="  << nu.neuEnMC
00749   << ", iaction=" << nu.iaction
00750   << ", inu="     << nu.inu
00751   << endl
00752   << "fluxErr=" << fluxErr << endl
00753   << endl;  
00754   
00755   nu.beamWeight = beamweight;
00756   nu.fluxErr    = fluxErr;
00757   
00758   if (!beamOnly) {
00759     nu.trkEnWeight                = trkEnWeight;
00760     nu.shwEnWeight                = shwEnWeight;
00761     nu.detectorWeightNMB          = detweightNMB;
00762     nu.detectorWeightNM           = detweightNM;
00763   }
00764 
00765 }

void NuZBeamReweight::GetWeights ( NuEvent nu,
SKZPWeightCalculator wc,
bool  beamOnly = false 
) const [private]

Definition at line 601 of file NuZBeamReweight.cxx.

References Msg::kError, Msg::kInfo, SKZPWeightCalculator::kNone, SKZPWeightCalculator::kRunI, SKZPWeightCalculator::kRunII, SKZPWeightCalculator::kRunIII, SKZPWeightCalculator::kRunIV, SKZPWeightCalculator::kRunIX, SKZPWeightCalculator::kRunV, SKZPWeightCalculator::kRunVI, SKZPWeightCalculator::kRunVII, SKZPWeightCalculator::kRunVIII, SKZPWeightCalculator::kRunX, SKZPWeightCalculator::kRunXI, SKZPWeightCalculator::kRunXII, SKZPWeightCalculator::kRunXIII, Msg::kWarning, MAXMSG, MSG, and NuEvent::runPeriod.

Referenced by ExtractZBeamReweight(), and GetBeamWeightsOnly().

00602 {
00603   if (nu.runPeriod <= 0) {
00604     MSG("NuZBeamReweight",Msg::kError) << "Run period not specified in NuEvent -- GetWeights failing." << endl;
00605     return;
00606   }
00607   MAXMSG("NuZBeamReweight",Msg::kInfo,1)
00608   <<"Getting Daikon07+ era weights for nu.runPeriod="<< nu.runPeriod <<endl;
00609   
00610   SKZPWeightCalculator::RunPeriod_t rp = SKZPWeightCalculator::kNone;
00611   if (nu.runPeriod == 1) rp = SKZPWeightCalculator::kRunI;
00612   else if (nu.runPeriod == 2) rp = SKZPWeightCalculator::kRunII;
00613   else if (nu.runPeriod == 3) rp = SKZPWeightCalculator::kRunIII;
00614   else if (nu.runPeriod == 4) rp = SKZPWeightCalculator::kRunIV;
00615   else if (nu.runPeriod == 5) rp = SKZPWeightCalculator::kRunV;
00616   else if (nu.runPeriod == 6) rp = SKZPWeightCalculator::kRunVI;
00617   else if (nu.runPeriod == 7) rp = SKZPWeightCalculator::kRunVII;
00618   else if (nu.runPeriod == 8) rp = SKZPWeightCalculator::kRunVIII;
00619   else if (nu.runPeriod == 9) rp = SKZPWeightCalculator::kRunIX;
00620   else if (nu.runPeriod == 10) rp = SKZPWeightCalculator::kRunX;
00621   else if (nu.runPeriod == 11) rp = SKZPWeightCalculator::kRunXI;
00622   else if (nu.runPeriod == 12) rp = SKZPWeightCalculator::kRunXII;
00623   else if (nu.runPeriod == 13) rp = SKZPWeightCalculator::kRunXIII;
00624   else{
00625     MSG("NuZBeamReweight", Msg::kWarning)
00626       << "Unrecognised run period for SKZP weighting. Asserting here."
00627       << endl;
00628     assert(false);
00629   }
00630 
00631   this->GetWeights(nu, wc, rp, beamOnly);
00632 }

void NuZBeamReweight::MCEventInfoFilla ( MCEventInfo ei,
const NuEvent nu 
) const [private]

this is basically ripped from ReweightHelpers::MCEventInfoFilla it relies on initialState, nucleus and hfs determined in NuReco

Definition at line 850 of file NuZBeamReweight.cxx.

References MCEventInfo::had_fs, NuEvent::hadronicFinalStateMC, NuEvent::iaction, MCEventInfo::iaction, MCEventInfo::initial_state, NuEvent::initialStateMC, NuEvent::inu, MCEventInfo::inu, NuEvent::iresonance, MCEventInfo::iresonance, Msg::kDebug, MAXMSG, NuEvent::neuEnMC, NuEvent::neuPxMC, NuEvent::neuPyMC, NuEvent::neuPzMC, MCEventInfo::nucleus, NuEvent::nucleusMC, MCEventInfo::nuE, MCEventInfo::nuPx, MCEventInfo::nuPy, MCEventInfo::nuPz, MCEventInfo::q2, NuEvent::q2MC, MCEventInfo::tarE, MCEventInfo::tarPx, MCEventInfo::tarPy, MCEventInfo::tarPz, NuEvent::tgtEnMC, NuEvent::tgtPxMC, NuEvent::tgtPyMC, NuEvent::tgtPzMC, MCEventInfo::w2, NuEvent::w2MC, MCEventInfo::x, NuEvent::xMC, MCEventInfo::y, and NuEvent::yMC.

Referenced by CalcGeneratorReweight(), and GetWeights().

00852 {
00855 
00856   ei->nuE=nu.neuEnMC;
00857   ei->nuPx=nu.neuPxMC;
00858   ei->nuPy=nu.neuPyMC;
00859   ei->nuPz=nu.neuPzMC;
00860 
00861   ei->tarE=nu.tgtEnMC;
00862   ei->tarPx=nu.tgtPxMC;
00863   ei->tarPy=nu.tgtPyMC;
00864   ei->tarPz=nu.tgtPzMC;
00865 
00866   ei->y=nu.yMC;
00867   ei->x=nu.xMC;
00868   ei->q2=nu.q2MC;
00869   ei->w2=nu.w2MC;
00870 
00871   ei->iaction=nu.iaction;
00872   ei->inu=nu.inu;
00873   ei->iresonance=nu.iresonance;
00874   ei->initial_state=nu.initialStateMC;
00875 
00876   ei->nucleus=nu.nucleusMC;
00877 
00878   ei->had_fs=nu.hadronicFinalStateMC;
00879 
00880 
00881   MAXMSG("NuZBeamReweight",Msg::kDebug,100)
00882     <<endl<<endl
00883     <<", ei->nuE="<<ei->nuE
00884     <<", ei->nuPx="<<ei->nuPx
00885     <<", ei->nuPy="<<ei->nuPy
00886     <<", ei->nuPz="<<ei->nuPz
00887     <<endl
00888     <<", ei->tarE="<<ei->tarE
00889     <<", ei->tarPx="<<ei->tarPx
00890     <<", ei->tarPy="<<ei->tarPy
00891     <<", ei->tarPz="<<ei->tarPz
00892     <<endl
00893     <<", ei->y="<<ei->y<<endl
00894     <<", ei->x="<<ei->x<<endl
00895     <<", ei->q2="<<ei->q2<<endl
00896     <<", ei->w2="<<ei->w2<<endl
00897     <<endl
00898     <<", ei->iaction="<<ei->iaction<<endl
00899     <<", ei->inu="<<ei->inu<<endl
00900     <<", ei->iresonance="<<ei->iresonance<<endl
00901     <<", ei->initial_state="<<ei->initial_state<<endl
00902     <<", ei->nucleus="<<ei->nucleus<<endl
00903     <<", ei->had_fs="<<ei->had_fs<<endl
00904     <<endl;
00905 }


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1