#include <cmath>
#include "sbnana/SBNAna/Vars/NumuVarsIcarus202106.h"
#include "sbnana/SBNAna/Cuts/NumuCutsIcarus202106.h"
#include "sbnanaobj/StandardRecord/Proxy/SRProxy.h"
Go to the source code of this file.
Namespaces | |
ana | |
Oscillation analysis framework, runs over CAF files outside of ART. | |
Variables | |
const Cut | ana::kIsNuSlice = ( kTruthIndex >= 0.f ) |
const Cut | ana::kIsCosmic = ( !kIsNuSlice ) |
const Cut | ana::kIsNuMuCC ([](const caf::SRSliceProxy *slc){return(kIsNuSlice(slc)&&slc->truth.iscc &&(slc->truth.pdg==14||slc->truth.pdg==-14));}) |
const Cut | ana::kIsNuOther = ( kIsNuSlice && !kIsNuMuCC ) |
const Cut | ana::kCryo0 ([](const caf::SRSliceProxy *slc){return(!isnan(slc->vertex.x)&&slc->vertex.x< 0);}) |
const Cut | ana::kTFiducial ([](const caf::SRSliceProxy *slc){return(!isnan(slc->truth.position.x)&&((slc->truth.position.x< -71.1-25 &&slc->truth.position.x >-369.33+25)||(slc->truth.position.x > 71.1+25 &&slc->truth.position.x< 369.33-25))&&!isnan(slc->truth.position.y)&&(slc->truth.position.y >-181.7+25 &&slc->truth.position.y< 134.8-25)&&!isnan(slc->truth.position.z)&&(slc->truth.position.z >-895.95+30 &&slc->truth.position.z< 895.95-50));}) |
const Cut | ana::kRFiducial ([](const caf::SRSliceProxy *slc){return(!isnan(slc->vertex.x)&&((slc->vertex.x< -71.1-25 &&slc->vertex.x >-369.33+25)||(slc->vertex.x > 71.1+25 &&slc->vertex.x< 369.33-25))&&!isnan(slc->vertex.y)&&(slc->vertex.y >-181.7+25 &&slc->vertex.y< 134.8-25)&&!isnan(slc->vertex.z)&&(slc->vertex.z >-895.95+30 &&slc->vertex.z< 895.95-50));}) |
const Cut | ana::kNotClearCosmic ([](const caf::SRSliceProxy *slc){return!slc->is_clear_cosmic;}) |
const Cut | ana::kNuScore ([](const caf::SRSliceProxy *slc){return(!isnan(slc->nu_score)&&slc->nu_score > 0.4);}) |
const Cut | ana::kFMScore ([](const caf::SRSliceProxy *slc){return(!isnan(slc->fmatch.score)&&slc->fmatch.score< 7.0);}) |
const Cut | ana::kPTrack ([](const caf::SRSliceProxy *slc){return(kPTrackInd(slc) >=0);}) |
const Cut | ana::kPTrackContained ([](const caf::SRSliceProxy *slc){int Ind=kPTrackInd(slc);bool Contained(false);if(Ind >=0){auto const &trk=slc->reco.trk.at(Ind);Contained=(!isnan(trk.end.x)&&(trk.end.x< -71.1-25 &&trk.end.x >-369.33+25)&&!isnan(trk.end.y)&&(trk.end.y >-181.7+25 &&trk.end.y< 134.8-25)&&!isnan(trk.end.z)&&(trk.end.z >-895.95+30 &&trk.end.z< 895.95-50));}return Contained;}) |
const Cut | ana::kPTrackExiting ([](const caf::SRSliceProxy *slc){int Ind=kPTrackInd(slc);bool Exiting(false);if(Ind >=0){auto const &trk=slc->reco.trk.at(Ind);Exiting=!(!isnan(trk.end.x)&&(trk.end.x< -71.1-25 &&trk.end.x >-369.33+25)&&!isnan(trk.end.y)&&(trk.end.y >-181.7+25 &&trk.end.y< 134.8-25)&&!isnan(trk.end.z)&&(trk.end.z >-895.95+30 &&trk.end.z< 895.95-50));}return Exiting;}) |
const Cut | ana::kNuMuCC_Cryo0 = ( kIsNuMuCC && kCryo0 ) |
const Cut | ana::kCosmic_Cryo0 = ( kIsCosmic && kCryo0 ) |
const Cut | ana::kNuOther_Cryo0 = ( kIsNuOther && kCryo0 ) |
const Cut | ana::kNuMuCC_TFiducial = ( kNuMuCC_Cryo0 && kTFiducial ) |
const Cut | ana::kNuMuCC_RFiducial = ( kNuMuCC_Cryo0 && kRFiducial ) |
const Cut | ana::kCosmic_TFiducial = ( kCosmic_Cryo0 && kTFiducial ) |
const Cut | ana::kCosmic_RFiducial = ( kCosmic_Cryo0 && kRFiducial ) |
const Cut | ana::kNuOther_TFiducial = ( kNuOther_Cryo0 && kTFiducial ) |
const Cut | ana::kNuOther_RFiducial = ( kNuOther_Cryo0 && kRFiducial ) |
const Cut | ana::kNuMuCC_ClearCos = ( kNuMuCC_TFiducial && kNotClearCosmic ) |
const Cut | ana::kCosmic_ClearCos = ( kCosmic_RFiducial && kNotClearCosmic ) |
const Cut | ana::kNuOther_ClearCos = ( kNuOther_TFiducial && kNotClearCosmic ) |
const Cut | ana::kNuMuCC_NuScore = ( kNuMuCC_ClearCos && kNuScore ) |
const Cut | ana::kCosmic_NuScore = ( kCosmic_ClearCos && kNuScore ) |
const Cut | ana::kNuOther_NuScore = ( kNuOther_ClearCos && kNuScore ) |
const Cut | ana::kNuMuCC_FMScore = ( kNuMuCC_NuScore && kFMScore ) |
const Cut | ana::kCosmic_FMScore = ( kCosmic_NuScore && kFMScore ) |
const Cut | ana::kNuOther_FMScore = ( kNuOther_NuScore && kFMScore ) |
const Cut | ana::kNuMuCC_PTrack = ( kNuMuCC_FMScore && kPTrack ) |
const Cut | ana::kCosmic_PTrack = ( kCosmic_FMScore && kPTrack ) |
const Cut | ana::kNuOther_PTrack = ( kNuOther_FMScore && kPTrack ) |
const Cut | ana::kNuMuCC_FullSelection = ( kCryo0 && kRFiducial && kNotClearCosmic && kNuScore && kFMScore && kPTrack ) |
const SpillCut | ana::kLongTrack ([](const caf::SRSpillProxy *sr){bool ProgCut=false;bool NuIsNuMuCC, IsMuon, Contained;for(auto const &nu:sr->mc.nu){NuIsNuMuCC=nu.iscc &&(nu.pdg==14||nu.pdg==-14);for(auto const &prim:nu.prim){IsMuon=(prim.pdg==13||prim.pdg==-13);Contained=(prim.contained==1);ProgCut=ProgCut||(NuIsNuMuCC &&IsMuon &&((Contained &&prim.length > 50.0)||(!Contained &&prim.length > 100.0)));}}return ProgCut;}) |