LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
opdet::OpFlashAna Class Reference
Inheritance diagram for opdet::OpFlashAna:
art::EDAnalyzer art::EventObserverBase art::Consumer art::EngineCreator

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 OpFlashAna (const fhicl::ParameterSet &)
 
virtual ~OpFlashAna ()
 
void beginJob ()
 
void analyze (const art::Event &)
 
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< T > consumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > consumes (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< T > consumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > mayConsume (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< T > mayConsumeView (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 Attributes

std::string fOpFlashModuleLabel
 
std::string fOpHitModuleLabel
 
float fSampleFreq
 
float fTimeBegin
 
float fTimeEnd
 
float fYMin
 
float fYMax
 
float fZMin
 
float fZMax
 
int PosHistYRes
 
int PosHistZRes
 
bool fMakeFlashTimeHist
 
bool fMakeFlashPosHist
 
bool fMakePerFlashHists
 
bool fMakePerEventFlashTree
 
bool fMakePerFlashTree
 
bool fMakePerOpHitTree
 
bool fMakeFlashBreakdownTree
 
bool fMakeFlashHitMatchTree
 
TTree * fPerEventFlashTree
 
TTree * fPerFlashTree
 
TTree * fPerOpHitTree
 
TTree * fFlashBreakdownTree
 
TTree * fFlashHitMatchTree
 
Int_t fEventID
 
Int_t fFlashID
 
Int_t fHitID
 
Float_t fFlashTime
 
Float_t fAbsTime
 
bool fInBeamFrame
 
int fOnBeamTime
 
Float_t fTotalPE
 
Int_t fFlashFrame
 
Float_t fNPe
 
Float_t fYCenter
 
Float_t fYWidth
 
Float_t fZCenter
 
Float_t fZWidth
 
Int_t fOpChannel
 
Float_t fPeakTimeAbs
 
Float_t fPeakTime
 
Int_t fFrame
 
Float_t fWidth
 
Float_t fArea
 
Float_t fAmplitude
 
Float_t fPE
 
Float_t fFastToTotal
 
int fNFlashes
 
std::vector< int > fFlashIDVector
 
std::vector< float > fYCenterVector
 
std::vector< float > fZCenterVector
 
std::vector< float > fYWidthVector
 
std::vector< float > fZWidthVector
 
std::vector< float > fFlashTimeVector
 
std::vector< float > fAbsTimeVector
 
std::vector< int > fFlashFrameVector
 
std::vector< bool > fInBeamFrameVector
 
std::vector< int > fOnBeamTimeVector
 
std::vector< float > fTotalPEVector
 
int fNChannels
 
std::vector< float > fPEsPerFlashPerChannelVector
 

Detailed Description

Definition at line 49 of file OpFlashAna_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

opdet::OpFlashAna::OpFlashAna ( const fhicl::ParameterSet )

Definition at line 145 of file OpFlashAna_module.cc.

References fAbsTime, fAbsTimeVector, fAmplitude, fArea, fEventID, fFastToTotal, fFlashBreakdownTree, fFlashFrame, fFlashFrameVector, fFlashHitMatchTree, fFlashID, fFlashIDVector, fFlashTime, fFlashTimeVector, fFrame, fHitID, fInBeamFrame, fInBeamFrameVector, fMakeFlashBreakdownTree, fMakeFlashHitMatchTree, fMakeFlashPosHist, fMakeFlashTimeHist, fMakePerEventFlashTree, fMakePerFlashHists, fMakePerFlashTree, fMakePerOpHitTree, fNChannels, fNFlashes, fNPe, fOnBeamTime, fOnBeamTimeVector, fOpChannel, fOpFlashModuleLabel, fOpHitModuleLabel, fPE, fPeakTime, fPeakTimeAbs, fPerEventFlashTree, fPerFlashTree, fPerOpHitTree, fPEsPerFlashPerChannelVector, fSampleFreq, fTimeBegin, fTimeEnd, fTotalPE, fTotalPEVector, fWidth, fYCenter, fYCenterVector, fYMax, fYMin, fYWidth, fYWidthVector, fZCenter, fZCenterVector, fZMax, fZMin, fZWidth, fZWidthVector, fhicl::ParameterSet::get(), art::TFileDirectory::make(), PosHistYRes, and PosHistZRes.

146  : EDAnalyzer(pset)
147  {
148 
149  // Indicate that the Input Module comes from .fcl
150  fOpFlashModuleLabel = pset.get<std::string>("OpFlashModuleLabel");
151  fOpHitModuleLabel = pset.get<std::string>("OpHitModuleLabel");
152 
153 // art::ServiceHandle<OpDigiProperties> odp;
154 // fTimeBegin = odp->TimeBegin();
155 // fTimeEnd = odp->TimeEnd();
156 // fSampleFreq = odp->SampleFreq();
157 
158  auto const* timeService = lar::providerFrom<detinfo::DetectorClocksService>();
159  fTimeBegin = timeService->OpticalClock().Time();
160  fTimeEnd = timeService->OpticalClock().FramePeriod();
161  fSampleFreq = timeService->OpticalClock().Frequency();
162 
163  fYMin = pset.get<float>("YMin");
164  fYMax = pset.get<float>("YMax");
165  fZMin = pset.get<float>("ZMin");
166  fZMax = pset.get<float>("ZMax");
167 
168  fMakeFlashTimeHist = pset.get<bool>("MakeFlashTimeHist");
169  fMakeFlashPosHist = pset.get<bool>("MakeFlashPosHist");
170  fMakePerFlashHists = pset.get<bool>("MakePerFlashHists");
171 
172  fMakePerEventFlashTree = pset.get<bool>("MakePerEventFlashTree");
173  fMakePerFlashTree = pset.get<bool>("MakePerFlashTree");
174  fMakePerOpHitTree = pset.get<bool>("MakePerOpHitTree");
175  fMakeFlashBreakdownTree = pset.get<bool>("MakeFlashBreakdownTree");
176  fMakeFlashHitMatchTree = pset.get<bool>("MakeFlashHitMatchTree");
177 
178 
179  PosHistYRes = 100;
180  PosHistZRes = 100;
181 
183 
184  if(fMakeFlashBreakdownTree)
185  {
186  fFlashBreakdownTree = tfs->make<TTree>("FlashBreakdownTree","FlashBreakdownTree");
187  fFlashBreakdownTree->Branch("EventID", &fEventID, "EventID/I");
188  fFlashBreakdownTree->Branch("FlashID", &fFlashID, "FlashID/I");
189  fFlashBreakdownTree->Branch("OpChannel", &fOpChannel, "OpChannel/I");
190  fFlashBreakdownTree->Branch("FlashTime", &fFlashTime, "FlashTime/F");
191  fFlashBreakdownTree->Branch("NPe", &fNPe, "NPe/F");
192  fFlashBreakdownTree->Branch("AbsTime", &fAbsTime, "AbsTime/F");
193  fFlashBreakdownTree->Branch("FlashFrame", &fFlashFrame, "FlashFrame/I");
194  fFlashBreakdownTree->Branch("InBeamFrame",&fInBeamFrame, "InBeamFrame/B");
195  fFlashBreakdownTree->Branch("OnBeamTime", &fOnBeamTime, "OnBeamTime/I");
196  fFlashBreakdownTree->Branch("YCenter", &fYCenter, "YCenter/F");
197  fFlashBreakdownTree->Branch("ZCenter", &fZCenter, "ZCenter/F");
198  fFlashBreakdownTree->Branch("YWidth", &fYWidth, "YWidth/F");
199  fFlashBreakdownTree->Branch("ZWidth", &fZWidth, "ZWidth/F");
200  fFlashBreakdownTree->Branch("TotalPE", &fTotalPE, "TotalPE/F");
201  }
202 
203  if(fMakePerOpHitTree)
204  {
205  fPerOpHitTree = tfs->make<TTree>("PerOpHitTree","PerOpHitTree");
206  fPerOpHitTree->Branch("EventID", &fEventID, "EventID/I");
207  fPerOpHitTree->Branch("HitID", &fHitID, "HitID/I");
208  fPerOpHitTree->Branch("OpChannel", &fOpChannel, "OpChannel/I");
209  fPerOpHitTree->Branch("PeakTimeAbs", &fPeakTimeAbs, "PeakTimeAbs/F");
210  fPerOpHitTree->Branch("PeakTime", &fPeakTime, "PeakTime/F");
211  fPerOpHitTree->Branch("Frame", &fFrame, "Frame/I");
212  fPerOpHitTree->Branch("Width", &fWidth, "Width/F");
213  fPerOpHitTree->Branch("Area", &fArea, "Area/F");
214  fPerOpHitTree->Branch("Amplitude", &fAmplitude, "Amplitude/F");
215  fPerOpHitTree->Branch("PE", &fPE, "PE/F");
216  fPerOpHitTree->Branch("FastToTotal", &fFastToTotal, "FastToTotal/F");
217  }
218 
219  if(fMakePerFlashTree)
220  {
221  fPerFlashTree = tfs->make<TTree>("PerFlashTree","PerFlashTree");
222  fPerFlashTree->Branch("EventID", &fEventID, "EventID/I");
223  fPerFlashTree->Branch("FlashID", &fFlashID, "FlashID/I");
224  fPerFlashTree->Branch("YCenter", &fYCenter, "YCenter/F");
225  fPerFlashTree->Branch("ZCenter", &fZCenter, "ZCenter/F");
226  fPerFlashTree->Branch("YWidth", &fYWidth, "YWidth/F");
227  fPerFlashTree->Branch("ZWidth", &fZWidth, "ZWidth/F");
228  fPerFlashTree->Branch("FlashTime", &fFlashTime, "FlashTime/F");
229  fPerFlashTree->Branch("AbsTime", &fAbsTime, "AbsTime/F");
230  fPerFlashTree->Branch("FlashFrame", &fFlashFrame, "FlashFrame/I");
231  fPerFlashTree->Branch("InBeamFrame",&fInBeamFrame, "InBeamFrame/B");
232  fPerFlashTree->Branch("OnBeamTime", &fOnBeamTime, "OnBeamTime/I");
233  fPerFlashTree->Branch("TotalPE", &fTotalPE, "TotalPE/F");
234  }
235 
236  if(fMakePerEventFlashTree)
237  {
238  fPerEventFlashTree = tfs->make<TTree>("PerEventFlashTree","PerEventFlashTree");
239  fPerEventFlashTree->Branch("EventID", &fEventID, "EventID/I");
240  fPerEventFlashTree->Branch("NFlashes", &fNFlashes, "NFlashes/I");
241  fPerEventFlashTree->Branch("FlashIDVector", &fFlashIDVector);
242  fPerEventFlashTree->Branch("YCenterVector", &fYCenterVector);
243  fPerEventFlashTree->Branch("ZCenterVector", &fZCenterVector);
244  fPerEventFlashTree->Branch("YWidthVector", &fYWidthVector);
245  fPerEventFlashTree->Branch("ZWidthVector", &fZWidthVector);
246  fPerEventFlashTree->Branch("FlashTimeVector", &fFlashTimeVector);
247  fPerEventFlashTree->Branch("AbsTimeVector", &fAbsTimeVector);
248  fPerEventFlashTree->Branch("FlashFrameVector", &fFlashFrameVector);
249  fPerEventFlashTree->Branch("InBeamFrameVector", &fInBeamFrameVector);
250  fPerEventFlashTree->Branch("OnBeamTimeVector", &fOnBeamTimeVector);
251  fPerEventFlashTree->Branch("TotalPEVector", &fTotalPEVector);
252  fPerEventFlashTree->Branch("NChannels", &fNChannels, "NChannels/I");
253  // The only way I can think of to record a two-dimensional variable-size array in a TTree
254  // is by flattening it into a one-dimension variable-size array
255  fPerEventFlashTree->Branch("PEsPerFlashPerChannelVector", &fPEsPerFlashPerChannelVector);
256  }
257 
258  if(fMakeFlashHitMatchTree)
259  {
260  fFlashHitMatchTree = tfs->make<TTree>("FlashHitMatchTree","FlashHitMatchTree");
261  fFlashHitMatchTree->Branch("EventID", &fEventID, "EventID/I");
262  fFlashHitMatchTree->Branch("FlashID", &fFlashID, "FlashID/I");
263  fFlashHitMatchTree->Branch("HitID", &fHitID, "HitID/I");
264  fFlashHitMatchTree->Branch("OpChannel", &fOpChannel, "OpChannel/I");
265  fFlashHitMatchTree->Branch("HitPeakTimeAbs",&fPeakTimeAbs,"HitPeakTimeAbs/F");
266  fFlashHitMatchTree->Branch("HitPeakTime", &fPeakTime, "HitPeakTime/F");
267  fFlashHitMatchTree->Branch("HitPE", &fPE, "HitPE/F");
268  fFlashHitMatchTree->Branch("FlashPE", &fTotalPE, "FlashPE/F");
269  fFlashHitMatchTree->Branch("FlashTimeAbs", &fAbsTime, "FlashTimeAbs/F");
270  fFlashHitMatchTree->Branch("FlashTime", &fFlashTime, "FlashTime/F");
271  fFlashHitMatchTree->Branch("HitFrame", &fFrame, "HitFrame/I");
272  fFlashHitMatchTree->Branch("FlashFrame", &fFlashFrame, "FlashFrame/I");
273  }
274 
275  fFlashID = 0;
276  }
std::vector< int > fOnBeamTimeVector
std::vector< float > fTotalPEVector
std::vector< int > fFlashIDVector
std::string fOpHitModuleLabel
std::vector< float > fYCenterVector
std::vector< float > fYWidthVector
std::vector< float > fZCenterVector
std::vector< int > fFlashFrameVector
std::vector< float > fFlashTimeVector
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
T * make(ARGS...args) const
std::vector< float > fZWidthVector
std::vector< float > fAbsTimeVector
std::vector< float > fPEsPerFlashPerChannelVector
std::vector< bool > fInBeamFrameVector
std::string fOpFlashModuleLabel
opdet::OpFlashAna::~OpFlashAna ( )
virtual

Definition at line 280 of file OpFlashAna_module.cc.

281  {}

Member Function Documentation

void opdet::OpFlashAna::analyze ( const art::Event evt)

Definition at line 288 of file OpFlashAna_module.cc.

References recob::OpFlash::AbsTime(), DEFINE_ART_MODULE, art::EventID::event(), fAbsTime, fAbsTimeVector, fAmplitude, fArea, fEventID, fFastToTotal, fFlashBreakdownTree, fFlashFrame, fFlashFrameVector, fFlashHitMatchTree, fFlashID, fFlashIDVector, fFlashTime, fFlashTimeVector, fFrame, fHitID, Fill(), fInBeamFrame, fInBeamFrameVector, fMakeFlashBreakdownTree, fMakeFlashHitMatchTree, fMakeFlashPosHist, fMakeFlashTimeHist, fMakePerEventFlashTree, fMakePerFlashHists, fMakePerFlashTree, fMakePerOpHitTree, fNChannels, fNFlashes, fNPe, fOnBeamTime, fOnBeamTimeVector, fOpChannel, fOpFlashModuleLabel, fOpHitModuleLabel, fPE, fPeakTime, fPeakTimeAbs, fPerEventFlashTree, fPerFlashTree, fPerOpHitTree, fPEsPerFlashPerChannelVector, recob::OpFlash::Frame(), fSampleFreq, fTimeBegin, fTimeEnd, fTotalPE, fTotalPEVector, fWidth, fYCenter, fYCenterVector, fYMax, fYMin, fYWidth, fYWidthVector, fZCenter, fZCenterVector, fZMax, fZMin, fZWidth, fZWidthVector, art::DataViewImpl::getByLabel(), art::Event::id(), recob::OpFlash::InBeamFrame(), art::TFileDirectory::make(), geo::GeometryCore::NOpChannels(), recob::OpFlash::OnBeamTime(), recob::OpFlash::PE(), PosHistYRes, PosHistZRes, recob::OpFlash::Time(), recob::OpFlash::TotalPE(), y, recob::OpFlash::YCenter(), recob::OpFlash::YWidth(), z, recob::OpFlash::ZCenter(), and recob::OpFlash::ZWidth().

289  {
290 
291  // Get flashes from event
293  evt.getByLabel(fOpFlashModuleLabel, FlashHandle);
294 
295  // Get assosciations between flashes and hits
296  art::FindManyP< recob::OpHit > Assns(FlashHandle, evt, fOpFlashModuleLabel);
297 
298  // Create string for histogram name
299  char HistName[50];
300 
301  fFlashID = 0;
302 
303  // Access ART's TFileService, which will handle creating and writing
304  // histograms for us.
306 
307  std::vector<TH1D*> FlashHist;
308 
309  fEventID = evt.id().event();
310 
311  sprintf(HistName, "Event %d Flash Times", evt.id().event());
312  TH1D * FlashTimes = nullptr;
314  {
315  FlashTimes = tfs->make<TH1D>(HistName, ";t (ns);",
316  int((fTimeEnd - fTimeBegin) * fSampleFreq),
317  fTimeBegin * 1000.,
318  fTimeEnd * 1000.);
319  }
320 
321  TH2D * FlashPositions = nullptr;
323  {
324  sprintf(HistName, "Event %d All Flashes YZ", evt.id().event());
325 
326  FlashPositions = tfs->make<TH2D>(HistName, ";y ;z ",
329  }
330 
332  unsigned int NOpChannels = geom->NOpChannels();
333 
335  {
336  fNFlashes = FlashHandle->size();
337  fNChannels = NOpChannels;
338  }
339 
340  // For every OpFlash in the vector
341  for(unsigned int i = 0; i < FlashHandle->size(); ++i)
342  {
343 
344  // Get OpFlash
345  art::Ptr< recob::OpFlash > TheFlashPtr(FlashHandle, i);
346  recob::OpFlash TheFlash = *TheFlashPtr;
347 
348  fFlashTime = TheFlash.Time();
349  fFlashID = i; //++;
350 
351  TH2D * ThisFlashPosition = nullptr;
353  {
354  sprintf(HistName, "Event %d t = %f", evt.id().event(), fFlashTime);
355  FlashHist.push_back(tfs->make<TH1D>(HistName, ";OpChannel;PE",
356  NOpChannels, 0, NOpChannels));
357 
358  sprintf(HistName, "Event %d Flash %f YZ", evt.id().event(), fFlashTime);
359 
360  ThisFlashPosition = tfs->make<TH2D>(HistName, ";y ;z ",
363  }
364  fYCenter = TheFlash.YCenter();
365  fZCenter = TheFlash.ZCenter();
366  fYWidth = TheFlash.YWidth();
367  fZWidth = TheFlash.ZWidth();
368  fInBeamFrame = TheFlash.InBeamFrame();
369  fOnBeamTime = TheFlash.OnBeamTime();
370  fAbsTime = TheFlash.AbsTime();
371  fFlashFrame = TheFlash.Frame();
372  fTotalPE = TheFlash.TotalPE();
373 
375  {
376  fFlashIDVector .emplace_back(i);
377  fYCenterVector .emplace_back(TheFlash.YCenter());
378  fZCenterVector .emplace_back(TheFlash.ZCenter());
379  fYWidthVector .emplace_back(TheFlash.YWidth());
380  fZWidthVector .emplace_back(TheFlash.ZWidth());
381  fFlashTimeVector .emplace_back(TheFlash.Time());
382  fAbsTimeVector .emplace_back(TheFlash.AbsTime());
383  fFlashFrameVector .emplace_back(TheFlash.Frame());
384  fInBeamFrameVector.emplace_back(TheFlash.InBeamFrame());
385  fOnBeamTimeVector .emplace_back(TheFlash.OnBeamTime());
386  fTotalPEVector .emplace_back(TheFlash.TotalPE());
387  }
388 
389  for(unsigned int j=0; j!=NOpChannels; ++j)
390  {
391  if(fMakePerFlashHists) FlashHist.at(FlashHist.size()-1)->Fill(j, TheFlash.PE(j));
392  fNPe = TheFlash.PE(j);
393  fOpChannel = j;
394 
396  fPEsPerFlashPerChannelVector.emplace_back(TheFlash.PE(j));
397 
399  }
400 
401  for(int y=0; y!=PosHistYRes; ++y)
402  for(int z=0; z!=PosHistZRes; ++z)
403  {
404  float ThisY = fYMin + (fYMax-fYMin)*float(y)/PosHistYRes + 0.0001;
405  float ThisZ = fZMin + (fZMax-fZMin)*float(z)/PosHistZRes + 0.0001;
406  if (fMakePerFlashHists) ThisFlashPosition->Fill(ThisY, ThisZ, fTotalPE * exp(-pow((ThisY-fYCenter)/fYWidth,2)/2.-pow((ThisZ-fZCenter)/fZWidth,2)/2.));
407  if (fMakeFlashPosHist) FlashPositions->Fill(ThisY, ThisZ, fTotalPE * exp(-pow((ThisY-fYCenter)/fYWidth,2)-pow((ThisZ-fZCenter)/fZWidth,2)));
408  }
409 
410  if(fMakeFlashTimeHist) FlashTimes->Fill(fFlashTime, fTotalPE);
411 
412  if(fMakePerFlashTree) fPerFlashTree->Fill();
413 
415  {
416  // Extract the assosciations
417  fHitID = 0;
418  std::vector< art::Ptr<recob::OpHit> > matchedHits = Assns.at(i);
419  for (auto ophit : matchedHits)
420  {
421  fOpChannel = ophit->OpChannel();
422  fPeakTimeAbs = ophit->PeakTimeAbs();
423  fPeakTime = ophit->PeakTime();
424  fFrame = ophit->Frame();
425  fWidth = ophit->Width();
426  fArea = ophit->Area();
427  fAmplitude = ophit->Amplitude();
428  fPE = ophit->PE();
429  fFastToTotal = ophit->FastToTotal();
430  fFlashHitMatchTree->Fill();
431  fHitID++;
432  }
433  }
434  }
435 
437  {
439  evt.getByLabel(fOpHitModuleLabel, OpHitHandle);
440 
441  for(size_t i=0; i!=OpHitHandle->size(); ++i)
442  {
443  fOpChannel = OpHitHandle->at(i).OpChannel();
444  fPeakTimeAbs = OpHitHandle->at(i).PeakTimeAbs();
445  fPeakTime = OpHitHandle->at(i).PeakTime();
446  fFrame = OpHitHandle->at(i).Frame();
447  fWidth = OpHitHandle->at(i).Width();
448  fArea = OpHitHandle->at(i).Area();
449  fAmplitude = OpHitHandle->at(i).Amplitude();
450  fPE = OpHitHandle->at(i).PE();
451  fFastToTotal = OpHitHandle->at(i).FastToTotal();
452  fHitID = i;
453  fPerOpHitTree->Fill();
454  }
455  }
456 
458  {
459  fPerEventFlashTree->Fill();
460  fFlashIDVector .clear();
461  fYCenterVector .clear();
462  fZCenterVector .clear();
463  fYWidthVector .clear();
464  fZWidthVector .clear();
465  fFlashTimeVector .clear();
466  fAbsTimeVector .clear();
467  fFlashFrameVector .clear();
468  fInBeamFrameVector .clear();
469  fOnBeamTimeVector .clear();
470  fTotalPEVector .clear();
472  }
473 
474  }
std::vector< int > fOnBeamTimeVector
std::vector< float > fTotalPEVector
std::vector< int > fFlashIDVector
std::string fOpHitModuleLabel
TNtupleSim Fill(f1, f2, f3, f4)
Float_t y
Definition: compare.C:6
Double_t z
Definition: plot.C:279
double PE(unsigned int i) const
Definition: OpFlash.h:87
unsigned int NOpChannels() const
Number of electronics channels for all the optical detectors.
std::vector< float > fYCenterVector
double ZCenter() const
Definition: OpFlash.h:91
double Time() const
Definition: OpFlash.h:83
std::vector< float > fYWidthVector
int OnBeamTime() const
Definition: OpFlash.h:97
std::vector< float > fZCenterVector
unsigned int Frame() const
Definition: OpFlash.h:86
std::vector< int > fFlashFrameVector
std::vector< float > fFlashTimeVector
double YWidth() const
Definition: OpFlash.h:90
T * make(ARGS...args) const
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
std::vector< float > fZWidthVector
std::vector< float > fAbsTimeVector
EventNumber_t event() const
Definition: EventID.h:117
std::vector< float > fPEsPerFlashPerChannelVector
double TotalPE() const
Definition: OpFlash.cxx:56
std::vector< bool > fInBeamFrameVector
double YCenter() const
Definition: OpFlash.h:89
EventID id() const
Definition: Event.h:56
double AbsTime() const
Definition: OpFlash.h:85
double ZWidth() const
Definition: OpFlash.h:92
bool InBeamFrame() const
Definition: OpFlash.h:96
std::string fOpFlashModuleLabel
void opdet::OpFlashAna::beginJob ( )
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 284 of file OpFlashAna_module.cc.

285  {}
detail::CachedProducts& art::EventObserverBase::cachedProducts ( )
inlineprotectedinherited

Definition at line 79 of file EventObserverBase.h.

References art::EventObserverBase::selectors_.

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

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 147 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 162 of file Consumer.h.

163 {
164  if (!moduleContext_)
165  return;
166 
167  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
168 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
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 172 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

173 {
174  if (!moduleContext_)
175  return ViewToken<T>::invalid();
176 
177  consumables_[BT].emplace_back(ConsumableType::ViewElement,
178  TypeID{typeid(T)},
179  it.label(),
180  it.instance(),
181  it.process());
182  return ViewToken<T>{it};
183 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited

Definition at line 32 of file EngineCreator.cc.

References art::EngineCreator::rng().

34 {
35  return rng()->createEngine(
36  placeholder_schedule_id(), seed, kind_of_engine_to_make);
37 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited

Definition at line 40 of file EngineCreator.cc.

References art::EngineCreator::rng().

43 {
44  return rng()->createEngine(
45  placeholder_schedule_id(), seed, kind_of_engine_to_make, engine_label);
46 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
CurrentProcessingContext const * art::EDAnalyzer::currentContext ( ) const
protectedinherited

Definition at line 114 of file EDAnalyzer.cc.

References art::EDAnalyzer::current_context_.

Referenced by art::EDAnalyzer::workerType().

115  {
116  return current_context_.get();
117  }
CPC_exempt_ptr current_context_
Definition: EDAnalyzer.h:179
EngineCreator::seed_t EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited

Definition at line 49 of file EngineCreator.cc.

References fhicl::ParameterSet::get().

Referenced by art::MixFilter< T >::initEngine_().

52 {
53  auto const& explicit_seeds = pset.get<std::vector<int>>(key, {});
54  return explicit_seeds.empty() ? implicit_seed : explicit_seeds.front();
55 }
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_.

Referenced by art::OutputModule::doWriteEvent().

62  {
64  }
detail::CachedProducts selectors_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
Float_t e
Definition: plot.C:34
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 190 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 205 of file Consumer.h.

206 {
207  if (!moduleContext_)
208  return;
209 
210  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
211 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
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 215 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 25 of file EventObserverBase.h.

26  {
27  return false;
28  }
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited

Definition at line 89 of file Consumer.cc.

References fhicl::ParameterSet::get_if_present().

Referenced by art::EDProducer::doBeginJob(), art::EDFilter::doBeginJob(), and art::EDAnalyzer::doBeginJob().

90 {
91  if (!moduleContext_)
92  return;
93 
94  pset.get_if_present("errorOnMissingConsumes", requireConsumes_);
95  for (auto& consumablesPerBranch : consumables_) {
96  cet::sort_all(consumablesPerBranch);
97  }
98 }
bool requireConsumes_
Definition: Consumer.h:137
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
std::string const& art::EventObserverBase::processName ( ) const
inlineinherited
void art::EventObserverBase::registerProducts ( MasterProductRegistry ,
ProductDescriptions ,
ModuleDescription const &   
)
inlineinherited

Definition at line 33 of file EventObserverBase.h.

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

Definition at line 56 of file EventObserverBase.h.

References art::EventObserverBase::selector_config_id_.

Referenced by art::RootOutputFile::writeOne().

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

Definition at line 125 of file Consumer.cc.

Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().

126 {
127  if (!moduleContext_)
128  return;
129 
130  // If none of the branches have missing consumes statements, exit early.
131  if (std::all_of(cbegin(missingConsumes_),
132  cend(missingConsumes_),
133  [](auto const& perBranch) { return perBranch.empty(); }))
134  return;
135 
136  constexpr cet::HorizontalRule rule{60};
137  mf::LogPrint log{"MTdiagnostics"};
138  log << '\n'
139  << rule('=') << '\n'
140  << "The following consumes (or mayConsume) statements are missing from\n"
141  << module_context(moduleDescription_) << '\n'
142  << rule('-') << '\n';
143 
144  cet::for_all_with_index(
145  missingConsumes_, [&log](std::size_t const i, auto const& perBranch) {
146  for (auto const& pi : perBranch) {
147  log << " "
148  << assemble_consumes_statement(static_cast<BranchType>(i), pi)
149  << '\n';
150  }
151  });
152  log << rule('=');
153 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited

Definition at line 101 of file Consumer.cc.

References art::errors::ProductRegistrationFailure.

103 {
104  // Early exits if consumes tracking has been disabled or if the
105  // consumed product is an allowed consumable.
106  if (!moduleContext_)
107  return;
108 
109  if (cet::binary_search_all(consumables_[bt], pi))
110  return;
111 
112  if (requireConsumes_) {
114  "Consumer: an error occurred during validation of a "
115  "retrieved product\n\n")
116  << "The following consumes (or mayConsume) statement is missing from\n"
117  << module_context(moduleDescription_) << ":\n\n"
118  << " " << assemble_consumes_statement(bt, pi) << "\n\n";
119  }
120 
121  missingConsumes_[bt].insert(pi);
122 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
bool requireConsumes_
Definition: Consumer.h:137
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
bool art::EventObserverBase::wantAllEvents ( ) const
inlineinherited
bool art::EventObserverBase::wantEvent ( Event const &  e)
inlineinherited
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

Float_t opdet::OpFlashAna::fAbsTime
private

Definition at line 99 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fAbsTimeVector
private

Definition at line 128 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fAmplitude
private

Definition at line 117 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fArea
private

Definition at line 116 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fEventID
private

Definition at line 95 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fFastToTotal
private

Definition at line 119 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

TTree* opdet::OpFlashAna::fFlashBreakdownTree
private

Definition at line 92 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fFlashFrame
private

Definition at line 103 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< int > opdet::OpFlashAna::fFlashFrameVector
private

Definition at line 129 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

TTree* opdet::OpFlashAna::fFlashHitMatchTree
private

Definition at line 93 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fFlashID
private

Definition at line 96 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< int > opdet::OpFlashAna::fFlashIDVector
private

Definition at line 122 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fFlashTime
private

Definition at line 98 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fFlashTimeVector
private

Definition at line 127 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fFrame
private

Definition at line 114 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fHitID
private

Definition at line 97 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fInBeamFrame
private

Definition at line 100 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< bool > opdet::OpFlashAna::fInBeamFrameVector
private

Definition at line 130 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakeFlashBreakdownTree
private

Definition at line 86 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakeFlashHitMatchTree
private

Definition at line 87 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakeFlashPosHist
private

Definition at line 80 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakeFlashTimeHist
private

Definition at line 79 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakePerEventFlashTree
private

Definition at line 83 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakePerFlashHists
private

Definition at line 81 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakePerFlashTree
private

Definition at line 84 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

bool opdet::OpFlashAna::fMakePerOpHitTree
private

Definition at line 85 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

int opdet::OpFlashAna::fNChannels
private

Definition at line 133 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

int opdet::OpFlashAna::fNFlashes
private

Definition at line 121 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fNPe
private

Definition at line 105 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

int opdet::OpFlashAna::fOnBeamTime
private

Definition at line 101 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< int > opdet::OpFlashAna::fOnBeamTimeVector
private

Definition at line 131 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Int_t opdet::OpFlashAna::fOpChannel
private

Definition at line 111 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::string opdet::OpFlashAna::fOpFlashModuleLabel
private

Definition at line 69 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::string opdet::OpFlashAna::fOpHitModuleLabel
private

Definition at line 70 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fPE
private

Definition at line 118 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fPeakTime
private

Definition at line 113 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fPeakTimeAbs
private

Definition at line 112 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

TTree* opdet::OpFlashAna::fPerEventFlashTree
private

Definition at line 89 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

TTree* opdet::OpFlashAna::fPerFlashTree
private

Definition at line 90 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

TTree* opdet::OpFlashAna::fPerOpHitTree
private

Definition at line 91 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fPEsPerFlashPerChannelVector
private

Definition at line 134 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fSampleFreq
private

Definition at line 71 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fTimeBegin
private

Definition at line 72 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fTimeEnd
private

Definition at line 73 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fTotalPE
private

Definition at line 102 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fTotalPEVector
private

Definition at line 132 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fWidth
private

Definition at line 115 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fYCenter
private

Definition at line 106 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fYCenterVector
private

Definition at line 123 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fYMax
private

Definition at line 75 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fYMin
private

Definition at line 75 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fYWidth
private

Definition at line 107 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fYWidthVector
private

Definition at line 125 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fZCenter
private

Definition at line 108 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fZCenterVector
private

Definition at line 124 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fZMax
private

Definition at line 75 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

float opdet::OpFlashAna::fZMin
private

Definition at line 75 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

Float_t opdet::OpFlashAna::fZWidth
private

Definition at line 109 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

std::vector< float > opdet::OpFlashAna::fZWidthVector
private

Definition at line 126 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

int opdet::OpFlashAna::PosHistYRes
private

Definition at line 77 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().

int opdet::OpFlashAna::PosHistZRes
private

Definition at line 77 of file OpFlashAna_module.cc.

Referenced by analyze(), and OpFlashAna().


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