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

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

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

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

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

Private Member Functions

template<class T >
void check (T &hists, std::string hist_name)
 
template<class T >
void tset (T &tree, std::string const branch_name, double const value)
 
double calculate_time_overlap (double ddt_entry_time, double ddt_exit_time, double mc_entry_time, double mc_exit_time) const
 
void initialize_event_counter ()
 
void fill (std::string name, double value)
 
void fill (std::string name, std::string label, double weight)
 
void fill (std::string name, std::vector< double > const &values)
 
void fill (std::string name, double x_value, double y_value)
 
void fill_hit_tree (std::vector< art::Ptr< rb::CellHit > > const &hitptrs)
 
void fill_track_tree (std::vector< Track > const &tracks, art::Event const &e)
 
TVector3 get_position (sim::FLSHit const &hit) const
 
void make_histo (std::string const name, std::string const title, Binning1 const &bin)
 
void make_histo (std::string const name, std::string const title, Binning2 const &bin)
 
double phi (sim::Particle const *particle) const
 
void print_truth_info (art::Event const &e, bool const &print_hit_details) const
 
double theta (sim::Particle const *particle) const
 

Private Attributes

bool fill_track_tree_
 
bool fill_hit_tree_
 
const double branch_default_value_
 
const double to_degrees_
 
std::vector< std::stringsmt_parameter_names_
 
std::vector< std::stringsmt_track_parameter_names_
 
TTree * event_tree_
 
TTree * track_tree_
 
TTree * hit_tree_
 
TTree * rate_tree_
 
std::map< std::string, double > et_
 
std::map< std::string, double > tt_
 
std::map< std::string, double > ht_
 
std::map< std::string, double > rt_
 
std::map< std::string, TH1 * > h1_
 
std::map< std::string, TH2 * > h2_
 
art::ServiceHandle< art::TFileServicetfs_
 
art::ServiceHandle< cheat::BackTrackerbt_
 
art::ServiceHandle< geo::Geometrygeo_
 

Detailed Description

Definition at line 55 of file SlowMonopoleAna_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

mono::SlowMonopoleAna::SlowMonopoleAna ( fhicl::ParameterSet const &  p)
explicit

Definition at line 123 of file SlowMonopoleAna_module.cc.

123  :
124  EDAnalyzer(p),
125  fill_track_tree_(p.get<bool>("fill_track_tree")),
126  fill_hit_tree_(p.get<bool>("fill_hit_tree")),
127  branch_default_value_(-9999),
128  to_degrees_(180.0 / TMath::Pi())
129 {}
const char * p
Definition: xmltok.h:285
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
mono::SlowMonopoleAna::SlowMonopoleAna ( SlowMonopoleAna const &  )
delete
mono::SlowMonopoleAna::SlowMonopoleAna ( SlowMonopoleAna &&  )
delete

Member Function Documentation

void mono::SlowMonopoleAna::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 293 of file SlowMonopoleAna_module.cc.

References ana::assert(), compare_h5_caf::branch, branch_default_value_, bt_, calculate_time_overlap(), om::cerr, om::cout, d, allTimeWatchdog::endl, et_, art::Event::event(), event_tree_, art::Handle< T >::failedToGet(), fill(), get_position(), art::DataViewImpl::getByLabel(), sim::FLSHit::GetEntryT(), cheat::BackTracker::HaveTruthInfo(), simb::MCParticle::Mass(), mono::Configuration::max_plane_gap_cut, simb::MCParticle::P(), cheat::BackTracker::ParticleNavigator(), cheat::BackTracker::ParticleToFLSHit(), phi(), sim::ParticleNavigator::Primary(), rate_tree_, rt_, art::Event::run(), sim::ParticleNavigator::size(), mono::Configuration::sparsification_factor, art::Event::subRun(), theta(), simb::MCParticle::TrackId(), and tset().

294 {
295  //
296  // Extract Objects from the Event
297  //
298  // High ADC Filtered Hits
299  art::Handle<novaddt::HitList> ddt_hits_handle;
300  e.getByLabel("smmhighadcfilter", "HEHits", ddt_hits_handle);
301 
302  // Raw Trigger Header
304  e.getByLabel("daq", raw_triggers);
305  assert(raw_triggers->size() == 1);
306  unsigned long long
307  event_time(raw_triggers->at(0).fTriggerTimingMarker_TimeStart);
308  uint32_t event_length(raw_triggers->at(0).fTriggerRange_TriggerLength);
309  // uint32_t extra_info(raw_triggers->front().fTriggerHeader_SourceSubID);
310  // std::bitset<novaddt::smt::Extra_Info::BITSET_SIZE> extra_bits(extra_info);
311 
312  // Offline Cell Hits
313  // art::Handle<std::vector<rb::CellHit> > hits;
314  // e.getByLabel("calhit", hits);
315  // std::vector<art::Ptr<rb::CellHit> > hitptrs;
316  // for (unsigned i = 0; i < hits->size(); ++i)
317  // hitptrs.emplace_back(hits, i);
318 
319  // MC Information
321  e.getByLabel("geantgen", mc_particles);
322 
323  // DDT Trigger Decisions
325  e.getByLabel("slowmonopoletrigger", ddt_decisions);
326 
327 
328 
329 
330  // parse extra_info and print to screen
331  // std::cout << "MF: extra_info = " << extra_info << std::endl;
332  // std::cout << "MF: extra_bits = " << extra_bits << std::endl;
333  // if (extra_bits.test(novaddt::smt::Extra_Info::INVALID_OLD_DEFAULT_BIT))
334  // std::cout << "MF: extra_info is invalid (i.e. set to old default)"
335  // << std::endl;
336  // else
337  // std::cout << "MF: (Check, Timeout, Invalid) = (" << std::boolalpha
338  // << extra_bits.test(novaddt::smt::Extra_Info::CHECK_BIT)
339  // << ", " << extra_bits.test(novaddt::smt::Extra_Info::TIMEOUT_BIT)
340  // << ", " << extra_bits.
341  // test(novaddt::smt::Extra_Info::INVALID_OLD_DEFAULT_BIT)
342  // << ")" << std::endl;
343 
344 
345 
346  //
347  // Run the Local Trigger
348  //
349  std::map<std::string, std::vector<novaddt::TriggerDecision> > decisions;
350  if (!ddt_decisions.failedToGet())
351  decisions["ddt"] = *ddt_decisions;
352 
353  Configuration global_config;
354  global_config.max_plane_gap_cut = 30;
355  global_config.sparsification_factor = 10;
356  // SlowMonopoleTrigger smt(*ddt_hits_handle, event_time, global_config);
357  // decisions["mf"] = smt.mf_trigger_decisions();
358 
359  std::map<int, unsigned> triggers;
360  // triggers[global_config.max_plane_gap_cut] = smt.trigger_decisions().size();
361 
362  // print_truth_info(e, true);
363 
364 
365 
366  //
367  // Fill Trees
368  //
369  // Event-Based Tree
370  for (auto & branch : et_)
371  branch.second = branch_default_value_;
372 
373  tset(et_, "run_number", e.run());
374  tset(et_, "subrun_number", e.subRun());
375  tset(et_, "event_number", e.event());
376  tset(et_, "event_length", event_length);
377 
378  tset(et_, "max_plane_gap_cut", global_config.max_plane_gap_cut);
379  tset(et_, "sparsification_factor", global_config.sparsification_factor);
380 
381  tset(et_, "n_hits", ddt_hits_handle->size());
382 
383  // for (auto const& p_name : smt_parameter_names_)
384  // if (smt.parameter_exists(p_name))
385  // tset(et_, p_name, smt.parameter(p_name));
386 
387  for (auto d : decisions)
388  {
389  tset(et_, d.first + "_trigger_decisions", d.second.size());
390 
391  if (d.second.size() > 0)
392  {
393  std::cout << "MF: " << d.first + "_trigger_length = "
394  << d.second.front().duration() << std::endl;
395  tset(et_, d.first + "_trigger_length", d.second.front().duration());
396  }
397  }
398 
399  float ddt_entry_time(0.0), ddt_exit_time(0.0);
400  if (!ddt_decisions.failedToGet() && !ddt_decisions->empty())
401  {
402  ddt_entry_time = ddt_decisions->front().start() - event_time;
403  ddt_exit_time = ddt_entry_time + ddt_decisions->front().duration();
404 
405  // convert to ns
406  float conversion_factor = 1e9 / 64e6;
407  ddt_entry_time *= conversion_factor;
408  ddt_exit_time *= conversion_factor;
409 
410  tset(et_, "ddt_entry_time_ns", ddt_entry_time);
411  tset(et_, "ddt_exit_time_ns", ddt_exit_time);
412  }
413 
414  if (bt_->HaveTruthInfo())
415  {
416  tset(et_, "is_mc", true);
417 
419  tset(et_, "mc_n_particles", pn.size());
420  if (pn.size() == 1)
421  {
422  sim::Particle const* particle = pn.Primary(0);
423  unsigned const trajectory = 0;
424 
425  tset(et_, "mc_phi", phi(particle));
426  tset(et_, "mc_theta", theta(particle));
427  tset(et_, "mc_beta", particle->P(trajectory) / particle->Mass());
428 
429  std::vector<sim::FLSHit> fls_hits =
430  bt_->ParticleToFLSHit(particle->TrackId());
431  tset(et_, "mc_n_hits", fls_hits.size());
432 
433  std::sort(fls_hits.begin(), fls_hits.end(),
434  [](sim::FLSHit const& lhs, sim::FLSHit const& rhs)
435  { return lhs.GetEntryT() < rhs.GetEntryT(); });
436 
437  auto entry_hit = fls_hits.front();
438  auto exit_hit = fls_hits.back();
439 
440 
441  // Monopole Distance
442  TVector3 entry_position = get_position(entry_hit);
443  std::cout << "MF: entry (x, y, z, plane, cell) = ("
444  << entry_position.x()
445  << ", " << entry_position.y()
446  << ", " << entry_position.z()
447  << ", " << entry_hit.GetPlaneID()
448  << ", " << entry_hit.GetCellID()
449  << ")" << std::endl;
450  TVector3 exit_position = get_position(exit_hit);
451  std::cout << "MF: exit (x, y, z, plane, cell) = ("
452  << exit_position.x()
453  << ", " << exit_position.y()
454  << ", " << exit_position.z()
455  << ", " << exit_hit.GetPlaneID()
456  << ", " << exit_hit.GetCellID()
457  << ")" << std::endl;
458  TVector3 track = exit_position - entry_position;
459  tset(et_, "mc_length", track.Mag());
460  std::cout << "MF: (dx, dy, dz, length) = ("
461  << track.x()
462  << ", " << track.y()
463  << ", " << track.z()
464  << ", " << track.Mag()
465  << ")" << std::endl;
466 
467 
468  // Monopole Timing
469  float mc_entry_time = entry_hit.GetEntryT();
470  float mc_exit_time = exit_hit.GetExitT();
471  tset(et_, "mc_entry_time_ns", mc_entry_time);
472  tset(et_, "mc_exit_time_ns", mc_exit_time);
473 
474  if (!ddt_decisions.failedToGet() && !ddt_decisions->empty())
475  {
476  double time_overlap = calculate_time_overlap
477  (ddt_entry_time, ddt_exit_time, mc_entry_time, mc_exit_time);
478 
479  double overlap_fraction = time_overlap / (mc_exit_time - mc_entry_time);
480  tset(et_, "mc_ddt_missed_fraction", 1 - overlap_fraction);
481  }
482  } else {
483  std::cerr << "\n\tParticle navigator contains "
484  << pn.size() << " particles.\n"
485  << std::endl;
486  }
487  } else {
488  tset(et_, "is_mc", false);
489  }
490 
491  event_tree_->Fill();
492 
493  // Track-Based Tree
494  // if (fill_track_tree_)
495  // fill_track_tree(tracks, e);
496 
497  // Hit-Based Tree
498  // if (fill_hit_tree_)
499  // fill_hit_tree(hitptrs);
500 
501  // Rate Tree
502  for (auto const& trig : triggers)
503  {
504  for (auto & branch : rt_)
505  branch.second = branch_default_value_;
506 
507  tset(rt_, "event_length", event_length);
508  tset(rt_, "max_plane_gap_cut", trig.first);
509  tset(rt_, "trigger", trig.second);
510 
511  std::cout << "MF: Ana: (Plane Cut, MF Trigger) = ("
512  << trig.first << ", " << trig.second << ")"
513  << std::endl;
514 
515  rate_tree_->Fill();
516  }
517 
518 
519 
520  //
521  // Fill Histograms
522  //
523  fill("event_counter", "all", 1);
524 
525  if (ddt_hits_handle->size() == 0)
526  fill("event_counter", "empty", 1);
527 
528  for (auto d : decisions)
529  {
530  if (d.second.size() >= 1)
531  fill("event_counter", d.first + " triggered", 1);
532 
533  if (d.second.size() > 1)
534  fill("event_counter", "multiple " + d.first + " triggered", 1);
535  }
536 }
const sim::ParticleNavigator & ParticleNavigator() const
Get a reference to the ParticleNavigator.
Definition: BackTracker.h:744
size_type size() const
std::vector< sim::FLSHit > ParticleToFLSHit(const int &trackID) const
All the FLSHits that were created by the track id trackID, sorted from most to least light...
double Mass() const
Definition: MCParticle.h:238
Definition: event.h:19
OStream cerr
Definition: OStream.cxx:7
A single unit of energy deposition in the liquid scintillator.
Definition: FLSHit.h:19
double phi(sim::Particle const *particle) const
TVector3 get_position(sim::FLSHit const &hit) const
int TrackId() const
Definition: MCParticle.h:209
const sim::Particle * Primary(const int) const
double P(const int i=0) const
Definition: MCParticle.h:233
void fill(std::string name, double value)
Float_t d
Definition: plot.C:236
std::map< std::string, double > et_
void tset(T &tree, std::string const branch_name, double const value)
double theta(sim::Particle const *particle) const
art::ServiceHandle< cheat::BackTracker > bt_
OStream cout
Definition: OStream.cxx:6
float GetEntryT() const
Definition: FLSHit.h:51
double calculate_time_overlap(double ddt_entry_time, double ddt_exit_time, double mc_entry_time, double mc_exit_time) const
bool HaveTruthInfo() const
Is this a file with truth info in? (Is BackTracker going to be any use to you?)
Definition: BackTracker.h:133
assert(nhit_max >=nhit_nbins)
Float_t e
Definition: plot.C:35
std::map< std::string, double > rt_
bool failedToGet() const
Definition: Handle.h:196
void mono::SlowMonopoleAna::beginJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 133 of file SlowMonopoleAna_module.cc.

References et_, event_tree_, hit_tree_, ht_, initialize_event_counter(), art::TFileDirectory::make(), make_histo(), rate_tree_, rt_, smt_parameter_names_, smt_track_parameter_names_, tfs_, track_tree_, and tt_.

134 {
136  { "algorithm_time" };
137 
139  { "contains_gap_exceeding_cut", "plane_set_size", "cell_set_size",
140  "max_plane_gap", "max_cell_gap",
141  "counts_all", "counts_checked",
142  "counts_after_t_max_cell", "counts_after_t_max_plane" };
143 
144 
145  //
146  // Trees
147  //
148  // Event-Based Tree
149  std::vector<std::string> event_tree_names =
150  { "run_number", "subrun_number", "event_number", "event_length",
151  "n_hits", "n_tracks",
152  "ddt_trigger_decisions", "trigger_decisions",
153  "ddt_trigger_length", "trigger_length",
154  "is_mc", "mc_phi", "mc_theta", "mc_beta", "mc_n_particles",
155  "mc_entry_time_ns", "mc_exit_time_ns", "mc_n_hits", "mc_length",
156  "ddt_entry_time_ns", "ddt_exit_time_ns", "mc_ddt_missed_fraction",
157  "max_plane_gap_cut", "sparsification_factor" };
158  event_tree_names.insert(event_tree_names.end(),
159  smt_parameter_names_.begin(),
160  smt_parameter_names_.end());
161 
162  event_tree_ = tfs_->make<TTree>("Event", "Monopole Event Tree");
163  for (auto const& name : event_tree_names)
164  event_tree_->Branch(name.c_str(), &et_[name], (name + "/D").c_str());
165 
166  // Track-Based Tree
167  std::vector<std::string> track_tree_names =
168  { "run_number", "subrun_number", "event_number", "track_number",
169  "distance", "velocity", "vpro", "distance_in_cm", "beta",
170  "min_plane", "max_plane", "plane_difference", "max_plane_gap",
171  "min_cell", "max_cell", "is_good" };
172  track_tree_names.insert(track_tree_names.end(),
175 
176  track_tree_ = tfs_->make<TTree>("Track", "Monopole Track Tree");
177  for (auto const& name : track_tree_names)
178  track_tree_->Branch(name.c_str(), &tt_[name], (name + "/D").c_str());
179 
180  // Hit-Based Tree
181  std::vector<std::string> hit_tree_names =
182  { "view", "plane", "cell", "tns", "adc",
183  "mc_pdg", "mc_edep", "mc_path_length" };
184  hit_tree_ = tfs_->make<TTree>("Hit", "Monopole Hit Tree");
185  for (auto const& name : hit_tree_names)
186  hit_tree_->Branch(name.c_str(), &ht_[name], (name + "/D").c_str());
187 
188  // Rate Tree
189  std::vector<std::string> rate_tree_names =
190  { "trigger", "max_plane_gap_cut", "event_length" };
191  rate_tree_ = tfs_->make<TTree>("Rate", "Monopole Trigger Rate Tree");
192  for (auto const& name : rate_tree_names)
193  rate_tree_->Branch(name.c_str(), &rt_[name], (name + "/D").c_str());
194 
195 
196  //
197  // Histograms
198  //
199  make_histo("event_counter", "Event Counts", Binning1(10, 0, 10));
201 }
const XML_Char * name
Definition: expat.h:151
art::ServiceHandle< art::TFileService > tfs_
std::vector< std::string > smt_track_parameter_names_
std::map< std::string, double > ht_
void make_histo(std::string const name, std::string const title, Binning1 const &bin)
std::tuple< unsigned, double, double > Binning1
std::map< std::string, double > et_
T * make(ARGS...args) const
std::map< std::string, double > tt_
std::vector< std::string > smt_parameter_names_
std::map< std::string, double > rt_
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_
double mono::SlowMonopoleAna::calculate_time_overlap ( double  ddt_entry_time,
double  ddt_exit_time,
double  mc_entry_time,
double  mc_exit_time 
) const
private

Definition at line 541 of file SlowMonopoleAna_module.cc.

References fetch_tb_beamline_files::end_time, allTimeWatchdog::endl, art::errors::LogicError, and makeHTMLView::start_time.

Referenced by analyze().

543 {
544  double end_time(0);
545  if (ddt_exit_time > mc_entry_time && mc_exit_time > ddt_exit_time)
546  end_time = ddt_exit_time;
547  else if (ddt_exit_time > mc_exit_time)
548  end_time = mc_exit_time;
549  else if (mc_entry_time > ddt_exit_time)
550  return 0.0;
551  else
553  << "Monopole/SlowMonopoleAna_module.cc\n"
554  << "There is a DDT/MC overlap configuration that we have not handled"
555  << std::endl;
556 
557  double start_time(0);
558  if (ddt_entry_time > mc_entry_time && mc_exit_time > ddt_entry_time)
559  start_time = ddt_entry_time;
560  else if (mc_entry_time > ddt_entry_time)
561  start_time = mc_entry_time;
562  else if (ddt_entry_time > mc_exit_time)
563  return 0.0;
564  else
566  << "Monopole/SlowMonopoleAna_module.cc\n"
567  << "There is a DDT/MC overlap configuration that we have not handled"
568  << std::endl;
569 
570  return end_time - start_time;
571 }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
template<class T >
void mono::SlowMonopoleAna::check ( T hists,
std::string  hist_name 
)
private

Definition at line 111 of file SlowMonopoleAna_module.cc.

References ana::assert(), om::cerr, and allTimeWatchdog::endl.

Referenced by fill().

112 {
113  if (hists.find(hist_name) == hists.end())
114  {
115  std::cerr << "\n\t Histogram " << hist_name << " does not exist! \n"
116  << std::endl;
117  assert(false);
118  }
119 }
OStream cerr
Definition: OStream.cxx:7
TString hists[nhists]
Definition: bdt_com.C:3
assert(nhit_max >=nhit_nbins)
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 mono::SlowMonopoleAna::fill ( std::string  name,
double  value 
)
private

Definition at line 239 of file SlowMonopoleAna_module.cc.

References check(), and h1_.

Referenced by analyze(), fill(), and initialize_event_counter().

240 {
241  check(h1_, name);
242  h1_[name]->Fill(value);
243 }
const XML_Char * name
Definition: expat.h:151
void check(T &hists, std::string hist_name)
const XML_Char int const XML_Char * value
Definition: expat.h:331
std::map< std::string, TH1 * > h1_
void mono::SlowMonopoleAna::fill ( std::string  name,
std::string  label,
double  weight 
)
private

Definition at line 248 of file SlowMonopoleAna_module.cc.

References check(), fill(), h1_, and ana::weight.

249 {
250  check(h1_, name);
251  h1_[name]->Fill(label.c_str(), weight);
252 }
const XML_Char * name
Definition: expat.h:151
void check(T &hists, std::string hist_name)
const Var weight
const char * label
std::map< std::string, TH1 * > h1_
void mono::SlowMonopoleAna::fill ( std::string  name,
std::vector< double > const &  values 
)
private

Definition at line 257 of file SlowMonopoleAna_module.cc.

References check(), fill(), and h1_.

258 {
259  check(h1_, name);
260 
261  for (auto const& value : values)
262  h1_[name]->Fill(value);
263 }
const XML_Char * name
Definition: expat.h:151
void check(T &hists, std::string hist_name)
const XML_Char int const XML_Char * value
Definition: expat.h:331
std::map< std::string, TH1 * > h1_
void mono::SlowMonopoleAna::fill ( std::string  name,
double  x_value,
double  y_value 
)
private

Definition at line 268 of file SlowMonopoleAna_module.cc.

References check(), h2_, and tset().

269 {
270  check(h2_, name);
271  h2_[name]->Fill(x_value, y_value);
272 }
const XML_Char * name
Definition: expat.h:151
void check(T &hists, std::string hist_name)
std::map< std::string, TH2 * > h2_
void mono::SlowMonopoleAna::fill_hit_tree ( std::vector< art::Ptr< rb::CellHit > > const &  hitptrs)
private

Definition at line 642 of file SlowMonopoleAna_module.cc.

References compare_h5_caf::branch, branch_default_value_, bt_, om::cout, allTimeWatchdog::endl, hit_tree_, cheat::BackTracker::HitToFLSHit(), ht_, print_truth_info(), and tset().

Referenced by fill_track_tree().

643 {
644  for (auto const& hitptr : hitptrs)
645  {
646  for (auto & branch : ht_)
647  branch.second = branch_default_value_;
648 
649  tset(ht_, "view", hitptr->View());
650  tset(ht_, "plane", hitptr->Plane());
651  tset(ht_, "cell", hitptr->Cell());
652  tset(ht_, "tns", hitptr->TNS());
653  tset(ht_, "adc", hitptr->ADC());
654 
655  if (hitptr->IsMC())
656  {
657  const std::vector<sim::FLSHit> fls_hits = bt_->HitToFLSHit(hitptr);
658 
659  if (fls_hits.size() >= 2)
660  for (auto const& hit: fls_hits)
661  std::cout << "MF: \t FLS Hit PDG = " << hit.GetPDG() << std::endl;
662 
663  if (fls_hits.size() >= 1)
664  {
665  auto fls_hit = fls_hits.front();
666  tset(ht_, "mc_pdg", fls_hit.GetPDG());
667  tset(ht_, "mc_edep", fls_hit.GetEdep());
668  tset(ht_, "mc_path_length", fls_hit.GetTotalPathLength());
669  }
670  }
671 
672  hit_tree_->Fill();
673  }
674 }
std::map< std::string, double > ht_
std::vector< sim::FLSHit > HitToFLSHit(const rb::CellHit &hit) const
All the FLSHits that contributed to this hit, sorted from most to least light.
void tset(T &tree, std::string const branch_name, double const value)
art::ServiceHandle< cheat::BackTracker > bt_
OStream cout
Definition: OStream.cxx:6
Definition: structs.h:12
void mono::SlowMonopoleAna::fill_track_tree ( std::vector< Track > const &  tracks,
art::Event const &  e 
)
private

Definition at line 606 of file SlowMonopoleAna_module.cc.

References compare_h5_caf::branch, branch_default_value_, art::Event::event(), fill_hit_tree(), art::Event::run(), smt_track_parameter_names_, art::Event::subRun(), track_tree_, tset(), and tt_.

Referenced by theta().

607 {
608  unsigned track_number = 0;
609  for (auto const& track : tracks)
610  {
611  for (auto & branch : tt_)
612  branch.second = branch_default_value_;
613 
614  tset(tt_, "run_number", e.run());
615  tset(tt_, "subrun_number", e.subRun());
616  tset(tt_, "event_number", e.event());
617  tset(tt_, "track_number", ++track_number);
618 
619  tset(tt_, "distance", track.distance());
620  tset(tt_, "velocity", track.velocity());
621  tset(tt_, "beta", track.beta());
622 
623  tset(tt_, "min_plane", track.min_plane());
624  tset(tt_, "max_plane", track.max_plane());
625  tset(tt_, "plane_difference", track.plane_difference());
626 
627  tset(tt_, "min_cell", track.min_cell());
628  tset(tt_, "max_cell", track.max_cell());
629 
630  tset(tt_, "is_good", track.is_good());
631 
632  for (auto const& name : smt_track_parameter_names_)
633  tset(tt_, name, track.get(name));
634 
635  track_tree_->Fill();
636  }
637 }
const XML_Char * name
Definition: expat.h:151
std::vector< std::string > smt_track_parameter_names_
Definition: event.h:19
void tset(T &tree, std::string const branch_name, double const value)
std::map< std::string, double > tt_
Float_t e
Definition: plot.C:35
TVector3 mono::SlowMonopoleAna::get_position ( sim::FLSHit const &  hit) const
private

Definition at line 575 of file SlowMonopoleAna_module.cc.

References geo_, sim::FLSHit::GetCellID(), sim::FLSHit::GetPlaneID(), sim::FLSHit::GetZAverage(), geo::GeometryBase::Plane(), and fillBadChanDBTables::result.

Referenced by analyze().

576 {
577  TVector3 result;
578  geo_->Plane(hit.GetPlaneID())->Cell(hit.GetCellID())->
579  GetCenter(result, hit.GetZAverage());
580 
581  return result;
582 }
const PlaneGeo * Plane(unsigned int i) const
art::ServiceHandle< geo::Geometry > geo_
Definition: structs.h:12
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
void mono::SlowMonopoleAna::initialize_event_counter ( )
private

Definition at line 226 of file SlowMonopoleAna_module.cc.

References fill(), and gen_hdf5record::names.

Referenced by beginJob().

227 {
228  const std::vector<std::string> names =
229  { "all", "ddt triggered", "mf triggered", "empty",
230  "multiple ddt triggers", "multiple mf triggers" };
231 
232  for (auto const& name : names)
233  fill("event_counter", name, 0);
234 }
const XML_Char * name
Definition: expat.h:151
void fill(std::string name, double value)
void mono::SlowMonopoleAna::make_histo ( std::string const  name,
std::string const  title,
Binning1 const &  bin 
)
private

Definition at line 206 of file SlowMonopoleAna_module.cc.

References bin, h1_, art::TFileDirectory::make(), and tfs_.

Referenced by beginJob().

207 {
208  h1_[name] = tfs_->make<TH1D>
209  (name.c_str(), title.c_str(),
210  std::get<0>(bin), std::get<1>(bin), std::get<2>(bin));
211 }
const XML_Char * name
Definition: expat.h:151
art::ServiceHandle< art::TFileService > tfs_
std::map< std::string, TH1 * > h1_
float bin[41]
Definition: plottest35.C:14
T * make(ARGS...args) const
void mono::SlowMonopoleAna::make_histo ( std::string const  name,
std::string const  title,
Binning2 const &  bin 
)
private

Definition at line 216 of file SlowMonopoleAna_module.cc.

References bin, h2_, art::TFileDirectory::make(), and tfs_.

217 {
218  h2_[name] = tfs_->make<TH2D>
219  (name.c_str(), title.c_str(),
220  std::get<0>(bin), std::get<1>(bin), std::get<2>(bin),
221  std::get<3>(bin), std::get<4>(bin), std::get<5>(bin));
222 }
const XML_Char * name
Definition: expat.h:151
art::ServiceHandle< art::TFileService > tfs_
std::map< std::string, TH2 * > h2_
float bin[41]
Definition: plottest35.C:14
T * make(ARGS...args) const
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
SlowMonopoleAna& mono::SlowMonopoleAna::operator= ( SlowMonopoleAna const &  )
delete
SlowMonopoleAna& mono::SlowMonopoleAna::operator= ( SlowMonopoleAna &&  )
delete
double mono::SlowMonopoleAna::phi ( sim::Particle const *  particle) const
private

Definition at line 586 of file SlowMonopoleAna_module.cc.

References std::atan2(), simb::MCParticle::Px(), and simb::MCParticle::Py().

Referenced by analyze(), and print_truth_info().

587 {
588  double Px(particle->Px()), Py(particle->Py());
589 
590  return std::atan2(Py, Px);
591 }
T atan2(T number)
Definition: d0nt_math.hpp:72
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
void mono::SlowMonopoleAna::print_truth_info ( art::Event const &  e,
bool const &  print_hit_details 
) const
private

Definition at line 679 of file SlowMonopoleAna_module.cc.

References beta, bt_, om::cout, DEFINE_ART_MODULE(), dx, simb::MCParticle::E(), allTimeWatchdog::endl, art::Event::event(), sim::FLSHit::GetPlaneID(), cheat::BackTracker::HaveTruthInfo(), simb::MCParticle::Mass(), simb::MCParticle::NumberTrajectoryPoints(), simb::MCParticle::P(), cheat::BackTracker::ParticleNavigator(), cheat::BackTracker::ParticleToFLSHit(), phi(), simb::MCParticle::Px(), simb::MCParticle::Py(), simb::MCParticle::Pz(), simb::MCParticle::T(), theta(), simb::MCParticle::TrackId(), registry_explorer::v, simb::MCParticle::Vx(), simb::MCParticle::Vy(), and simb::MCParticle::Vz().

Referenced by fill_hit_tree().

680 {
681  if (bt_->HaveTruthInfo())
682  {
684  unsigned n_particle = 0;
685  for (auto p_handle : pn)
686  {
687  const sim::Particle* particle = p_handle.second;
688 
689  std::cout << "MF: MC Particle " << ++n_particle
690  << "\tEvent " << e.event()
691  << "\nMF: Mass = " << particle->Mass()
692  << "\nMF: N Trajectory Points = "
693  << particle->NumberTrajectoryPoints()
694  << std::endl;
695 
696  for (unsigned trajectory = 0;
697  trajectory != particle->NumberTrajectoryPoints(); ++trajectory)
698  {
699  double to_degrees = 180 / TMath::Pi();
700 
701  std::cout << "MF: Trajectory " << trajectory
702  << "\nMF:\t Energy = " << particle->E(trajectory)
703  << "\nMF:\t Momentum = " << particle->P(trajectory)
704  << "\nMF:\t Beta = "
705  << particle->P(trajectory) / particle->Mass()
706  << "\nMF:\t Time = " << particle->T(trajectory)
707  << "\nMF:\t Phi = " << to_degrees * phi(particle)
708  << "\nMF:\t Theta = " << to_degrees * theta(particle)
709  << "\nMF:\t [Vx, Vy, Vz] = ["
710  << particle->Vx(trajectory) << ", "
711  << particle->Vy(trajectory) << ", "
712  << particle->Vz(trajectory) << "]"
713  << "\nMF:\t [Px, Py, Pz] = ["
714  << particle->Px(trajectory) << ", "
715  << particle->Py(trajectory) << ", "
716  << particle->Pz(trajectory) << "]"
717  << std::endl;
718  }
719 
720  if (print_hit_details)
721  {
722  std::vector<sim::FLSHit> fls_hits =
723  bt_->ParticleToFLSHit(particle->TrackId());
724  std::cout << "MF: Hits:" << std::endl;
725 
726  std::sort(fls_hits.begin(), fls_hits.end(),
727  [](sim::FLSHit const& lhs, sim::FLSHit const& rhs)
728  { return lhs.GetPlaneID() < rhs.GetPlaneID(); });
729 
730  for (auto const& fls_hit : fls_hits)
731  {
732  float dt = fls_hit.GetExitT() - fls_hit.GetEntryT();
733  float dx = fls_hit.GetTotalPathLength();
734  float v = dx / dt * 1.0e7;
735  float beta = v / 3.0e8;
736  float dEdx = fls_hit.GetEdep() / dx;
737 
738  std::cout << "MF:\t [plane, cell, beta, dEdx, path, Edep, "
739  << "EntryT, ExitT] = ["
740  << fls_hit.GetPlaneID() << ", "
741  << fls_hit.GetCellID() << ", "
742  << beta << ", "
743  << dEdx << ", "
744  << fls_hit.GetTotalPathLength() << ", "
745  << fls_hit.GetEdep() << ", "
746  << fls_hit.GetEntryT() << ", "
747  << fls_hit.GetExitT()
748  << "]" << std::endl;
749 
750  for (int point = 0; point != fls_hit.GetNPoints(); ++point)
751  {
752  std::cout << "MF:\t\t [x, y, z] = ["
753  << fls_hit.GetX(point) << ", "
754  << fls_hit.GetY(point) << ", "
755  << fls_hit.GetZ(point) << "]" << std::endl;
756  }
757  }
758  }
759  }
760  }
761 }
double E(const int i=0) const
Definition: MCParticle.h:232
unsigned int NumberTrajectoryPoints() const
Definition: MCParticle.h:217
double Py(const int i=0) const
Definition: MCParticle.h:230
int GetPlaneID() const
Plane ID.
Definition: FLSHit.h:37
const sim::ParticleNavigator & ParticleNavigator() const
Get a reference to the ParticleNavigator.
Definition: BackTracker.h:744
std::vector< sim::FLSHit > ParticleToFLSHit(const int &trackID) const
All the FLSHits that were created by the track id trackID, sorted from most to least light...
double Mass() const
Definition: MCParticle.h:238
double Px(const int i=0) const
Definition: MCParticle.h:229
A single unit of energy deposition in the liquid scintillator.
Definition: FLSHit.h:19
Double_t beta
double phi(sim::Particle const *particle) const
int TrackId() const
Definition: MCParticle.h:209
Definition: Cand.cxx:23
double dx[NP][NC]
double P(const int i=0) const
Definition: MCParticle.h:233
double T(const int i=0) const
Definition: MCParticle.h:223
double theta(sim::Particle const *particle) const
art::ServiceHandle< cheat::BackTracker > bt_
OStream cout
Definition: OStream.cxx:6
double Vx(const int i=0) const
Definition: MCParticle.h:220
bool HaveTruthInfo() const
Is this a file with truth info in? (Is BackTracker going to be any use to you?)
Definition: BackTracker.h:133
double Pz(const int i=0) const
Definition: MCParticle.h:231
double Vz(const int i=0) const
Definition: MCParticle.h:222
Float_t e
Definition: plot.C:35
double Vy(const int i=0) const
Definition: MCParticle.h:221
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 mono::SlowMonopoleAna::theta ( sim::Particle const *  particle) const
private

Definition at line 595 of file SlowMonopoleAna_module.cc.

References std::atan2(), fill_track_tree(), simb::MCParticle::Px(), simb::MCParticle::Py(), simb::MCParticle::Pz(), and std::sqrt().

Referenced by analyze(), and print_truth_info().

596 {
597  double Px(particle->Px()), Py(particle->Py()), Pz(particle->Pz());
598  double Pt = std::sqrt(Px * Px + Py * Py);
599 
600  return std::atan2(Pt, Pz);
601 }
T sqrt(T number)
Definition: d0nt_math.hpp:156
T atan2(T number)
Definition: d0nt_math.hpp:72
template<class T >
void mono::SlowMonopoleAna::tset ( T tree,
std::string const  branch_name,
double const  value 
)
private

Definition at line 278 of file SlowMonopoleAna_module.cc.

References ana::assert(), om::cerr, allTimeWatchdog::endl, and it.

Referenced by analyze(), fill(), fill_hit_tree(), and fill_track_tree().

279 {
280  auto it = tree.find(branch_name);
281  if (it == tree.end())
282  {
283  std::cerr << "\n\t Branch " << branch_name << " does not exist! \n"
284  << std::endl;
285  assert(false);
286  }
287 
288  it->second = value;
289 }
set< int >::iterator it
OStream cerr
Definition: OStream.cxx:7
const XML_Char int const XML_Char * value
Definition: expat.h:331
assert(nhit_max >=nhit_nbins)
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

const double mono::SlowMonopoleAna::branch_default_value_
private

Definition at line 95 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), fill_hit_tree(), and fill_track_tree().

art::ServiceHandle<cheat::BackTracker> mono::SlowMonopoleAna::bt_
private

Definition at line 104 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), fill_hit_tree(), and print_truth_info().

std::map<std::string, double> mono::SlowMonopoleAna::et_
private

Definition at line 100 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), and beginJob().

TTree* mono::SlowMonopoleAna::event_tree_
private

Definition at line 99 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), and beginJob().

bool mono::SlowMonopoleAna::fill_hit_tree_
private

Definition at line 93 of file SlowMonopoleAna_module.cc.

bool mono::SlowMonopoleAna::fill_track_tree_
private

Definition at line 93 of file SlowMonopoleAna_module.cc.

art::ServiceHandle<geo::Geometry> mono::SlowMonopoleAna::geo_
private

Definition at line 105 of file SlowMonopoleAna_module.cc.

Referenced by get_position().

std::map<std::string, TH1*> mono::SlowMonopoleAna::h1_
private

Definition at line 101 of file SlowMonopoleAna_module.cc.

Referenced by fill(), and make_histo().

std::map<std::string, TH2*> mono::SlowMonopoleAna::h2_
private

Definition at line 102 of file SlowMonopoleAna_module.cc.

Referenced by fill(), and make_histo().

TTree * mono::SlowMonopoleAna::hit_tree_
private

Definition at line 99 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and fill_hit_tree().

std::map<std::string, double> mono::SlowMonopoleAna::ht_
private

Definition at line 100 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and fill_hit_tree().

TTree * mono::SlowMonopoleAna::rate_tree_
private

Definition at line 99 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), and beginJob().

std::map<std::string, double> mono::SlowMonopoleAna::rt_
private

Definition at line 100 of file SlowMonopoleAna_module.cc.

Referenced by analyze(), and beginJob().

std::vector<std::string> mono::SlowMonopoleAna::smt_parameter_names_
private

Definition at line 97 of file SlowMonopoleAna_module.cc.

Referenced by beginJob().

std::vector<std::string> mono::SlowMonopoleAna::smt_track_parameter_names_
private

Definition at line 97 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and fill_track_tree().

art::ServiceHandle<art::TFileService> mono::SlowMonopoleAna::tfs_
private

Definition at line 103 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and make_histo().

const double mono::SlowMonopoleAna::to_degrees_
private

Definition at line 95 of file SlowMonopoleAna_module.cc.

TTree * mono::SlowMonopoleAna::track_tree_
private

Definition at line 99 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and fill_track_tree().

std::map<std::string, double> mono::SlowMonopoleAna::tt_
private

Definition at line 100 of file SlowMonopoleAna_module.cc.

Referenced by beginJob(), and fill_track_tree().


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