84 if (allHits.size() == 0) {
85 if (
verbose) std::cout <<
" no hits received! exiting " << std::endl;
90 for (
auto const& theHit : allHits) {
91 unsigned int p(0),
w(0), t(0), cs(0);
107 for (
unsigned int ip = 0; ip <
fNPlanes; ip++) {
112 std::cout <<
"At plane " << ip <<
", found " <<
hitlistrefined[ip].size() <<
" hits with " 142 for (
unsigned int iplane = 0; iplane <
fNPlanes; iplane++) {
149 std::vector<art::Ptr<recob::Hit>> splittingVector =
hitlistrefined[iplane];
151 while (splittingVector.size() != 0) {
154 std::vector<int> index;
155 std::vector<art::Ptr<recob::Hit>> thiscluster;
164 unsigned int plane(0), cstat(0), tpc(0), wire(0);
170 std::cout <<
"Done writing " << thiscluster.size() <<
" hits to cluster with ID " 171 << plane * 100 + i << std::endl;
176 while (index.size() != 0) {
177 splittingVector.erase(splittingVector.begin() + (index.back()));
211 double radlimit)
const 214 for (
auto const& theHit : hitlist) {
215 double time = theHit->PeakTime();
216 unsigned int plane, cstat, tpc, wire;
221 double linear_dist = gser.
Get2DDistance(wire, time, wire_start, time_start);
223 if (linear_dist < radlimit) hitlistlocal.push_back(theHit);
237 std::vector<int>& index)
const 241 for (
auto const& theHit : hitlist) {
242 double time = theHit->PeakTime();
243 unsigned int plane, cstat, tpc, wire;
248 double linear_dist = gser.
Get2DDistance(wire, time, wire_start, time_start);
250 if (linear_dist < radlimit) {
251 hitlistlocal.push_back(theHit);
258 std::sort(index.begin(), index.end());
268 std::vector<art::Ptr<recob::Hit>>
271 std::vector<art::Ptr<recob::Hit>> hitlistlocal;
273 for (
unsigned int ix = 0; ix < hitlist.size(); ix++) {
278 unsigned int plane(0), cstat(0), tpc(0), wire(0);
287 hitlist_total.push_back(theHit);
289 std::cout <<
" adding hit @ w,t " << wire <<
" " << time <<
" on plane " << plane
294 leftovers.push_back(theHit);
297 hitlistlocal.clear();
306 return hitlist_total;
314 unsigned int&
w)
const 316 p = a->WireID().Plane;
318 w = a->WireID().Wire;
324 std::vector<std::vector<art::Ptr<recob::Hit>>>
std::vector< art::Ptr< recob::Hit > > CreateHighHitlist(util::GeometryUtilities const &gser, std::vector< art::Ptr< recob::Hit >> const &hitlist, std::vector< art::Ptr< recob::Hit >> &hitlistleftover) const
double Get2DDistance(double wire1, double time1, double wire2, double time2) const
Utilities related to art service access.
geo::WireReadoutGeom const * wireReadoutGeom
std::vector< std::vector< art::Ptr< recob::Hit > > > hitlistbyplane
std::vector< std::vector< std::vector< art::Ptr< recob::Hit > > > > smallClustList
Declaration of signal hit object.
void ClearandResizeVectors()
double Temperature() const
In kelvin.
void FindSmallClusters(util::GeometryUtilities const &gser, detinfo::DetectorClocksData const &dataClocks, detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::Hit >> allHits)
int GetPlaneAndTPC(art::Ptr< recob::Hit > a, unsigned int &plane, unsigned int &cryostat, unsigned int &time, unsigned int &wire) const
void SelectLocalHitlist(util::GeometryUtilities const &gser, std::vector< art::Ptr< recob::Hit >> hitlist, std::vector< art::Ptr< recob::Hit >> &hitlistlocal, double wire_start, double time_start, double radlimit) const
std::vector< std::vector< art::Ptr< recob::Hit > > > hitlistleftover
double Efield(unsigned int planegap=0) const
kV/cm
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
std::vector< art::Ptr< recob::Hit > > GetLeftoversByPlane(unsigned int iPlane)
T get(std::string const &key) const
double DriftVelocity(double efield=0., double temperature=0.) const
cm/us
std::vector< std::vector< art::Ptr< recob::Hit > > > hitlistrefined
Definition of data types for geometry description.
unsigned int Nplanes(TPCID const &tpcid=details::tpc_zero) const
Returns the total number of planes in the specified TPC.
float PeakTime() const
Time of the signal peak, in tick units.
Contains all timing reference information for the detector.
std::vector< std::vector< art::Ptr< recob::Hit > > > GetSmallClustersByPlane(unsigned int iPlane)
SmallClusterFinderAlg(fhicl::ParameterSet const &pset)
PlaneGeo const & Plane(TPCID const &tpcid, View_t view) const
Returns the specified wire.
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.
art framework interface to geometry description