Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Types | Private Attributes | List of all members
runh::BadDataFilter Class Reference
Inheritance diagram for runh::BadDataFilter:
art::EDFilter art::ProducerBase art::Consumer art::EngineCreator art::ProductRegistryHelper

Public Types

using ModuleType = EDFilter
 
using WorkerType = WorkerT< EDFilter >
 
template<typename UserConfig >
using Table = ProducerBase::Table< UserConfig >
 

Public Member Functions

 BadDataFilter (fhicl::ParameterSet const &p)
 
virtual ~BadDataFilter ()
 
virtual void reconfigure (fhicl::ParameterSet const &p)
 
void LoadBadSubruns (int run, const std::string &det)
 
art::TimeValue_t TextToTimeValue (const std::string &t)
 
void LoadBadTimeRanges (int run, const std::string &det)
 
virtual bool beginRun (art::Run &r)
 
virtual bool beginSubRun (art::SubRun &s)
 
virtual bool filter (art::Event &e)
 
template<typename PROD , BranchType B = InEvent>
ProductID getProductID (std::string const &instanceName={}) const
 
template<typename PROD , BranchType B>
ProductID getProductID (ModuleDescription const &moduleDescription, std::string const &instanceName) const
 
bool modifiesEvent () 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 ()
 

Static Public Attributes

static constexpr bool Pass {true}
 
static constexpr bool Fail {false}
 

Protected Member Functions

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

Private Types

typedef std::pair< int, intSubrunPair_t
 
typedef std::pair< art::TimeValue_t, art::TimeValue_tTimeValuePair_t
 

Private Attributes

int fRun
 Current run. More...
 
int fSubrun
 Current subrun. More...
 
bool fGoodRun
 Is the current run good? More...
 
bool fGoodSubrun
 Is the current subrun good? More...
 
unsigned int fBadSubrunSz
 

of bad subrun ranges for this run

More...
 
unsigned int fBadTimeSz
 
std::vector< SubrunPair_tfBadSubrun
 
std::vector< TimeValuePair_tfBadTime
 

Detailed Description

Definition at line 35 of file BadDataFilter_module.cc.

Member Typedef Documentation

using art::EDFilter::ModuleType = EDFilter
inherited

Definition at line 37 of file EDFilter.h.

typedef std::pair<int,int> runh::BadDataFilter::SubrunPair_t
private

Encapsulation of the database tables

Definition at line 47 of file BadDataFilter_module.cc.

template<typename UserConfig >
using art::EDFilter::Table = ProducerBase::Table<UserConfig>
inherited

Definition at line 46 of file EDFilter.h.

Definition at line 48 of file BadDataFilter_module.cc.

using art::EDFilter::WorkerType = WorkerT<EDFilter>
inherited

Definition at line 38 of file EDFilter.h.

Constructor & Destructor Documentation

runh::BadDataFilter::BadDataFilter ( fhicl::ParameterSet const &  p)
inlineexplicit

Definition at line 53 of file BadDataFilter_module.cc.

53 {}
virtual runh::BadDataFilter::~BadDataFilter ( )
inlinevirtual

Definition at line 54 of file BadDataFilter_module.cc.

54 {}

Member Function Documentation

virtual bool runh::BadDataFilter::beginRun ( art::Run r)
inlinevirtual

................................................................. At the start of a new run, connect to the database and pull down any information about intervals of bad data.

Reimplemented from art::EDFilter.

Definition at line 161 of file BadDataFilter_module.cc.

References clear, fillBadChanDBTables::det, allTimeWatchdog::endl, fGoodRun, art::DataViewImpl::getManyByType(), novadaq::cnv::DetInfo::GetName(), LoadBadSubruns(), LoadBadTimeRanges(), art::Run::run(), and string.

162  {
163  fRun = r.run();
164  //
165  // Extract the run summary data to discover the detector ID for
166  // this data
167  //
168  std::vector<art::Handle<sumdata::RunData>> rdcol;
169  r.getManyByType(rdcol);
171  if (!rdcol.empty()) {
172  det = novadaq::cnv::DetInfo::GetName(rdcol[0]->DetId());
173  }
174  else {
175 
176  // abort();
177  throw cet::exception("BadDataFilter") <<
178  "Cannot find sumdata::RunData" << std::endl;
179  }
180 
181  //
182  // Reset everything for this run to the good state
183  //
184  fGoodRun = true;
185  fBadSubrun.clear();
186  fBadTime. clear();
187 
188  //
189  // Now load bad periods from the database
190  //
191  this->LoadBadSubruns(fRun, det);
192  this->LoadBadTimeRanges(fRun, det);
193 
194  return fGoodRun;
195  }
static std::string GetName(int id)
std::vector< SubrunPair_t > fBadSubrun
std::vector< TimeValuePair_t > fBadTime
vector< vector< double > > clear
void LoadBadSubruns(int run, const std::string &det)
::xsd::cxx::tree::exception< char > exception
Definition: Database.h:225
RunNumber_t run() const
Definition: Run.h:47
void getManyByType(std::vector< Handle< PROD >> &results) const
Definition: DataViewImpl.h:446
void LoadBadTimeRanges(int run, const std::string &det)
bool fGoodRun
Is the current run good?
enum BeamMode string
virtual bool runh::BadDataFilter::beginSubRun ( art::SubRun s)
inlinevirtual

................................................................. At the start of a new subrun check the list of bad subrun ranges and mark the subrun accordingly

Reimplemented from art::EDFilter.

Definition at line 201 of file BadDataFilter_module.cc.

References om::cout, allTimeWatchdog::endl, fBadSubrunSz, fGoodRun, fGoodSubrun, MECModelEnuComparisons::i, moon_position_table_new3::second, and art::SubRun::subRun().

202  {
203  fSubrun = s.subRun();
204 
206  if (fGoodSubrun==false) {
207  std::cout << "Subrun " << fRun << ":" << fSubrun
208  << " is in bad run. Skipped."
209  << std::endl;
210  return false;
211  }
212  else {
213  //
214  // Its a good run. Check if there are any bad periods. If not,
215  // return 'good'.
216  //
217  if (fBadSubrunSz==0) return true;
218  }
219 
220  //
221  // Get here on good runs with bad subruns flagged
222  //
223  for (unsigned int i=0; i<fBadSubrunSz; ++i) {
224  if (fSubrun>=fBadSubrun[i].first &&
226  std::cout << "Subrun " << fRun << ":" << fSubrun
227  << " is flagged as bad. Skipped."
228  << std::endl;
229  fGoodSubrun = false;
230  return fGoodSubrun;
231  }
232  }
233  return true;
234  }
std::vector< SubrunPair_t > fBadSubrun
bool fGoodSubrun
Is the current subrun good?
SubRunNumber_t subRun() const
Definition: SubRun.h:44
unsigned int fBadSubrunSz
of bad subrun ranges for this run
int fSubrun
Current subrun.
bool fGoodRun
Is the current run good?
OStream cout
Definition: OStream.cxx:6
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::EDFilter::currentContext ( ) const
protectedinherited
virtual bool runh::BadDataFilter::filter ( art::Event e)
inlinevirtual

................................................................. Check if this event should be filtered. Pass good data and fail bad data

Implements art::EDFilter.

Definition at line 240 of file BadDataFilter_module.cc.

References om::cout, DEFINE_ART_MODULE(), allTimeWatchdog::endl, art::Event::event(), fBadTimeSz, MECModelEnuComparisons::i, art::Event::run(), moon_position_table_new3::second, art::Event::subRun(), confusionMatrixTree::t, art::Event::time(), and art::Timestamp::value().

241  {
242  //
243  // Not strictly necessary, but check if we are in a bad run or
244  // subrun
245  //
246  if (fGoodRun==false||fGoodSubrun==false) return false;
247 
248  //
249  // If there are no time ranges to check, then the event must be
250  // good
251  //
252  if (fBadTimeSz==0) return true;
253 
254  //
255  // Only thing left to check is the event time. Times in the
256  // table are already converted to ART 64-bit time.
257  //
258  art::TimeValue_t t = e.time().value();
259  for (unsigned int i=0; i<fBadTimeSz; ++i) {
260  if (t>=fBadTime[i].first && t<=fBadTime[i].second) {
261  std::cout << "Event "
262  << e.run() << ":"
263  << e.subRun() << ":"
264  << e.event()
265  << " is inside bad time range. Skipped." << std::endl;
266  return false;
267  }
268  }
269  return true;
270  }
SubRunNumber_t subRun() const
Definition: Event.h:72
std::vector< TimeValuePair_t > fBadTime
bool fGoodSubrun
Is the current subrun good?
constexpr TimeValue_t value() const
Definition: Timestamp.h:24
EventNumber_t event() const
Definition: Event.h:67
bool fGoodRun
Is the current run good?
OStream cout
Definition: OStream.cxx:6
std::uint64_t TimeValue_t
Definition: Timestamp.h:7
Timestamp time() const
Definition: Event.h:61
RunNumber_t run() const
Definition: Event.h:77
seed_t art::EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited
template<typename PROD , BranchType B>
ProductID art::EDFilter::getProductID ( std::string const &  instanceName = {}) const
inlineinherited

Definition at line 131 of file EDFilter.h.

References art::EDFilter::moduleDescription_.

Referenced by novaddt::HoughTrackMaker::create_associations().

132  {
133  return ProducerBase::getProductID<PROD, B>(moduleDescription_,
134  instanceName);
135  }
ModuleDescription moduleDescription_
Definition: EDFilter.h:124
template<typename PROD , BranchType B>
ProductID art::ProducerBase::getProductID ( ModuleDescription const &  moduleDescription,
std::string const &  instanceName 
) const
inherited

Definition at line 56 of file ProducerBase.h.

References art::ModuleDescription::moduleLabel().

Referenced by art::ProducerBase::modifiesEvent().

58  {
59  auto const& pd =
60  get_ProductDescription<PROD>(B, md.moduleLabel(), instanceName);
61  return pd.productID();
62  }
void runh::BadDataFilter::LoadBadSubruns ( int  run,
const std::string det 
)
inline

.................................................................. Load the data from the bad_subruns table into the module

Definition at line 60 of file BadDataFilter_module.cc.

References nova::dbi::Row::Col(), om::cout, allTimeWatchdog::endl, nova::dbi::Column::Get(), MECModelEnuComparisons::i, check_grl::row, and getGoodRuns4SAM::table.

Referenced by beginRun().

61  {
62  //
63  // Construct the handle to the bad_subruns database table
64  //
65  static const char* dbxml = "RunHistory/tables/BadSubruns.xml";
66  std::unique_ptr<nova::dbi::Table> table =
67  std::unique_ptr<nova::dbi::Table>(new nova::dbi::Table(dbxml));
68  table->SetDetector(det);
69  table->SetValidityRange("run",run);
70  table->LoadFromDB();
71  //if(table->LoadFromDB()) std::abort();
72  bool sucess = table->LoadFromDB();
73  if(sucess) std::cout<<"DEBUG:sucess"<<std::endl;
74  else std::cout<<"DEBUG:faiure"<<std::endl;
75  int sr1Idx = table->GetColIndex("subrun1");
76  int sr2Idx = table->GetColIndex("subrun2");
77 
78  //
79  // Add each row to the list of bad subrun periods
80  //
81  for (int i=0; i<table->NRow(); ++i) {
82  nova::dbi::Row* row = table->GetRow(i);
83 
84  int subrun1, subrun2;
85  row->Col(sr1Idx).Get(subrun1);
86  row->Col(sr2Idx).Get(subrun2);
87  fBadSubrun.push_back(SubrunPair_t(subrun1, subrun2));
88  }
89  fBadSubrunSz = fBadSubrun.size();
90  }
std::vector< SubrunPair_t > fBadSubrun
Column & Col(int i)
Find index of column with name. Suitable for passing to Col.
Definition: Row.h:63
std::pair< int, int > SubrunPair_t
unsigned int fBadSubrunSz
of bad subrun ranges for this run
bool Get(T &val) const
Definition: Column.h:85
Definition: run.py:1
OStream cout
Definition: OStream.cxx:6
struct Table Table
Definition: TexBuilder.h:2
void runh::BadDataFilter::LoadBadTimeRanges ( int  run,
const std::string det 
)
inline

................................................................. This method should eventually read a database table of bad time ranges into memory. Its a hook for possible future implementation. Currently we have no mechanism for flagging bad time ranges. Pattern should follow LoadBadSubruns above.

Definition at line 115 of file BadDataFilter_module.cc.

References nova::dbi::Row::Col(), om::cout, allTimeWatchdog::endl, nova::dbi::Column::Get(), MECModelEnuComparisons::i, check_grl::row, string, getGoodRuns4SAM::t1, t2, getGoodRuns4SAM::table, and TextToTimeValue().

Referenced by beginRun().

116  {
117  //
118  // Construct the handle to the bad_time_ranges database table
119  //
120  static const char* dbxml = "RunHistory/tables/BadTimeRanges.xml";
121  std::unique_ptr<nova::dbi::Table> table =
122  std::unique_ptr<nova::dbi::Table>(new nova::dbi::Table(dbxml));
123  table->SetDetector(det);
124  table->SetValidityRange("run",run);
125  table->LoadFromDB();
126  bool sucess = table->LoadFromDB();
127  if(sucess) std::cout<<"DEBUG:sucess"<<std::endl;
128  else std::cout<<"DEBUG:faiure"<<std::endl;
129 
130 
131 
132 
133 
134 // if(!table->LoadFromDB()) std::abort();
135 
136  // Add each row to the list of bad subrun periods
137  //
138  int t1Idx=table->GetColIndex("t1");
139  int t2Idx=table->GetColIndex("t2");
140 
141  for (int i=0; i<table->NRow(); ++i) {
142  nova::dbi::Row* row = table->GetRow(i);
143 
144  std::string t1, t2;
145  row->Col(t1Idx).Get(t1);
146  row->Col(t2Idx).Get(t2);
147 
148  art::TimeValue_t tv1, tv2;
149  tv1 = this->TextToTimeValue(t1);
150  tv2 = this->TextToTimeValue(t2);
151 
152  fBadTime.push_back(TimeValuePair_t(tv1,tv2));
153  }
154  fBadTimeSz = fBadTime.size();
155  }
std::vector< TimeValuePair_t > fBadTime
Column & Col(int i)
Find index of column with name. Suitable for passing to Col.
Definition: Row.h:63
bool Get(T &val) const
Definition: Column.h:85
std::pair< art::TimeValue_t, art::TimeValue_t > TimeValuePair_t
art::TimeValue_t TextToTimeValue(const std::string &t)
double t2
Definition: run.py:1
OStream cout
Definition: OStream.cxx:6
std::uint64_t TimeValue_t
Definition: Timestamp.h:7
struct Table Table
Definition: TexBuilder.h:2
enum BeamMode string
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::ProducerBase::modifiesEvent ( ) const
inlineinherited

Definition at line 40 of file ProducerBase.h.

References art::ProducerBase::getProductID(), and string.

41  {
42  return true;
43  }
static cet::exempt_ptr<Consumer> art::Consumer::non_module_context ( )
staticinherited
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
virtual void runh::BadDataFilter::reconfigure ( fhicl::ParameterSet const &  p)
inlinevirtual

Definition at line 55 of file BadDataFilter_module.cc.

55 {}
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

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

art::TimeValue_t runh::BadDataFilter::TextToTimeValue ( const std::string t)
inline

................................................................. Shuffle the text time stamp into a 64-bit word in the ART format. Time is only accurate to nearest second; as such its OK to leave the lower 32 bits set to 0

Parameters
t- text time stamp in format 1970-12-12 10:11:12

Definition at line 99 of file BadDataFilter_module.cc.

Referenced by LoadBadTimeRanges().

99  {
100  struct tm tm1;
101  strptime(t.c_str(), "%Y-%m-%d %H:%M:%S",&tm1);
102  tm1.tm_year += 1900;
103  TTimeStamp ts(tm1.tm_year, tm1.tm_mon, tm1.tm_mday,
104  tm1.tm_hour, tm1.tm_min, tm1.tm_sec);
105  art::TimeValue_t tv = (ts.GetSec() << 32);
106  return tv;
107  }
std::uint64_t TimeValue_t
Definition: Timestamp.h:7
void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited

Member Data Documentation

constexpr bool art::EDFilter::Fail {false}
staticinherited

Definition at line 33 of file EDFilter.h.

Referenced by evgen::GENIEFilter::filter().

std::vector<SubrunPair_t> runh::BadDataFilter::fBadSubrun
private

Definition at line 49 of file BadDataFilter_module.cc.

unsigned int runh::BadDataFilter::fBadSubrunSz
private

of bad subrun ranges for this run

Definition at line 42 of file BadDataFilter_module.cc.

Referenced by beginSubRun().

std::vector<TimeValuePair_t> runh::BadDataFilter::fBadTime
private

Definition at line 50 of file BadDataFilter_module.cc.

unsigned int runh::BadDataFilter::fBadTimeSz
private

of bad time ranges for this run

Definition at line 43 of file BadDataFilter_module.cc.

Referenced by filter().

bool runh::BadDataFilter::fGoodRun
private

Is the current run good?

Definition at line 40 of file BadDataFilter_module.cc.

Referenced by beginRun(), and beginSubRun().

bool runh::BadDataFilter::fGoodSubrun
private

Is the current subrun good?

Definition at line 41 of file BadDataFilter_module.cc.

Referenced by beginSubRun().

int runh::BadDataFilter::fRun
private

Current run.

Definition at line 38 of file BadDataFilter_module.cc.

int runh::BadDataFilter::fSubrun
private

Current subrun.

Definition at line 39 of file BadDataFilter_module.cc.

constexpr bool art::EDFilter::Pass {true}
staticinherited

Definition at line 32 of file EDFilter.h.

Referenced by evgen::GENIEFilter::filter().


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