Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
snutil::DDSNEWSfilter Class Reference
Inheritance diagram for snutil::DDSNEWSfilter:
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

 DDSNEWSfilter (fhicl::ParameterSet const &p)
 
 DDSNEWSfilter (DDSNEWSfilter const &)=delete
 
 DDSNEWSfilter (DDSNEWSfilter &&)=delete
 
DDSNEWSfilteroperator= (DDSNEWSfilter const &)=delete
 
DDSNEWSfilteroperator= (DDSNEWSfilter &&)=delete
 
bool filter (art::Event &e) override
 
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 Attributes

std::string fRawDataLabel
 ART product label for rawdata. More...
 
std::vector< intfPassingTriggerList
 List of triggers to keep. More...
 
bool fFilterOnMicroslices
 Filter out event if no microslices present? More...
 
bool fFilterOnTriggerType
 Filter out event if trigger type not in PassingTriggerList? More...
 

Detailed Description

Definition at line 29 of file DDSNEWSfilter_module.cc.

Member Typedef Documentation

using art::EDFilter::ModuleType = EDFilter
inherited

Definition at line 37 of file EDFilter.h.

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

Definition at line 46 of file EDFilter.h.

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

Definition at line 38 of file EDFilter.h.

Constructor & Destructor Documentation

snutil::DDSNEWSfilter::DDSNEWSfilter ( fhicl::ParameterSet const &  p)
explicit

Definition at line 50 of file DDSNEWSfilter_module.cc.

50  :
51 fRawDataLabel(p.get<std::string>("RawDataLabel")),
52 fPassingTriggerList(p.get<std::vector<int>>("PassingTriggerList")),
53 fFilterOnMicroslices(p.get<bool>("FilterOnMicroslices")),
54 fFilterOnTriggerType(p.get<bool>("FilterOnTriggerType"))
55 {
56 }
const char * p
Definition: xmltok.h:285
bool fFilterOnMicroslices
Filter out event if no microslices present?
bool fFilterOnTriggerType
Filter out event if trigger type not in PassingTriggerList?
std::vector< int > fPassingTriggerList
List of triggers to keep.
std::string fRawDataLabel
ART product label for rawdata.
enum BeamMode string
snutil::DDSNEWSfilter::DDSNEWSfilter ( DDSNEWSfilter const &  )
delete
snutil::DDSNEWSfilter::DDSNEWSfilter ( DDSNEWSfilter &&  )
delete

Member Function Documentation

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
bool snutil::DDSNEWSfilter::filter ( art::Event e)
overridevirtual

Implements art::EDFilter.

Definition at line 60 of file DDSNEWSfilter_module.cc.

References om::cout, DEFINE_ART_MODULE(), allTimeWatchdog::endl, fFilterOnMicroslices, fFilterOnTriggerType, fPassingTriggerList, fRawDataLabel, rawdata::RawTrigger::fTriggerMask_TriggerType, art::DataViewImpl::getByLabel(), and rawdata::DAQHeader::TotalMicroSlices().

61 {
62  /* Get ART data products */
64  e.getByLabel(fRawDataLabel, trigs);
65  const rawdata::RawTrigger trig = trigs->at(0);
66  const int trigType = trig.fTriggerMask_TriggerType;
67 
69  e.getByLabel(fRawDataLabel, daqheader);
70  const int nMicroslices = daqheader->TotalMicroSlices();
71 
72  /* Perform checks */
73  bool fTriggerNotInList = std::find(fPassingTriggerList.begin(), fPassingTriggerList.end(), trigType) == fPassingTriggerList.end();
74  bool fZeroMicroslices = nMicroslices == 0;
75 
76 
77  /* Filter the event (or not) */
78  if (fTriggerNotInList && fFilterOnTriggerType) {
79  std::cout << "Trigger type " << trigType << " is not in the list of passable types. This event will be filtered out." << std::endl;
80  return false;
81  }
82 
83  if (fZeroMicroslices && fFilterOnMicroslices) {
84  std::cout << "Trigger has zero microslices." << std::endl;
85  return false;
86  }
87 
88  return true;
89 }
bool fFilterOnMicroslices
Filter out event if no microslices present?
int TotalMicroSlices() const
Definition: DAQHeader.h:27
uint8_t fTriggerMask_TriggerType
Definition: RawTrigger.h:43
bool fFilterOnTriggerType
Filter out event if trigger type not in PassingTriggerList?
std::vector< int > fPassingTriggerList
List of triggers to keep.
std::string fRawDataLabel
ART product label for rawdata.
OStream cout
Definition: OStream.cxx:6
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
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  }
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
DDSNEWSfilter& snutil::DDSNEWSfilter::operator= ( DDSNEWSfilter const &  )
delete
DDSNEWSfilter& snutil::DDSNEWSfilter::operator= ( DDSNEWSfilter &&  )
delete
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

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

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

bool snutil::DDSNEWSfilter::fFilterOnMicroslices
private

Filter out event if no microslices present?

Definition at line 44 of file DDSNEWSfilter_module.cc.

Referenced by filter().

bool snutil::DDSNEWSfilter::fFilterOnTriggerType
private

Filter out event if trigger type not in PassingTriggerList?

Definition at line 45 of file DDSNEWSfilter_module.cc.

Referenced by filter().

std::vector<int> snutil::DDSNEWSfilter::fPassingTriggerList
private

List of triggers to keep.

Definition at line 43 of file DDSNEWSfilter_module.cc.

Referenced by filter().

std::string snutil::DDSNEWSfilter::fRawDataLabel
private

ART product label for rawdata.

Definition at line 42 of file DDSNEWSfilter_module.cc.

Referenced by filter().

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: