Classes | Namespaces | Enumerations | Functions | Variables
MECTuningUtils.h File Reference
#include "CAFAna/Core/Loaders.h"
#include <TObjString.h>
#include "CAFAna/Experiment/SingleSampleExperiment.h"
#include "StandardRecord/Proxy/SRProxy.h"

Go to the source code of this file.

Classes

class  ana::TrivialPrediction
 
class  ana::NDPredGenerator
 
class  ana::BigChi2SingleSampleExperiment
 
class  ana::IRescaledSigmaSyst
 
class  ana::CompNormSyst
 
struct  ana::Q3Q0Bin
 
class  ana::MECGaussEnhSyst
 
class  ana::MECDoubleGaussEnhSyst
 
class  ana::MinosResSuppSyst
 

Namespaces

 ana
 Cuts and Vars for the 2020 FD DiF Study.
 

Enumerations

enum  ana::MECGaussEnhParam {
  ana::kGauss2DNorm, ana::kGauss2DMeanQ0, ana::kGauss2DMeanQ3, ana::kGauss2DSigmaQ0,
  ana::kGauss2DSigmaQ3, ana::kGauss2DCorr, ana::kGauss2DNorm, ana::kGauss2DMeanQ0,
  ana::kGauss2DMeanQ3, ana::kGauss2DSigmaQ0, ana::kGauss2DSigmaQ3, ana::kGauss2DCorr
}
 
enum  ana::MECDoubleGaussEnhParam {
  ana::kGauss2DNorm_1, ana::kGauss2DMeanQ0_1, ana::kGauss2DMeanQ3_1, ana::kGauss2DSigmaQ0_1,
  ana::kGauss2DSigmaQ3_1, ana::kGauss2DCorr_1, ana::kGauss2DNorm_2, ana::kGauss2DMeanQ0_2,
  ana::kGauss2DMeanQ3_2, ana::kGauss2DSigmaQ0_2, ana::kGauss2DSigmaQ3_2, ana::kGauss2DCorr_2,
  ana::kBaseline
}
 
enum  ana::MinosResSuppParam { ana::kMinosResSuppNorm, ana::kMinosResSuppQ0, ana::kMinosResSuppNorm, ana::kMinosResSuppQ0 }
 

Functions

const Var ana::GetWeightFromShifts (const SystShifts &sys_shifts)
 
const Cut ana::GetCutIsFitMEC (const bool isRHC)
 
Cut ana::Q3Q0CutFactory (float loQ3, float hiQ3, float loQ0, float hiQ0)
 
double ana::CalcMECGaussEnh (const double q0, const double q3, const MECGaussEnhParam shift_param, const double shift_sigma)
 
const Var ana::kMECGaussEnh ([](const caf::SRProxy *sr){if(!kIsNumuCC(sr)||sr->mc.nu[0].mode!=caf::kMEC) return 1.0;double q0=kTrueQ0(sr);double q3=kTrueQ3(sr);return CalcMECGaussEnh(q0, q3, kGauss2DNorm, 0);})
 
double ana::CalcMECDoubleGaussEnh (const double q0, const double q3, const MECDoubleGaussEnhParam shift_param, const double shift_sigma)
 
double ana::CalcMECDoubleGaussEnhShiftedParam (std::string shift_param, double shift_sigma)
 
const Var ana::kMECDoubleGaussEnh ([](const caf::SRProxy *sr){if(!kIsNumuCC(sr)||sr->mc.nu[0].mode!=caf::kMEC) return 1.0;double q0=kTrueQ0(sr);double q3=kTrueQ3(sr);return CalcMECDoubleGaussEnh(q0, q3, kGauss2DNorm_1, 0);})
 
double ana::simpleMECDoubleGaussEnh (const double q0, const double q3, double norm, double mean_q0, double mean_q3, double sigma_q0, double sigma_q3, double corr, double norm_2, double mean_q0_2, double mean_q3_2, double sigma_q0_2, double sigma_q3_2, double corr_2, double baseline)
 
const Var ana::kMECDoubleGaussEnhSimple (double norm, double mean_q0, double mean_q3, double sigma_q0, double sigma_q3, double corr, double norm_2, double mean_q0_2, double mean_q3_2, double sigma_q0_2, double sigma_q3_2, double corr_2, double baseline)
 
double ana::CalcMinosResSupp (const double Q2, const MinosResSuppParam shift_param, const double shift_sigma)
 
const Var ana::kMinosResSupp ([](const caf::SRProxy *sr){if(!kIsNumuCC(sr)||sr->mc.nu[0].mode!=kIsRes(sr)||sr->mc.nu[0].tgtA==1) return 1.0;double Q2=kTrueQ2(sr);return CalcMinosResSupp(Q2, kMinosResSuppNorm, 0);})
 
const Var ana::kWeightPionDeuteriumTune ([](const caf::SRProxy *sr){double weight=1.0;if(kIsNumuCC(sr)&&kIsRes(sr)){if(sr->mc.nu[0].rwgt.genie.size()<=rwgt::fReweightMaCCRES-1){if(sr->mc.nu[0].isvtxcont) throw std::runtime_error("kWeightPionDeuteriumTune: Cannot do MA CCRES rescaling without GENIE reweights available.");else return 1.0;} const double correctionInSigma=(1.12-0.94)/0.2;weight *=1.+correctionInSigma *(sr->mc.nu[0].rwgt.genie[rwgt::fReweightMaCCRES].minus1sigma-1.);weight *=1.15;}else if(kIsNumuCC(sr)&&kIsDIS(sr)&&kTrueW(sr)< 1.7){if(sr->mc.nu[0].npiminus+sr->mc.nu[0].npiplus+sr->mc.nu[0].npizero==1){weight *=0.43;}}return weight;})
 

Variables

const std::map< std::string, MECDoubleGaussEnhParam > ana::DoubleGaussMap