1 #ifndef SBN_TrackCaloSkimmer
2 #define SBN_TrackCaloSkimmer
19 #include "art/Framework/Core/EDAnalyzer.h"
20 #include "art/Framework/Core/ModuleMacros.h"
21 #include "art/Framework/Principal/Event.h"
22 #include "art/Framework/Principal/Handle.h"
23 #include "art/Framework/Principal/Run.h"
24 #include "art/Framework/Principal/SubRun.h"
25 #include "canvas/Utilities/InputTag.h"
26 #include "fhiclcpp/ParameterSet.h"
27 #include "messagefacility/MessageLogger/MessageLogger.h"
29 #include "art_root_io/TFileService.h"
31 #include "canvas/Persistency/Common/FindMany.h"
32 #include "canvas/Persistency/Common/FindManyP.h"
33 #include "canvas/Persistency/Common/FindOne.h"
34 #include "canvas/Persistency/Common/FindOneP.h"
35 #include "canvas/Persistency/Common/Ptr.h"
36 #include "canvas/Persistency/Common/PtrVector.h"
61 #include "nusimdata/SimulationBase/MCParticle.h"
69 class TrackCaloSkimmer;
87 void analyze(art::Event
const&
e)
override;
124 const std::vector<const recob::TrackHitMeta*> &thms,
125 const std::vector<art::Ptr<recob::SpacePoint>> &sps,
127 const std::map<
geo::WireID, art::Ptr<raw::RawDigit>> &rawdigits,
128 const std::vector<GlobalTrackInfo> &
tracks,
136 const std::vector<art::Ptr<recob::PFParticle>> &PFParticleList,
137 const art::FindManyP<recob::SpacePoint> &PFParticleSPs);
143 const art::FindManyP<recob::SpacePoint> &allHitSPs);
147 const std::vector<art::Ptr<simb::MCParticle>> &mcparticles,
148 const std::vector<geo::BoxBoundedGeo> &active_volumes,
149 const std::vector<std::vector<geo::BoxBoundedGeo>> &tpc_volumes,
150 const std::map<
int,
std::vector<std::pair<geo::WireID, const sim::IDE*>>> id_to_ide_map,
151 const std::map<
int,
std::vector<art::Ptr<recob::Hit>>> id_to_truehit_map,
159 const art::Ptr<recob::SpacePoint> &sp,
void analyze(art::Event const &e) override
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
double fTailFitResidualRange
std::map< geo::WireID, std::pair< int, int > > fWiresToSave
art::InputTag fHITproducer
double fHitRawDigitsTickCollectWidth
float fTrackEndHitWireBox
Utilities related to art service access.
ClusterModuleLabel join with tracks
const geo::GeometryCore * geometry
Declaration of signal hit object.
std::map< Snippet, int > fSnippetCount
void FillTrackEndHits(const geo::GeometryCore *geometry, const detinfo::DetectorPropertiesData &dprop, const recob::Track &track, const std::vector< art::Ptr< recob::Hit >> &allHits, const art::FindManyP< recob::SpacePoint > &allHitSPs)
std::vector< art::InputTag > fRawDigitproducers
Definition of basic raw digits.
process_name use argoneut_mc_hitfinder track
void FillTrackDaughterRays(const recob::Track &trk, const recob::PFParticle &pfp, const std::vector< art::Ptr< recob::PFParticle >> &PFParticleList, const art::FindManyP< recob::SpacePoint > &PFParticleSPs)
int fHitRawDigitsWireCollectWidth
float fTrackEndHitTimeBox
void FillTrackTruth(const detinfo::DetectorClocksData &clock_data, const std::vector< art::Ptr< recob::Hit >> &trkHits, const std::vector< art::Ptr< simb::MCParticle >> &mcparticles, const std::vector< geo::BoxBoundedGeo > &active_volumes, const std::vector< std::vector< geo::BoxBoundedGeo >> &tpc_volumes, const std::map< int, std::vector< std::pair< geo::WireID, const sim::IDE * >>> id_to_ide_map, const std::map< int, std::vector< art::Ptr< recob::Hit >>> id_to_truehit_map, const detinfo::DetectorPropertiesData &dprop, const geo::GeometryCore *geo)
process_name can override from command line with o or output calo
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
Access the description of detector geometry.
TrackHitInfo MakeHit(const recob::Hit &hit, unsigned hkey, const recob::TrackHitMeta &thm, const recob::Track &trk, const art::Ptr< recob::SpacePoint > &sp, const std::vector< art::Ptr< anab::Calorimetry >> &calo, const geo::GeometryCore *geo, const detinfo::DetectorClocksData &dclock, const cheat::BackTrackerService *bt_serv)
bool operator<(const Snippet &rhs) const
TrackCaloSkimmer(fhicl::ParameterSet const &p)
void FillTrack(const recob::Track &track, const recob::PFParticle &pfp, float t0, const std::vector< art::Ptr< recob::Hit >> &hits, const std::vector< const recob::TrackHitMeta * > &thms, const std::vector< art::Ptr< recob::SpacePoint >> &sps, const std::vector< art::Ptr< anab::Calorimetry >> &calo, const std::map< geo::WireID, art::Ptr< raw::RawDigit >> &rawdigits, const std::vector< GlobalTrackInfo > &tracks, const geo::GeometryCore *geo, const detinfo::DetectorClocksData &clock_data, const cheat::BackTrackerService *bt_serv, const sbn::EDet det)
void respondToOpenInputFile(const art::FileBlock &fb) override
std::string fSimChannelproducer
art::InputTag fPFPproducer
art::InputTag fTRKproducer
Description of geometry of one entire detector.
Declaration of cluster object.
Provides recob::Track data product.
Hierarchical representation of particle flow.
Contains all timing reference information for the detector.
art::InputTag fCALOproducer
art::InputTag fTRKHMproducer
Declaration of basic channel signal object.
std::vector< art::InputTag > fT0producers
TrackCaloSkimmer & operator=(TrackCaloSkimmer const &)=delete
2D representation of charge deposited in the TDC/wire plane
bool fSilenceMissingDataProducts
bool operator==(const Snippet &rhs) const
std::vector< std::unique_ptr< sbn::ITCSSelectionTool > > fSelectionTools
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
art framework interface to geometry description
Track from a non-cascading particle.A recob::Track consists of a recob::TrackTrajectory, plus additional members relevant for a "fitted" track: