431 art::Handle<std::vector<recob::Hit>> hits;
432 std::vector<art::Ptr<recob::Hit>> hitlist;
433 if (
evt.getByLabel(
fHitLabel, hits)) art::fill_ptr_vector(hitlist, hits);
438 auto assns = std::make_unique<art::Assns<recob::SpacePoint, recob::Hit>>();
441 if (hits->size() < 20) {
445 evt.put(std::move(assns));
451 art::ServiceHandle<geo::Geometry const>
geom;
453 std::vector<art::Ptr<recob::Hit>> xhits, uhits, vhits;
454 bool is2view =
fHitReader->readHits(hitlist, xhits, uhits, vhits);
456 std::vector<raw::ChannelID_t> xbadchans, ubadchans, vbadchans;
459 art::ServiceHandle<lariov::ChannelStatusService const>()->GetProvider().BadChannels()) {
465 if (geom->View(cid) ==
geo::kU) ubadchans.push_back(cid);
466 if (geom->View(cid) ==
geo::kV) vbadchans.push_back(cid);
471 std::cout << xbadchans.size() <<
" X, " << ubadchans.size() <<
" U, " << vbadchans.size()
472 <<
" V bad channels" << std::endl;
474 std::vector<CollectionWireHit*> cwires;
476 std::vector<InductionWireHit*> iwires;
478 std::vector<SpaceCharge*> orphanSCs;
481 art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataFor(
evt);
485 std::cout <<
"Finding 2-view coincidences..." << std::endl;
496 BuildSystem(tf.TripletsTwoView(), cwires, iwires, orphanSCs,
fAlpha != 0, hitmap);
499 std::cout <<
"Finding XUV coincidences..." << std::endl;
517 std::cout <<
"Iterating with no regularization..." << std::endl;
523 std::cout <<
"Now with regularization..." << std::endl;
528 evt.put(std::move(assns));
const geo::GeometryCore * geom
bool fAllowBadInductionHit
void Minimize(const std::vector< CollectionWireHit * > &cwires, const std::vector< SpaceCharge * > &orphanSCs, double alpha, int maxiterations)
std::unique_ptr< reco3d::IHitReader > fHitReader
Expt specific tool for reading hits.
Planes which measure Z direction.
std::map< const WireHit *, const recob::Hit * > HitMap_t
bool fAllowBadCollectionHit
void FillSystemToSpacePointsAndAssns(const std::vector< art::Ptr< recob::Hit >> &hitlist, const std::vector< CollectionWireHit * > &cwires, const std::vector< SpaceCharge * > &orphanSCs, const HitMap_t &hitmap, recob::ChargedSpacePointCollectionCreator &points, art::Assns< recob::SpacePoint, recob::Hit > &assn) const
static ChargedSpacePointCollectionCreator forPtrs(art::Event &event, std::string const &instanceName={})
Static function binding a new object to a specific art event.
void BuildSystem(const std::vector< HitTriplet > &triplets, std::vector< CollectionWireHit * > &cwires, std::vector< InductionWireHit * > &iwires, std::vector< SpaceCharge * > &orphanSCs, bool incNei, HitMap_t &hitmap) const
then echo File list $list not found else cat $list while read file do echo $file sed s
void FillSystemToSpacePoints(const std::vector< CollectionWireHit * > &cwires, const std::vector< SpaceCharge * > &orphanSCs, recob::ChargedSpacePointCollectionCreator &pts) const
unsigned int ChannelID_t
Type representing the ID of a readout channel.
BEGIN_PROLOG could also be cout
Signal from collection planes.