LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
caldata::CalWireAna Class Reference

Base class for creation of raw signals on wires. More...

Inheritance diagram for caldata::CalWireAna:
art::EDAnalyzer art::detail::Analyzer art::detail::LegacyModule art::Observer art::ModuleBase

Public Types

using ModuleType = EDAnalyzer
 

Public Member Functions

 CalWireAna (fhicl::ParameterSet const &pset)
 
void analyze (const art::Event &evt)
 read/write access to event More...
 
void beginJob ()
 
void endJob ()
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
std::unique_ptr< Worker > makeWorker (WorkerParams const &wp)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Protected Member Functions

std::string const & processName () const
 
bool wantAllEvents () const noexcept
 
bool wantEvent (ScheduleID id, Event const &e) const
 
Handle< TriggerResults > getTriggerResults (Event const &e) const
 
ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Attributes

std::string fCalWireModuleLabel
 name of module that produced the wires More...
 
std::string fDetSimModuleLabel
 
TH1F * fDiffsR
 histogram of Raw tdc to tdc differences More...
 
TH1F * fDiffsW
 histogram of Wire (post-deconvoution) tdc to tdc differences More...
 
TH1F * fDiffsRW
 
TH1F * fDiffsRWgph
 
TH1F * fMin
 
TH1F * fMax
 
TH1F * fIR
 
TH1F * fCR
 
TH1F * fIW
 
TH1F * fCW
 
TH1F * fRawIndPeak
 
TH1F * fRawColPeak
 
TH1F * fCalIndPeak
 
TH1F * fCalColPeak
 
TH1F * fNoiseHist
 
TH1F * fNoiseRMS
 
TH2F * fWireSig
 
TH2F * fRawSig
 
TH2F * fRD_WireMeanDiff2D
 histogram of difference between original tdc value and compressesed value vs original value More...
 
TH2F * fRD_WireRMSDiff2D
 histogram of difference between original tdc value and compressesed value vs original value More...
 
TH2F * fDiffsRWvsR
 
TH2F * fDiffsRWvsRgph
 
TH2F * fWindow
 

Detailed Description

Base class for creation of raw signals on wires.

Definition at line 43 of file CalWireAna_module.cc.

Member Typedef Documentation

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

caldata::CalWireAna::CalWireAna ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 90 of file CalWireAna_module.cc.

91  : EDAnalyzer(pset)
92  , fCalWireModuleLabel(pset.get<std::string>("CalWireModuleLabel"))
93  , fDetSimModuleLabel(pset.get<std::string>("DetSimModuleLabel"))
94  {}
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.cc:6
std::string fCalWireModuleLabel
name of module that produced the wires
std::string fDetSimModuleLabel

Member Function Documentation

void caldata::CalWireAna::analyze ( const art::Event evt)

read/write access to event

loop over all the raw digits in a window around peak

Definition at line 149 of file CalWireAna_module.cc.

References util::LArFFT::AlignedSum(), DEFINE_ART_MODULE, util::LArFFT::DoFFT(), fCalColPeak, fCalIndPeak, fCalWireModuleLabel, fCR, fCW, fDetSimModuleLabel, fDiffsR, fDiffsRW, fDiffsRWgph, fDiffsRWvsR, fDiffsRWvsRgph, fDiffsW, util::LArFFT::FFTSize(), fIR, fIW, fMax, fMin, fNoiseHist, fNoiseRMS, fRawColPeak, fRawIndPeak, fRawSig, fRD_WireMeanDiff2D, fRD_WireRMSDiff2D, fWindow, fWireSig, art::ProductRetriever::getByLabel(), geo::kCollection, geo::kInduction, MF_LOG_DEBUG, art::PtrVector< T >::push_back(), r, geo::GeometryCore::SignalType(), art::PtrVector< T >::size(), sum, tmp, and w.

150  {
151 
152  // loop over the raw digits and get the adc vector for each, then compress it and uncompress it
153 
154  lariov::ChannelStatusProvider const& channelStatus =
157  evt.getByLabel(fDetSimModuleLabel, rdHandle);
159  evt.getByLabel(fCalWireModuleLabel, wHandle);
160 
161  // get the raw::RawDigit associated by fCalWireModuleLabel to wires in wHandle;
162  // RawDigitsFromWire.at(index) will be a art::Ptr<raw::RawDigit>
163  art::FindOneP<raw::RawDigit> RawDigitsFromWire(wHandle, evt, fCalWireModuleLabel);
164 
166  for (unsigned int i = 0; i < wHandle->size(); ++i) {
167  art::Ptr<recob::Wire> w(wHandle, i);
168  wvec.push_back(w);
169  }
171  for (unsigned int i = 0; i < rdHandle->size(); ++i) {
172  art::Ptr<raw::RawDigit> r(rdHandle, i);
173  rdvec.push_back(r);
174  }
175 
178  double pedestal = rdvec[0]->GetPedestal();
179  double threshold = 9.0;
180  double signalSize = rdvec[0]->Samples();
181  uint32_t indChan0 = 64;
182  uint32_t indChan1 = 110;
183  uint32_t colChan0 = 312;
184  uint32_t colChan1 = 354;
185  std::vector<double> ir(fft->FFTSize()), iw(fft->FFTSize()), cr(fft->FFTSize()),
186  cw(fft->FFTSize());
187  ir[signalSize] = iw[signalSize] = cr[signalSize] = cw[signalSize] = 1.0;
189  for (unsigned int rd = 0; rd < rdvec.size(); ++rd) {
190  // Find corresponding wire.
191  std::vector<double> signal(fft->FFTSize());
192  for (unsigned int wd = 0; wd < wvec.size(); ++wd) {
193  // if (wvec[wd]->RawDigit() == rdvec[rd]){
194  if (RawDigitsFromWire.at(wd) == rdvec[rd]) {
195  std::vector<float> wirSig = wvec[wd]->Signal();
196  if (wirSig.size() > signal.size()) {
197  MF_LOG_DEBUG("CalWireAna")
198  << "Incompatible vector size " << wirSig.size() << " " << signal.size();
199  return;
200  }
201  for (unsigned int ii = 0; ii < wirSig.size(); ++ii) {
202  signal[ii] = wirSig[ii];
203  }
204  break;
205  }
206  if (wd == (wvec.size() - 1)) {
207  MF_LOG_DEBUG("CalWireAna")
208  << "caldata::CalWireAna:Big problem! No matching Wire for RawDigit. Bailing." << rd;
209  return;
210  }
211  }
212 
213  std::vector<double> adc(fft->FFTSize());
214 
215  for (unsigned int t = 1; t < rdvec[rd]->Samples(); ++t) {
216  fDiffsR->Fill(rdvec[rd]->ADC(t) - rdvec[rd]->ADC(t - 1));
217  adc[t - 1] = rdvec[rd]->ADC(t - 1);
218  fRawSig->Fill(rd, rdvec[rd]->ADC(t));
219  }
220  //get the last one for the adc vector
221  adc[rdvec[rd]->Samples() - 1] = rdvec[rd]->ADC(rdvec[rd]->Samples() - 1);
222  if (!channelStatus.IsBad(rdvec[rd]->Channel()) &&
223  (*max_element(adc.begin(), adc.end()) < pedestal + threshold &&
224  *min_element(adc.begin(), adc.end()) > pedestal - threshold)) {
225  double sum = 0;
226  for (int i = 0; i < signalSize; i++)
227  sum += pow(adc[i] - pedestal, 2.0);
228  fNoiseRMS->Fill(TMath::Sqrt(sum / (double)signalSize));
229  std::vector<double> temp(fft->FFTSize());
230  std::vector<TComplex> fTemp(fft->FFTSize() / 2 + 1);
231  for (int i = 0; i < signalSize; i++)
232  temp[i] = (adc[i] - pedestal) * sin(TMath::Pi() * (double)i / signalSize);
233  fft->DoFFT(temp, fTemp);
234  for (int i = 0; i < fft->FFTSize() / 2 + 1; i++)
235  fNoiseHist->Fill(i, fTemp[i].Rho());
236  }
237  if (geom->SignalType(rdvec[rd]->Channel()) == geo::kInduction &&
238  rdvec[rd]->Channel() > indChan0 && rdvec[rd]->Channel() < indChan1) {
239  fft->AlignedSum(ir, adc);
240  fft->AlignedSum(iw, signal);
241  }
242  if (geom->SignalType(rdvec[rd]->Channel()) == geo::kCollection &&
243  rdvec[rd]->Channel() > colChan0 && rdvec[rd]->Channel() < colChan1) {
244  fft->AlignedSum(cr, adc);
245  fft->AlignedSum(cw, signal);
246  }
247  if (geom->SignalType(rdvec[rd]->Channel()) == geo::kInduction) {
248  if (*max_element(adc.begin(), adc.end()) > pedestal + threshold)
249  fRawIndPeak->Fill(*max_element(adc.begin(), adc.end()));
250  if (*max_element(signal.begin(), signal.end()) > pedestal + threshold)
251  fCalIndPeak->Fill(*max_element(signal.begin(), signal.end()));
252  }
253  if (geom->SignalType(rdvec[rd]->Channel()) == geo::kCollection) {
254  if (*max_element(adc.begin(), adc.end()) > pedestal + threshold)
255  fRawColPeak->Fill(*max_element(adc.begin(), adc.end()));
256  if (*max_element(signal.begin(), signal.end()) > pedestal + threshold)
257  fCalColPeak->Fill(*max_element(signal.begin(), signal.end()));
258  }
259 
260  int window = 8;
261  static unsigned int pulseHeight = 5;
262  unsigned int tmin = 1;
263  unsigned int tmax = 1;
264  int indMax = TMath::LocMax(signalSize, &adc[0]);
265  double sigMin = 0.0;
266  double sigMax = TMath::MaxElement(signalSize, &adc[0]);
267  if (geom->SignalType(rdvec[rd]->Channel()) == geo::kInduction && sigMax >= pulseHeight) {
268  int indMin = TMath::LocMin(signalSize, &adc[0]);
269  sigMin = TMath::MinElement(signalSize, &adc[0]);
270  tmin = std::max(indMax - window, 0);
271  tmax = std::min(indMin + window, (int)signalSize - 1);
272  MF_LOG_DEBUG("CalWireAna") << "Induction channel, indMin,tmin,tmax " << rd << " " << indMin
273  << " " << tmin << " " << tmax;
274  }
275  else if (sigMax >= pulseHeight) {
276  tmin = std::max(indMax - window, 0);
277  tmax = std::min(indMax + window, (int)signalSize - 1);
278  MF_LOG_DEBUG("CalWireAna")
279  << "Collection channel, tmin,tmax " << rd << " " << tmin << " " << tmax;
280  }
281 
282  fMin->Fill(sigMin);
283  fMax->Fill(sigMax);
284  fWindow->Fill(indMax, tmax - tmin);
285 
286  std::vector<double> winDiffs;
287  int cnt = 0;
288  // for(unsigned int t = tmin; t < tmax; ++t)
289  static unsigned int tRawLead = 0;
290  for (unsigned int t = 1; t < signalSize; ++t) {
291  fDiffsW->Fill(signal[t] - signal[t - 1]);
292  fWireSig->Fill(rd, signal[t]);
293 
294  if (t >= tmin && t <= tmax && tmax >= pulseHeight && (t + tRawLead) < signalSize) {
295  cnt++;
296  winDiffs.push_back((adc[t + tRawLead] - signal[t]) / adc[t + tRawLead]);
297  fDiffsRW->Fill(adc[t + tRawLead] - signal[t]);
298  fDiffsRWvsR->Fill(rd, adc[t + tRawLead] - signal[t]);
299  if (sigMax >= pulseHeight) {
300  fDiffsRWgph->Fill(adc[t + tRawLead] - signal[t]);
301  fDiffsRWvsRgph->Fill(rd, adc[t + tRawLead] - signal[t]);
302  }
303  }
304  }
305 
306  MF_LOG_DEBUG("CalWireAna") << "on channel " << rdvec[rd]->Channel();
307  // TMath::Mean with iterators doesn't work. EC,23-Sep-2010.
308  double tmp = TMath::Mean(winDiffs.size(), &winDiffs[0]);
309  double tmp2 = TMath::RMS(winDiffs.size(), &winDiffs[0]);
310  for (int i = 0; i < fft->FFTSize(); i++) {
311  fIR->Fill(i, ir[i]);
312  fIW->Fill(i, iw[i]);
313  fCR->Fill(i, cr[i]);
314  fCW->Fill(i, cw[i]);
315  }
316  fRD_WireMeanDiff2D->Fill(rd, tmp);
317  fRD_WireRMSDiff2D->Fill(rd, tmp2);
318 
319  } //end loop over rawDigits
320 
321  return;
322  } //end analyze method
TRandom r
Definition: spectrum.C:23
TH2F * fRD_WireMeanDiff2D
histogram of difference between original tdc value and compressesed value vs original value ...
Float_t tmp
Definition: plot.C:35
void DoFFT(std::vector< T > &input, std::vector< TComplex > &output)
Definition: LArFFT.h:95
TH1F * fDiffsR
histogram of Raw tdc to tdc differences
int FFTSize() const
Definition: LArFFT.h:66
TH2F * fRD_WireRMSDiff2D
histogram of difference between original tdc value and compressesed value vs original value ...
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:435
Signal from induction planes.
Definition: geo_types.h:151
size_type size() const
Definition: PtrVector.h:302
std::string fCalWireModuleLabel
name of module that produced the wires
SigType_t SignalType(PlaneID const &pid) const
Returns the type of signal on the channels of specified TPC plane.
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
void AlignedSum(std::vector< T > &input, std::vector< T > &output, bool add=true)
Definition: LArFFT.h:241
std::string fDetSimModuleLabel
#define MF_LOG_DEBUG(id)
TH1F * fDiffsW
histogram of Wire (post-deconvoution) tdc to tdc differences
Double_t sum
Definition: plot.C:31
Float_t w
Definition: plot.C:20
Definition: fwd.h:26
Signal from collection planes.
Definition: geo_types.h:152
void caldata::CalWireAna::beginJob ( )
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 97 of file CalWireAna_module.cc.

References fCalColPeak, fCalIndPeak, fCR, fCW, fDiffsR, fDiffsRW, fDiffsRWgph, fDiffsRWvsR, fDiffsRWvsRgph, fDiffsW, fIR, fIW, fMax, fMin, fNoiseHist, fNoiseRMS, fRawColPeak, fRawIndPeak, fRawSig, fRD_WireMeanDiff2D, fRD_WireRMSDiff2D, fWindow, and fWireSig.

98  {
99  // get access to the TFile service
101 
102  fDiffsR = tfs->make<TH1F>("One timestamp diffs in RawDigits", ";#Delta ADC;", 40, -19.5, 20.5);
103  fDiffsW = tfs->make<TH1F>("One timestamp diffs in Wires", ";#Delta ADC;", 20, -9.5, 10.5);
104  fDiffsRW = tfs->make<TH1F>("Same timestamp diffs in RD-Wires", ";#Delta ADC;", 20, -9.5, 10.5);
105  fDiffsRWvsR = tfs->make<TH2F>(
106  "Same timestamp diffs in RD-Wires vs R", ";#Delta ADC;", 481, -0.5, 480.5, 20, -9.5, 10.5);
107  fDiffsRWgph =
108  tfs->make<TH1F>("Same timestamp diffs in RD-Wires gph", ";#Delta ADC;", 20, -9.5, 10.5);
109  fDiffsRWvsRgph = tfs->make<TH2F>("Same timestamp diffs in RD-Wires vs R gph",
110  ";#Delta ADC;",
111  481,
112  -0.5,
113  480.5,
114  20,
115  -9.5,
116  10.5);
117  fRawSig =
118  tfs->make<TH2F>("One event, one channel Raw", "timestamp", 481, -0.5, 480.5, 21, -0.5, 20.5);
119  fWireSig =
120  tfs->make<TH2F>("One event, one channel Wire", "timestamp", 481, -0.5, 480.5, 21, -0.5, 20.5);
121 
122  fRD_WireMeanDiff2D = tfs->make<TH2F>(
123  "Mean (Raw-CALD)-over-Raw in Window gph", "Wire number", 481, -0.05, 480.5, 40, -1., 1.);
124  fRD_WireRMSDiff2D = tfs->make<TH2F>(
125  "RMS (Raw-CALD)-over-Raw in Window gph", "Wire number", 481, -0.05, 480.5, 10, 0., 2.);
126 
127  fWindow = tfs->make<TH2F>("tmax-tmin vs indMax", "ticks", 200, 0, 2000, 20, -2.5, 60.5);
128  fMin = tfs->make<TH1F>("Value of min", "ticks", 21, -20.5, 0.5);
129  fMax = tfs->make<TH1F>("Value of max", "ticks", 21, 0.5, 20.5);
130  fRawIndPeak = tfs->make<TH1F>("indPeakRaw", ";Induction Peaks Raw;", 40, 5, 45);
131  fRawColPeak = tfs->make<TH1F>("colPeakRaw", ";Collection Peaks Raw;", 40, 5, 45);
132  fCalIndPeak = tfs->make<TH1F>("indPeakCal", ";Induction Peaks Calibrated;", 40, 5, 45);
133  fCalColPeak = tfs->make<TH1F>("colPeakCal", ";Collection Peaks Calibrated;", 40, 5, 45);
134 
135  fIR = tfs->make<TH1F>("Raw Ind signal", "time ticks", 4096, 0.0, 4096.);
136  fCR = tfs->make<TH1F>("Raw Coll signal", "time ticks", 4096, 0.0, 4096.);
137  fIW = tfs->make<TH1F>("Wire Ind signal", "time ticks", 4096, 0.0, 4096.);
138  fCW = tfs->make<TH1F>("Wire Coll signal", "time ticks", 4096, 0.0, 4096.);
139  fNoiseHist = tfs->make<TH1F>("Noise Histogram", "FFT Bins", 2049, 0, 2049);
140  fNoiseRMS = tfs->make<TH1F>("Noise RMS", "RMS", 25, 0, 2.0);
141 
142  return;
143  }
TH2F * fRD_WireMeanDiff2D
histogram of difference between original tdc value and compressesed value vs original value ...
TH1F * fDiffsR
histogram of Raw tdc to tdc differences
TH2F * fRD_WireRMSDiff2D
histogram of difference between original tdc value and compressesed value vs original value ...
TH1F * fDiffsW
histogram of Wire (post-deconvoution) tdc to tdc differences
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 61 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().

62  {
63  return collector_.consumes<T, BT>(tag);
64  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ProductToken< T > consumes(InputTag const &)
ConsumesCollector & art::ModuleBase::consumesCollector ( )
protectedinherited

Definition at line 57 of file ModuleBase.cc.

References art::ModuleBase::collector_.

58  {
59  return collector_;
60  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 75 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().

76  {
77  collector_.consumesMany<T, BT>();
78  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::consumesView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::consumesView ( InputTag const &  tag)
inherited

Definition at line 68 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().

69  {
70  return collector_.consumesView<T, BT>(tag);
71  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > consumesView(InputTag const &)
void art::detail::Analyzer::doBeginJob ( SharedResources const &  resources)
inherited

Definition at line 25 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

26  {
27  setupQueues(resources);
28  ProcessingFrame const frame{ScheduleID{}};
29  beginJobWithFrame(frame);
30  }
virtual void beginJobWithFrame(ProcessingFrame const &)=0
virtual void setupQueues(SharedResources const &)=0
bool art::detail::Analyzer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 68 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

69  {
70  ProcessingFrame const frame{mc.scheduleID()};
71  beginRunWithFrame(std::as_const(rp).makeRun(mc), frame);
72  return true;
73  }
virtual void beginRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 84 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

85  {
86  ProcessingFrame const frame{mc.scheduleID()};
87  beginSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
88  return true;
89  }
virtual void beginSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doEndJob ( )
inherited

Definition at line 33 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

34  {
35  ProcessingFrame const frame{ScheduleID{}};
36  endJobWithFrame(frame);
37  }
virtual void endJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 76 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

77  {
78  ProcessingFrame const frame{mc.scheduleID()};
79  endRunWithFrame(std::as_const(rp).makeRun(mc), frame);
80  return true;
81  }
virtual void endRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 92 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

93  {
94  ProcessingFrame const frame{mc.scheduleID()};
95  endSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
96  return true;
97  }
virtual void endSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEvent ( EventPrincipal ep,
ModuleContext const &  mc,
std::atomic< std::size_t > &  counts_run,
std::atomic< std::size_t > &  counts_passed,
std::atomic< std::size_t > &  counts_failed 
)
inherited

Definition at line 100 of file Analyzer.cc.

References e, and art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

105  {
106  auto const e = std::as_const(ep).makeEvent(mc);
107  if (wantEvent(mc.scheduleID(), e)) {
108  ++counts_run;
109  ProcessingFrame const frame{mc.scheduleID()};
110  analyzeWithFrame(e, frame);
111  ++counts_passed;
112  }
113  return true;
114  }
bool wantEvent(ScheduleID id, Event const &e) const
Definition: Observer.cc:63
Float_t e
Definition: plot.C:35
virtual void analyzeWithFrame(Event const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited

Definition at line 47 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

48  {
49  ProcessingFrame const frame{ScheduleID{}};
51  }
TFile fb("Li6.root")
virtual void respondToCloseInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 61 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

62  {
63  ProcessingFrame const frame{ScheduleID{}};
65  }
virtual void respondToCloseOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Analyzer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited

Definition at line 40 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

41  {
42  ProcessingFrame const frame{ScheduleID{}};
44  }
TFile fb("Li6.root")
virtual void respondToOpenInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 54 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

55  {
56  ProcessingFrame const frame{ScheduleID{}};
58  }
virtual void respondToOpenOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void caldata::CalWireAna::endJob ( )
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 146 of file CalWireAna_module.cc.

146 {}
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().

44  {
45  return collector_.getConsumables();
46  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables() const
Handle< TriggerResults > art::Observer::getTriggerResults ( Event const &  e) const
protectedinherited

Definition at line 75 of file Observer.cc.

References art::ProductRetriever::get(), and art::Observer::selectors_.

Referenced by art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

76  {
77  if (selectors_) {
78  return selectors_->getOneTriggerResults(e);
79  }
80 
81  // The following applies for cases where no SelectEvents entries
82  // exist.
83  Handle<TriggerResults> h;
84  if (e.get(empty_process_name, h)) {
85  return h;
86  }
87  return Handle<TriggerResults>{};
88  }
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79
std::unique_ptr< Worker > art::ModuleBase::makeWorker ( WorkerParams const &  wp)
inherited

Definition at line 37 of file ModuleBase.cc.

References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.

38  {
39  return doMakeWorker(wp);
40  }
virtual std::unique_ptr< Worker > doMakeWorker(WorkerParams const &wp)=0
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 82 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().

83  {
84  return collector_.mayConsume<T, BT>(tag);
85  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 96 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().

97  {
98  collector_.mayConsumeMany<T, BT>();
99  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::mayConsumeView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::mayConsumeView ( InputTag const &  tag)
inherited

Definition at line 89 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().

90  {
91  return collector_.mayConsumeView<T, BT>(tag);
92  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > mayConsumeView(InputTag const &)
ModuleDescription const & art::ModuleBase::moduleDescription ( ) const
inherited

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().

14  {
15  if (md_.has_value()) {
16  return *md_;
17  }
18 
20  "There was an error while calling moduleDescription().\n"}
21  << "The moduleDescription() base-class member function cannot be called\n"
22  "during module construction. To determine which module is "
23  "responsible\n"
24  "for calling it, find the '<module type>:<module "
25  "label>@Construction'\n"
26  "tag in the message prefix above. Please contact artists@fnal.gov\n"
27  "for guidance.\n";
28  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
string const & art::Observer::processName ( ) const
protectedinherited

Definition at line 57 of file Observer.cc.

References art::Observer::process_name_.

Referenced by art::FileDumperOutput::printPrincipal().

58  {
59  return process_name_;
60  }
std::string process_name_
Definition: Observer.h:76
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  md)
inherited

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

32  {
33  md_ = md;
34  }
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited

Definition at line 49 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().

50  {
51  // Now that we know we have seen all the consumes declarations,
52  // sort the results for fast lookup later.
53  collector_.sortConsumables(current_process_name);
54  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
void sortConsumables(std::string const &current_process_name)
bool art::Observer::wantAllEvents ( ) const
inlineprotectednoexceptinherited

Definition at line 31 of file Observer.h.

References e, art::Observer::getTriggerResults(), art::Observer::wantAllEvents_, and art::Observer::wantEvent().

32  {
33  return wantAllEvents_;
34  }
bool wantAllEvents_
Definition: Observer.h:75
bool art::Observer::wantEvent ( ScheduleID  id,
Event const &  e 
) const
protectedinherited

Definition at line 63 of file Observer.cc.

References art::Observer::rejectors_, art::Observer::selectors_, and art::Observer::wantAllEvents_.

Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

64  {
65  if (wantAllEvents_) {
66  return true;
67  }
68  bool const select_event = selectors_ ? selectors_->matchEvent(id, e) : true;
69  bool const reject_event =
70  rejectors_ ? rejectors_->matchEvent(id, e) : false;
71  return select_event and not reject_event;
72  }
bool wantAllEvents_
Definition: Observer.h:75
std::optional< detail::ProcessAndEventSelectors > rejectors_
Definition: Observer.h:80
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79

Member Data Documentation

TH1F* caldata::CalWireAna::fCalColPeak
private

Definition at line 70 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fCalIndPeak
private

Definition at line 69 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

std::string caldata::CalWireAna::fCalWireModuleLabel
private

name of module that produced the wires

Definition at line 54 of file CalWireAna_module.cc.

Referenced by analyze().

TH1F* caldata::CalWireAna::fCR
private

Definition at line 64 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fCW
private

Definition at line 66 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

std::string caldata::CalWireAna::fDetSimModuleLabel
private

Definition at line 55 of file CalWireAna_module.cc.

Referenced by analyze().

TH1F* caldata::CalWireAna::fDiffsR
private

histogram of Raw tdc to tdc differences

Definition at line 57 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fDiffsRW
private

Definition at line 59 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fDiffsRWgph
private

Definition at line 60 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fDiffsRWvsR
private

Definition at line 79 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fDiffsRWvsRgph
private

Definition at line 80 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fDiffsW
private

histogram of Wire (post-deconvoution) tdc to tdc differences

Definition at line 58 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fIR
private

Definition at line 63 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fIW
private

Definition at line 65 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fMax
private

Definition at line 62 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fMin
private

Definition at line 61 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fNoiseHist
private

Definition at line 71 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fNoiseRMS
private

Definition at line 72 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fRawColPeak
private

Definition at line 68 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* caldata::CalWireAna::fRawIndPeak
private

Definition at line 67 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fRawSig
private

Definition at line 74 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fRD_WireMeanDiff2D
private

histogram of difference between original tdc value and compressesed value vs original value

Definition at line 76 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fRD_WireRMSDiff2D
private

histogram of difference between original tdc value and compressesed value vs original value

Definition at line 78 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fWindow
private

Definition at line 81 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().

TH2F* caldata::CalWireAna::fWireSig
private

Definition at line 73 of file CalWireAna_module.cc.

Referenced by analyze(), and beginJob().


The documentation for this class was generated from the following file: