2 #include "nusimdata/SimulationBase/MCTruth.h"
15 for (
int truth_i = 0; truth_i < truth.size(); truth_i++) {
26 std::cout <<
"Vertex not matched well.\n";
29 std::cout <<
"Vertex matched to neutrino.\n";
37 for (
int truth_i = 0; truth_i < truth.size(); truth_i++) {
38 if ((truth[truth_i].neutrino.position - ptrack_match.
mctruth_vertex).Mag() < 1.) {
48 std::cout <<
"Track matched to cosmic.\n";
52 std::cout <<
"Track matched to neutrino.\n";
62 std::cout <<
"reco end: " << track.
end.X() <<
" " << track.
end.Y() <<
" " << track.
end.Z() << std::endl;
112 std::map<int, unsigned> matched_vertices;
113 for (
unsigned reco_i = 0; reco_i < recos.size(); reco_i++) {
115 unsigned set_i = reco_i;
121 std::cout <<
"BAAAAAAAAD: two reco matched to same truth." << std::endl;
134 (other_primary_track.
end -
event.particles.at(other_primary_track.
match.
mcparticle_id).start).Mag());
140 std::cout <<
"Corrected -- matched track is non-muon\n";
144 std::cout <<
"Corrected -- matched track is non-muon\n";
150 if (primary_track.
length > other_primary_track.
length) {
152 std::cout <<
"Corrected -- used longer track. Track 1 is primary.\n";
156 std::cout <<
"Corrected -- used longer track. Track 2 is primary.\n";
161 std::cout <<
"Reco track 1 pos: " << primary_track.
start.X() <<
" " << primary_track.
start.Y() <<
" " << primary_track.
start.Z() <<
" to: " << primary_track.
end.X() <<
" " << primary_track.
end.Y() <<
" " << primary_track.
end.Z() << std::endl;
162 std::cout <<
"Reco track 2 pos: " << other_primary_track.
start.X() <<
" " << other_primary_track.
start.Y() <<
" " << other_primary_track.
start.Z() <<
" to: " << other_primary_track.
end.X() <<
" " << other_primary_track.
end.Y() <<
" " << other_primary_track.
end.Z() << std::endl;
163 TVector3 match_start =
event.particles.at(other_primary_track.
match.
mcparticle_id).start;
164 std::cout <<
"Match start pos: " << match_start.X() <<
" " << match_start.Y() <<
" " << match_start.Z() << std::endl;
165 if (dist_reco <= dist_other) {
166 std::cout <<
"Corrected -- split muon. Track 1 is primary.\n";
170 std::cout <<
"Corrected -- split muon. Track 2 is primary.\n";
InteractionMode mode
Mode of the interaction.
InteractionMode GetMode(const event::Interaction &truth)
int mctruth_ccnc
CC (1) / NC (0) value of the MCTruth this object matches to.
int mctruth_origin
Value of Origin_t enum of the MCTruth object this track matches to.
BEGIN_PROLOG could also be cerr
TruthMatch match
Info for mathing to truth.
int mcparticle_id
MCParticle ID of the particle this track matches to (same as the ID of the RecoTrack of that particle...
int primary_track_index
Index of the primary track.
Neutrino neutrino
The neutrino.
process_name use argoneut_mc_hitfinder track
std::map< size_t, TrueParticle > particles
Map of indices to True particle information.
bool iscc
CC (true) or NC/interference (false)
void CorrectMultiMatches(RecoEvent &event, std::vector< RecoInteraction > &recos)
Charged-current interactions.
TVector3 position
location of the vertex
process_name standard_reco_uboone reco
TVector3 start
start position of track
TVector3 mctruth_vertex
The interaction vertex of the MCTruth object this track matches to.
float length
Length of track.
float completion
Fraction of energy deposits by true particle matched by this track.
TruthMatch InteractionTruthMatch(const std::vector< event::Interaction > &truth, const std::map< size_t, numu::RecoTrack > &reco_tracks, const numu::RecoInteraction &reco)
bool has_match
Whether a track match exists.
bool is_primary
Whether this track was produced as the "primary" process.
TrackTruthMatch match
Truth matching information.
RecoSlice slice
Particle content of the interaction.
int mctruth_vertex_id
index of the truth vertex into the list of MCThruths. -1 if no match
float truth_vertex_distance
Distance from truth interaction vertex to this vertex.
Neutral-current interactions.
TVector3 end
end position of track
int mctruth_track_id
index of the primary track into the list of MCTruths. -1 if no match.
TrackMode tmode
Mode of the primary track in this interaction.
bool has_match
Whether a truth match exists.
int match_pdg
PDG of the MCParticle this track matches to.
All truth information associated with one neutrino interaction.
BEGIN_PROLOG could also be cout