1 #ifndef __sbnanalysis_ana_SBNOsc_NumuSelection__ 
    2 #define __sbnanalysis_ana_SBNOsc_NumuSelection__ 
   16 #include "canvas/Utilities/InputTag.h" 
   23 #include "TDatabasePDG.h" 
   26 #include "nusimdata/SimulationBase/MCTruth.h" 
   30 #include "ubcore/LLBasicTool/GeoAlgo/GeoAABox.h" 
   31 #include "ubcore/LLBasicTool/GeoAlgo/GeoAlgo.h" 
   33 #include "TRandomGen.h" 
   54   void Initialize(fhicl::ParameterSet* config=NULL);
 
   66   bool ProcessEvent(
const gallery::Event& ev, 
const std::vector<event::Interaction> &truth, std::vector<event::RecoInteraction>& 
reco);
 
  167   bool passRecoVertex(
const TVector3 &truth_v, 
const TVector3 &reco_v);
 
  224   static const std::array<std::string, nCuts> 
cutNames() {
 
  225     return {
"MEC", 
"AV", 
"Track", 
"FV", 
"min_L"};
 
  241 #endif  // __sbnanalysis_ana_SBNOsc_NumuSelection__ 
TH1D * h_numu_t_is_muon_bkg
histogram of whether associated track is a muon 
std::vector< NuMuInteraction > * _interactionInfo
Branch holder. 
bool doFVCut
Whether to apply fiducial volume cut. 
double showerEnergyDistortion
Energy distortion of showers for visible energy calculation (%). 
TrackInfo trackInfo(const sim::MCTrack &track)
TGraph * _cut_counts
Keep track of neutrinos per cut. 
double constantEnergyScale
constant scale to apply to reco_energy calculation 
TH1D * h_numu_contained_L
histogram w/ FV contained length of track in CC event [cm] 
TH1D * h_numu_t_length
histogram w/ total length of associated track [cm] 
double t_length
total length of (maybe faked) lepton track [cm] 
bool containedInAV(const TVector3 &v)
double trackVisibleEnergyThreshold
Energy threshold for track to be acounted in visible energy calculation [GeV]. 
TH1D * h_numu_ccqe
histogram w/ CCQE energy veriable [GeV] 
TH2D * h_numu_Vxy
2D x-y vertex histogram [cm] 
bool verbose
Whether to print out info associated w/ selection. 
TH1D * h_numu_t_is_muon
histogram of whether associated track is a muon 
double backgroundRejection
Rejection applied to background (NC) events. 
bool cutKMEC
Whether to remove MEC events (useful for studying difference w.r.t. proposal) 
bool passFV(const TVector3 &v)
std::vector< geoalgo::AABox > fiducial_volumes
List of FV containers – set by "fiducial_volumes". 
process_name use argoneut_mc_hitfinder track
bool passRecoVertex(const TVector3 &truth_v, const TVector3 &reco_v)
process_name opflashCryoW ana
Config _config
The config. 
TH1D * h_numu_t_is_muon_sig
histogram of whether associated track is a muon 
bool onlyKMEC
Whether to remove all non-MEC events. 
double constantNCWeight
constant weight to apply to each NC event 
Electron neutrino event selection. 
void Initialize(fhicl::ParameterSet *config=NULL)
double t_length
total length of (maybe faked) lepton track [cm] 
std::map< std::string, double > _eventCategories
double leptonEnergyDistortionLeavingB
Parameter to be used in the energy distortion of primary lepton for visible energy calculation...
int t_pdgid
PDGID of primary track (muon or pi+) 
double leptonEnergyDistortionLeavingA
Parameter to be used in the energy distortion of primary lepton for visible energy calculation...
double minLengthContainedTrack
Minimum length [cm] of contained tracks. Will not apply cut if value is negative. ...
double leptonEnergyDistortionContained
process_name standard_reco_uboone reco
double t_contained_length
the length of the (maybe faked) lepton track contained in the active volume [cm] 
double constantCCWeight
constant weight to apply to each CC event 
std::vector< std::string > uniformWeights
Weights taken from "EventWeight" that should be applied to the weight of each event. 
TRandomMT64 _rand
random number generation 
bool ProcessEvent(const gallery::Event &ev, const std::vector< event::Interaction > &truth, std::vector< event::RecoInteraction > &reco)
std::array< bool, nCuts > Select(const gallery::Event &ev, const simb::MCTruth &mctruth, unsigned truth_ind, const NumuSelection::NuMuInteraction &intInfo)
Base class for event selections. 
double minLengthExitingTrack
Minimum length [cm] of exiting tracks. Will not apply cut if value is negative. 
TH1D * h_numu_trueE
histogram w/ truth energy variable [GeV] 
Class def header for mctrack data container. 
double t_energy_smeared
Smeared energy of primary track [GeV]. 
TH1D * h_numu_true_v_visibleE
histogram w/ difference of visible and truth energy [GeV] 
unsigned _nu_count
Count selected events. 
double constantWeight
constant weight to apply uniformly to each event 
RootHistos _root_histos[nCuts]
Histos (one group per cut) 
unsigned _event_counter
Count processed events. 
TH1D * h_numu_visibleE
histogram w/ visible energy variable (total muon momentum + kinetic hadron energy) [GeV] ...
TH2D * h_numu_Vxz
2D x-z vertex histogram [cm] 
bool trajPointLength
Whether to use trajectory points to calculate length. 
std::vector< geoalgo::AABox > active_volumes
List of active volumes. 
double t_contained_length
the length of the (maybe faked) lepton track contained in the active volume [cm] 
double trackEnergyDistortion
Energy distortion of tracks for visible energy calculation (%). 
double selectionEfficiency
Signal efficiency weight applied to signal (charged current) events. 
bool t_is_contained
whether the (maybe faked) lepton track is totally contained in the active volume 
static const std::array< std::string, nCuts > cutNames()
TH1D * h_numu_t_is_contained
histogram w/ whether associated track is contained in AV 
bool acceptShakyTracks
Whether to calculate length of tracks that don't have all points generated. 
double vertexDistanceCut
Value of max distance [cm] between truth and reconstructed vertex. Will not apply cut if value is neg...
double t_energy_true
True energy of primary track [GeV]. 
bool t_is_contained
whether the (maybe faked) lepton track is totally contained in the active volume 
bool containedInFV(const TVector3 &v)
NuMuInteraction interactionInfo(const gallery::Event &ev, const simb::MCTruth &mctruth, VisibleEnergyCalculator &calculator)
static const unsigned nCuts
number of cuts 
TH2D * h_numu_Vyz
2D y-z vertex histogram [cm] 
bool passMinLength(double length, bool stop_in_tpc)