LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
nnet::NoiseWaveformDump Class Reference
Inheritance diagram for nnet::NoiseWaveformDump:
art::EDAnalyzer art::detail::Analyzer art::detail::LegacyModule art::Observer art::ModuleBase

Public Types

using ModuleType = EDAnalyzer
 

Public Member Functions

 NoiseWaveformDump (fhicl::ParameterSet const &p)
 
 NoiseWaveformDump (NoiseWaveformDump const &)=delete
 
 NoiseWaveformDump (NoiseWaveformDump &&)=delete
 
NoiseWaveformDumpoperator= (NoiseWaveformDump const &)=delete
 
NoiseWaveformDumpoperator= (NoiseWaveformDump &&)=delete
 
void analyze (art::Event const &e) override
 
void beginJob () override
 
void endJob () override
 
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 fDumpWaveformsFileName
 
std::string fSimulationProducerLabel
 producer that tracked simulated part. through detector More...
 
std::string fSimChannelLabel
 module that made simchannels More...
 
std::string fDigitModuleLabel
 module that made digits More...
 
bool fUseFullWaveform
 
unsigned int fShortWaveformSize
 
std::string fPlaneToDump
 
int fMaxNoiseChannelsPerEvent
 
art::ServiceHandle< geo::Geometryfgeom
 
CLHEP::RandFlat fRandFlat
 
c2numpy_writer npywriter
 

Detailed Description

Definition at line 48 of file NoiseWaveformDump_module.cc.

Member Typedef Documentation

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

nnet::NoiseWaveformDump::NoiseWaveformDump ( fhicl::ParameterSet const &  p)
explicit

Definition at line 91 of file NoiseWaveformDump_module.cc.

References art::detail::EngineCreator::createEngine(), fDigitModuleLabel, fDumpWaveformsFileName, fMaxNoiseChannelsPerEvent, fPlaneToDump, fRandFlat, fShortWaveformSize, fSimChannelLabel, fSimulationProducerLabel, and fUseFullWaveform.

92  : EDAnalyzer{p}
93  , fDumpWaveformsFileName(p.get<std::string>("DumpWaveformsFileName", "dumpwaveforms"))
94  , fSimulationProducerLabel(p.get<std::string>("SimulationProducerLabel", "larg4Main"))
95  , fSimChannelLabel(p.get<std::string>("SimChannelLabel", "elecDrift"))
96  , fDigitModuleLabel(p.get<std::string>("DigitModuleLabel", "simWire"))
97  , fUseFullWaveform(p.get<bool>("UseFullWaveform", true))
98  , fShortWaveformSize(p.get<unsigned int>("ShortWaveformSize"))
99  , fPlaneToDump(p.get<std::string>("PlaneToDump"))
100  , fMaxNoiseChannelsPerEvent(p.get<int>("MaxNoiseChannelsPerEvent"))
103  -> declareEngine(instanceName, p, "SeedForNoiseWaveformDump"),
104  "HepJamesRandom",
105  instanceName)}
106 {
107  if (std::getenv("CLUSTER") && std::getenv("PROCESS")) {
109  string(std::getenv("CLUSTER")) + "-" + string(std::getenv("PROCESS")) + "-";
110  }
111 
112  if (fDigitModuleLabel.empty()) {
113  throw cet::exception("NoiseWaveformDump") << "DigitModuleLabel is empty";
114  }
115 }
base_engine_t & createEngine(seed_t seed)
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.cc:6
std::string fSimulationProducerLabel
producer that tracked simulated part. through detector
std::string fSimChannelLabel
module that made simchannels
std::string fDigitModuleLabel
module that made digits
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
nnet::NoiseWaveformDump::NoiseWaveformDump ( NoiseWaveformDump const &  )
delete
nnet::NoiseWaveformDump::NoiseWaveformDump ( NoiseWaveformDump &&  )
delete

Member Function Documentation

void nnet::NoiseWaveformDump::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 180 of file NoiseWaveformDump_module.cc.

References c2numpy_float32(), c2numpy_int16(), c2numpy_int32(), c2numpy_string(), c2numpy_uint16(), c2numpy_uint32(), DEFINE_ART_MODULE, art::EventID::event(), fDigitModuleLabel, fgeom, fMaxNoiseChannelsPerEvent, fPlaneToDump, fRandFlat, fShortWaveformSize, fSimChannelLabel, fUseFullWaveform, art::ProductRetriever::getValidHandle(), art::Event::id(), raw::InvalidChannelID, npywriter, art::EventID::run(), raw::RawDigit::Samples(), seed, art::EventID::subRun(), raw::Uncompress(), geo::GeometryCore::View(), and geo::PlaneGeo::ViewName().

181 {
182  cout << "Event " << evt.id().run() << " " << evt.id().subRun() << " " << evt.id().event() << endl;
183 
184  // ... Read in the digit List object(s).
185  auto digitVecHandle = evt.getValidHandle<std::vector<raw::RawDigit>>(fDigitModuleLabel);
186 
187  std::cout << " !!!!! Size of digitVecHandle: " << digitVecHandle->size() << std::endl;
188  if (!digitVecHandle->size()) return;
189 
190  auto const clockData = art::ServiceHandle<detinfo::DetectorClocksService const>()->DataFor(evt);
191  auto const detProp =
193 
194  // ... Use the handle to get a particular (0th) element of collection.
195  std::vector<raw::RawDigit> const& rawDigits = *digitVecHandle;
196  raw::RawDigit const& digitVec0 = rawDigits[0];
197  unsigned int dataSize = digitVec0.Samples(); //size of raw data vectors
198  if (dataSize != detProp.ReadOutWindowSize()) {
199  throw cet::exception("NoiseWaveformDumpNoiseWaveformDump") << "Bad dataSize: " << dataSize;
200  }
201 
202  // ... Build a map from channel number -> rawdigitVec
203  std::map<raw::ChannelID_t, raw::RawDigit const*> rawdigitMap;
204  raw::ChannelID_t chnum = raw::InvalidChannelID; // channel number
205  for (size_t rdIter = 0; rdIter < rawDigits.size(); ++rdIter) {
206  chnum = rawDigits[rdIter].Channel();
207  if (chnum == raw::InvalidChannelID) continue;
208  if (geo::PlaneGeo::ViewName(fgeom->View(chnum)) != fPlaneToDump[0]) continue;
209  rawdigitMap[chnum] = &rawDigits[rdIter];
210  }
211 
212  // ... Read in sim channel list
213  auto simChannelHandle = evt.getValidHandle<std::vector<sim::SimChannel>>(fSimChannelLabel);
214  std::cout << " !!!!! Size of simChannelHandle: " << simChannelHandle->size() << std::endl;
215 
216  if (simChannelHandle->size() > 0) {
217 
218  // ... Loop over simChannels to find all signal channels and erase them
219  // from the rawdigitMap
220  for (auto const& channel : (*simChannelHandle)) {
221 
222  // .. get simChannel channel number
223  const raw::ChannelID_t ch1 = channel.Channel();
224  if (ch1 == raw::InvalidChannelID) continue;
225  if (geo::PlaneGeo::ViewName(fgeom->View(ch1)) != fPlaneToDump[0]) continue;
226 
227  bool hasEnergyDeposit = false;
228 
229  // ... Loop over all ticks with ionization energy deposited
230  auto const& timeSlices = channel.TDCIDEMap();
231  for (auto const& [tpctime, energyDeposits] : timeSlices) {
232 
233  unsigned int tdctick = static_cast<unsigned int>(clockData.TPCTDC2Tick(double(tpctime)));
234  if (tdctick < 0 || tdctick > (dataSize - 1)) continue;
235 
236  // ... Loop over all energy depositions in this tick
237  for (auto const& energyDeposit : energyDeposits) {
238  if ((energyDeposit.energy > 0) || (energyDeposit.numElectrons > 0)) {
239  hasEnergyDeposit = true;
240  break;
241  }
242  }
243  if (hasEnergyDeposit) break;
244  }
245  if (hasEnergyDeposit) rawdigitMap.erase(ch1);
246 
247  } // loop over SimChannels
248  }
249 
250  // .. Now construct noise channel vector from updated rawdigitMap
251  std::vector<raw::ChannelID_t> noisechannels;
252  for (std::map<raw::ChannelID_t, raw::RawDigit const*>::iterator iter = rawdigitMap.begin();
253  iter != rawdigitMap.end();
254  ++iter) {
255  noisechannels.push_back(iter->first);
256  }
257 
258  std::cout << " !!!!! size of noisechannels: " << noisechannels.size() << std::endl;
259  if (!noisechannels.size()) return;
260 
261  //save noise
262  int noisechancount = 0;
263 
264  // .. create a vector for shuffling the wire channel indices
265  auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count();
266  std::vector<size_t> randigitmap;
267  for (size_t i = 0; i < noisechannels.size(); ++i)
268  randigitmap.push_back(i);
269  std::shuffle(randigitmap.begin(), randigitmap.end(), std::mt19937(seed));
270 
271  std::string dummystr6 = "none ";
272  std::string dummystr7 = "none ";
273 
274  for (size_t rdIter = 0; rdIter < noisechannels.size(); ++rdIter) {
275 
276  if (noisechancount == fMaxNoiseChannelsPerEvent) break;
277 
278  size_t ranIdx = randigitmap[rdIter];
279  auto digitVec = rawdigitMap[noisechannels[ranIdx]];
280 
281  std::vector<short> rawadc(dataSize); // vector to hold uncompressed adc values later
282  std::vector<short> adcvec(dataSize); // vector to pedestal-subtracted adc values
283  raw::Uncompress(digitVec->ADCs(), rawadc, digitVec->GetPedestal(), digitVec->Compression());
284  for (size_t j = 0; j < rawadc.size(); ++j) {
285  adcvec[j] = rawadc[j] - digitVec->GetPedestal();
286  }
287  c2numpy_uint32(&npywriter, evt.id().event());
288  c2numpy_uint32(&npywriter, digitVec->Channel());
289  c2numpy_string(&npywriter, geo::PlaneGeo::ViewName(fgeom->View(digitVec->Channel())).c_str());
290 
291  c2numpy_uint16(&npywriter, 0); //number of peaks
292  for (unsigned int i = 0; i < 5; ++i) {
295  c2numpy_string(&npywriter, dummystr6.c_str());
296  c2numpy_string(&npywriter, dummystr7.c_str());
301  }
302 
303  if (fUseFullWaveform) {
304  for (unsigned int itck = 0; itck < dataSize; ++itck) {
305  c2numpy_int16(&npywriter, adcvec[itck]);
306  }
307  }
308  else {
309  int start_tick = int((dataSize - fShortWaveformSize) * fRandFlat.fire(0, 1));
310  for (unsigned int itck = start_tick; itck < (start_tick + fShortWaveformSize); ++itck) {
311  c2numpy_int16(&npywriter, adcvec[itck]);
312  }
313  }
314 
315  ++noisechancount;
316  }
317  std::cout << "Total number of noise channels " << noisechancount << std::endl;
318 }
intermediate_table::iterator iterator
int c2numpy_int32(c2numpy_writer *writer, int32_t data)
Definition: c2numpy.h:298
static std::string ViewName(geo::View_t view)
Returns the name of the specified view.
Definition: PlaneGeo.cxx:682
unsigned int event
Definition: DataStructs.h:627
ULong64_t Samples() const
Number of samples in the uncompressed ADC data.
Definition: RawDigit.h:217
Collection of charge vs time digitized from a single readout channel.
Definition: RawDigit.h:68
unsigned int run
Definition: DataStructs.h:628
constexpr ChannelID_t InvalidChannelID
ID of an invalid channel.
Definition: RawTypes.h:31
long seed
Definition: chem4.cc:67
int c2numpy_uint32(c2numpy_writer *writer, uint32_t data)
Definition: c2numpy.h:334
int c2numpy_float32(c2numpy_writer *writer, float data)
Definition: c2numpy.h:369
art::ServiceHandle< geo::Geometry > fgeom
View_t View(PlaneID const &pid) const
Returns the view (wire orientation) on the channels of specified TPC plane.
int c2numpy_uint16(c2numpy_writer *writer, uint16_t data)
Definition: c2numpy.h:325
std::string fSimChannelLabel
module that made simchannels
int c2numpy_int16(c2numpy_writer *writer, int16_t data)
Definition: c2numpy.h:289
unsigned int subRun
Definition: DataStructs.h:629
TCEvent evt
Definition: DataStructs.cxx:8
unsigned int ChannelID_t
Type representing the ID of a readout channel.
Definition: RawTypes.h:28
std::string fDigitModuleLabel
module that made digits
void Uncompress(const std::vector< short > &adc, std::vector< short > &uncompressed, raw::Compress_t compress)
Uncompresses a raw data buffer.
Definition: raw.cxx:744
int c2numpy_string(c2numpy_writer *writer, const char *data)
Definition: c2numpy.h:411
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void nnet::NoiseWaveformDump::beginJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 118 of file NoiseWaveformDump_module.cc.

References c2numpy_addcolumn(), C2NUMPY_FLOAT32, c2numpy_init(), C2NUMPY_INT16, C2NUMPY_INT32, C2NUMPY_STRING, C2NUMPY_UINT16, C2NUMPY_UINT32, fDumpWaveformsFileName, fShortWaveformSize, fUseFullWaveform, and npywriter.

119 {
120  auto const detProp = art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataForJob();
121 
127 
128  for (unsigned int i = 0; i < 5; i++) {
129  std::ostringstream name;
130 
131  name.str("");
132  name << "tid" << i;
133  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_INT32);
134 
135  name.str("");
136  name << "pdg" << i;
137  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_INT32);
138 
139  name.str("");
140  name << "gen" << i;
141  c2numpy_addcolumn(&npywriter, name.str().c_str(), (c2numpy_type)((int)C2NUMPY_STRING + 6));
142 
143  name.str("");
144  name << "pid" << i;
145  c2numpy_addcolumn(&npywriter, name.str().c_str(), (c2numpy_type)((int)C2NUMPY_STRING + 7));
146 
147  name.str("");
148  name << "edp" << i;
149  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_FLOAT32);
150 
151  name.str("");
152  name << "nel" << i;
153  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_UINT32);
154 
155  name.str("");
156  name << "sti" << i;
157  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_UINT16);
158 
159  name.str("");
160  name << "stf" << i;
161  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_UINT16);
162  }
163 
164  for (unsigned int i = 0;
165  i < (fUseFullWaveform ? detProp.ReadOutWindowSize() : fShortWaveformSize);
166  i++) {
167  std::ostringstream name;
168  name << "tck_" << i;
169  c2numpy_addcolumn(&npywriter, name.str().c_str(), C2NUMPY_INT16);
170  }
171 }
int c2numpy_init(c2numpy_writer *writer, const std::string outputFilePrefix, int32_t numRowsPerFile)
Definition: c2numpy.h:140
c2numpy_type
Definition: c2numpy.h:29
int c2numpy_addcolumn(c2numpy_writer *writer, const std::string name, c2numpy_type type)
Definition: c2numpy.h:157
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 nnet::NoiseWaveformDump::endJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 174 of file NoiseWaveformDump_module.cc.

References c2numpy_close(), and npywriter.

175 {
177 }
int c2numpy_close(c2numpy_writer *writer)
Definition: c2numpy.h:425
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
NoiseWaveformDump& nnet::NoiseWaveformDump::operator= ( NoiseWaveformDump const &  )
delete
NoiseWaveformDump& nnet::NoiseWaveformDump::operator= ( NoiseWaveformDump &&  )
delete
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

std::string nnet::NoiseWaveformDump::fDigitModuleLabel
private

module that made digits

Definition at line 72 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), and NoiseWaveformDump().

std::string nnet::NoiseWaveformDump::fDumpWaveformsFileName
private

Definition at line 68 of file NoiseWaveformDump_module.cc.

Referenced by beginJob(), and NoiseWaveformDump().

art::ServiceHandle<geo::Geometry> nnet::NoiseWaveformDump::fgeom
private

Definition at line 78 of file NoiseWaveformDump_module.cc.

Referenced by analyze().

int nnet::NoiseWaveformDump::fMaxNoiseChannelsPerEvent
private

Definition at line 77 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), and NoiseWaveformDump().

std::string nnet::NoiseWaveformDump::fPlaneToDump
private

Definition at line 76 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), and NoiseWaveformDump().

CLHEP::RandFlat nnet::NoiseWaveformDump::fRandFlat
private

Definition at line 80 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), and NoiseWaveformDump().

unsigned int nnet::NoiseWaveformDump::fShortWaveformSize
private

Definition at line 74 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), beginJob(), and NoiseWaveformDump().

std::string nnet::NoiseWaveformDump::fSimChannelLabel
private

module that made simchannels

Definition at line 71 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), and NoiseWaveformDump().

std::string nnet::NoiseWaveformDump::fSimulationProducerLabel
private

producer that tracked simulated part. through detector

Definition at line 70 of file NoiseWaveformDump_module.cc.

Referenced by NoiseWaveformDump().

bool nnet::NoiseWaveformDump::fUseFullWaveform
private

Definition at line 73 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), beginJob(), and NoiseWaveformDump().

c2numpy_writer nnet::NoiseWaveformDump::npywriter
private

Definition at line 82 of file NoiseWaveformDump_module.cc.

Referenced by analyze(), beginJob(), and endJob().


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