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)