NueSystematic Class Reference

#include <NueSystematic.h>

List of all members.

Public Member Functions

 NueSystematic (std::string)
 ~NueSystematic ()
void Clear ()
void AddSystematic (Systematic::Systematic_t sys, Double_t val)
Double_t UpdateRecord (NueRecord *, Selection::Selection_t)
Double_t UpdateRecord (NueRecord *, Selection::Selection_t, Background::Background_t bg)
Double_t GetAppearanceWeight (NueRecord *rec, Background::Background_t bg)
void MakeBranches (TTree *)
Char_t * GetName ()
void SetSKZPParams (std::string cfg)
std::string GetSKZPParams ()
void SetOscParams (double *par)
void SetOscParams (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t deltaCP=0, Int_t massH=1)
void GetOscParams (Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Double_t &, Int_t &)
Double_t GetSysValue (Systematic::Systematic_t sys)
void SetSysValue (Systematic::Systematic_t sys, Double_t val)
Double_t DoOscCalc (NueRecord *, Double_t)
Double_t DoNeugenCalc (NueRecord *, Systematic::Systematic_t, Double_t)

Private Member Functions

void Init ()
Double_t DoSKZPCalc (NueRecord *, Double_t)
Double_t DoCalibShift (NueRecord *, Systematic::Systematic_t, Double_t)
Double_t DoShwDevCalc (NueRecord *, Double_t, Selection::Selection_t)
Double_t DoTauProd (NueRecord *, Double_t)
Double_t DoPIDSkew (NueRecord *, Double_t, Selection::Selection_t)
Double_t DoNormCalc (NueRecord *, Double_t)
Double_t DoNCScale (NueRecord *record, Double_t val, Selection::Selection_t sel)
Double_t DoCCShwEnergyScale (NueRecord *record, Double_t val, Selection::Selection_t sel)

Private Attributes

Char_t fName [256]
std::map
< Systematic::Systematic_t,
Double_t > 
fSysList
std::string skzpcfg
Double_t fTheta23
Double_t fTheta13
Double_t fTheta12
Double_t fDeltaMSq23
Double_t fDeltaMSq12
Double_t fDeltaCP
Int_t fMassHierarchy
Double_t fTempDouble
OscCalc fOscCalc

Static Private Attributes

static SKZPWeightCalculatorskzp = 0

Detailed Description

Definition at line 14 of file NueSystematic.h.


Constructor & Destructor Documentation

NueSystematic::NueSystematic ( std::string  name  ) 

Definition at line 17 of file NueSystematic.cxx.

References fName, and Init().

00017                                            :
00018   //  skzpcfg("PiMinus_CedarDaikon"),
00019   skzpcfg("DetXs"),
00020   fTempDouble(-9999)
00021 {
00022   sprintf(fName,"%s",name.c_str());
00023   this->Init();
00024 }
 

NueSystematic::~NueSystematic (  ) 

Definition at line 26 of file NueSystematic.cxx.

References fSysList.

00027 {
00028   fSysList.clear();
00029   //delete fNWC->GetReweightConfig();
00030   //delete fNWC;
00031 }


Member Function Documentation

void NueSystematic::AddSystematic ( Systematic::Systematic_t  sys,
Double_t  val 
) [inline]
void NueSystematic::Clear ( void   )  [inline]

Definition at line 21 of file NueSystematic.h.

References fSysList.

00021 {fSysList.clear();}

Double_t NueSystematic::DoCalibShift ( NueRecord record,
Systematic::Systematic_t  sys,
Double_t  val 
) [private]

Definition at line 576 of file NueSystematic.cxx.

References StdHepInfo::emenergy, StdHepInfo::epi0, ANtpTruthInfoBeamNue::fNueClass, VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), Systematic::kEMCalib, Systematic::kHadCalib, Systematic::kRelCalib, NueRecord::mctrue, ANtpTruthInfo::nuEnergy, and NueRecord::shi.

Referenced by UpdateRecord().

00578 {
00579 /*
00580   This is Chris's old code, but I don't quite know why he chose this params and
00581 setup
00582     so I'm going a different way....  (JAB) 10/12/2007
00583                                                                                 
00584   Double_t epi_ratio = 1.26; //use a rough e/pi ratio to adjust reco energy
00585   Double_t true_shw_energy = record->mctrue.trueVisibleE;
00586   if(true_shw_energy == 0 ) return 0;
00587   Double_t true_em_energy  = record->mctrue.emShowerFraction*true_shw_energy;
00588   Double_t respcor_true_energy = (true_shw_energy + (epi_ratio-1)*true_em_energy);
00589                                                                                 
00590   Double_t true_elec_energy = 0;
00591   if(TMath::Abs(record->mctrue.nuFlavor)==12)
00592     true_elec_energy = TMath::Abs(record->mctrue.leptonMomentum);
00593                                                                                 
00594   //Double_t respcor_em_frac = (epi_ratio*true_em_energy) / respcor_true_energy;
00595    Double_t respcor_em_frac = (epi_ratio*true_elec_energy) / respcor_true_energy;                                                                                
00596   Double_t cor_em_frac = respcor_em_frac;
00597 */
00598                                                                                 
00599   Double_t cor_em_frac = 0.0;
00600                                                                                 
00601   if(record->mctrue.fNueClass != 0){
00602     double EMen = record->shi.emenergy - record->shi.epi0;
00603     cor_em_frac = EMen/(record->mctrue.nuEnergy);
00604   }
00605                                                                                 
00606   if(sys==Systematic::kEMCalib)
00607     return cor_em_frac*val;
00608   else if(sys==Systematic::kHadCalib)
00609     return (1-cor_em_frac)*val;
00610   else if(sys==Systematic::kRelCalib) {
00611     if(record->GetHeader().GetVldContext().GetDetector()!=2) return 0;
00612     return val;
00613   }
00614   return 0;
00615 }

Double_t NueSystematic::DoCCShwEnergyScale ( NueRecord record,
Double_t  val,
Selection::Selection_t  sel 
) [private]

Definition at line 662 of file NueSystematic.cxx.

References Selection::kCC.

Referenced by UpdateRecord().

00665 {
00666   if(sel != Selection::kCC) return 0;
00667   return val;
00668 }

Double_t NueSystematic::DoNCScale ( NueRecord record,
Double_t  val,
Selection::Selection_t  sel 
) [private]

Definition at line 653 of file NueSystematic.cxx.

References ANtpTruthInfoBeamNue::fNueClass, Selection::kCC, and NueRecord::mctrue.

Referenced by UpdateRecord().

00656 {
00657   if(sel != Selection::kCC) return 1;
00658   if(record->mctrue.fNueClass == 0) return val;
00659   return 1;
00660 }

Double_t NueSystematic::DoNeugenCalc ( NueRecord record,
Systematic::Systematic_t  sys,
Double_t  val 
)

Definition at line 507 of file NueSystematic.cxx.

References ANtpTruthInfoBeam::atomicNumber, ANtpTruthInfoBeam::atomicWeight, ANtpTruthInfoBeam::bjorkenX, MCReweight::ComputeWeight(), ReweightHelpers::FindNucleusNumber(), MCEventInfo::had_fs, ANtpTruthInfoBeam::hadronicFinalState, ANtpTruthInfo::hadronicY, MCEventInfo::iaction, MCEventInfo::initial_state, ANtpTruthInfoBeam::initialState, MCReweight::Instance(), ANtpTruthInfo::interactionType, MCEventInfo::inu, MCEventInfo::iresonance, Systematic::kKNO, Systematic::kMA_QE, Systematic::kMA_RES, Systematic::kShwDev, Registry::LockKeys(), Registry::LockValues(), NueRecord::mctrue, MCEventInfo::nucleus, ANtpTruthInfo::nuDCosX, ANtpTruthInfo::nuDCosY, ANtpTruthInfo::nuDCosZ, MCEventInfo::nuE, ANtpTruthInfo::nuEnergy, ANtpTruthInfo::nuFlavor, MCEventInfo::nuPx, MCEventInfo::nuPy, MCEventInfo::nuPz, ANtpTruthInfoBeam::q2, MCEventInfo::q2, ANtpTruthInfoBeam::resonanceCode, Registry::Set(), MCEventInfo::stdXSec, MCEventInfo::tarE, ANtpTruthInfo::targetEnergy, ANtpTruthInfo::targetPX, ANtpTruthInfo::targetPY, ANtpTruthInfo::targetPZ, MCEventInfo::tarPx, Registry::UnLockKeys(), Registry::UnLockValues(), MCEventInfo::UseStoredXSec(), MCEventInfo::w2, ANtpTruthInfoBeam::w2, MCEventInfo::x, NueXsecWeight::xsecweight, NueRecord::xsecweights, and MCEventInfo::y.

Referenced by DoShwDevCalc(), NueExtrapolationJB::InitializeNeugen(), and UpdateRecord().

00509 {
00510 
00511   MCReweight *mcr = &MCReweight::Instance();
00512 //  mcr->ResetAllReweightConfigs();  
00513 
00514   static double oldVal = -999;
00515   bool reset = false;
00516   Registry rwtconfig;
00517 
00518   if(val != oldVal){
00519     rwtconfig.UnLockValues();
00520     rwtconfig.UnLockKeys();
00521     //rwtconfig.Set("neugen:config_name","MODBYRS");
00522     //rwtconfig.Set("neugen:config_no",3);
00523     rwtconfig.Set("neugen:use_scale_factors",1);
00524     if(sys==Systematic::kMA_QE) rwtconfig.Set("neugen:ma_qe",val);
00525     else if(sys==Systematic::kMA_RES) rwtconfig.Set("neugen:ma_res",val);
00526     else if(sys==Systematic::kKNO) rwtconfig.Set("neugen:scale_kno_all",val);
00527     else if(sys==Systematic::kShwDev) {
00528       rwtconfig.Set("neugen:config_no",int(val+0.5));
00529       rwtconfig.Set("neugen:config_name","MODBYRS");
00530     }
00531     rwtconfig.LockValues();
00532     rwtconfig.LockKeys();
00533     reset = true; 
00534     oldVal = val;
00535   }
00536 
00537   MCEventInfo ei;
00538   ei.UseStoredXSec(true);
00539   ei.nuE           = record->mctrue.nuEnergy;
00540   ei.nuPx          = record->mctrue.nuDCosX*ei.nuE;
00541   ei.nuPy          = record->mctrue.nuDCosY*ei.nuE;
00542   ei.nuPz          = record->mctrue.nuDCosZ*ei.nuE;
00543   ei.tarE          = record->mctrue.targetEnergy;
00544   ei.tarPx         = record->mctrue.targetPX;
00545   ei.tarPx         = record->mctrue.targetPY;
00546   ei.tarPx         = record->mctrue.targetPZ;  
00547   ei.y             = record->mctrue.hadronicY;
00548   ei.x             = record->mctrue.bjorkenX;
00549   ei.q2            = record->mctrue.q2;
00550   ei.w2            = record->mctrue.w2;  
00551   ei.iaction       = record->mctrue.interactionType;
00552   ei.inu           = record->mctrue.nuFlavor;
00553   ei.iresonance    = record->mctrue.resonanceCode;
00554   ei.initial_state = record->mctrue.initialState;
00555   ei.nucleus       = ReweightHelpers::
00556     FindNucleusNumber(int(record->mctrue.atomicNumber),
00557                       int(record->mctrue.atomicWeight));
00558   ei.had_fs        = abs(record->mctrue.hadronicFinalState);  
00559   ei.stdXSec       = record->xsecweights.xsecweight;
00560 
00561   //std::cout << ei.nuE << " " << ei.tarE << " " << ei.y << " " << ei.q2 << " " 
00562   //    << ei. inu << " " << ei.initial_state << " " << ei.nucleus 
00563   //    << " " << ei.had_fs << std::endl;
00564   if(ei.inu<-9998 || 
00565      (ei.iresonance==1003 && TMath::Abs(ei.had_fs)<200) ) return 1;
00566   NuParent *nuparent = 0;  
00567 
00568   double weight = 1.0;
00569 
00570   if(reset) weight = mcr->ComputeWeight(&ei,nuparent,&rwtconfig);
00571   else      weight = mcr->ComputeWeight(&ei,nuparent);
00572 
00573   return weight;
00574 }

Double_t NueSystematic::DoNormCalc ( NueRecord record,
Double_t  val 
) [private]

Definition at line 647 of file NueSystematic.cxx.

References VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), and RecHeader::GetVldContext().

Referenced by UpdateRecord().

00648 {
00649   if(record->GetHeader().GetVldContext().GetDetector()==2) return val;
00650   return 1;
00651 }

Double_t NueSystematic::DoOscCalc ( NueRecord record,
Double_t  val 
)

Definition at line 326 of file NueSystematic.cxx.

References fOscCalc, fTheta13, VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), Detector::kNear, OscPar::kNuAntiNu, NueRecord::mctrue, ANtpTruthInfoBeam::nonOscNuFlavor, ANtpTruthInfo::nuEnergy, ANtpTruthInfo::nuFlavor, OscCalc::Oscillate(), and OscCalc::SetOscParam().

Referenced by GetAppearanceWeight(), and UpdateRecord().

00327 {
00328   Double_t osc_prob = 1;
00329   if(record->mctrue.nuFlavor<-9998) return osc_prob;
00330   Double_t L = 735.0;
00331   if(record->GetHeader().GetVldContext().GetDetector()==Detector::kNear){
00332      L = 1.0;  return 1.0;
00333   }
00334 
00335   fOscCalc.SetOscParam(OscPar::kNuAntiNu, 1);
00336   if(record->mctrue.nonOscNuFlavor < 0)   fOscCalc.SetOscParam(OscPar::kNuAntiNu, -1);                                                                                                                    
00337   double ue32 = TMath::Sin(fTheta13);
00338   ue32 *= ue32;
00339  
00340 
00341   if( int(val+0.5) ==1 ) {
00342     osc_prob = fOscCalc.Oscillate(record->mctrue.nuFlavor,
00343                                         record->mctrue.nonOscNuFlavor,
00344                                         record->mctrue.nuEnergy);
00345   }
00346   else if( int(val+0.5) == 2 )
00347     osc_prob = fOscCalc.Oscillate(record->mctrue.nuFlavor,
00348                                               record->mctrue.nonOscNuFlavor,
00349                                               record->mctrue.nuEnergy);
00350 
00351   return osc_prob;
00352 }

Double_t NueSystematic::DoPIDSkew ( NueRecord record,
Double_t  val,
Selection::Selection_t  sel 
) [private]

Definition at line 634 of file NueSystematic.cxx.

References NueStandard::GetPIDValue().

Referenced by UpdateRecord().

00636 {
00637   double pid = NueStandard::GetPIDValue(record, sel);
00638 
00639   if(pid > -1000)
00640   {
00641     return (1 + pid*val);
00642   }
00643 
00644   return 1;
00645 }

Double_t NueSystematic::DoShwDevCalc ( NueRecord record,
Double_t  val,
Selection::Selection_t  sel 
) [private]

Definition at line 354 of file NueSystematic.cxx.

References det, DoNeugenCalc(), StdHepInfo::epi0, VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), ANtpTruthInfo::interactionType, Background::kBNueCC, Selection::kCC, Detector::kFar, Background::kNC, Detector::kNear, Background::kNueCC, Background::kNuMuCC, Background::kNuTauCC, Systematic::kShwDev, NueRecord::mctrue, ANtpTruthInfoBeam::nonOscNuFlavor, ANtpTruthInfo::nuFlavor, ANtpEventInfoNue::phNueGeV, NueRecord::shi, NueRecord::srevent, Selection::StringToEnum(), Background::TranslateFromMC(), NueXsecWeight::xsecweight, and NueRecord::xsecweights.

Referenced by UpdateRecord().

00355 {
00356   // Note for later usage:
00357   //  there was also a change in the nutau xsec carrot->Daikon, really this 
00358   //   should be disentangled, but going to ignore it for now
00359   //     E      r (c/d)      
00360   //    2.25       0
00361   //    2.75       0
00362   //    3.25       0
00363   //    3.75    1.05014
00364   //    4.25    1.0897
00365   //    4.75    1.05697
00366   //    5.25    1.07126
00367   //    5.75    1.09773
00368   //    6.25    1.13736
00369   //    6.75    1.19135
00370   //    7.25    1.23808
00371   //    7.75    1.27554
00372   //    8.25    1.30237
00373   //    8.75    1.32485
00374   //    9.25    1.34172
00375   //    9.75    1.35351
00376   //   10.25    1.36185
00377   //   10.75    1.36765
00378   //   11.25    1.37102
00379   //   11.75    1.37229
00380   if(sel == Selection::kCC) return 1;
00381 
00382   if(int(val+0.5)==1) {
00383     //weight based on ratio of N(F)D_daikon/N(F)D_carrot 
00384 
00385     const int NSEL = 10;
00386     static vector<TH1D*> ND_NC;
00387     static vector<TH1D*> ND_NUMU;
00388     static vector<TH1D*> ND_BNUE;
00389 
00390     static vector<TH1D*> FD_NC;
00391     static vector<TH1D*> FD_NUMU;
00392     static vector<TH1D*> FD_BNUE;
00393     static vector<TH1D*> FD_NUE;
00394     static vector<TH1D*> FD_NUTAU;
00395 
00396     if(ND_NC.size() == 0){
00397 
00398        for(int i = 0; i < NSEL; i++){
00399            TH1D* dum = 0;
00400            ND_NC.push_back(dum);
00401            ND_NUMU.push_back(dum);
00402            ND_BNUE.push_back(dum);
00403            FD_NC.push_back(dum);
00404            FD_NUMU.push_back(dum);
00405            FD_BNUE.push_back(dum);
00406            FD_NUE.push_back(dum);
00407            FD_NUTAU.push_back(dum);
00408        }
00409 
00410        const int NDET = 2;
00411        const int NUC = 5;
00412        const int NCUT = 4;
00413        string det[2]  = {"Near", "Far"};
00414        string nuC[5]  = {"numu", "nc", "bnue", "nue", "nutau"};
00415 //       string cut[4]  = {"2", "6", "8", "7"};
00416        string name[NCUT] = {"Fid", "Presel", "ANN", "SSPID"};
00417 
00418        TFile Input("NueAna/data/CarrotDaikonWeights.root", "READ");
00419        TH1D* temp;
00420        TH1D* temp2;
00421      
00422        for(int i = 0; i < NDET; i++){
00423          for(int j = 0; j < NUC; j++){
00424           if(i < 1 && j >= 3) continue;
00425           for(int k = 0; k < NCUT; k++){
00426            TString id = det[i]+nuC[j]+name[k];
00427            Input.GetObject(id, temp);
00428            if(temp != 0){
00429              temp2 = (TH1D*) temp->Clone("ratio");
00430              temp2->SetDirectory(0);
00431  
00432              int iSel = (int) Selection::StringToEnum(name[k].c_str());
00433                        
00434              if(i+1 ==Detector::kFar ){
00435                if(j==1)  FD_NC[iSel] = temp2;
00436                if(j==0)  FD_NUMU[iSel] = temp2;
00437                if(j==4)  FD_NUTAU[iSel] = temp2;
00438                if(j==2)  FD_BNUE[iSel] = temp2;
00439                if(j==3)  FD_NUE[iSel] = temp2;
00440              }
00441              if(i+1 ==Detector::kNear ){
00442                if(j==1)  ND_NC[iSel] = temp2;
00443                if(j==0)  ND_NUMU[iSel] = temp2;
00444                if(j==2)  ND_BNUE[iSel] = temp2;
00445              }
00446           }
00447           else
00448             cout<<"Unable to Load: "<<id<<endl;
00449          }
00450        }
00451      }
00452     }
00453 
00454     Background::Background_t bg = 
00455       Background::TranslateFromMC(record->mctrue.interactionType,
00456                                   record->mctrue.nuFlavor,
00457                                   record->mctrue.nonOscNuFlavor);
00458 
00459     Double_t recoEnergy = record->srevent.phNueGeV;
00460 
00461     TH1D* temp = 0;
00462     int iSel = (int) sel;
00463     
00464     if(record->GetHeader().GetVldContext().GetDetector()==Detector::kFar){
00465       if(bg==Background::kNC)  temp = FD_NC[iSel];
00466       if(bg==Background::kNuMuCC) temp = FD_NUMU[iSel];
00467       if(bg==Background::kNuTauCC) temp = FD_NUTAU[iSel];
00468       if(bg==Background::kBNueCC) temp = FD_BNUE[iSel];
00469       if(bg==Background::kNueCC) temp = FD_NUE[iSel];
00470     }
00471     if(record->GetHeader().GetVldContext().GetDetector()==Detector::kNear){
00472       if(bg==Background::kNC) temp = ND_NC[iSel];
00473       if(bg==Background::kNuMuCC) temp = ND_NUMU[iSel];
00474       if(bg==Background::kBNueCC) temp = ND_BNUE[iSel];
00475     }
00476 
00477     if(temp == 0) cout<<"Massive loading error "<<bg<<"  "<<record->GetHeader().GetVldContext().GetDetector()<<endl;
00478     for(int i=0;i<temp->GetNbinsX();i++){
00479       if(recoEnergy>=temp->GetBinLowEdge(i) && recoEnergy< temp->GetBinLowEdge(i+1)) {
00480          return temp->GetBinContent(i);
00481       }
00482     }
00483 
00484     return 1;
00485   }
00486   if(int(val+0.5)==2){
00487     //weight using MODBYRS4
00488     Double_t weight = this->DoNeugenCalc(record,Systematic::kShwDev,4);
00489     if(record->xsecweights.xsecweight>0) weight/=record->xsecweights.xsecweight;
00490     return weight;
00491   }
00492   if(int(val+0.5)==3){
00493     //weight based on piZero energy reweighting (carrot->daikon)
00494     Double_t piZeroEnergy[8] = {0.0,0.75,1.5,2.25,3.0,3.75,4.5,100};
00495     Double_t weight[8] = {1.19675,1.06378,2.00025,1.91159,
00496                           1.61631,1.2359,1.84444,1.00};
00497     Double_t pi0E = record->shi.epi0;
00498     for(int i=0;i<7;i++){
00499       if(pi0E>=piZeroEnergy[i] && pi0E<piZeroEnergy[i+1])
00500         return weight[i];
00501     }
00502   }
00503   return 1;
00504 }

Double_t NueSystematic::DoSKZPCalc ( NueRecord record,
Double_t  val 
) [private]

Definition at line 284 of file NueSystematic.cxx.

References det, err(), NueRecord::fluxweights, VldContext::GetDetector(), SKZPWeightCalculator::GetFluxError(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), SKZPWeightCalculator::kHadProdAfterTune, SKZPWeightCalculator::kTotalErrorAfterTune, NueRecord::mctrue, ANtpTruthInfoBeam::nonOscNuFlavor, ANtpTruthInfo::nuEnergy, ANtpTruthInfo::nuFlavor, skzp, and NueFluxWeights::totskzpweight.

Referenced by UpdateRecord().

00285 {
00286   // val < -999 -> unweight to base MC (use -1000)
00287   // val == 0 -> Do nothing - > standard SKZP
00288   // val > 0 -> distort spectrum by val*1sigma change
00289   double baseweight = record->fluxweights.totskzpweight;
00290   if(val < -999){
00291      if(baseweight <= 0) return 0;
00292      else return 1.0/baseweight;
00293   }
00294   else{
00295     if(val != 0 ) {
00296       if(record->mctrue.nuFlavor<-9998) return 1;
00297       float energy = record->mctrue.nuEnergy;
00298       int inu = record->mctrue.nonOscNuFlavor;
00299                                                                                 
00300       Detector::Detector_t det = record->GetHeader().GetVldContext().GetDetector();
00301       //the 2 here is the IBEAM value of L010185
00302       // so for numu/antinumu we have the whole envelope
00303       // for nue we have the HadPrd + 1.77% envelope from Bob and Masaki
00304       // error returned here is the weight to change the spectrum up by 1 sigma
00305                                                                                 
00306       double err = 1.0;
00307                                                                                 
00308       if(TMath::Abs(inu) == 14){
00309          err = skzp->GetFluxError(det,2,inu,energy,SKZPWeightCalculator::kTotalErrorAfterTune);
00310          err -= 1.0;
00311       }
00312       if(TMath::Abs(inu) == 12){
00313          err = skzp->GetFluxError(det,2,inu,energy,SKZPWeightCalculator::kHadProdAfterTune);
00314          err = TMath::Sqrt((err - 1)*(err - 1) + 0.0177*0.0177);
00315       }
00316                                                                                 
00317       double weight = 1.0 + err*val;
00318                                                                                 
00319       return weight;
00320     }
00321   }
00322 
00323   return 1;
00324 }

Double_t NueSystematic::DoTauProd ( NueRecord record,
Double_t  val 
) [private]

Definition at line 617 of file NueSystematic.cxx.

References ANtpTruthInfo::interactionType, NueRecord::mctrue, ANtpTruthInfo::nuFlavor, and ANtpTruthInfoBeam::resonanceCode.

Referenced by GetAppearanceWeight(), and UpdateRecord().

00618 {
00619   //Correspondance with Hugh G. on 1/23/2008
00620   //use 50% for QEl, RES, but 10% for DIS
00621   double scale = 0.5;
00622 
00623   if(record->mctrue.interactionType==1 &&
00624      TMath::Abs(record->mctrue.nuFlavor)==16){
00625 
00626      if(record->mctrue.resonanceCode == 1001) scale = 0.5;
00627      if(record->mctrue.resonanceCode == 1002) scale = 0.5;
00628      if(record->mctrue.resonanceCode == 1003) scale = 0.1;
00629      return 1 + scale*val;
00630   }
00631   return 1;
00632 }

Double_t NueSystematic::GetAppearanceWeight ( NueRecord rec,
Background::Background_t  bg 
)

Definition at line 258 of file NueSystematic.cxx.

References DoOscCalc(), DoTauProd(), fSysList, Background::kNueCC, Background::kNuTauCC, Systematic::kOscProb, Systematic::kTauProd, NueRecord::mctrue, ANtpTruthInfoBeam::nonOscNuFlavor, ANtpTruthInfo::nuFlavor, and ANtpTruthInfoBeam::resonanceCode.

Referenced by NueExtrapolationJB::BuildAppTrueHistFast(), NueExtrapolationJB::CreateOscHist(), and UpdateRecord().

00259 {
00260   if(bg == Background::kNueCC || bg == Background::kNuTauCC)  rec->mctrue.nonOscNuFlavor = 14;
00261   if(bg == Background::kNueCC) rec->mctrue.nuFlavor = 12;
00262   if(bg == Background::kNuTauCC) rec->mctrue.nuFlavor = 16;
00263   if(bg == Background::kNuTauCC) rec->mctrue.resonanceCode = 1001;
00264   if(rec->mctrue.nonOscNuFlavor < 0) rec->mctrue.nuFlavor *= -1;
00265   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00266   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00267 
00268   double totWeight = 1.0;
00269                                                                                                                     
00270   while (beg!=end) {
00271     Systematic::Systematic_t sys = beg->first;
00272     Double_t val = beg->second;
00273     switch (sys) {
00274     case Systematic::kOscProb  : totWeight *= this->DoOscCalc(rec,val);         break;
00275     case Systematic::kTauProd  : totWeight *= this->DoTauProd(rec,val);         break;
00276     default:                                                                    break;
00277     }
00278     beg++;
00279   }
00280                                                                                                                     
00281   return totWeight;
00282 }

Char_t* NueSystematic::GetName ( void   )  [inline]
void NueSystematic::GetOscParams ( Double_t &  theta12,
Double_t &  theta23,
Double_t &  theta13,
Double_t &  deltam12,
Double_t &  deltam23,
Double_t &  deltaCP,
Int_t &  massH 
)

Definition at line 89 of file NueSystematic.cxx.

References fDeltaCP, fDeltaMSq12, fDeltaMSq23, fMassHierarchy, fOscCalc, fTheta12, fTheta13, fTheta23, OscCalc::GetOscParam(), OscPar::kDelta, OscPar::kDeltaM12, OscPar::kDeltaM23, OscPar::kL, OscPar::kTh12, OscPar::kTh13, and OscPar::kTh23.

Referenced by JBComparator::DrawPrediction(), Comparator::DrawPrediction(), Comparator::DrawRatio(), JBComparator::DrawRatio(), and NueExtrapolationJB::RunExtrapStudy().

00092 {
00093   fTheta12 = theta12; fTheta23 = theta23; fTheta13 = theta13;
00094   fDeltaMSq12 = deltam12; fDeltaMSq23 = deltam23;
00095   fDeltaCP = deltaCP; fMassHierarchy = massH;
00096   
00097   Double_t par[10];
00098   fOscCalc.GetOscParam(par);
00099 
00100   par[OscPar::kL] = 735.0;
00101   theta23 = par[OscPar::kTh23];
00102   theta12 = par[OscPar::kTh12];
00103   theta13 = par[OscPar::kTh13];
00104   deltam23 = par[OscPar::kDeltaM23];
00105   deltam12 = par[OscPar::kDeltaM12];
00106   deltaCP = par[OscPar::kDelta];
00107 
00108   massH = 1;
00109   if(deltam23 < 0){ massH = -1; deltam23 = -deltam23;}
00110 }

std::string NueSystematic::GetSKZPParams (  ) 

Definition at line 56 of file NueSystematic.cxx.

References skzpcfg.

00057 {
00058   return skzpcfg;
00059 }

Double_t NueSystematic::GetSysValue ( Systematic::Systematic_t  sys  ) 

Definition at line 112 of file NueSystematic.cxx.

References fSysList, and Systematic::GetDefaultValue().

Referenced by JBComparator::DrawPrediction(), Comparator::DrawPrediction(), Comparator::DrawRatio(), JBComparator::DrawRatio(), NueExtrapolationJB::PrepareExtrapHistograms(), and UpdateRecord().

00113 {
00114   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00115   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00116   while (beg!=end) {
00117     if(beg->first==sys) return beg->second;
00118     beg++;
00119   }
00120   return Systematic::GetDefaultValue(sys);
00121 }

void NueSystematic::Init ( void   )  [private]

Definition at line 33 of file NueSystematic.cxx.

References fDeltaCP, fDeltaMSq12, fDeltaMSq23, fMassHierarchy, fTheta12, fTheta13, fTheta23, skzp, and skzpcfg.

Referenced by NueSystematic().

00034 {
00035   fTheta12 = 0.59365; 
00036   fTheta23 = 0.785398; 
00037   fTheta13 = 0.19885;
00038   
00039   fDeltaMSq12 = 8.0e-5;  
00040   fDeltaMSq23 = 2.32e-3;
00041 
00042   fDeltaCP = 0; 
00043   fMassHierarchy = 1;
00044 
00045   if(skzp == 0){
00046      skzp = new SKZPWeightCalculator(skzpcfg, true);
00047   }
00048 
00049 }

void NueSystematic::MakeBranches ( TTree *  tree  ) 

Definition at line 670 of file NueSystematic.cxx.

References Systematic::AsString(), fDeltaCP, fDeltaMSq12, fDeltaMSq23, fMassHierarchy, fName, fSysList, fTempDouble, fTheta12, fTheta13, and fTheta23.

Referenced by NueExtrapolationJB::WriteToFile().

00671 {  
00672   TBranch *branch = 0;
00673   if((branch = tree->GetBranch("SysName"))) branch->SetAddress(fName);
00674   else tree->Branch("SysName",fName,"SysName/C");
00675 
00676   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00677   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00678   Int_t max_sys_index = 0;
00679   while(strcmp(Systematic::AsString(Systematic::ESystematic(max_sys_index)),
00680                "?Unknown?")!=0) {
00681     //std::cout << max_sys_index << " " 
00682     //      << Systematic::AsString(Systematic::ESystematic(max_sys_index))
00683     //      << std::endl;
00684     if (beg!=end && beg->first==max_sys_index) {
00685       //first check if branch already exists:
00686       if((branch = tree->GetBranch(Systematic::AsString(beg->first)))) {
00687         branch->SetAddress(&(beg->second));
00688       }
00689       else {
00690         char leafname[256]; sprintf(leafname,"%s/D",Systematic::AsString(beg->first));
00691         tree->Branch(Systematic::AsString(beg->first),&(beg->second),leafname);
00692       }
00693       beg++;
00694     }
00695     else {
00696       if((branch = 
00697           tree->GetBranch(Systematic::AsString(Systematic::ESystematic(max_sys_index))))) {
00698         branch->SetAddress(&fTempDouble);
00699       }
00700       else {
00701         char leafname[256];
00702         sprintf(leafname,"%s/D",
00703                 Systematic::AsString(Systematic::ESystematic(max_sys_index))); 
00704         tree->Branch(Systematic::AsString(Systematic::ESystematic(max_sys_index)),
00705                      &fTempDouble,leafname);
00706       }
00707     }
00708     max_sys_index++;
00709   }
00710 
00711   if((branch = tree->GetBranch("Theta12"))) branch->SetAddress(&fTheta12);
00712   else tree->Branch("Theta12",&fTheta12,"Theta12/D");
00713   if((branch = tree->GetBranch("Theta23"))) branch->SetAddress(&fTheta23);
00714   else tree->Branch("Theta23",&fTheta23,"Theta23/D");
00715   if((branch = tree->GetBranch("Theta13"))) branch->SetAddress(&fTheta13);
00716   else tree->Branch("Theta13",&fTheta13,"Theta13/D");
00717   if((branch = tree->GetBranch("DeltaMSq23"))) branch->SetAddress(&fDeltaMSq23);
00718   else tree->Branch("DeltaMSq23",&fDeltaMSq23,"DeltaMSq23/D");
00719   if((branch = tree->GetBranch("DeltaMSq12"))) branch->SetAddress(&fDeltaMSq12);
00720   else tree->Branch("DeltaMSq12",&fDeltaMSq12,"DeltaMSq12/D");
00721   if((branch = tree->GetBranch("DeltaCP"))) branch->SetAddress(&fDeltaCP);
00722   else tree->Branch("DeltaCP",&fDeltaCP,"DeltaCP/D");
00723   if((branch = tree->GetBranch("MassHierarchy"))) branch->SetAddress(&fMassHierarchy);
00724   else tree->Branch("MassHierarchy",&fMassHierarchy,"MassHierarchy/I");
00725 }

void NueSystematic::SetOscParams ( Double_t  theta12,
Double_t  theta23,
Double_t  theta13,
Double_t  deltam12,
Double_t  deltam23,
Double_t  deltaCP = 0,
Int_t  massH = 1 
)

Definition at line 61 of file NueSystematic.cxx.

References fDeltaCP, fDeltaMSq12, fDeltaMSq23, fMassHierarchy, fOscCalc, fTheta12, fTheta13, fTheta23, OscPar::kDelta, OscPar::kDeltaM12, OscPar::kDeltaM23, OscPar::kDensity, OscPar::kL, OscPar::kNuAntiNu, OscPar::kTh12, OscPar::kTh13, OscPar::kTh23, and OscCalc::SetOscParam().

00064 {
00065   fTheta12 = theta12; fTheta23 = theta23; fTheta13 = theta13;
00066   fDeltaMSq12 = deltam12; fDeltaMSq23 = deltam23;
00067   fDeltaCP = deltaCP; fMassHierarchy = massH;
00068 
00069   Double_t par[9] = {0};
00070   par[OscPar::kL] = 735.0;
00071   par[OscPar::kTh23] = fTheta23;
00072   par[OscPar::kTh12] = fTheta12;
00073   par[OscPar::kTh13] = fTheta13; // TMath::ASin(TMath::Sqrt(ss2th13))/2.;
00074   par[OscPar::kDeltaM23] = massH*fDeltaMSq23;
00075   par[OscPar::kDeltaM12] = fDeltaMSq12;
00076   par[OscPar::kDensity] = 2.75; //standard rock density
00077   par[OscPar::kDelta] = deltaCP;
00078   par[OscPar::kNuAntiNu] = 1;
00079   fOscCalc.SetOscParam(par);
00080 }

void NueSystematic::SetOscParams ( double *  par  ) 
void NueSystematic::SetSKZPParams ( std::string  cfg  ) 

Definition at line 51 of file NueSystematic.cxx.

References skzpcfg.

00052 {
00053   skzpcfg = cfg;
00054 }

void NueSystematic::SetSysValue ( Systematic::Systematic_t  sys,
Double_t  val 
)

Definition at line 123 of file NueSystematic.cxx.

References fSysList.

Referenced by NueExtrapolationJB::PrepareExtrapHistograms(), and UpdateRecord().

00124 {
00125   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00126   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00127 
00128   while (beg!=end) {
00129     if(beg->first==sys){ beg->second = val;  return; }
00130     beg++;
00131   }
00132 }

Double_t NueSystematic::UpdateRecord ( NueRecord rec,
Selection::Selection_t  sel,
Background::Background_t  bg 
)

Definition at line 191 of file NueSystematic.cxx.

References NueRecord::ann, DoCalibShift(), DoCCShwEnergyScale(), DoNCScale(), DoNeugenCalc(), DoNormCalc(), DoOscCalc(), DoPIDSkew(), DoShwDevCalc(), DoSKZPCalc(), DoTauProd(), ANtpTrackInfo::endPlane, NueRecord::fluxweights, fSysList, GetAppearanceWeight(), GetSysValue(), Systematic::kCCShwE, Systematic::kEMCalib, Systematic::kHadCalib, Systematic::kKNO, Systematic::kMA_QE, Systematic::kMA_RES, Systematic::kNCScale, Systematic::kNorm, Systematic::kOscProb, Systematic::kPIDShift, Systematic::kPIDSkew, Systematic::kRelCalib, Systematic::kShwDev, Systematic::kSKZP, Systematic::kTauProd, Systematic::kTrkLike, Systematic::kTrkPlane, MCNNVars::mcnn_var1, NueRecord::mcnnv, ANtpShowerInfoNue::phCCGeV, ANtpEventInfoNue::phNueGeV, SubShowerVar::pid, Ann::pid_11inp, Ann::pid_11inp_daikon04, Ann::pid_30inp, Ann::pid_6inp, SetSysValue(), NueRecord::srevent, NueRecord::srshower, NueRecord::srtrack, NueRecord::subshowervars, NueFluxWeights::totbeamweight, and ANtpTrackInfoNue::trklikePlanes.

00193 {
00194   Double_t totWeight = 1;
00195   Double_t enShift = 0;
00196   Double_t pidShift = 0;
00197   Double_t trkLength = 0;
00198   Double_t trkLike = 0;
00199   double shwEnShift = 0;
00200 
00201   //Need to Turn off oscillatons
00202   Double_t OscSysVal = this->GetSysValue(Systematic::kOscProb);
00203   this->SetSysValue(Systematic::kOscProb, 0);
00204 
00205   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00206   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00207   while (beg!=end) {
00208     Systematic::Systematic_t sys = beg->first;
00209     Double_t val = beg->second;
00210     switch (sys) {
00211     case Systematic::kNorm     : totWeight *= this->DoNormCalc(rec,val);
00212     case Systematic::kEMCalib  : enShift   += this->DoCalibShift(rec,sys,val);  break;
00213     case Systematic::kHadCalib : enShift   += this->DoCalibShift(rec,sys,val);  break;
00214     case Systematic::kRelCalib : enShift   += this->DoCalibShift(rec,sys,val);  break;
00215     case Systematic::kMA_QE    : totWeight *= this->DoNeugenCalc(rec,sys,val);
00216 break;
00217     case Systematic::kMA_RES   : totWeight *= this->DoNeugenCalc(rec,sys,val);
00218 break;
00219     case Systematic::kKNO      : totWeight *= this->DoNeugenCalc(rec,sys,val); break;
00220     case Systematic::kTrkLike  : trkLike   += val;                              break;
00221     case Systematic::kTrkPlane : trkLength += val;                              break;
00222     case Systematic::kPIDShift : pidShift  += val;                              break;
00223     case Systematic::kSKZP     : totWeight *= this->DoSKZPCalc(rec,val);        break;
00224     case Systematic::kOscProb  : totWeight *= this->DoOscCalc(rec,val);         break;
00225     case Systematic::kShwDev   : totWeight *= this->DoShwDevCalc(rec,val,sel);  break;
00226     case Systematic::kTauProd  : totWeight *= this->DoTauProd(rec,val);         break;
00227     case Systematic::kPIDSkew  : totWeight *= this->DoPIDSkew(rec,val,sel);     break;
00228     case Systematic::kNCScale  : totWeight *= this->DoNCScale(rec,val, sel);           break;
00229     case Systematic::kCCShwE   : shwEnShift += this->DoCCShwEnergyScale(rec,val,sel);  break;
00230     default:                                                                    break;
00231     }
00232     beg++;
00233   }
00234 
00235   this->SetSysValue(Systematic::kOscProb, OscSysVal);
00236 
00237   totWeight *= this->GetAppearanceWeight(rec, bg); 
00238 
00239   rec->srevent.phNueGeV      *= 1+enShift;
00240   rec->srshower.phCCGeV      *= 1+shwEnShift;
00241   rec->subshowervars.pid  += pidShift;
00242   rec->ann.pid_30inp             += pidShift;
00243   rec->ann.pid_6inp             += pidShift;
00244   rec->ann.pid_11inp            += pidShift;
00245   rec->ann.pid_11inp_daikon04   += pidShift;
00246   rec->mcnnv.mcnn_var1      += pidShift;
00247 
00248 //  rec->mdadiscrim.fMdaPIDnue += pidShift;
00249 //  rec->fracvars.pid          += pidShift;
00250 //  rec->fracvars.pid1         += pidShift;
00251   rec->srtrack.endPlane      += Int_t(trkLength);
00252   rec->srtrack.trklikePlanes += Int_t(trkLike);
00253 
00254   return totWeight*rec->fluxweights.totbeamweight;
00255 }

Double_t NueSystematic::UpdateRecord ( NueRecord rec,
Selection::Selection_t  sel 
)

Definition at line 134 of file NueSystematic.cxx.

References NueRecord::ann, DoCalibShift(), DoCCShwEnergyScale(), DoNCScale(), DoNeugenCalc(), DoNormCalc(), DoOscCalc(), DoPIDSkew(), DoShwDevCalc(), DoSKZPCalc(), DoTauProd(), ANtpTrackInfo::endPlane, NueRecord::fluxweights, fSysList, Systematic::kCCShwE, Systematic::kEMCalib, Systematic::kHadCalib, Systematic::kKNO, Systematic::kMA_QE, Systematic::kMA_RES, Systematic::kNCScale, Systematic::kNorm, Systematic::kOscProb, Systematic::kPIDShift, Systematic::kPIDSkew, Systematic::kRelCalib, Systematic::kShwDev, Systematic::kSKZP, Systematic::kTauProd, Systematic::kTrkLike, Systematic::kTrkPlane, MCNNVars::mcnn_var1, NueRecord::mcnnv, ANtpShowerInfoNue::phCCGeV, ANtpEventInfoNue::phNueGeV, SubShowerVar::pid, Ann::pid_11inp, Ann::pid_11inp_daikon04, Ann::pid_30inp, Ann::pid_6inp, NueRecord::srevent, NueRecord::srshower, NueRecord::srtrack, NueRecord::subshowervars, NueFluxWeights::totbeamweight, and ANtpTrackInfoNue::trklikePlanes.

Referenced by NueExtrapolationJB::BuildAppTrueHistExact(), NueExtrapolationJB::MakeDataHistograms(), and NueExtrapolationJB::PrepareExtrapHistograms().

00135 {  
00136   Double_t totWeight = 1;
00137   Double_t enShift = 0;
00138   Double_t pidShift = 0;
00139   Double_t trkLength = 0;
00140   Double_t trkLike = 0;
00141   double shwEnShift = 0;
00142 
00143   std::map<Systematic::Systematic_t,Double_t>::iterator beg = fSysList.begin();
00144   std::map<Systematic::Systematic_t,Double_t>::iterator end = fSysList.end();
00145   while (beg!=end) {
00146     Systematic::Systematic_t sys = beg->first;
00147     Double_t val = beg->second;
00148     switch (sys) {
00149     case Systematic::kNorm     : totWeight *= this->DoNormCalc(rec,val);
00150     case Systematic::kEMCalib  : enShift   += this->DoCalibShift(rec,sys,val);  break;
00151     case Systematic::kHadCalib : enShift   += this->DoCalibShift(rec,sys,val);  break;
00152     case Systematic::kRelCalib : enShift   += this->DoCalibShift(rec,sys,val);  break;
00153     case Systematic::kMA_QE    : totWeight *= this->DoNeugenCalc(rec,sys,val);  break;
00154     case Systematic::kMA_RES   : totWeight *= this->DoNeugenCalc(rec,sys,val);  break;
00155     case Systematic::kKNO      : totWeight *= this->DoNeugenCalc(rec,sys,val);  break;
00156     case Systematic::kTrkLike  : trkLike   += val;                              break;
00157     case Systematic::kTrkPlane : trkLength += val;                              break;
00158     case Systematic::kPIDShift : pidShift  += val;                              break;
00159     case Systematic::kSKZP     : totWeight *= this->DoSKZPCalc(rec,val);        break;
00160     case Systematic::kOscProb  : totWeight *= this->DoOscCalc(rec,val);         break;
00161     case Systematic::kShwDev   : totWeight *= this->DoShwDevCalc(rec,val,sel);  break;
00162     case Systematic::kTauProd  : totWeight *= this->DoTauProd(rec,val);         break;
00163     case Systematic::kPIDSkew  : totWeight *= this->DoPIDSkew(rec,val,sel);     break;
00164     case Systematic::kNCScale  : totWeight *= this->DoNCScale(rec,val, sel);           break;
00165     case Systematic::kCCShwE   : shwEnShift += this->DoCCShwEnergyScale(rec,val,sel);  break;
00166     default:                                                                    break;
00167     }
00168     beg++;
00169 //    std::cout<<Systematic::AsString(sys)<<"  "<<val<<"  "<<totWeight<<std::endl;
00170   }
00171 
00172   rec->srevent.phNueGeV         *= 1+enShift;
00173   rec->srshower.phCCGeV         *= 1+shwEnShift;
00174 
00175   rec->subshowervars.pid += pidShift;
00176   rec->ann.pid_30inp            += pidShift;
00177   rec->ann.pid_6inp             += pidShift;
00178   rec->ann.pid_11inp            += pidShift;
00179   rec->ann.pid_11inp_daikon04   += pidShift;
00180   rec->mcnnv.mcnn_var1      += pidShift;
00181 
00182 //  rec->mdadiscrim.fMdaPIDnue += pidShift;
00183 //  rec->fracvars.pid          += pidShift;
00184 //  rec->fracvars.pid1         += pidShift;
00185   rec->srtrack.endPlane      += Int_t(trkLength);
00186   rec->srtrack.trklikePlanes += Int_t(trkLike);
00187 
00188   return totWeight*rec->fluxweights.totbeamweight;
00189 }


Member Data Documentation

Double_t NueSystematic::fDeltaCP [private]

Definition at line 78 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Double_t NueSystematic::fDeltaMSq12 [private]

Definition at line 77 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Double_t NueSystematic::fDeltaMSq23 [private]

Definition at line 76 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Definition at line 79 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Char_t NueSystematic::fName[256] [private]

Definition at line 60 of file NueSystematic.h.

Referenced by GetName(), MakeBranches(), and NueSystematic().

Definition at line 82 of file NueSystematic.h.

Referenced by DoOscCalc(), GetOscParams(), and SetOscParams().

std::map<Systematic::Systematic_t,Double_t> NueSystematic::fSysList [private]
Double_t NueSystematic::fTempDouble [private]

Definition at line 80 of file NueSystematic.h.

Referenced by MakeBranches().

Double_t NueSystematic::fTheta12 [private]

Definition at line 75 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Double_t NueSystematic::fTheta13 [private]

Definition at line 74 of file NueSystematic.h.

Referenced by DoOscCalc(), GetOscParams(), Init(), MakeBranches(), and SetOscParams().

Double_t NueSystematic::fTheta23 [private]

Definition at line 73 of file NueSystematic.h.

Referenced by GetOscParams(), Init(), MakeBranches(), and SetOscParams().

SKZPWeightCalculator * NueSystematic::skzp = 0 [static, private]

Definition at line 65 of file NueSystematic.h.

Referenced by DoSKZPCalc(), and Init().

std::string NueSystematic::skzpcfg [private]

Definition at line 71 of file NueSystematic.h.

Referenced by GetSKZPParams(), Init(), and SetSKZPParams().


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

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1