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

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 RecoAnalysis (fhicl::ParameterSet const &p)
 
void beginJob () override
 
void endJob () override
 
void analyze (art::Event const &e) override
 
TGraph * PlotVectorPoint (std::vector< point2d_t > pts)
 
double HozVertex (std::vector< std::tuple< double, double, double >> HitCollectionSingleView, double vertexZ)
 
double slopeAngleOfLineConnect2Points (point2d_t pA, point2d_t pB)
 
void evd (art::Event const &e, unsigned int clusterIdx)
 
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 Attributes

double _ExposureTimeInUSec
 
art::InputTag _InputShwrLabel
 
unsigned int _SampleType
 
TTree * _VariableTree
 
unsigned int _tRunNumber
 
unsigned int _tSubrunNumber
 
unsigned int _tEventNumber
 
unsigned int _tSliceNumber
 
unsigned int _tSampleType
 
double _tTotalVisibleEnergy
 
double _tTemporalClusterExpand
 
double _tTotalHitCountInXView
 
double _tTotalHitCountInYView
 
double _tHitCountXYDifference
 
double _tAverageEnergyPerHitXView
 
double _tAverageEnergyPerHitYView
 
double _tHitVsVertexTimingCorrelation
 
double _tTrueVertexX
 
double _tTrueVertexY
 
double _tTrueVertexZ
 
double _tTrueVertexT
 
double _tReconVertexX
 
double _tReconVertexY
 
double _tReconVertexZ
 
double _tReconVertexT
 
double _tEArmVertexX
 
double _tEArmVertexY
 
double _tEArmVertexZ
 
double _tEArmVertexT
 
TH1D * EnergyRatioFromVertexX
 
TH1D * EnergyRatioFromVertexY
 
TH1D * EnergyRatioFromVertexZ
 
TH1D * TimingCorrelation
 
TH1D * DistanceFromReconVertexToTrueVertex
 
TH1D * ZErrorFromReconVertexToTrueVertex
 
TH2D * OrientationFromReconVertexToTrueVertex
 
TH1D * PolarAngleFromReconVertexToTrueVertex
 
TH1D * AzimuthalAngleFromReconVertexToTrueVertex
 
TH1D * DistanceFromElasticArmVertexToTrueVertex
 
TH1D * ZErrorFromElasticArmVertexToTrueVertex
 
TH2D * OrientationFromElasticArmVertexToTrueVertex
 
TH1D * PolarAngleFromElasticArmVertexToTrueVertex
 
TH1D * AzimuthalAngleFromElasticArmVertexToTrueVertex
 
std::vector< std::tuple< double, double, double > > HitsXView
 
std::vector< std::tuple< double, double, double > > HitsYView
 

Detailed Description

Definition at line 110 of file RecoAnalysis_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

nnbar::RecoAnalysis::RecoAnalysis ( fhicl::ParameterSet const &  p)
explicit

Definition at line 176 of file RecoAnalysis_module.cc.

References _InputShwrLabel, _SampleType, and fhicl::ParameterSet::get().

177  : EDAnalyzer(p) {
178  _InputShwrLabel = "shower:showers";
179  _SampleType = p.get<unsigned int>("SampleType");
180 }
const char * p
Definition: xmltok.h:285
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100

Member Function Documentation

void nnbar::RecoAnalysis::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 296 of file RecoAnalysis_module.cc.

References _ExposureTimeInUSec, _InputShwrLabel, _SampleType, _tAverageEnergyPerHitXView, _tAverageEnergyPerHitYView, _tEventNumber, _tHitCountXYDifference, _tHitVsVertexTimingCorrelation, _tReconVertexT, _tReconVertexX, _tReconVertexY, _tReconVertexZ, _tRunNumber, _tSampleType, _tSliceNumber, _tSubrunNumber, _tTemporalClusterExpand, _tTotalHitCountInXView, _tTotalHitCountInYView, _tTotalVisibleEnergy, _tTrueVertexT, _tTrueVertexX, _tTrueVertexY, _tTrueVertexZ, _VariableTree, AzimuthalAngleFromElasticArmVertexToTrueVertex, AzimuthalAngleFromReconVertexToTrueVertex, art::PtrVector< T >::begin(), distance(), DistanceFromElasticArmVertexToTrueVertex, DistanceFromReconVertexToTrueVertex, art::PtrVector< T >::end(), EnergyRatioFromVertexX, EnergyRatioFromVertexY, EnergyRatioFromVertexZ, art::EventID::event(), art::fill_ptr_vector(), art::DataViewImpl::getByLabel(), rb::RecoHit::GeV(), nnbar::NNbarUtilities::hitCountInView(), HitsXView, HitsYView, art::Event::id(), rb::RecoHit::IsCalibrated(), calib::j, geo::kX, kXorY, geo::kY, kY, OrientationFromElasticArmVertexToTrueVertex, OrientationFromReconVertexToTrueVertex, PolarAngleFromElasticArmVertexToTrueVertex, PolarAngleFromReconVertexToTrueVertex, rb::RecoHit::RecoHit(), art::Event::run(), ana::Sqrt(), art::Event::subRun(), rb::RecoHit::T(), nnbar::NNbarUtilities::temporalExpand(), TimingCorrelation, nnbar::NNbarUtilities::totalVisibleEnergyInView(), rb::RecoHit::X(), rb::RecoHit::Y(), rb::RecoHit::Z(), ZErrorFromElasticArmVertexToTrueVertex, and ZErrorFromReconVertexToTrueVertex.

296  {
297 
298  _ExposureTimeInUSec += 50;
299 
301  std::vector<art::Ptr<simb::MCTruth>> mctruths;
302  if (e.getByLabel("generator", MCTruthHandle))
303  art::fill_ptr_vector(mctruths, MCTruthHandle);
304 
305  double trueVertexX = 0, trueVertexY = 0, trueVertexZ = 0, trueVertexT = 0;
306  for (std::vector<art::Ptr<simb::MCTruth>>::iterator mctruthItr =
307  mctruths.begin();
308  mctruthItr != mctruths.end(); ++mctruthItr) {
309  auto mctruth = *mctruthItr;
310  auto particle = (*mctruth).GetParticle(0);
311  trueVertexX = particle.Vx();
312  trueVertexY = particle.Vy();
313  trueVertexZ = particle.Vz();
314  trueVertexT = particle.T();
315  }
316 
318  std::vector<art::Ptr<rb::Cluster>> clusters;
319  if (e.getByLabel(_InputShwrLabel, clusterHandle))
320  art::fill_ptr_vector(clusters, clusterHandle);
321 
322  art::FindManyP<rb::Vertex> assnClusterVert(clusterHandle, e, "elasticarmshs");
323 
324  // double elasticArmVertT;
325  double elasticArmVertX;
326  double elasticArmVertY;
327  double elasticArmVertZ;
328  unsigned int clusterIdx = 0;
329  for (std::vector<art::Ptr<rb::Cluster>>::iterator clusterItr =
330  clusters.begin();
331  clusterItr != clusters.end(); ++clusterItr) {
332  auto cluster = *clusterItr;
333 
334  art::PtrVector<rb::CellHit> allCells = (*cluster).AllCells();
335 
336  // Conventional Vertex Reconstruction
337  // elasticArmVertT = -1E9;
338  elasticArmVertX = -1E9;
339  elasticArmVertY = -1E9;
340  elasticArmVertZ = -1E9;
341  if (assnClusterVert.isValid()) {
342  std::vector<art::Ptr<rb::Vertex>> vert = assnClusterVert.at(clusterIdx);
343  if (vert.size() != 1)
344  continue;
345  // elasticArmVertT = vert.at(0)->GetT();
346  elasticArmVertX = vert.at(0)->GetX();
347  elasticArmVertY = vert.at(0)->GetY();
348  elasticArmVertZ = vert.at(0)->GetZ();
349  }
350 
351  //--------------------------------------------------------------------------
352 
353  double diff_true_elasticArm_vertex_x = elasticArmVertX - trueVertexX;
354  double diff_true_elasticArm_vertex_y = elasticArmVertY - trueVertexY;
355  double diff_true_elasticArm_vertex_z = elasticArmVertZ - trueVertexZ;
356  double distFromElasticArmVertToTrueVert =
357  TMath::Sqrt(TMath::Power(diff_true_elasticArm_vertex_x, 2) +
358  TMath::Power(diff_true_elasticArm_vertex_y, 2) +
359  TMath::Power(diff_true_elasticArm_vertex_z, 2));
360  double thetaOrientationFromElasticArmVertToTrueVert = TMath::ATan(
361  diff_true_elasticArm_vertex_y / diff_true_elasticArm_vertex_x);
362  double phiOrientationFromElasticArmVertToTrueVert = TMath::ACos(
363  diff_true_elasticArm_vertex_z / distFromElasticArmVertToTrueVert);
364 
366  distFromElasticArmVertToTrueVert);
368  phiOrientationFromElasticArmVertToTrueVert,
369  thetaOrientationFromElasticArmVertToTrueVert);
371  phiOrientationFromElasticArmVertToTrueVert);
373  thetaOrientationFromElasticArmVertToTrueVert);
374 
375  // CONSIDERING THE ENERGY DISTRIBUTION TOPOLOGY
376  double totalE = (*cluster).TotalGeV();
377  double totalEX = 0.;
378  double totalEY = 0.;
379  double totalEnergyOfHitsAboveVertexX = 0.;
380  double totalEnergyOfHitsAboveVertexY = 0.;
381  double totalEnergyOfHitsAboveVertexZ = 0.;
382 
383  // Consider timing correlation
384  std::multimap<double, double> distanceToVertex_relTimingToVertex_Map;
385  unsigned int hitIdx = 0;
386 
387  // Compare distance between true vertex and reconstructed vertex
388  std::multimap<double, double> HitsZ, HitsX, HitsY;
389 
390  for (art::PtrVector<rb::CellHit>::iterator itrCell = allCells.begin();
391  itrCell != allCells.end(); itrCell++) {
392  if ((*itrCell)->View() == geo::View_t::kXorY)
393  continue;
394 
395  bool cIsYView = (*itrCell)->View() == geo::View_t::kY ? true : false;
396  rb::RecoHit recoHit = (*cluster).RecoHit(*itrCell);
397  if (!recoHit.IsCalibrated())
398  continue;
399 
400  double cX = recoHit.X();
401  double cY = recoHit.Y();
402  double cZ = recoHit.Z();
403  // double cT = recoHit.T();
404  double cE = recoHit.GeV();
405 
406  HitsZ.insert(std::pair<double, double>(cZ, cE));
407  if (!cIsYView) {
408  HitsX.insert(std::pair<double, double>(cX, cE));
409  totalEX += cE;
410  } else {
411  HitsY.insert(std::pair<double, double>(cY, cE));
412  totalEY += cE;
413  }
414 
415  // // Consider timing correlation
416  // // Timing correlation with true vertex
417  // double distanceToVertex = TMath::Sqrt(TMath::Power(cX - trueVertexX, 2)
418  // +
419  // TMath::Power(cY - trueVertexY, 2)
420  // + TMath::Power(cZ - trueVertexY,
421  // 2));
422  // double relTimingToVertex = cT - trueVertexT;
423  // distanceToVertex_relTimingToVertex_Map.insert(
424  // std::pair<double, double>(distanceToVertex, relTimingToVertex));
425 
426  if (!cIsYView) {
427  if (cX > trueVertexX)
428  totalEnergyOfHitsAboveVertexX += cE;
429  } else {
430  if (cY > trueVertexY)
431  totalEnergyOfHitsAboveVertexY += cE;
432  }
433  if (cZ > trueVertexZ)
434  totalEnergyOfHitsAboveVertexZ += cE;
435 
436  // COUNTING THE NUMBER OF PRONGS
437  if (!cIsYView) {
438  HitsXView.push_back(std::make_tuple(cZ, cX, cE));
439  } else {
440  HitsYView.push_back(std::make_tuple(cZ, cY, cE));
441  }
442 
443  hitIdx++;
444  }
445 
446  // Compare distance between true vertex and reconstructed vertex
447  double lowerBoundOfMedianZVertex = 0.;
448  double upperBoundOfMedianZVertex = 0.;
449  double halfOfTotalE = 0.;
450  for (auto hit = HitsZ.begin(); hit != HitsZ.end(); hit++) {
451  halfOfTotalE += (*hit).second;
452  if (halfOfTotalE < totalE / 2) {
453  lowerBoundOfMedianZVertex = (*hit).first;
454  upperBoundOfMedianZVertex = (*(hit++)).first;
455  hit--;
456  }
457  }
458  double reconVertexZ =
459  (lowerBoundOfMedianZVertex + upperBoundOfMedianZVertex) / 2.;
460 
461  double lowerBoundOfMedianXVertex = 0.;
462  double upperBoundOfMedianXVertex = 0.;
463  double halfOfTotalEX = 0.;
464  for (auto hit = HitsX.begin(); hit != HitsX.end(); hit++) {
465  halfOfTotalEX += (*hit).second;
466  if (halfOfTotalEX < totalEX / 2) {
467  lowerBoundOfMedianXVertex = (*hit).first;
468  upperBoundOfMedianXVertex = (*(hit++)).first;
469  hit--;
470  }
471  }
472  double reconVertexX =
473  (lowerBoundOfMedianXVertex + upperBoundOfMedianXVertex) / 2.;
474 
475  double lowerBoundOfMedianYVertex = 0.;
476  double upperBoundOfMedianYVertex = 0.;
477  double halfOfTotalEY = 0.;
478  for (auto hit = HitsY.begin(); hit != HitsY.end(); hit++) {
479  halfOfTotalEY += (*hit).second;
480  if (halfOfTotalEY < totalEY / 2) {
481  lowerBoundOfMedianYVertex = (*hit).first;
482  upperBoundOfMedianYVertex = (*(hit++)).first;
483  hit--;
484  }
485  }
486  double reconVertexY =
487  (lowerBoundOfMedianYVertex + upperBoundOfMedianYVertex) / 2.;
488 
489  for (art::PtrVector<rb::CellHit>::iterator itrCell = allCells.begin();
490  itrCell != allCells.end(); itrCell++) {
491  if ((*itrCell)->View() == geo::View_t::kXorY)
492  continue;
493 
494  rb::RecoHit recoHit = (*cluster).RecoHit(*itrCell);
495  if (!recoHit.IsCalibrated())
496  continue;
497 
498  double cX = recoHit.X();
499  double cY = recoHit.Y();
500  double cZ = recoHit.Z();
501  double cT = recoHit.T();
502 
503  // Consider timing correlation
504  // Timing correlation with recon vertex
505  double distanceToVertex = TMath::Sqrt(TMath::Power(cX - reconVertexX, 2) +
506  TMath::Power(cY - reconVertexY, 2) +
507  TMath::Power(cZ - reconVertexZ, 2));
508  double relTimingToVertex = cT;
509  distanceToVertex_relTimingToVertex_Map.insert(
510  std::pair<double, double>(distanceToVertex, relTimingToVertex));
511  }
512 
513  //--------------------------------------------------------------------------
514  // Consider timing correlation
515  // Recon Vertex
516  const unsigned int mapSize = distanceToVertex_relTimingToVertex_Map.size();
517  unsigned int countElem = 0;
518  double *distanceToVertex_array = new double[10];
519  double *relTimingToVertex_array = new double[10];
520  for (auto &elem : distanceToVertex_relTimingToVertex_Map) {
521  if (4 < countElem && countElem < mapSize - 5)
522  continue;
523  *(distanceToVertex_array + countElem) = elem.first;
524  *(relTimingToVertex_array + countElem) = elem.second;
525  countElem++;
526  }
527  // The timing of reconstructed vertex is calculated as the mean timing of
528  // the 5 hits nearest to the vertex.
529  // So this loop find that average timing.
530  double reconVertexT = 0.;
531  for (unsigned int j = 0; j < 5; j++) {
532  reconVertexT += *(relTimingToVertex_array + j);
533  }
534  reconVertexT = reconVertexT / 5;
535  for (unsigned int j = 0; j < 5; j++) {
536  *(relTimingToVertex_array + countElem) =
537  *(relTimingToVertex_array + countElem) - reconVertexT;
538  }
539  TGraph *timingCorrelation =
540  new TGraph(10, distanceToVertex_array, relTimingToVertex_array);
541  double correlationFactor = timingCorrelation->GetCorrelationFactor();
542  TimingCorrelation->Fill(correlationFactor);
543 
544  //--------------------------------------------------------------------------
545 
546  double diff_true_recon_vertex_x = reconVertexX - trueVertexX;
547  double diff_true_recon_vertex_y = reconVertexY - trueVertexY;
548  double diff_true_recon_vertex_z = reconVertexZ - trueVertexZ;
549  double distFromReconVertToTrueVert =
550  TMath::Sqrt(TMath::Power(diff_true_recon_vertex_x, 2) +
551  TMath::Power(diff_true_recon_vertex_y, 2) +
552  TMath::Power(diff_true_recon_vertex_z, 2));
553  double thetaOrientationFromReconVertToTrueVert =
554  TMath::ATan(diff_true_recon_vertex_y / diff_true_recon_vertex_x);
555  double phiOrientationFromReconVertToTrueVert =
556  TMath::ACos(diff_true_recon_vertex_z / distFromReconVertToTrueVert);
557  DistanceFromReconVertexToTrueVertex->Fill(distFromReconVertToTrueVert);
559  phiOrientationFromReconVertToTrueVert,
560  thetaOrientationFromReconVertToTrueVert);
562  phiOrientationFromReconVertToTrueVert);
564  thetaOrientationFromReconVertToTrueVert);
565 
566  // // Consider timing correlation
567  // // True Vertex
568  // const unsigned int mapSize =
569  // distanceToVertex_relTimingToVertex_Map.size(); unsigned int countElem =
570  // 0; double *distanceToVertex_array = new double[10]; double
571  // *relTimingToVertex_array = new double[10]; for (auto &elem :
572  // distanceToVertex_relTimingToVertex_Map) {
573  // if (4 < countElem && countElem < mapSize - 5)
574  // continue;
575  // *(distanceToVertex_array + countElem) = elem.first;
576  // *(relTimingToVertex_array + countElem) = elem.second;
577  // countElem++;
578  // }
579  // TGraph *timingCorrelation =
580  // new TGraph(10, distanceToVertex_array, relTimingToVertex_array);
581  // double correlationFactor = timingCorrelation->GetCorrelationFactor();
582  // TimingCorrelation->Fill(correlationFactor);
583 
584  // CONSIDERING THE ENERGY DISTRIBUTION TOPOLOGY
585  EnergyRatioFromVertexX->Fill(totalEnergyOfHitsAboveVertexX / totalE);
586  EnergyRatioFromVertexY->Fill(totalEnergyOfHitsAboveVertexY / totalE);
587  EnergyRatioFromVertexZ->Fill(totalEnergyOfHitsAboveVertexZ / totalE);
588 
589  // Filling analysis tree
590  _tRunNumber = e.run();
591  _tSubrunNumber = e.subRun();
592  _tEventNumber = e.id().event();
593  _tSliceNumber = std::distance(clusters.begin(), clusterItr);
595  double totVisEX =
597  double totVisEY =
599  _tTotalVisibleEnergy = totVisEX + totVisEY;
600  if (_tTotalVisibleEnergy > 0.8) {
602  TMath::Abs(diff_true_recon_vertex_z));
604  TMath::Abs(diff_true_elasticArm_vertex_z));
605  }
606 
615  _tHitVsVertexTimingCorrelation = correlationFactor;
616  _tReconVertexX = reconVertexX;
617  _tReconVertexY = reconVertexY;
618  _tReconVertexZ = reconVertexZ;
619  _tReconVertexT = reconVertexT;
620  if (_tSampleType != 0) {
621  _tTrueVertexX = trueVertexX;
622  _tTrueVertexY = trueVertexY;
623  _tTrueVertexZ = trueVertexZ;
624  _tTrueVertexT = trueVertexT;
625  } else {
626  _tTrueVertexX = -1.0E9;
627  _tTrueVertexY = -1.0E9;
628  _tTrueVertexZ = -1.0E9;
629  _tTrueVertexT = -1.0E9;
630  }
631  _VariableTree->Fill();
632 
633  clusterIdx++;
634  }
635 
636  HitsXView.clear();
637  HitsYView.clear();
638 }
float T() const
Definition: RecoHit.h:39
TH1D * DistanceFromElasticArmVertexToTrueVertex
TH1D * AzimuthalAngleFromElasticArmVertexToTrueVertex
std::vector< std::tuple< double, double, double > > HitsXView
iterator begin()
Definition: PtrVector.h:223
Definition: geo.h:1
TH1D * PolarAngleFromReconVertexToTrueVertex
Vertical planes which measure X.
Definition: PlaneGeo.h:28
float Z() const
Definition: RecoHit.h:38
std::vector< std::tuple< double, double, double > > HitsYView
TH2D * OrientationFromElasticArmVertexToTrueVertex
unsigned distance(const T &t1, const T &t2)
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
const Var kY([](const caf::SRProxy *sr){float tmp=0.f;if(sr->mc.nu.empty()) return tmp;tmp=sr->mc.nu[0].y;return tmp;})
Calibrated quantities relying on position in the orthogonal view. To generate a rb::CellHit from a rb...
Definition: RecoHit.h:19
TH1D * ZErrorFromElasticArmVertexToTrueVertex
static double hitCountInView(rb::Cluster cluster, geo::View_t aView)
iterator end()
Definition: PtrVector.h:237
TH1D * AzimuthalAngleFromReconVertexToTrueVertex
bool IsCalibrated() const
You MUST check here before accessing PECorr, MIP or GeV.
Definition: RecoHit.cxx:35
const double j
Definition: BetheBloch.cxx:29
reference at(size_type n)
Definition: PtrVector.h:365
data_t::iterator iterator
Definition: PtrVector.h:60
float GeV() const
Definition: RecoHit.cxx:69
Var Sqrt(const Var &v)
Use to take sqrt of a var.
Definition: Var.cxx:326
Definition: structs.h:12
float X() const
Definition: RecoHit.h:36
TH2D * OrientationFromReconVertexToTrueVertex
static double totalVisibleEnergyInView(rb::Cluster cluster, geo::View_t aView)
float Y() const
Definition: RecoHit.h:37
void fill_ptr_vector(std::vector< Ptr< T >> &ptrs, H const &h)
Definition: Ptr.h:464
Float_t e
Definition: plot.C:35
TH1D * PolarAngleFromElasticArmVertexToTrueVertex
static double temporalExpand(rb::Cluster cluster)
void nnbar::RecoAnalysis::beginJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 196 of file RecoAnalysis_module.cc.

References _ExposureTimeInUSec, _tAverageEnergyPerHitXView, _tAverageEnergyPerHitYView, _tEArmVertexT, _tEArmVertexX, _tEArmVertexY, _tEArmVertexZ, _tEventNumber, _tHitCountXYDifference, _tHitVsVertexTimingCorrelation, _tReconVertexT, _tReconVertexX, _tReconVertexY, _tReconVertexZ, _tRunNumber, _tSampleType, _tSliceNumber, _tSubrunNumber, _tTemporalClusterExpand, _tTotalHitCountInXView, _tTotalHitCountInYView, _tTotalVisibleEnergy, _tTrueVertexT, _tTrueVertexX, _tTrueVertexY, _tTrueVertexZ, _VariableTree, AzimuthalAngleFromElasticArmVertexToTrueVertex, AzimuthalAngleFromReconVertexToTrueVertex, DistanceFromElasticArmVertexToTrueVertex, DistanceFromReconVertexToTrueVertex, EnergyRatioFromVertexX, EnergyRatioFromVertexY, EnergyRatioFromVertexZ, art::TFileDirectory::make(), OrientationFromElasticArmVertexToTrueVertex, OrientationFromReconVertexToTrueVertex, PolarAngleFromElasticArmVertexToTrueVertex, PolarAngleFromReconVertexToTrueVertex, TimingCorrelation, ZErrorFromElasticArmVertexToTrueVertex, and ZErrorFromReconVertexToTrueVertex.

196  {
197  _ExposureTimeInUSec = 0.;
198 
200 
201  _VariableTree =
202  tfs->make<TTree>("VariableTree", "NNbar Analysis Variable Tree");
203  _VariableTree->Branch("RunNumber", &_tRunNumber);
204  _VariableTree->Branch("SubrunNumber", &_tSubrunNumber);
205  _VariableTree->Branch("EventNumber", &_tEventNumber);
206  _VariableTree->Branch("SliceNumber", &_tSliceNumber);
207  _VariableTree->Branch("SampleType", &_tSampleType);
208  _VariableTree->Branch("TotalVisibleEnergy", &_tTotalVisibleEnergy);
209  _VariableTree->Branch("TotalHitCountInXView", &_tTotalHitCountInXView);
210  _VariableTree->Branch("TotalHitCountInYView", &_tTotalHitCountInYView);
211  _VariableTree->Branch("HitCountXYDifference", &_tHitCountXYDifference);
212  _VariableTree->Branch("TemporalClusterExpand", &_tTemporalClusterExpand);
213  _VariableTree->Branch("AverageEnergyPerHitXView",
215  _VariableTree->Branch("AverageEnergyPerHitYView",
217  _VariableTree->Branch("HitVsVertexTimingCorrelation",
219  _VariableTree->Branch("TrueVertexX", &_tTrueVertexX);
220  _VariableTree->Branch("TrueVertexY", &_tTrueVertexY);
221  _VariableTree->Branch("TrueVertexZ", &_tTrueVertexZ);
222  _VariableTree->Branch("TrueVertexT", &_tTrueVertexT);
223  _VariableTree->Branch("ReconVertexX", &_tReconVertexX);
224  _VariableTree->Branch("ReconVertexY", &_tReconVertexY);
225  _VariableTree->Branch("ReconVertexZ", &_tReconVertexZ);
226  _VariableTree->Branch("ReconVertexT", &_tReconVertexT);
227  _VariableTree->Branch("EArmVertexX", &_tEArmVertexX);
228  _VariableTree->Branch("EArmVertexY", &_tEArmVertexY);
229  _VariableTree->Branch("EArmVertexZ", &_tEArmVertexZ);
230  _VariableTree->Branch("EArmVertexT", &_tEArmVertexT);
231 
233  tfs->make<TH1D>("EnergyRatioFromVertexX", ";Energy Ratio;", 100, 0, 1);
235  tfs->make<TH1D>("EnergyRatioFromVertexY", ";Energy Ratio;", 100, 0, 1);
237  tfs->make<TH1D>("EnergyRatioFromVertexZ", ";Energy Ratio;", 100, 0, 1);
238 
239  TimingCorrelation = tfs->make<TH1D>(
240  "TimingCorrelation", ";Timing Correlation Factor;", 100, -1.5, 1.5);
241 
243  tfs->make<TH1D>("DistanceFromReconVertexToTrueVertex",
244  ";Vertex Error (cm);", 100, 0, 200);
246  tfs->make<TH1D>("ZErrorFromReconVertexToTrueVertex",
247  ";Vertex Z Error (cm);", 100, 0, 200);
249  tfs->make<TH2D>("OrientationFromReconVertexToTrueVertex", ";#phi;#theta",
250  50, -TMath::Pi(), TMath::Pi(), 50, 0, TMath::Pi());
252  "PolarAngleFromReconVertexToTrueVertex", ";#phi;", 50, -1, 7);
254  "AzimuthalAngleFromReconVertexToTrueVertex", ";#theta;", 50, -2, 2);
255 
257  tfs->make<TH1D>("DistanceFromElasticArmVertexToTrueVertex",
258  ";EArm Vertex Error (cm);", 100, 0, 200);
260  tfs->make<TH1D>("ZErrorFromElasticArmVertexToTrueVertex",
261  ";Vertex Z Error (cm);", 100, 0, 200);
263  "OrientationFromElasticArmVertexToTrueVertex", ";#phi;#theta", 50,
264  -TMath::Pi(), TMath::Pi(), 50, 0, TMath::Pi());
266  "PolarAngleFromElasticArmVertexToTrueVertex", ";#phi;", 50, -1, 7);
268  "AzimuthalAngleFromElasticArmVertexToTrueVertex", ";#theta;", 50, -2, 2);
269 }
TH1D * DistanceFromElasticArmVertexToTrueVertex
TH1D * AzimuthalAngleFromElasticArmVertexToTrueVertex
TH1D * PolarAngleFromReconVertexToTrueVertex
TH2D * OrientationFromElasticArmVertexToTrueVertex
TH1D * ZErrorFromElasticArmVertexToTrueVertex
TH1D * AzimuthalAngleFromReconVertexToTrueVertex
T * make(ARGS...args) const
TH2D * OrientationFromReconVertexToTrueVertex
TH1D * PolarAngleFromElasticArmVertexToTrueVertex
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
void nnbar::RecoAnalysis::endJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 697 of file RecoAnalysis_module.cc.

References _ExposureTimeInUSec, AzimuthalAngleFromElasticArmVertexToTrueVertex, AzimuthalAngleFromReconVertexToTrueVertex, make_mec_shifts_plots::canvas, om::cout, DEFINE_ART_MODULE(), DistanceFromElasticArmVertexToTrueVertex, DistanceFromReconVertexToTrueVertex, allTimeWatchdog::endl, EnergyRatioFromVertexX, EnergyRatioFromVertexY, EnergyRatioFromVertexZ, PolarAngleFromElasticArmVertexToTrueVertex, PolarAngleFromReconVertexToTrueVertex, TimingCorrelation, ZErrorFromElasticArmVertexToTrueVertex, and ZErrorFromReconVertexToTrueVertex.

697  {
698  std::cout << "Exposure Time In USec: " << _ExposureTimeInUSec << std::endl;
699  // gStyle->SetOptStat(0);
700 
701  //----------------------------------------------------------------------------
702 
703  TCanvas *canvas = new TCanvas("canvas", "Canvas", 2400, 800);
704  canvas->Divide(3, 1);
705  canvas->cd(1);
706  EnergyRatioFromVertexX->SetTitle("x");
707  EnergyRatioFromVertexX->Draw();
708  canvas->cd(2);
709  EnergyRatioFromVertexY->SetTitle("y");
710  EnergyRatioFromVertexY->Draw();
711  canvas->cd(3);
712  EnergyRatioFromVertexZ->SetTitle("z");
713  EnergyRatioFromVertexZ->Draw();
714  canvas->SaveAs(Form("EnergyVsTopology.pdf"));
715 
716  TCanvas *canvas_timing =
717  new TCanvas("canvas_timing", "Canvas Timing", 1200, 1200);
718  TimingCorrelation->GetXaxis()->SetTitle("Timing Correlation Factor");
719  TimingCorrelation->GetXaxis()->CenterTitle();
720  TimingCorrelation->GetYaxis()->SetTitle("");
721  TimingCorrelation->GetYaxis()->CenterTitle();
722  TimingCorrelation->Draw("HIST");
723  canvas_timing->SaveAs(Form("TimingCorrelation.pdf"));
724 
725  TCanvas *canvas_vertex_error =
726  new TCanvas("canvas_vertex_error", "Canvas Vertex Error", 2400, 800);
727  canvas_vertex_error->Divide(3, 1);
728  canvas_vertex_error->cd(1);
729  DistanceFromReconVertexToTrueVertex->GetXaxis()->SetTitle(
730  "#deltar_{equale-(v)} (cm)");
731  DistanceFromReconVertexToTrueVertex->GetXaxis()->CenterTitle();
732  DistanceFromReconVertexToTrueVertex->GetYaxis()->SetTitle("");
733  DistanceFromReconVertexToTrueVertex->GetYaxis()->CenterTitle();
735  canvas_vertex_error->cd(2);
736  PolarAngleFromReconVertexToTrueVertex->GetXaxis()->SetTitle(
737  "#phi_{equale-(v)} (rad)");
738  PolarAngleFromReconVertexToTrueVertex->GetXaxis()->CenterTitle();
739  PolarAngleFromReconVertexToTrueVertex->GetYaxis()->SetTitle("");
740  PolarAngleFromReconVertexToTrueVertex->GetYaxis()->CenterTitle();
742  canvas_vertex_error->cd(3);
743  AzimuthalAngleFromReconVertexToTrueVertex->GetXaxis()->SetTitle(
744  "#theta_{equale-(v)} (rad)");
745  AzimuthalAngleFromReconVertexToTrueVertex->GetXaxis()->CenterTitle();
746  AzimuthalAngleFromReconVertexToTrueVertex->GetYaxis()->SetTitle("");
747  AzimuthalAngleFromReconVertexToTrueVertex->GetYaxis()->CenterTitle();
749  canvas_vertex_error->SaveAs(Form("VertexError.pdf"));
750 
751  TCanvas *canvas_earm_vertex_error = new TCanvas(
752  "canvas_earm_vertex_error", "Canvas EArm Vertex Error", 2400, 800);
753  canvas_earm_vertex_error->Divide(3, 1);
754  canvas_earm_vertex_error->cd(1);
755  DistanceFromElasticArmVertexToTrueVertex->GetXaxis()->SetTitle(
756  "#deltar_{earm-(v)} (cm)");
757  DistanceFromElasticArmVertexToTrueVertex->GetXaxis()->CenterTitle();
758  DistanceFromElasticArmVertexToTrueVertex->GetYaxis()->SetTitle("");
759  DistanceFromElasticArmVertexToTrueVertex->GetYaxis()->CenterTitle();
761  canvas_earm_vertex_error->cd(2);
762  PolarAngleFromElasticArmVertexToTrueVertex->GetXaxis()->SetTitle(
763  "#phi_{earm-(v)} (rad)");
764  PolarAngleFromElasticArmVertexToTrueVertex->GetXaxis()->CenterTitle();
765  PolarAngleFromElasticArmVertexToTrueVertex->GetYaxis()->SetTitle("");
766  PolarAngleFromElasticArmVertexToTrueVertex->GetYaxis()->CenterTitle();
768  canvas_earm_vertex_error->cd(3);
770  "#theta_{earm-(v)} (rad)");
771  AzimuthalAngleFromElasticArmVertexToTrueVertex->GetXaxis()->CenterTitle();
772  AzimuthalAngleFromElasticArmVertexToTrueVertex->GetYaxis()->SetTitle("");
773  AzimuthalAngleFromElasticArmVertexToTrueVertex->GetYaxis()->CenterTitle();
775  canvas_earm_vertex_error->SaveAs(Form("EArmVertexError.pdf"));
776 
777  TCanvas *canvas_zvertex_error =
778  new TCanvas("canvas_zvertex_error", "Canvas Z Vertex Error", 2400, 1200);
779  canvas_zvertex_error->Divide(2, 1);
780  canvas_zvertex_error->cd(1);
781  ZErrorFromElasticArmVertexToTrueVertex->GetXaxis()->SetTitle(
782  "#deltaz_{earm-(v)} (cm)");
783  ZErrorFromElasticArmVertexToTrueVertex->GetXaxis()->CenterTitle();
784  ZErrorFromElasticArmVertexToTrueVertex->GetYaxis()->SetTitle("");
785  ZErrorFromElasticArmVertexToTrueVertex->GetYaxis()->CenterTitle();
787  canvas_zvertex_error->cd(2);
788  ZErrorFromReconVertexToTrueVertex->GetXaxis()->SetTitle(
789  "#deltaz_{equale-(v)} (cm)");
790  ZErrorFromReconVertexToTrueVertex->GetXaxis()->CenterTitle();
791  ZErrorFromReconVertexToTrueVertex->GetYaxis()->SetTitle("");
792  ZErrorFromReconVertexToTrueVertex->GetYaxis()->CenterTitle();
793  ZErrorFromReconVertexToTrueVertex->Draw("HIST");
794  canvas_zvertex_error->SaveAs(Form("ZVertexError.pdf"));
795 }
TH1D * DistanceFromElasticArmVertexToTrueVertex
TH1D * AzimuthalAngleFromElasticArmVertexToTrueVertex
TH1D * PolarAngleFromReconVertexToTrueVertex
TH1D * ZErrorFromElasticArmVertexToTrueVertex
TH1D * AzimuthalAngleFromReconVertexToTrueVertex
OStream cout
Definition: OStream.cxx:6
TH1D * PolarAngleFromElasticArmVertexToTrueVertex
void nnbar::RecoAnalysis::evd ( art::Event const &  e,
unsigned int  clusterIdx 
)

Definition at line 640 of file RecoAnalysis_module.cc.

References plot_validation_datamc::c, art::Event::event(), HitsXView, HitsYView, and kRed.

640  {
641 
642  // TGRAPH XVIEW
643  const unsigned int nhit_xview = HitsXView.size();
644  double *x_xv = new double[nhit_xview];
645  double *y_xv = new double[nhit_xview];
646  unsigned int countHitXView = 0;
647  for (auto &hit : HitsXView) {
648  *(x_xv + countHitXView) = std::get<0>(hit);
649  *(y_xv + countHitXView) = std::get<1>(hit);
650  countHitXView++;
651  }
652  TGraph *graph_xv = new TGraph(nhit_xview, x_xv, y_xv);
653 
654  // TGRAPH YVIEW
655  const unsigned int nhit_yview = HitsYView.size();
656  double *x_yv = new double[nhit_yview];
657  double *y_yv = new double[nhit_yview];
658  unsigned int countHitYView = 0;
659  for (auto &hit : HitsYView) {
660  *(x_yv + countHitYView) = std::get<0>(hit);
661  *(y_yv + countHitYView) = std::get<1>(hit);
662  countHitYView++;
663  }
664  TGraph *graph_yv = new TGraph(nhit_yview, x_yv, y_yv);
665 
666  // DRAW
667  TCanvas *c =
668  new TCanvas(Form("c_%i_%i", e.event(), clusterIdx), "", 1200, 1200);
669  c->Divide(1, 2);
670  c->cd(1);
671  graph_xv->SetTitle("");
672  graph_xv->GetXaxis()->SetLimits(0, 6400);
673  graph_xv->GetYaxis()->SetRangeUser(-800, 800);
674  graph_xv->GetXaxis()->SetTitle("z");
675  graph_xv->GetYaxis()->SetTitle("x");
676  graph_xv->GetXaxis()->CenterTitle();
677  graph_xv->GetYaxis()->CenterTitle();
678  graph_xv->SetMarkerColor(kRed);
679  graph_xv->SetMarkerStyle(20);
680  graph_xv->SetMarkerSize(1);
681  graph_xv->Draw("AP");
682  c->cd(2);
683  graph_yv->SetTitle("");
684  graph_yv->GetXaxis()->SetLimits(0, 6400);
685  graph_yv->GetYaxis()->SetRangeUser(-800, 800);
686  graph_yv->GetXaxis()->SetTitle("z");
687  graph_yv->GetYaxis()->SetTitle("y");
688  graph_yv->GetXaxis()->CenterTitle();
689  graph_yv->GetYaxis()->CenterTitle();
690  graph_yv->SetMarkerColor(kRed);
691  graph_yv->SetMarkerStyle(20);
692  graph_yv->SetMarkerSize(1);
693  graph_yv->Draw("AP");
694  c->SaveAs(Form("Plots/EVD_%i_%i.pdf", e.event(), clusterIdx));
695 }
enum BeamMode kRed
std::vector< std::tuple< double, double, double > > HitsXView
std::vector< std::tuple< double, double, double > > HitsYView
Definition: structs.h:12
Float_t e
Definition: plot.C:35
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
double nnbar::RecoAnalysis::HozVertex ( std::vector< std::tuple< double, double, double >>  HitCollectionSingleView,
double  vertexZ 
)
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
TGraph * nnbar::RecoAnalysis::PlotVectorPoint ( std::vector< point2d_t pts)

Definition at line 271 of file RecoAnalysis_module.cc.

References MECModelEnuComparisons::i, gen_flatrecord::pt, submit_syst::x, and submit_syst::y.

271  {
272  double *x = new double[pts.size()];
273  double *y = new double[pts.size()];
274 
275  size_t i = 0;
276  for (auto &pt : pts) {
277  *(x + i) = pt.first;
278  *(y + i) = pt.second;
279  i++;
280  }
281 
282  TGraph *graph = new TGraph(pts.size(), x, y);
283  return graph;
284 }
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
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.

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().

double nnbar::RecoAnalysis::slopeAngleOfLineConnect2Points ( point2d_t  pA,
point2d_t  pB 
)

Definition at line 286 of file RecoAnalysis_module.cc.

287  {
288  double xa = pA.first;
289  double ya = pA.second;
290  double xb = pB.first;
291  double yb = pB.second;
292 
293  return TMath::ATan((ya - yb) / (xa - xb));
294 }
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

double nnbar::RecoAnalysis::_ExposureTimeInUSec
private

Definition at line 124 of file RecoAnalysis_module.cc.

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

art::InputTag nnbar::RecoAnalysis::_InputShwrLabel
private

Definition at line 125 of file RecoAnalysis_module.cc.

Referenced by analyze(), and RecoAnalysis().

unsigned int nnbar::RecoAnalysis::_SampleType
private

Definition at line 126 of file RecoAnalysis_module.cc.

Referenced by analyze(), and RecoAnalysis().

double nnbar::RecoAnalysis::_tAverageEnergyPerHitXView
private

Definition at line 139 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tAverageEnergyPerHitYView
private

Definition at line 140 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tEArmVertexT
private

Definition at line 153 of file RecoAnalysis_module.cc.

Referenced by beginJob().

double nnbar::RecoAnalysis::_tEArmVertexX
private

Definition at line 150 of file RecoAnalysis_module.cc.

Referenced by beginJob().

double nnbar::RecoAnalysis::_tEArmVertexY
private

Definition at line 151 of file RecoAnalysis_module.cc.

Referenced by beginJob().

double nnbar::RecoAnalysis::_tEArmVertexZ
private

Definition at line 152 of file RecoAnalysis_module.cc.

Referenced by beginJob().

unsigned int nnbar::RecoAnalysis::_tEventNumber
private

Definition at line 131 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tHitCountXYDifference
private

Definition at line 138 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tHitVsVertexTimingCorrelation
private

Definition at line 141 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tReconVertexT
private

Definition at line 149 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tReconVertexX
private

Definition at line 146 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tReconVertexY
private

Definition at line 147 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tReconVertexZ
private

Definition at line 148 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

unsigned int nnbar::RecoAnalysis::_tRunNumber
private

Definition at line 129 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

unsigned int nnbar::RecoAnalysis::_tSampleType
private

Definition at line 133 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

unsigned int nnbar::RecoAnalysis::_tSliceNumber
private

Definition at line 132 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

unsigned int nnbar::RecoAnalysis::_tSubrunNumber
private

Definition at line 130 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTemporalClusterExpand
private

Definition at line 135 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTotalHitCountInXView
private

Definition at line 136 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTotalHitCountInYView
private

Definition at line 137 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTotalVisibleEnergy
private

Definition at line 134 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTrueVertexT
private

Definition at line 145 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTrueVertexX
private

Definition at line 142 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTrueVertexY
private

Definition at line 143 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

double nnbar::RecoAnalysis::_tTrueVertexZ
private

Definition at line 144 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

TTree* nnbar::RecoAnalysis::_VariableTree
private

Definition at line 128 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

TH1D* nnbar::RecoAnalysis::AzimuthalAngleFromElasticArmVertexToTrueVertex
private

Definition at line 171 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::AzimuthalAngleFromReconVertexToTrueVertex
private

Definition at line 165 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::DistanceFromElasticArmVertexToTrueVertex
private

Definition at line 167 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::DistanceFromReconVertexToTrueVertex
private

Definition at line 161 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::EnergyRatioFromVertexX
private

Definition at line 155 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::EnergyRatioFromVertexY
private

Definition at line 156 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::EnergyRatioFromVertexZ
private

Definition at line 157 of file RecoAnalysis_module.cc.

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

std::vector<std::tuple<double, double, double> > nnbar::RecoAnalysis::HitsXView
private

Definition at line 173 of file RecoAnalysis_module.cc.

Referenced by analyze(), and evd().

std::vector<std::tuple<double, double, double> > nnbar::RecoAnalysis::HitsYView
private

Definition at line 173 of file RecoAnalysis_module.cc.

Referenced by analyze(), and evd().

TH2D* nnbar::RecoAnalysis::OrientationFromElasticArmVertexToTrueVertex
private

Definition at line 169 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

TH2D* nnbar::RecoAnalysis::OrientationFromReconVertexToTrueVertex
private

Definition at line 163 of file RecoAnalysis_module.cc.

Referenced by analyze(), and beginJob().

TH1D* nnbar::RecoAnalysis::PolarAngleFromElasticArmVertexToTrueVertex
private

Definition at line 170 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::PolarAngleFromReconVertexToTrueVertex
private

Definition at line 164 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::TimingCorrelation
private

Definition at line 159 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::ZErrorFromElasticArmVertexToTrueVertex
private

Definition at line 168 of file RecoAnalysis_module.cc.

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

TH1D* nnbar::RecoAnalysis::ZErrorFromReconVertexToTrueVertex
private

Definition at line 162 of file RecoAnalysis_module.cc.

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


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