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

Public Types

using ModuleType = EDAnalyzer
 

Public Member Functions

 FeatureVertexFinderAna (fhicl::ParameterSet const &pset)
 
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 Member Functions

void analyze (const art::Event &evt) override
 
void beginJob () override
 

Private Attributes

std::string fLArG4ModuleLabel
 
std::string fGenieModuleLabel
 
std::string fVertexModuleLabel
 
std::string fEndPoint2dModuleLabel
 
TH1F * fRun
 
TH1F * fEvt
 
TH1F * fTruthVtxXPos
 
TH1F * fTruthVtxYPos
 
TH1F * fTruthVtxZPos
 
TH1F * fTruthWireNumberPlane0
 
TH1F * fTruthTimeTickPlane0
 
TH1F * fTruthWireNumberPlane1
 
TH1F * fTruthTimeTickPlane1
 
TH1F * fTruthWireNumberPlane2
 
TH1F * fTruthTimeTickPlane2
 
TH1F * fTruthWireInCmPlane0
 
TH1F * fTruthTimeInCmPlane0
 
TH1F * fTruthWireInCmPlane1
 
TH1F * fTruthTimeInCmPlane1
 
TH1F * fTruthWireInCmPlane2
 
TH1F * fTruthTimeInCmPlane2
 
TH1F * fTwoDNVtxPlane0
 
TH1F * fTwoDNVtxPlane1
 
TH1F * fTwoDNVtxPlane2
 
TH1F * fTwoDWireNumberPlane0
 
TH1F * fTwoDTimeTickPlane0
 
TH1F * fTwoDWireNumberPlane1
 
TH1F * fTwoDTimeTickPlane1
 
TH1F * fTwoDWireNumberPlane2
 
TH1F * fTwoDTimeTickPlane2
 
TH1F * fTwoDWireInCmPlane0
 
TH1F * fTwoDTimeInCmPlane0
 
TH1F * fTwoDWireInCmPlane1
 
TH1F * fTwoDTimeInCmPlane1
 
TH1F * fTwoDWireInCmPlane2
 
TH1F * fTwoDTimeInCmPlane2
 
TH1F * fTwoDStrengthPlane0
 
TH1F * fTwoDStrengthPlane1
 
TH1F * fTwoDStrengthPlane2
 
TH1F * fRecoCheck2dWireNumPlane0
 
TH1F * fRecoCheck2dTimeTickPlane0
 
TH1F * fRecoCheck2dWireInCmPlane0
 
TH1F * fRecoCheck2dTimeInCmPlane0
 
TH1F * fRecoCheck2dWireNumPlane1
 
TH1F * fRecoCheck2dTimeTickPlane1
 
TH1F * fRecoCheck2dWireInCmPlane1
 
TH1F * fRecoCheck2dTimeInCmPlane1
 
TH1F * fRecoCheck2dWireNumPlane2
 
TH1F * fRecoCheck2dTimeTickPlane2
 
TH1F * fRecoCheck2dWireInCmPlane2
 
TH1F * fRecoCheck2dTimeInCmPlane2
 
TH1F * fRecoVtxN3d
 
TH1F * fRecoVtxXPos
 
TH1F * fRecoVtxYPos
 
TH1F * fRecoVtxZPos
 
TH1F * fRecoCheck3dVtxX
 
TH1F * fRecoCheck3dVtxY
 
TH1F * fRecoCheck3dVtxZ
 
TH2D * fRecoCheck3dVtxXvsX
 
TH2D * fRecoCheck3dVtxYvsY
 
TH2D * fRecoCheck3dVtxZvsZ
 

Detailed Description

Definition at line 42 of file FeatureVertexFinderAna_module.cc.

Member Typedef Documentation

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

vertex::FeatureVertexFinderAna::FeatureVertexFinderAna ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 126 of file FeatureVertexFinderAna_module.cc.

References fEndPoint2dModuleLabel, fGenieModuleLabel, fLArG4ModuleLabel, fVertexModuleLabel, and fhicl::ParameterSet::get().

126  : EDAnalyzer(pset)
127  {
128  fLArG4ModuleLabel = pset.get<std::string>("LArGeantModuleLabel");
129  fGenieModuleLabel = pset.get<std::string>("GenieModuleLabel");
130  fVertexModuleLabel = pset.get<std::string>("VertexModuleLabel");
131  fEndPoint2dModuleLabel = pset.get<std::string>("EndPoint2dModuleLabel");
132  }
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.cc:6

Member Function Documentation

void vertex::FeatureVertexFinderAna::analyze ( const art::Event evt)
overrideprivate

Definition at line 256 of file FeatureVertexFinderAna_module.cc.

References DEFINE_ART_MODULE, art::EventID::event(), fEndPoint2dModuleLabel, fEvt, fGenieModuleLabel, fLArG4ModuleLabel, fRecoCheck2dTimeInCmPlane0, fRecoCheck2dTimeInCmPlane1, fRecoCheck2dTimeInCmPlane2, fRecoCheck2dTimeTickPlane0, fRecoCheck2dTimeTickPlane1, fRecoCheck2dTimeTickPlane2, fRecoCheck2dWireInCmPlane0, fRecoCheck2dWireInCmPlane1, fRecoCheck2dWireInCmPlane2, fRecoCheck2dWireNumPlane0, fRecoCheck2dWireNumPlane1, fRecoCheck2dWireNumPlane2, fRecoCheck3dVtxX, fRecoCheck3dVtxXvsX, fRecoCheck3dVtxY, fRecoCheck3dVtxYvsY, fRecoCheck3dVtxZ, fRecoCheck3dVtxZvsZ, fRecoVtxN3d, fRecoVtxXPos, fRecoVtxYPos, fRecoVtxZPos, fRun, fTruthTimeInCmPlane0, fTruthTimeInCmPlane1, fTruthTimeInCmPlane2, fTruthTimeTickPlane0, fTruthTimeTickPlane1, fTruthTimeTickPlane2, fTruthVtxXPos, fTruthVtxYPos, fTruthVtxZPos, fTruthWireInCmPlane0, fTruthWireInCmPlane1, fTruthWireInCmPlane2, fTruthWireNumberPlane0, fTruthWireNumberPlane1, fTruthWireNumberPlane2, fTwoDNVtxPlane0, fTwoDNVtxPlane1, fTwoDNVtxPlane2, fTwoDStrengthPlane0, fTwoDStrengthPlane1, fTwoDStrengthPlane2, fTwoDTimeInCmPlane0, fTwoDTimeInCmPlane1, fTwoDTimeInCmPlane2, fTwoDTimeTickPlane0, fTwoDTimeTickPlane1, fTwoDTimeTickPlane2, fTwoDWireInCmPlane0, fTwoDWireInCmPlane1, fTwoDWireInCmPlane2, fTwoDWireNumberPlane0, fTwoDWireNumberPlane1, fTwoDWireNumberPlane2, fVertexModuleLabel, Get, art::ProductRetriever::getByLabel(), art::ProductRetriever::getValidHandle(), art::Event::id(), art::PtrVector< T >::push_back(), art::Event::run(), detinfo::sampling_rate(), and art::PtrVector< T >::size().

257  {
258  // Filling Run/Event Histo
259  fRun->Fill(evt.run());
260  fEvt->Fill(evt.id().event());
261 
262  // Getting the Geant Information Directly
264  evt.getByLabel(fLArG4ModuleLabel, mcParticleHandle);
265 
266  // Getting MC Truth Info from simb
267  auto const& mctruthList = *evt.getValidHandle<std::vector<simb::MCTruth>>(fGenieModuleLabel);
268 
269  // Getting information from BackTrackerService
271 
272  auto const& wireReadoutGeom = art::ServiceHandle<geo::WireReadout>()->Get();
273  auto const clock_data =
275  auto const det_prop =
277 
278  // Getting 2d Vertex information (vertex2dHandle)
280  evt.getByLabel(fEndPoint2dModuleLabel, vertex2dHandle);
281 
282  // Getting the 3d Vertex (vertex3dListHandle)
283  art::Handle<std::vector<recob::Vertex>> vertex3dListHandle;
284  evt.getByLabel(fVertexModuleLabel, vertex3dListHandle);
285 
286  // Detector numbers that are useful (to be set later)
287  std::vector<double> WirePitch_CurrentPlane(wireReadoutGeom.Views().size(),
288  0.); //<---Setting the Wire pitch for each plane
289  // Right now assuming only 3 planes
290  // get the wire pitch for each view
291  size_t vn = 0;
292  for (auto v : wireReadoutGeom.Views()) {
293  WirePitch_CurrentPlane[vn] = wireReadoutGeom.Plane({0, 0, v}).WirePitch();
294  ++vn;
295  }
296 
297  // Calculating the Timetick to CM conversion
298  float TimeTick =
299  sampling_rate(clock_data) / 1000.; //<---To get units of microsecond...not nanosec
300  float DriftVelocity = det_prop.DriftVelocity(det_prop.Efield(), det_prop.Temperature());
301  float TimetoCm = TimeTick * DriftVelocity;
302 
303  // Looping over MC information
304 
305  // Variables for truth vertex information
306  geo::Point_t truth_vertex{}; //<---Truth x,y,z information
307 
308  uint32_t VtxWireNum[3] = {0}; //<---Wire number in each plane ( WireNum[plane#] )
309  double VtxTimeTick[3] = {0.}; //<---Time tick in each plane ( TimeTick[plane#] )
310 
311  double VtxWireNum_InCM[3] = {0.}; //<---Wire number in each plane in CM ( WireNum[plane#] )
312  double VtxTimeTick_InCM[3] = {0.}; //<---Time tick in each plane in CM ( TimeTick[plane#] )
313 
314  // Finding the MC truth vertex
315 
316  // FIXME: Can this be right? We're looping over all of the
317  // MCTruth particles just so that we can use the last one
318  // (i.e. truth_vertex is set each time but only the last
319  // iteration is relevant)?
320  for (std::size_t i = 0; i != mctruthList.size(); ++i) {
321  auto const& neut = mctruthList[i].GetParticle(i);
322  truth_vertex.SetX(neut.Vx());
323  truth_vertex.SetY(neut.Vy());
324  truth_vertex.SetZ(neut.Vz());
325  } // end i loop
326 
327  // Filling Histograms
328  fTruthVtxXPos->Fill(truth_vertex.X());
329  fTruthVtxYPos->Fill(truth_vertex.Y());
330  fTruthVtxZPos->Fill(truth_vertex.Z());
331 
332  // Looping over geo::PlaneIDs
333  for (auto const& plane : wireReadoutGeom.Iterate<geo::PlaneGeo>()) {
334  auto const& pid = plane.ID();
335  // Calculating the nearest wire the vertex corresponds to in each plane
336  try {
337  VtxWireNum[pid.Plane] = plane.NearestWireID(truth_vertex).Wire;
338  }
339  catch (...) {
340  mf::LogWarning("FeatureVertexFinderAna") << "Can't find nearest wire";
341  continue;
342  }
343  VtxTimeTick[pid.Plane] =
344  det_prop.ConvertXToTicks(truth_vertex.X(), pid) + det_prop.GetXTicksOffset(pid);
345 
346  // Translating each of these in cm
347  VtxWireNum_InCM[pid.Plane] = VtxWireNum[pid.Plane] * WirePitch_CurrentPlane[pid.Plane];
348  VtxTimeTick_InCM[pid.Plane] = VtxTimeTick[pid.Plane] * TimetoCm;
349  } //<---End pid loop
350 
351  // Filling Histograms
352  fTruthWireNumberPlane0->Fill(VtxWireNum[0]);
353  fTruthTimeTickPlane0->Fill(VtxTimeTick[0]);
354  fTruthWireNumberPlane1->Fill(VtxWireNum[1]);
355  fTruthTimeTickPlane1->Fill(VtxTimeTick[1]);
356  fTruthWireNumberPlane2->Fill(VtxWireNum[2]);
357  fTruthTimeTickPlane2->Fill(VtxTimeTick[2]);
358 
359  fTruthWireInCmPlane0->Fill(VtxWireNum_InCM[0]);
360  fTruthTimeInCmPlane0->Fill(VtxTimeTick_InCM[0]);
361  fTruthWireInCmPlane1->Fill(VtxWireNum_InCM[1]);
362  fTruthTimeInCmPlane1->Fill(VtxTimeTick_InCM[1]);
363  fTruthWireInCmPlane2->Fill(VtxWireNum_InCM[2]);
364  fTruthTimeInCmPlane2->Fill(VtxTimeTick_InCM[2]);
365 
366  // Looping over EndPoint2d information
367 
369 
370  // Variables for Vertex2d
371  double Vertex2d_TimeTick[10000] = {
372  0.}; //<---Vertex2d Time Tick for the current plane ( TimeTick[#2d] )
373  double Vertex2d_Wire[10000] = {0.}; //<---Veretx2d Wire # ( Wire[#2d] )
374 
375  double Vertex2d_TimeTick_InCM[10000] = {0.}; //<---Vertex 2d Time tick in CM ( TimeTick[#2d] )
376  double Vertex2d_Wire_InCM[10000] = {0.}; //<---Veretx2d Wire in CM ( Wire[#2d] )
377  int n2dVtx = 0;
378 
379  int n2dVtxPlane0 = 0, n2dVtxPlane1 = 0, n2dVtxPlane2 = 0;
380 
381  bool vertexWstrengthplane0 = false,
382  vertexWstrengthplane1 =
383  false; //, vertexWstrengthplane2 = false; //commented out, Wes, 12.4.13
384 
385  // Loop over the EndPoint2d List
386  for (size_t ii = 0; ii < vertex2dHandle->size(); ++ii) {
387  art::Ptr<recob::EndPoint2D> vertex(vertex2dHandle, ii);
388  vert2d.push_back(vertex);
389  }
390 
391  // If we have 2d vertex, loop over them
392  if (vert2d.size() > 0) {
393 
394  // Looping over geo::PlaneIDs
395  for (auto const& pid : wireReadoutGeom.Iterate<geo::PlaneID>()) {
396  for (size_t ww = 0; ww < vert2d.size(); ++ww) {
397  // Only look at this 2d vertex if it is in the current plane
398  if (vert2d[ww]->WireID().planeID() != pid) { continue; }
399 
400  Vertex2d_TimeTick[n2dVtx] = vert2d[ww]->DriftTime();
401  Vertex2d_Wire[n2dVtx] = vert2d[ww]->WireID().Wire;
402 
403  // Translating each of these in cm
404  Vertex2d_Wire_InCM[n2dVtx] = Vertex2d_Wire[n2dVtx] * WirePitch_CurrentPlane[pid.Plane];
405  Vertex2d_TimeTick_InCM[n2dVtx] = Vertex2d_TimeTick[n2dVtx] * TimetoCm;
406 
407  // Checking how well we did in reconstructing the vertex (Reco - True)
408 
409  float RecoCheck_TimeTick = Vertex2d_TimeTick[n2dVtx] - VtxTimeTick[pid.Plane];
410  float RecoCheck_WireNum = Vertex2d_Wire[n2dVtx] - VtxWireNum[pid.Plane];
411 
412  float RecoCheck_TimeInCm = Vertex2d_TimeTick_InCM[n2dVtx] - VtxTimeTick_InCM[pid.Plane];
413  float RecoCheck_WireInCm = Vertex2d_Wire_InCM[n2dVtx] - VtxWireNum_InCM[pid.Plane];
414 
415  if (vert2d[ww]->Strength() > -1) {
416  if (pid.Plane == 0) {
417  vertexWstrengthplane0 = true;
418 
419  fTwoDWireNumberPlane0->Fill(Vertex2d_Wire[n2dVtx]);
420  fTwoDTimeTickPlane0->Fill(Vertex2d_TimeTick[n2dVtx]);
421  fTwoDWireInCmPlane0->Fill(Vertex2d_Wire_InCM[n2dVtx]);
422  fTwoDTimeInCmPlane0->Fill(Vertex2d_TimeTick_InCM[n2dVtx]);
423 
424  fTwoDStrengthPlane0->Fill(vert2d[ww]->Strength());
425 
426  fRecoCheck2dWireNumPlane0->Fill(RecoCheck_WireNum);
427  fRecoCheck2dTimeTickPlane0->Fill(RecoCheck_TimeTick);
428  fRecoCheck2dWireInCmPlane0->Fill(RecoCheck_WireInCm);
429  fRecoCheck2dTimeInCmPlane0->Fill(RecoCheck_TimeInCm);
430 
431  n2dVtxPlane0++;
432 
433  } //<---End Plane 0
434 
435  if (pid.Plane == 1) {
436  vertexWstrengthplane1 = true;
437  fTwoDWireNumberPlane1->Fill(Vertex2d_Wire[n2dVtx]);
438  fTwoDTimeTickPlane1->Fill(Vertex2d_TimeTick[n2dVtx]);
439  fTwoDWireInCmPlane1->Fill(Vertex2d_Wire_InCM[n2dVtx]);
440  fTwoDTimeInCmPlane1->Fill(Vertex2d_TimeTick_InCM[n2dVtx]);
441 
442  fTwoDStrengthPlane1->Fill(vert2d[ww]->Strength());
443 
444  fRecoCheck2dWireNumPlane1->Fill(RecoCheck_WireNum);
445  fRecoCheck2dTimeTickPlane1->Fill(RecoCheck_TimeTick);
446  fRecoCheck2dWireInCmPlane1->Fill(RecoCheck_WireInCm);
447  fRecoCheck2dTimeInCmPlane1->Fill(RecoCheck_TimeInCm);
448 
449  n2dVtxPlane1++;
450 
451  } //<---End Plane 1
452 
453  if (pid.Plane == 2) {
454  fTwoDWireNumberPlane2->Fill(Vertex2d_Wire[n2dVtx]);
455  fTwoDTimeTickPlane2->Fill(Vertex2d_TimeTick[n2dVtx]);
456  fTwoDWireInCmPlane2->Fill(Vertex2d_Wire_InCM[n2dVtx]);
457  fTwoDTimeInCmPlane2->Fill(Vertex2d_TimeTick_InCM[n2dVtx]);
458 
459  fTwoDStrengthPlane2->Fill(vert2d[ww]->Strength());
460 
461  fRecoCheck2dWireNumPlane2->Fill(RecoCheck_WireNum);
462  fRecoCheck2dTimeTickPlane2->Fill(RecoCheck_TimeTick);
463  fRecoCheck2dWireInCmPlane2->Fill(RecoCheck_WireInCm);
464  fRecoCheck2dTimeInCmPlane2->Fill(RecoCheck_TimeInCm);
465 
466  n2dVtxPlane2++;
467 
468  } //<---End Plane 2
469  }
470 
471  ++n2dVtx;
472  } //<--end ww loop
473 
474  } //<---End plane ID
475 
476  } //<--End checking if we have 2d end points
477 
478  fTwoDNVtxPlane0->Fill(n2dVtxPlane0);
479  fTwoDNVtxPlane1->Fill(n2dVtxPlane1);
480  fTwoDNVtxPlane2->Fill(n2dVtxPlane2);
481 
482  // Looping over 3dVertex information
484 
485  double xyz[3] = {0.};
486 
487  for (unsigned int ii = 0; ii < vertex3dListHandle->size(); ++ii) {
488  art::Ptr<recob::Vertex> vertex3d(vertex3dListHandle, ii);
489  Vertexlist.push_back(vertex3d); // class member
490 
491  } //<---End ii loop
492 
493  if (Vertexlist.size() > 0 && vertexWstrengthplane0 && vertexWstrengthplane1) {
494 
495  fRecoVtxN3d->Fill(Vertexlist.size());
496  for (unsigned int ww = 0; ww < Vertexlist.size(); ww++) {
497  Vertexlist[ww]->XYZ(xyz);
498 
499  // Checking how well we did in reconstructing the vertex (Reco - True)
500 
501  // Finding the Delta X, Y, Z between Reco vtx and truth
502  double DeltaX = xyz[0] - truth_vertex.X();
503  double DeltaY = xyz[1] - truth_vertex.Y();
504  double DeltaZ = xyz[2] - truth_vertex.Z();
505 
506  double DeltaXoverTrueX = DeltaX / truth_vertex.X();
507  double DeltaYoverTrueY = DeltaY / truth_vertex.X();
508  double DeltaZoverTrueZ = DeltaZ / truth_vertex.X();
509 
510  fRecoVtxXPos->Fill(xyz[0]);
511  fRecoVtxYPos->Fill(xyz[1]);
512  fRecoVtxZPos->Fill(xyz[2]);
513 
514  fRecoCheck3dVtxX->Fill(DeltaX);
515  fRecoCheck3dVtxY->Fill(DeltaY);
516  fRecoCheck3dVtxZ->Fill(DeltaZ);
517 
518  fRecoCheck3dVtxXvsX->Fill(xyz[0], DeltaXoverTrueX);
519  fRecoCheck3dVtxYvsY->Fill(xyz[1], DeltaYoverTrueY);
520  fRecoCheck3dVtxZvsZ->Fill(xyz[2], DeltaZoverTrueZ);
521  }
522  }
523  } //<---End access the event
The data type to uniquely identify a Plane.
Definition: geo_types.h:364
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
Definition: AddMC.C:8
IDparameter< geo::WireID > WireID
Member type of validated geo::WireID parameter.
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:435
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
Definition: PlaneGeo.h:67
size_type size() const
Definition: PtrVector.h:302
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:180
ValidHandle< PROD > getValidHandle(InputTag const &tag) const
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
EventNumber_t event() const
Definition: EventID.h:116
RunNumber_t run() const
Definition: Event.cc:29
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.
Definition: fwd.h:26
EventID id() const
Definition: Event.cc:23
vertex reconstruction
void vertex::FeatureVertexFinderAna::beginJob ( )
overrideprivatevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 134 of file FeatureVertexFinderAna_module.cc.

References fEvt, fRecoCheck2dTimeInCmPlane0, fRecoCheck2dTimeInCmPlane1, fRecoCheck2dTimeInCmPlane2, fRecoCheck2dTimeTickPlane0, fRecoCheck2dTimeTickPlane1, fRecoCheck2dTimeTickPlane2, fRecoCheck2dWireInCmPlane0, fRecoCheck2dWireInCmPlane1, fRecoCheck2dWireInCmPlane2, fRecoCheck2dWireNumPlane0, fRecoCheck2dWireNumPlane1, fRecoCheck2dWireNumPlane2, fRecoCheck3dVtxX, fRecoCheck3dVtxXvsX, fRecoCheck3dVtxY, fRecoCheck3dVtxYvsY, fRecoCheck3dVtxZ, fRecoCheck3dVtxZvsZ, fRecoVtxN3d, fRecoVtxXPos, fRecoVtxYPos, fRecoVtxZPos, fRun, fTruthTimeInCmPlane0, fTruthTimeInCmPlane1, fTruthTimeInCmPlane2, fTruthTimeTickPlane0, fTruthTimeTickPlane1, fTruthTimeTickPlane2, fTruthVtxXPos, fTruthVtxYPos, fTruthVtxZPos, fTruthWireInCmPlane0, fTruthWireInCmPlane1, fTruthWireInCmPlane2, fTruthWireNumberPlane0, fTruthWireNumberPlane1, fTruthWireNumberPlane2, fTwoDNVtxPlane0, fTwoDNVtxPlane1, fTwoDNVtxPlane2, fTwoDStrengthPlane0, fTwoDStrengthPlane1, fTwoDStrengthPlane2, fTwoDTimeInCmPlane0, fTwoDTimeInCmPlane1, fTwoDTimeInCmPlane2, fTwoDTimeTickPlane0, fTwoDTimeTickPlane1, fTwoDTimeTickPlane2, fTwoDWireInCmPlane0, fTwoDWireInCmPlane1, fTwoDWireInCmPlane2, fTwoDWireNumberPlane0, fTwoDWireNumberPlane1, and fTwoDWireNumberPlane2.

135  {
136  // get access to the TFile service
138 
139  // Outputting TH1F Histograms
140  fRun = tfs->make<TH1F>("fRun", "Run Number", 1000, 0, 1000);
141  fEvt = tfs->make<TH1F>("fEvt", "Event Number", 1000, 0, 1000);
142  fTruthVtxXPos = tfs->make<TH1F>("fTruthVtxXPos", "Truth Vertex X Position", 400, 0, 200);
143  fTruthVtxYPos = tfs->make<TH1F>("fTruthVtxYPos", "Truth Vertex Y Position", 400, -100, 100);
144  fTruthVtxZPos = tfs->make<TH1F>("fTruthVtxZPos", "Truth Vertex Z Position", 2000, 0, 1000);
146  tfs->make<TH1F>("fTruthWireNumberPlane0", "Truth Wire Number Plane 0", 3000, 0, 3000);
148  tfs->make<TH1F>("fTruthTimeTickPlane0", "Truth Time Tick Plane 0", 3200, 0, 3200);
150  tfs->make<TH1F>("fTruthWireNumberPlane1", "Truth Wire Number Plane 1", 3000, 0, 3000);
152  tfs->make<TH1F>("fTruthTimeTickPlane1", "Truth Time Tick Plane 1", 3200, 0, 3200);
154  tfs->make<TH1F>("fTruthWireNumberPlane2", "Truth Wire Number Plane 2", 3000, 0, 3000);
156  tfs->make<TH1F>("fTruthTimeTickPlane2", "Truth Time Tick Plane 2", 3200, 0, 3200);
158  tfs->make<TH1F>("fTruthWireInCmPlane0", "Truth Wire In CM Plane 0", 2000, 0, 1000);
160  tfs->make<TH1F>("fTruthTimeInCmPlane0", "Truth Time In Cm Plane 0", 2000, 0, 1000);
162  tfs->make<TH1F>("fTruthWireInCmPlane1", "Truth Wire In CM Plane 1", 2000, 0, 1000);
164  tfs->make<TH1F>("fTruthTimeInCmPlane1", "Truth Time In Cm Plane 1", 2000, 0, 1000);
166  tfs->make<TH1F>("fTruthWireInCmPlane2", "Truth Wire In CM Plane 2", 2000, 0, 1000);
168  tfs->make<TH1F>("fTruthTimeInCmPlane2", "Truth Time In Cm Plane 2", 2000, 0, 1000);
169 
171  tfs->make<TH1F>("fTwoDNVtxPlane0", "TwoD Number of Verticies Found in Plane 0", 400, 0, 200);
173  tfs->make<TH1F>("fTwoDNVtxPlane1", "TwoD Number of Verticies Found in Plane 1", 400, 0, 200);
175  tfs->make<TH1F>("fTwoDNVtxPlane2", "TwoD Number of Verticies Found in Plane 2", 400, 0, 200);
176 
178  tfs->make<TH1F>("fTwoDWireNumberPlane0", "TwoD Wire Number Plane 0", 3000, 0, 3000);
180  tfs->make<TH1F>("fTwoDTimeTickPlane0", "TwoD Time Tick Plane 0", 3200, 0, 3200);
182  tfs->make<TH1F>("fTwoDWireNumberPlane1", "TwoD Wire Number Plane 1", 3000, 0, 3000);
184  tfs->make<TH1F>("fTwoDTimeTickPlane1", "TwoD Time Tick Plane 1", 3200, 0, 3200);
186  tfs->make<TH1F>("fTwoDWireNumberPlane2", "TwoD Wire Number Plane 2", 3000, 0, 3000);
188  tfs->make<TH1F>("fTwoDTimeTickPlane2", "TwoD Time Tick Plane 2", 3200, 0, 3200);
190  tfs->make<TH1F>("fTwoDWireInCmPlane0", "TwoD Wire In CM Plane 0", 2000, 0, 1000);
192  tfs->make<TH1F>("fTwoDTimeInCmPlane0", "TwoD Time In Cm Plane 0", 2000, 0, 1000);
194  tfs->make<TH1F>("fTwoDWireInCmPlane1", "TwoD Wire In CM Plane 1", 2000, 0, 1000);
196  tfs->make<TH1F>("fTwoDTimeInCmPlane1", "TwoD Time In Cm Plane 1", 2000, 0, 1000);
198  tfs->make<TH1F>("fTwoDWireInCmPlane2", "TwoD Wire In CM Plane 2", 2000, 0, 1000);
200  tfs->make<TH1F>("fTwoDTimeInCmPlane2", "TwoD Time In Cm Plane 2", 2000, 0, 1000);
201 
203  tfs->make<TH1F>("fTwoDStrengthPlane0", "TwoD Strength Plane 0", 1000, 0, 500);
205  tfs->make<TH1F>("fTwoDStrengthPlane1", "TwoD Strength Plane 1", 1000, 0, 500);
207  tfs->make<TH1F>("fTwoDStrengthPlane2", "TwoD Strength Plane 2", 1000, 0, 500);
208 
209  fRecoCheck2dWireNumPlane0 = tfs->make<TH1F>(
210  "fRecoCheck2dWireNumPlane0", "Reco Wire Number - True Wire Number Plane 0", 400, -200, 200);
211  fRecoCheck2dTimeTickPlane0 = tfs->make<TH1F>(
212  "fRecoCheck2dTimeTickPlane0", "Reco Time Tick - True Time Tick Plane 0", 1000, -500, 500);
213  fRecoCheck2dWireInCmPlane0 = tfs->make<TH1F>(
214  "fRecoCheck2dWireInCmPlane0", "Reco Wire in CM - True Wire in CM Plane 0", 200, -50, 50);
215  fRecoCheck2dTimeInCmPlane0 = tfs->make<TH1F>(
216  "fRecoCheck2dTimeInCmPlane0", "Reco Time in CM - True Time in CM Plane 0", 200, -50, 50);
217 
218  fRecoCheck2dWireNumPlane1 = tfs->make<TH1F>(
219  "fRecoCheck2dWireNumPlane1", "Reco Wire Number - True Wire Number Plane 1", 400, -200, 200);
220  fRecoCheck2dTimeTickPlane1 = tfs->make<TH1F>(
221  "fRecoCheck2dTimeTickPlane1", "Reco Time Tick - True Time Tick Plane 1", 1000, -500, 500);
222  fRecoCheck2dWireInCmPlane1 = tfs->make<TH1F>(
223  "fRecoCheck2dWireInCmPlane1", "Reco Wire in CM - True Wire in CM Plane 1", 200, -50, 50);
224  fRecoCheck2dTimeInCmPlane1 = tfs->make<TH1F>(
225  "fRecoCheck2dTimeInCmPlane1", "Reco Time in CM - True Time in CM Plane 1", 200, -50, 50);
226 
227  fRecoCheck2dWireNumPlane2 = tfs->make<TH1F>(
228  "fRecoCheck2dWireNumPlane2", "Reco Wire Number - True Wire Number Plane 2", 400, -200, 200);
229  fRecoCheck2dTimeTickPlane2 = tfs->make<TH1F>(
230  "fRecoCheck2dTimeTickPlane2", "Reco Time Tick - True Time Tick Plane 2", 1000, -500, 500);
231  fRecoCheck2dWireInCmPlane2 = tfs->make<TH1F>(
232  "fRecoCheck2dWireInCmPlane2", "Reco Wire in CM - True Wire in CM Plane 2", 200, -50, 50);
233  fRecoCheck2dTimeInCmPlane2 = tfs->make<TH1F>(
234  "fRecoCheck2dTimeInCmPlane2", "Reco Time in CM - True Time in CM Plane 2", 200, -50, 50);
235 
236  fRecoVtxN3d = tfs->make<TH1F>("fRecoVtxN3d", "Number of 3d-Reco Verticies", 400, 0, 200);
237  fRecoVtxXPos = tfs->make<TH1F>("fRecoVtxXPos", "Reco Vertex X Position", 400, -10, 200);
238  fRecoVtxYPos = tfs->make<TH1F>("fRecoVtxYPos", "Reco Vertex Y Position", 400, -100, 100);
239  fRecoVtxZPos = tfs->make<TH1F>("fRecoVtxZPos", "Reco Vertex Z Position", 2000, -10, 1000);
240 
242  tfs->make<TH1F>("fRecoCheck3dVtxX", "Reco X Position - True X Postion", 800, -100, 100);
244  tfs->make<TH1F>("fRecoCheck3dVtxY", "Reco Y Position - True Y Postion", 800, -100, 100);
246  tfs->make<TH1F>("fRecoCheck3dVtxZ", "Reco Z Position - True Z Postion", 800, -100, 100);
247 
248  fRecoCheck3dVtxXvsX = tfs->make<TH2D>(
249  "fRecoCheck3dVtxXvsX", "(Reco X - True X)/True X vs True X", 400, -10, 200, 120, -20, 20);
250  fRecoCheck3dVtxYvsY = tfs->make<TH2D>(
251  "fRecoCheck3dVtxYvsY", "(Reco Y - True Y)/True Y vs True Y", 400, -100, 100, 120, -20, 20);
252  fRecoCheck3dVtxZvsZ = tfs->make<TH2D>(
253  "fRecoCheck3dVtxZvsZ", "(Reco Z - True Z)/True Z vs True Z", 1000, -10, 1000, 120, -20, 20);
254  }
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")
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

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

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

Definition at line 75 of file Observer.cc.

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

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

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

Definition at line 37 of file ModuleBase.cc.

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

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

Definition at line 82 of file ModuleBase.h.

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

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

Definition at line 96 of file ModuleBase.h.

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

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

Definition at line 89 of file ModuleBase.h.

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

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

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

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

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

Definition at line 57 of file Observer.cc.

References art::Observer::process_name_.

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

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

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

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

Definition at line 49 of file ModuleBase.cc.

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

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

Definition at line 31 of file Observer.h.

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

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

Definition at line 63 of file Observer.cc.

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

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

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

Member Data Documentation

std::string vertex::FeatureVertexFinderAna::fEndPoint2dModuleLabel
private

Definition at line 53 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and FeatureVertexFinderAna().

TH1F* vertex::FeatureVertexFinderAna::fEvt
private

Definition at line 58 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

std::string vertex::FeatureVertexFinderAna::fGenieModuleLabel
private

Definition at line 51 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and FeatureVertexFinderAna().

std::string vertex::FeatureVertexFinderAna::fLArG4ModuleLabel
private

Definition at line 50 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and FeatureVertexFinderAna().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeInCmPlane0
private

Definition at line 99 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeInCmPlane1
private

Definition at line 104 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeInCmPlane2
private

Definition at line 109 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeTickPlane0
private

Definition at line 97 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeTickPlane1
private

Definition at line 102 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dTimeTickPlane2
private

Definition at line 107 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireInCmPlane0
private

Definition at line 98 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireInCmPlane1
private

Definition at line 103 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireInCmPlane2
private

Definition at line 108 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireNumPlane0
private

Definition at line 96 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireNumPlane1
private

Definition at line 101 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck2dWireNumPlane2
private

Definition at line 106 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxX
private

Definition at line 116 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH2D* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxXvsX
private

Definition at line 120 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxY
private

Definition at line 117 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH2D* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxYvsY
private

Definition at line 121 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxZ
private

Definition at line 118 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH2D* vertex::FeatureVertexFinderAna::fRecoCheck3dVtxZvsZ
private

Definition at line 122 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoVtxN3d
private

Definition at line 111 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoVtxXPos
private

Definition at line 112 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoVtxYPos
private

Definition at line 113 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRecoVtxZPos
private

Definition at line 114 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fRun
private

Definition at line 57 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeInCmPlane0
private

Definition at line 69 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeInCmPlane1
private

Definition at line 71 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeInCmPlane2
private

Definition at line 73 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeTickPlane0
private

Definition at line 63 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeTickPlane1
private

Definition at line 65 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthTimeTickPlane2
private

Definition at line 67 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthVtxXPos
private

Definition at line 59 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthVtxYPos
private

Definition at line 60 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthVtxZPos
private

Definition at line 61 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireInCmPlane0
private

Definition at line 68 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireInCmPlane1
private

Definition at line 70 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireInCmPlane2
private

Definition at line 72 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireNumberPlane0
private

Definition at line 62 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireNumberPlane1
private

Definition at line 64 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTruthWireNumberPlane2
private

Definition at line 66 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDNVtxPlane0
private

Definition at line 75 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDNVtxPlane1
private

Definition at line 76 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDNVtxPlane2
private

Definition at line 77 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDStrengthPlane0
private

Definition at line 92 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDStrengthPlane1
private

Definition at line 93 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDStrengthPlane2
private

Definition at line 94 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeInCmPlane0
private

Definition at line 86 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeInCmPlane1
private

Definition at line 88 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeInCmPlane2
private

Definition at line 90 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeTickPlane0
private

Definition at line 80 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeTickPlane1
private

Definition at line 82 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDTimeTickPlane2
private

Definition at line 84 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireInCmPlane0
private

Definition at line 85 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireInCmPlane1
private

Definition at line 87 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireInCmPlane2
private

Definition at line 89 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireNumberPlane0
private

Definition at line 79 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireNumberPlane1
private

Definition at line 81 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

TH1F* vertex::FeatureVertexFinderAna::fTwoDWireNumberPlane2
private

Definition at line 83 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and beginJob().

std::string vertex::FeatureVertexFinderAna::fVertexModuleLabel
private

Definition at line 52 of file FeatureVertexFinderAna_module.cc.

Referenced by analyze(), and FeatureVertexFinderAna().


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