Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
beamlinereco::EventWaveformDump Class Reference
Inheritance diagram for beamlinereco::EventWaveformDump:
art::EDAnalyzer art::EventObserverBase art::Consumer art::EngineCreator

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 EventWaveformDump (const fhicl::ParameterSet &pset)
 
void reconfigure (const fhicl::ParameterSet &pset)
 
void beginJob ()
 
void analyze (const art::Event &e)
 
std::string workerType () const
 
bool modifiesEvent () const
 
void registerProducts (MasterProductRegistry &, ProductDescriptions &, ModuleDescription const &)
 
std::string const & processName () const
 
bool wantAllEvents () const
 
bool wantEvent (Event const &e)
 
fhicl::ParameterSetID selectorConfig () const
 
art::Handle< art::TriggerResultsgetTriggerResults (Event const &e) const
 
template<typename T , BranchType = InEvent>
ProductToken< Tconsumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< Tconsumes (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TconsumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< TmayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< TmayConsume (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TmayConsumeView (InputTag const &it)
 
base_engine_tcreateEngine (seed_t seed)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label)
 
seed_t get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1)
 

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

CurrentProcessingContext const * currentContext () const
 
detail::CachedProducts & cachedProducts ()
 
void validateConsumedProduct (BranchType const bt, ProductInfo const &pi)
 
void prepareForJob (fhicl::ParameterSet const &pset)
 
void showMissingConsumes () const
 

Private Member Functions

unsigned int onlineChannel (ChannelID id)
 

Private Attributes

art::InputTag fRawToFDigitLabel
 
art::InputTag fRawCherenkovDigitLabel
 
art::InputTag fRecoToFDigitLabel
 
art::InputTag fRecoCherenkovDigitLabel
 
art::InputTag fRecoToFLabel
 
std::vector< std::pair< unsigned int, std::string > > fDumpChannels
 
bool fSaveWaveforms
 
bool fDrawMarkers
 
bool fDrawToFs
 
std::map< unsigned int, std::stringdumpChannelMap
 
std::map< unsigned int, TH2D * > hPersistence
 
art::ServiceHandle< art::TFileServicetfs
 
art::ServiceHandle< beamlineutil::BeamlineChannelMapfChannelMap
 
art::ServiceHandle< beamlineutil::BeamlineCalibrationfCalibration
 

Detailed Description

Definition at line 50 of file EventWaveformDump_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

beamlinereco::EventWaveformDump::EventWaveformDump ( const fhicl::ParameterSet pset)

Definition at line 101 of file EventWaveformDump_module.cc.

References reconfigure().

101  : EDAnalyzer(pset) {
102  this->reconfigure(pset);
103 }
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
void reconfigure(const fhicl::ParameterSet &pset)

Member Function Documentation

void beamlinereco::EventWaveformDump::analyze ( const art::Event e)

Definition at line 133 of file EventWaveformDump_module.cc.

References make_mec_shifts_plots::canvas, d, dir, dumpChannelMap, art::Event::event(), fCalibration, fDrawMarkers, fDrawToFs, art::fill_ptr_vector(), fRawCherenkovDigitLabel, fRawToFDigitLabel, fRecoCherenkovDigitLabel, fRecoToFDigitLabel, fRecoToFLabel, MECModelEnuComparisons::g, art::DataViewImpl::getByLabel(), hPersistence, MECModelEnuComparisons::i, submit_hadd::l, MECModelEnuComparisons::leg, art::TFileDirectory::make(), styles::markers, std::max(), std::min(), art::TFileDirectory::mkdir(), onlineChannel(), art::Event::run(), shutoffs::starttime, art::Event::subRun(), confusionMatrixTree::t, tfs, beamlineutil::BeamlineCalibration::TimeCorrection(), and w.

133  {
134  //std::cout << "+++++++++++++++Run " << e.run() << " Subrun " << e.subRun() << " Event " << e.event() << std::endl;
135 
136  std::vector<art::Ptr<rawdata::RawBeamlineDigit>> digits;
137  std::vector<art::Ptr<rawdata::RawBeamlineDigit>> tofDigits;
138  std::vector<art::Ptr<rawdata::RawBeamlineDigit>> cherenkovDigits;
139 
140  std::vector<art::Ptr<brb::BeamlineDigit>> recoDigits;
141  std::vector<art::Ptr<brb::BeamlineDigit>> recoToFDigits;
142  std::vector<art::Ptr<brb::BeamlineDigit>> recoCherenkovDigits;
143 
144  // Get raw tof digits
146  if (e.getByLabel(fRawToFDigitLabel, tofDigitHandle))
147  art::fill_ptr_vector(tofDigits, tofDigitHandle);
148  // Get raw cherenkov digits
150  if (e.getByLabel(fRawCherenkovDigitLabel, cherenkovDigitHandle))
151  art::fill_ptr_vector(cherenkovDigits, cherenkovDigitHandle);
152  // Combine raw vectors
153  digits.reserve(tofDigits.size() + cherenkovDigits.size());
154  digits.insert(digits.end(), tofDigits.begin(), tofDigits.end());
155  digits.insert(digits.end(), cherenkovDigits.begin(), cherenkovDigits.end());
156 
157  // Get reco tof digits
159  if (e.getByLabel(fRecoToFDigitLabel, recoToFDigitHandle))
160  art::fill_ptr_vector(recoToFDigits, recoToFDigitHandle);
161  // Get reco cherenkov digits
162  art::Handle<std::vector<brb::BeamlineDigit>> recoCherenkovDigitHandle;
163  if (e.getByLabel(fRecoCherenkovDigitLabel, recoCherenkovDigitHandle))
164  art::fill_ptr_vector(recoCherenkovDigits, recoCherenkovDigitHandle);
165  // Combine reco vectors
166  recoDigits.reserve(recoToFDigits.size() + recoCherenkovDigits.size());
167  recoDigits.insert(recoDigits.end(), recoToFDigits.begin(), recoToFDigits.end());
168  recoDigits.insert(recoDigits.end(), recoCherenkovDigits.begin(), recoCherenkovDigits.end());
169 
170  // Get reco tofs
172  std::vector<art::Ptr<brb::ToF>> tofs;
173  if (e.getByLabel(fRecoToFLabel, tofHandle))
174  art::fill_ptr_vector(tofs, tofHandle);
175 
176  // If we have no digits, exit early
177  if (digits.size() < 1) return;
178 
179  bool haveChannels = false;
180  for (auto d : digits) {
181  // if channel is in the dump list
182  if (dumpChannelMap.count(onlineChannel(d->ChannelID()))) {
183  haveChannels = true;
184  break;
185  }
186  }
187  if (!haveChannels) return;
188 
189  for (auto digit : digits) {
190  unsigned int signalchannel = onlineChannel(digit->ChannelID());
191  //std::cout << "Run " << e.run() << " Subrun " << e.subRun() << " Event " << e.event() << " OnlineDigitChannel " << signalchannel << " " << digit->ChannelID() << std::endl;
192  if (dumpChannelMap.count(signalchannel) == 0) continue;
193  //std::cout << "Channel: " << signalchannel << " about to fill persistence" << std::endl;
194  for (unsigned int i=0; i<digit->NADC(); i++) {
195  hPersistence[signalchannel]->Fill(i, digit->ADC(i));
196  }
197  //std::cout << "Filled" << std::endl;
198  }
199 
200  art::TFileDirectory dir = tfs->mkdir(Form("Run%dSubRun%dEvent%d",e.run(),e.subRun(),e.event()));
201  art::TFileDirectory hdir = dir.mkdir("Histograms");
202 
203  TLegend *leg = new TLegend(0.70,0.20,0.88,0.60);
204 
205  std::vector<TH1D*> waveforms;
206  std::vector<TGraph*> markers;
207 
208  //std::cout << "------------------------------"
209  //<< "Run " << e.run() << " Subrun " << e.subRun() << " Event " << e.event() << std::endl;
210  //for (auto it : dumpChannelMap) { std::cout << "\t\t[" << it.first << ":" << it.second << "]" << std::endl; }
211  // For each digit
212  for (auto digit : digits) {
213  unsigned int signalchannel = onlineChannel(digit->ChannelID());
214  //std::cout << signalchannel << " " << dumpChannelMap.count(signalchannel) << std::endl;
215  if (dumpChannelMap.count(signalchannel) == 0) continue;
216 
217  // Create histogram for waveform
218  TH1D *waveform = hdir.make<TH1D>(Form("hr%ds%de%d_ch%d",e.run(),e.subRun(),e.event(),signalchannel), ";Time [ticks];ADC;", digit->NADC(), 0, digit->NADC());
219  //std::cout << "channel: " << signalchannel << "\t\t" << digit->ChannelID() << std::endl;
220  //std::cout << "\t\t\tDigit has " << digit->NADC() << std::endl;
221  //std::cout << signalchannel << " [";
222  // Fill
223  for (unsigned int i=0; i<digit->NADC(); i++) {
224  //std::cout << digit->ADC(i) << ", ";
225  waveform->Fill(i, digit->ADC(i));
226  }
227  //std::cout << "]" << std::endl;
228 
229  //std::cout << "Filled waveform" << std::endl;
230 
231  // Draw
232  waveform->GetYaxis()->SetRangeUser(0,5000);
233  waveform->SetLineWidth(2);
234  leg->AddEntry(waveform, Form("Channel %d %s", signalchannel, dumpChannelMap[signalchannel].c_str()), "l");
235  waveforms.push_back(waveform);
236 
237  if (fDrawMarkers) {
238  std::vector<art::Ptr<brb::BeamlineDigit>> rds;
239  for (auto rd : recoDigits) { if (onlineChannel(rd->ChannelID()) == signalchannel) rds.push_back(rd); }
240  if (rds.size() > 0) {
241  TGraph *g = new TGraph(rds.size() * 2);
242  for (size_t i = 0; i<rds.size(); i++) {
243  double starttime = rds[i]->StartTimeInNanoSec() - fCalibration->TimeCorrection(rds[i]->ChannelID());
244  double peaktime = rds[i]->PeakTimeInNanoSec() - fCalibration->TimeCorrection(rds[i]->ChannelID());
245  //double starttime = rds[i]->StartTimeInNanoSec();
246  //double peaktime = rds[i]->PeakTimeInNanoSec();
247  unsigned int startidx = std::min((unsigned int)1023, (unsigned int)std::max(0.0, (starttime/0.4)));
248  unsigned int peakidx = std::min((unsigned int)1023, (unsigned int)std::max(0.0, (peaktime/0.4)));
249  //unsigned int startidx = (unsigned int)std::max(0.0, (starttime/0.4));
250  //unsigned int peakidx = (unsigned int)std::max(0.0, (peaktime/0.4));
251  //std::cout << "st=" << starttime << " si=" << startidx << " pt=" << peaktime << " pi=" << peakidx << std::endl;
252  double startADC = digit->ADC(startidx);
253  double peakADC = digit->ADC(peakidx);
254  g->SetPoint(2*i+0, starttime/0.4, startADC);
255  g->SetPoint(2*i+1, peaktime/0.4, peakADC);
256  }
257  g->SetMarkerColor(1);
258  g->SetMarkerStyle(3);
259  g->SetMarkerSize(2);
260  markers.push_back(g);
261  }
262  }
263  }
264 
265  // We manually write canvases to the TFileSystem file, which is bad form
266  TCanvas *canvas = dir.make<TCanvas>(Form("cRun%dSubRun%dEvent%d",e.run(),e.subRun(),e.event()), "", 800, 600);
267  canvas->cd();
268 
269  THStack *stack = new THStack(Form("hsRun%dSubRun%dEvent%d",e.run(),e.subRun(),e.event()), Form("hsRun%dSubRun%dEvent%d",e.run(),e.subRun(),e.event()));
270  for (auto w : waveforms) stack->Add(w, "hist");
271  stack->Draw("nostack hist PLC");
272 
273  if (fDrawMarkers) {
274  for (auto g : markers) g->Draw("same p");
275  }
276 
277  if (fDrawToFs) {
278  for (size_t i=0; i<tofs.size(); i++) {
279  auto tof = tofs[i];
280  TLine *l = new TLine(tof->Timestamps().first/0.4, 4900 - 200*i, tof->Timestamps().second/0.4, 4900 - 200*i);
281  l->SetLineColor(1);
282  l->SetLineWidth(2);
283  l->SetLineStyle(2);
284  l->Draw("same");
285  double tx = (tof->Timestamps().first + tof->Timestamps().second)/2.0/0.4;
286  double ty = 4900 - 200*i + 50;
287  TText *t = new TText(tx, ty, Form("tof = %f ns", tof->Time()));
288  t->SetTextAlign(21);
289  t->SetTextSize(0.02);
290  t->Draw();
291  }
292  }
293 
294  leg->Draw("same");
295  canvas->Write();
296 
297  delete leg;
298 }
T max(const caf::Proxy< T > &a, T b)
SubRunNumber_t subRun() const
Definition: Event.h:72
art::ServiceHandle< art::TFileService > tfs
unsigned int onlineChannel(ChannelID id)
TFileDirectory mkdir(std::string const &dir, std::string const &descr="")
list markers
Definition: styles.py:7
double TimeCorrection(ChannelID channel) const
Relative timing calibrations between individual digitizer channels.
std::map< unsigned int, TH2D * > hPersistence
Float_t d
Definition: plot.C:236
EventNumber_t event() const
Definition: Event.h:67
std::map< unsigned int, std::string > dumpChannelMap
art::ServiceHandle< beamlineutil::BeamlineCalibration > fCalibration
T * make(ARGS...args) const
TDirectory * dir
Definition: macro.C:5
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
T min(const caf::Proxy< T > &a, T b)
void fill_ptr_vector(std::vector< Ptr< T >> &ptrs, H const &h)
Definition: Ptr.h:464
RunNumber_t run() const
Definition: Event.h:77
Float_t w
Definition: plot.C:20
void beamlinereco::EventWaveformDump::beginJob ( )
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 122 of file EventWaveformDump_module.cc.

References dir, fDumpChannels, hPersistence, art::TFileDirectory::make(), art::TFileDirectory::mkdir(), and tfs.

122  {
123  art::TFileDirectory dir = tfs->mkdir("Persistence");
124  for (auto ch : fDumpChannels) {
125  hPersistence[ch.first] = dir.make<TH2D>(Form("hPersistence_channel%d",ch.first),
126  Form("Persistence (Channel %d);Time [ticks];ADC;",ch.first),
127  1024, 0, 1024,
128  4096, 0, 4096);
129  }
130 }
art::ServiceHandle< art::TFileService > tfs
TFileDirectory mkdir(std::string const &dir, std::string const &descr="")
std::map< unsigned int, TH2D * > hPersistence
T * make(ARGS...args) const
TDirectory * dir
Definition: macro.C:5
std::vector< std::pair< unsigned int, std::string > > fDumpChannels
detail::CachedProducts& art::EventObserverBase::cachedProducts ( )
inlineprotectedinherited

Definition at line 79 of file EventObserverBase.h.

References art::EventObserverBase::selectors_.

80  {
81  return selectors_;
82  }
detail::CachedProducts selectors_
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::consumes ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::consumes ( InputTag const &  it)
inherited

Definition at line 146 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

147 {
148  if (!moduleContext_)
149  return ProductToken<T>::invalid();
150 
151  consumables_[BT].emplace_back(ConsumableType::Product,
152  TypeID{typeid(T)},
153  it.label(),
154  it.instance(),
155  it.process());
156  return ProductToken<T>{it};
157 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::consumesMany ( )
inherited

Definition at line 161 of file Consumer.h.

References T.

162 {
163  if (!moduleContext_)
164  return;
165 
166  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
167 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::consumesView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::consumesView ( InputTag const &  it)
inherited

Definition at line 171 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

172 {
173  if (!moduleContext_)
174  return ViewToken<T>::invalid();
175 
176  consumables_[BT].emplace_back(ConsumableType::ViewElement,
177  TypeID{typeid(T)},
178  it.label(),
179  it.instance(),
180  it.process());
181  return ViewToken<T>{it};
182 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited
CurrentProcessingContext const* art::EDAnalyzer::currentContext ( ) const
protectedinherited
seed_t art::EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited
art::Handle<art::TriggerResults> art::EventObserverBase::getTriggerResults ( Event const &  e) const
inlineinherited

Definition at line 61 of file EventObserverBase.h.

References art::detail::CachedProducts::getOneTriggerResults(), and art::EventObserverBase::selectors_.

62  {
64  }
detail::CachedProducts selectors_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
Float_t e
Definition: plot.C:35
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::mayConsume ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::mayConsume ( InputTag const &  it)
inherited

Definition at line 189 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

190 {
191  if (!moduleContext_)
192  return ProductToken<T>::invalid();
193 
194  consumables_[BT].emplace_back(ConsumableType::Product,
195  TypeID{typeid(T)},
196  it.label(),
197  it.instance(),
198  it.process());
199  return ProductToken<T>{it};
200 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::mayConsumeMany ( )
inherited

Definition at line 204 of file Consumer.h.

References T.

205 {
206  if (!moduleContext_)
207  return;
208 
209  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
210 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::mayConsumeView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::mayConsumeView ( InputTag const &  it)
inherited

Definition at line 214 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

215 {
216  if (!moduleContext_)
217  return ViewToken<T>::invalid();
218 
219  consumables_[BT].emplace_back(ConsumableType::ViewElement,
220  TypeID{typeid(T)},
221  it.label(),
222  it.instance(),
223  it.process());
224  return ViewToken<T>{it};
225 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
bool art::EventObserverBase::modifiesEvent ( ) const
inlineinherited

Definition at line 25 of file EventObserverBase.h.

26  {
27  return false;
28  }
static cet::exempt_ptr<Consumer> art::Consumer::non_module_context ( )
staticinherited
unsigned int beamlinereco::EventWaveformDump::onlineChannel ( ChannelID  id)
private

Definition at line 88 of file EventWaveformDump_module.cc.

Referenced by analyze().

88  {
89  if (id.System == 2) {
90  switch (id.Detector) {
91  case 0: return 8 + id.Channel;
92  case 1: return 12 + id.Channel;
93  case 2: return 4 + id.Channel;
94  default: return 99999;
95  }
96  }
97  return 99990;
98 }
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
std::string const& art::EventObserverBase::processName ( ) const
inlineinherited
void beamlinereco::EventWaveformDump::reconfigure ( const fhicl::ParameterSet pset)

Definition at line 106 of file EventWaveformDump_module.cc.

References dumpChannelMap, fDrawMarkers, fDrawToFs, fDumpChannels, fRawCherenkovDigitLabel, fRawToFDigitLabel, fRecoCherenkovDigitLabel, fRecoToFDigitLabel, fRecoToFLabel, fSaveWaveforms, and fhicl::ParameterSet::get().

Referenced by EventWaveformDump().

106  {
107  fRawToFDigitLabel = pset.get<art::InputTag>("RawToFDigitLabel");
108  fRawCherenkovDigitLabel = pset.get<art::InputTag>("RawCherenkovDigitLabel");
109  fRecoToFDigitLabel = pset.get<art::InputTag>("RecoToFDigitLabel");
110  fRecoCherenkovDigitLabel = pset.get<art::InputTag>("RecoCherenkovDigitLabel");
111  fRecoToFLabel = pset.get<art::InputTag>("RecoToFLabel");
112  fDumpChannels = pset.get<std::vector<std::pair<unsigned int, std::string>>>("DumpChannels");
113  fSaveWaveforms = pset.get<bool>("SaveWaveforms");
114  fDrawMarkers = pset.get<bool>("DrawMarkers");
115  fDrawToFs = pset.get<bool>("DrawToFs");
116 
117  dumpChannelMap.clear();
118  for (auto ch : fDumpChannels) dumpChannelMap[ch.first] = ch.second;
119 }
T get(std::string const &key) const
Definition: ParameterSet.h:231
std::map< unsigned int, std::string > dumpChannelMap
std::vector< std::pair< unsigned int, std::string > > fDumpChannels
void art::EventObserverBase::registerProducts ( MasterProductRegistry ,
ProductDescriptions ,
ModuleDescription const &   
)
inlineinherited

Definition at line 33 of file EventObserverBase.h.

References string.

36  {}
fhicl::ParameterSetID art::EventObserverBase::selectorConfig ( ) const
inlineinherited

Definition at line 56 of file EventObserverBase.h.

References art::EventObserverBase::selector_config_id_.

57  {
58  return selector_config_id_;
59  }
fhicl::ParameterSetID selector_config_id_
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

Referenced by art::RootOutput::endJob().

void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited
bool art::EventObserverBase::wantAllEvents ( ) const
inlineinherited

Definition at line 46 of file EventObserverBase.h.

References art::EventObserverBase::wantAllEvents_.

Referenced by art::RootOutput::RootOutput().

47  {
48  return wantAllEvents_;
49  }
bool art::EventObserverBase::wantEvent ( Event const &  e)
inlineinherited

Definition at line 51 of file EventObserverBase.h.

References art::EventObserverBase::selectors_, and art::detail::CachedProducts::wantEvent().

52  {
53  return selectors_.wantEvent(e);
54  }
detail::CachedProducts selectors_
Float_t e
Definition: plot.C:35
bool wantEvent(Event const &)
std::string art::EDAnalyzer::workerType ( ) const
inlineinherited

Definition at line 109 of file EDAnalyzer.h.

References art::EDAnalyzer::currentContext().

110  {
111  return "WorkerT<EDAnalyzer>";
112  }

Member Data Documentation

std::map<unsigned int, std::string> beamlinereco::EventWaveformDump::dumpChannelMap
private

Definition at line 71 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

art::ServiceHandle<beamlineutil::BeamlineCalibration> beamlinereco::EventWaveformDump::fCalibration
private

Definition at line 79 of file EventWaveformDump_module.cc.

Referenced by analyze().

art::ServiceHandle<beamlineutil::BeamlineChannelMap> beamlinereco::EventWaveformDump::fChannelMap
private

Definition at line 78 of file EventWaveformDump_module.cc.

bool beamlinereco::EventWaveformDump::fDrawMarkers
private

Definition at line 68 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

bool beamlinereco::EventWaveformDump::fDrawToFs
private

Definition at line 69 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

std::vector<std::pair<unsigned int, std::string> > beamlinereco::EventWaveformDump::fDumpChannels
private

Definition at line 66 of file EventWaveformDump_module.cc.

Referenced by beginJob(), and reconfigure().

art::InputTag beamlinereco::EventWaveformDump::fRawCherenkovDigitLabel
private

Definition at line 62 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

art::InputTag beamlinereco::EventWaveformDump::fRawToFDigitLabel
private

Definition at line 61 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

art::InputTag beamlinereco::EventWaveformDump::fRecoCherenkovDigitLabel
private

Definition at line 64 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

art::InputTag beamlinereco::EventWaveformDump::fRecoToFDigitLabel
private

Definition at line 63 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

art::InputTag beamlinereco::EventWaveformDump::fRecoToFLabel
private

Definition at line 65 of file EventWaveformDump_module.cc.

Referenced by analyze(), and reconfigure().

bool beamlinereco::EventWaveformDump::fSaveWaveforms
private

Definition at line 67 of file EventWaveformDump_module.cc.

Referenced by reconfigure().

std::map<unsigned int, TH2D*> beamlinereco::EventWaveformDump::hPersistence
private

Definition at line 74 of file EventWaveformDump_module.cc.

Referenced by analyze(), and beginJob().

art::ServiceHandle<art::TFileService> beamlinereco::EventWaveformDump::tfs
private

Definition at line 77 of file EventWaveformDump_module.cc.

Referenced by analyze(), and beginJob().


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