82 std::unique_ptr< std::vector<recob::OpFlash> > opflashes(
new std::vector<recob::OpFlash>);
83 std::unique_ptr< art::Assns <recob::OpHit, recob::OpFlash> > flash2hit_assn_v (
new art::Assns<recob::OpHit, recob::OpFlash> );
85 art::Handle<std::vector<recob::OpHit> > ophit_h;
89 if(!ophit_h.isValid()) {
90 std::cerr<<
"\033[93m[ERROR]\033[00m ... could not locate OpHit!"<<std::endl;
91 throw std::exception();
96 for(
auto const& oph : *ophit_h) {
98 if(trigger_time > 1.e20) trigger_time = oph.PeakTimeAbs() - oph.PeakTime();
103 loph.
channel = oph.OpChannel();
104 ophits.emplace_back(std::move(loph));
109 for(
const auto& lflash : flash_v) {
111 double Ycenter, Zcenter, Ywidth, Zwidth;
115 trigger_time + lflash.time,
116 (trigger_time + lflash.time) / 1600.,
119 Ycenter, Ywidth, Zcenter, Zwidth);
120 opflashes->emplace_back(std::move(flash));
122 for(
auto const& hitidx : lflash.asshit_idx) {
123 const art::Ptr<recob::OpHit> hit_ptr(ophit_h, hitidx);
128 e.put(std::move(opflashes));
129 e.put(std::move(flash2hit_assn_v));
std::vector< pmtana::LiteOpHit_t > LiteOpHitArray_t
BEGIN_PROLOG could also be cerr
::pmtana::PECalib _pecalib
std::string _hit_producer
timescale_traits< TriggerTimeCategory >::time_point_t trigger_time
A point in time on the trigger time scale.
double Calibrate(const size_t opdet, const double area) const
bool CreateAssn(art::Event &evt, std::vector< T > const &a, art::Ptr< U > const &b, art::Assns< U, T > &assn, std::string a_instance, size_t index=UINT_MAX)
Creates a single one-to-one association.
size_t OpDetFromOpChannel(size_t opch)
::pmtana::FlashFinderManager _mgr
void GetFlashLocation(std::vector< double >, double &, double &, double &, double &)
LiteOpFlashArray_t RecoFlash(const LiteOpHitArray_t &ophits) const