6161#include " larsim/MCCheater/ParticleInventoryService.h"
6262
6363#include " sbnobj/Common/Calibration/TrackCaloSkimmerObj.h"
64+ #include " sbnobj/Common/CRT/CRTHitT0TaggingInfo.cc"
65+ #include " sbnobj/Common/CRT/CRTHitT0TaggingTruthInfo.cc"
66+
6467#include " ITCSSelectionTool.h"
6568
6669namespace sbn {
@@ -90,6 +93,16 @@ class sbn::TrackCaloSkimmer : public art::EDAnalyzer {
9093 }
9194
9295private:
96+
97+ struct T0TimingInfo {
98+ double t0Pandora;
99+ double t0CRTTrack;
100+ double t0CRTHit;
101+ bool hasT0Pandora;
102+ bool hasT0CRTTrack;
103+ bool hasT0CRTHit;
104+ };
105+
93106 // Internal data struct
94107 struct GlobalTrackInfo {
95108 geo::Point_t start;
@@ -117,13 +130,14 @@ class sbn::TrackCaloSkimmer : public art::EDAnalyzer {
117130
118131 // Fill vars
119132 void FillTrack (const recob::Track &track,
120- const recob::PFParticle &pfp, float t0, float t0CRT ,
133+ const recob::PFParticle &pfp, const T0TimingInfo &t0Info ,
121134 const std::vector<art::Ptr<recob::Hit>> &hits,
122135 const std::vector<const recob::TrackHitMeta*> &thms,
123136 const std::vector<art::Ptr<recob::SpacePoint>> &sps,
124137 const std::vector<art::Ptr<anab::Calorimetry>> &calo,
125138 const std::map<geo::WireID, art::Ptr<raw::RawDigit>> &rawdigits,
126139 const std::vector<GlobalTrackInfo> &tracks,
140+ const geo::GeometryCore *geo,
127141 const geo::WireReadoutGeom *wireReadout,
128142 const detinfo::DetectorClocksData &clock_data,
129143 const cheat::BackTrackerService *bt_serv,
@@ -157,19 +171,27 @@ class sbn::TrackCaloSkimmer : public art::EDAnalyzer {
157171 unsigned hkey,
158172 const recob::TrackHitMeta &thm,
159173 const recob::Track &trk,
174+ const T0TimingInfo &t0Info,
160175 const art::Ptr<recob::SpacePoint> &sp,
161176 const std::vector<art::Ptr<anab::Calorimetry>> &calo,
177+ const geo::GeometryCore *geo,
162178 const geo::WireReadoutGeom *wireReadout,
163179 const detinfo::DetectorClocksData &dclock,
164- const cheat::BackTrackerService *bt_serv);
180+ const cheat::BackTrackerService *bt_serv,
181+ const detinfo::DetectorPropertiesData &dprop);
182+ void FillTrackCRTHitInfo (const std::vector<art::Ptr<sbn::crt::CRTHitT0TaggingInfo>> &tag);
165183
184+ // helpers
166185 void DoTailFit ();
186+ bool PointIsContained (const std::vector<geo::BoxBoundedGeo> &vols, geo::Point_t p);
167187
168188 // config
169189
170190 // tags
171191 art::InputTag fPFPproducer ;
172- std::vector<art::InputTag> fT0producers ;
192+ art::InputTag fPFPT0producer ;
193+ art::InputTag fCRTTrackT0producer ;
194+ art::InputTag fCRTHitT0producer ;
173195 art::InputTag fCALOproducer ;
174196 art::InputTag fTRKproducer ;
175197 art::InputTag fTRKHMproducer ;
@@ -187,7 +209,14 @@ class sbn::TrackCaloSkimmer : public art::EDAnalyzer {
187209 bool fFillTrackEndHits ;
188210 float fTrackEndHitWireBox ;
189211 float fTrackEndHitTimeBox ;
190-
212+ bool fIncludeCRTHitTagging ;
213+ bool fIncludeTopCRT ;
214+ bool fIncludeSideCRT ;
215+ double fTopCRTDistanceCutStopping ;
216+ double fTopCRTDistanceCutPassing ;
217+ double fSideCRTDistanceCutStopping ;
218+ double fSideCRTDistanceCutPassing ;
219+
191220 // tools
192221 std::vector<std::unique_ptr<sbn::ITCSSelectionTool>> fSelectionTools ;
193222
0 commit comments