10 #include "nuevdb/EventDisplayBase/EventHolder.h"    13 #include "canvas/Persistency/Common/FindManyP.h"    14 #include "cetlib_except/exception.h"    18 #include "TPolyLine.h"    80     const art::Event* 
event = evdb::EventHolder::Instance()->GetEvent();
    85     for (
size_t imod = 0; imod < recoOpt->
fHitLabels.size(); ++imod) {
    90       event->getByLabel(which, hitVecHandle);
    96         for (
size_t hitIdx = 0; hitIdx < hitVecHandle->size(); hitIdx++) {
   104                                        << 
" failed with message:\n"   108       if (hitPtrVec.
empty()) 
continue;
   111       std::sort(hitPtrVec.
begin(), hitPtrVec.
end(), [](
const auto& 
left, 
const auto& 
right) {
   112         return left->PeakTime() < 
right->PeakTime();
   116       art::FindManyP<recob::Wire> wireAssnsVec(hitPtrVec, *
event, which);
   117       std::vector<float> wireDataVec;
   120       if (wireAssnsVec.isValid() && wireAssnsVec.size() > 0) {
   121         auto hwafp = wireAssnsVec.at(0).front();
   122         if (!hwafp.isNull() && hwafp.isAvailable()) { wireDataVec = hwafp->Signal(); }
   134       for (
const auto& 
hit : hitPtrVec) {
   136         if (
hit->PeakTime() - 3. * 
hit->RMS() > lastEndTick) {
   137           if (!roiHitParamsVec.empty()) hitParamsVec.push_back(roiHitParamsVec);
   138           roiHitParamsVec.clear();
   143         hitParams.hitCenter = 
hit->PeakTime();
   144         hitParams.hitSigma = 
hit->RMS();
   145         hitParams.hitHeight = 
hit->PeakAmplitude();
   146         hitParams.hitStart = 
hit->StartTick(); 
   147         hitParams.hitEnd = 
hit->EndTick();     
   149         lastEndTick = hitParams.hitEnd;
   151         roiHitParamsVec.emplace_back(hitParams);
   156       if (!roiHitParamsVec.empty()) hitParamsVec.push_back(roiHitParamsVec);
   160       for (
const auto& roiHitParamsVec : hitParamsVec) {
   162         double roiStart = roiHitParamsVec.front().hitStart;
   163         double roiStop = roiHitParamsVec.back().hitEnd;
   166         std::string funcName = Form(
"hitshape_%05zu_c%02zu", 
size_t(channel), roiCount++);
   168         for (
size_t idx = 1; idx < roiHitParamsVec.size(); idx++)
   174         if (
fFloatBaseline && !wireDataVec.empty()) baseline = wireDataVec.at(roiStart);
   179           std::make_unique<TF1>(funcName.c_str(), funcString.c_str(), roiStart, roiStop));
   185         for (
const auto& hitParams : roiHitParamsVec) {
   186           hitFunc.SetParameter(idx + 0, hitParams.hitHeight);
   187           hitFunc.SetParameter(idx + 1, hitParams.hitCenter);
   188           hitFunc.SetParameter(idx + 2, hitParams.hitSigma);
   190           TPolyLine& 
hitHeight = view2D.AddPolyLine(2, kBlack, 1, 1);
   192           hitHeight.SetPoint(0, hitParams.hitCenter, baseline);
   193           hitHeight.SetPoint(1, hitParams.hitCenter, hitParams.hitHeight + baseline);
   195           hitHeight.Draw(
"same");
   197           TPolyLine& 
hitSigma = view2D.AddPolyLine(2, kGray, 1, 1);
   200             0, hitParams.hitCenter - hitParams.hitSigma, 0.6 * hitParams.hitHeight + baseline);
   202             1, hitParams.hitCenter + hitParams.hitSigma, 0.6 * hitParams.hitHeight + baseline);
   204           hitSigma.Draw(
"same");
   209         hitFunc.Draw(
"same");
 
int TDCtick_t
Type representing a TDC tick. 
 
void push_back(Ptr< U > const &p)
 
T get(std::string const &key) const 
 
Detector simulation of raw signals on wires. 
 
Declaration of signal hit object. 
 
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
 
Declaration of basic channel signal object. 
 
std::vector< art::InputTag > fHitLabels
module labels that produced hits 
 
unsigned int ChannelID_t
Type representing the ID of a readout channel. 
 
raw::ChannelID_t Channel() const 
ID of the readout channel the hit was extracted from. 
 
std::string to_string(ModuleType const mt)
 
cet::coded_exception< error, detail::translate > exception
 
Event finding and building.