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

 Multiplet (fhicl::ParameterSet const &p)
 
 Multiplet (Multiplet const &)=delete
 
 Multiplet (Multiplet &&)=delete
 
Multipletoperator= (Multiplet const &)=delete
 
Multipletoperator= (Multiplet &&)=delete
 
bool filter (art::Event &event) override
 
void beginJob () override
 
void endJob () override
 
double deltaTCorr (const novaddt::DAQHit &h1, const novaddt::DAQHit &h2)
 
bool isHitCloseToSlice (const DAQHit &h, const HitList &frag)
 
bool isHitCloseToHit (const DAQHit &h1, const DAQHit &h2)
 
template<class HitCollection >
void findslices (const HitCollection &inhits, std::unique_ptr< std::vector< HitList > > &product)
 
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 Member Functions

template<class HitCollection >
void findslices (const HitCollection &inhits, std::unique_ptr< std::vector< novaddt::HitList > > &product)
 
template<class HitCollection >
HitCollection ApplyCorrection (const HitCollection &hits)
 
DAQHit HitCorrection (const DAQHit &hit)
 

Private Attributes

novaddt::utils::DetectorUtils fDetUtils
 
art::InputTag fInputTag
 
unsigned fMaxPlaneSep
 
unsigned fMaxCellSep
 
unsigned fMaxTDCSep
 
double fMaxDTxx
 
double fMaxDTxy
 
unsigned fMinSliceSize
 
unsigned fMaxSliceSize
 
bool fVerbose
 
bool fDoApplyTimingCorrection
 
bool fDoApplyDistCorrection
 
int _nEvents = 0
 
int _nHitsIn = 0
 
int _nHitsOut = 0
 
int _nSlicesOut = 0
 

Detailed Description

Definition at line 51 of file Multiplet_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

novaddt::Multiplet::Multiplet ( fhicl::ParameterSet const &  p)
explicit

Definition at line 125 of file Multiplet_module.cc.

References om::cout, allTimeWatchdog::endl, fDoApplyDistCorrection, fDoApplyTimingCorrection, fInputTag, fMaxCellSep, fMaxDTxx, fMaxDTxy, fMaxPlaneSep, fMaxSliceSize, fMaxTDCSep, fMinSliceSize, and fVerbose.

125  :
126  fDetUtils("fd"),
127  fInputTag (p.get< std::string >("InputTag" )),
128  fMaxPlaneSep (p.get< unsigned >("slicer.MaxPlaneSep" )),
129  fMaxCellSep (p.get< unsigned >("slicer.MaxCellSep" )),
130  fMaxTDCSep (p.get< unsigned >("slicer.MaxTDCSep" )),
131  fMaxDTxx (p.get< double >("slicer.MaxDT.xx" )),
132  fMaxDTxy (p.get< double >("slicer.MaxDT.xy" )),
133  fMinSliceSize (p.get< unsigned >("slicer.MinSliceSize" )),
134  fMaxSliceSize (p.get< unsigned >("slicer.MaxSliceSize" )),
135  fVerbose (p.get< bool >("Verbose" )),
136  fDoApplyTimingCorrection (p.get< bool >("ApplyTimingCorrection", false)),
137  fDoApplyDistCorrection (p.get< bool >("ApplyDistCorrection", false))
138  // Initialize member data
139 {
140  std::cout << "--- novaddt::Multiplet begin" << std::endl;
141  std::cout << "\t Input hitlists tag: " << fInputTag << std::endl;
142 
143  std::cout << "\t Max Z separation: " << fMaxPlaneSep << std::endl;
144  std::cout << "\t Max XY separation: " << fMaxCellSep << std::endl;
145  std::cout << "\t Max time separation: " << fMaxTDCSep << std::endl;
146  std::cout << "\t Min slice size: " << fMinSliceSize << std::endl;
147  std::cout << "\t Max slice size: " << fMaxSliceSize << std::endl;
148  std::cout << "\t Apply timing correction: " << fDoApplyTimingCorrection << std::endl;
149  std::cout << "\t Apply distance correction: " << fDoApplyDistCorrection << std::endl;
151  std::cout << "\t \t Max DT for hits in same view: " << fMaxDTxx<< std::endl;
152  std::cout << "\t \t Max DT for hits in XY views: " << fMaxDTxy<< std::endl;
153  }
154  std::cout << "\t Verbose: " << fVerbose << std::endl;
155 
156 
157  // Call appropriate Produces<>() functions
158  produces<std::vector<HitList>>();
159 }
novaddt::utils::DetectorUtils fDetUtils
const char * p
Definition: xmltok.h:285
OStream cout
Definition: OStream.cxx:6
art::InputTag fInputTag
enum BeamMode string
novaddt::Multiplet::Multiplet ( Multiplet const &  )
delete
novaddt::Multiplet::Multiplet ( Multiplet &&  )
delete

Member Function Documentation

template<class HitCollection >
HitCollection novaddt::Multiplet::ApplyCorrection ( const HitCollection &  hits)
private

Definition at line 249 of file Multiplet_module.cc.

References HitCorrection(), and PandAna.Demos.pi0_spectra::transform.

Referenced by filter(), and isHitCloseToHit().

250 {
251  HitCollection res;
252  //create a callable object that produces new hits
253  using namespace std::placeholders;
254  auto corrector = std::bind(&novaddt::Multiplet::HitCorrection, this, _1);
255  //apply correction to all hits, populating the res collection
256  std::transform( hits.begin(), hits.end(),
257  std::inserter(res,res.end()),
258  corrector);
259 
260  return res;
261 }
DAQHit HitCorrection(const DAQHit &hit)
void hits()
Definition: readHits.C:15
void novaddt::Multiplet::beginJob ( )
overridevirtual

Reimplemented from art::EDFilter.

Definition at line 190 of file Multiplet_module.cc.

191 {
192  // Implementation of optional member function here.
193 }
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
double novaddt::Multiplet::deltaTCorr ( const novaddt::DAQHit h1,
const novaddt::DAQHit h2 
)

Definition at line 215 of file Multiplet_module.cc.

References std::abs(), novaddt::DAQHit::Cell(), deltaTDC(), novaddt::utils::DetectorUtils::DistTimeOffset(), DT(), fDetUtils, novaddt::utils::DetectorUtils::GetReadoutDistance(), novaddt::utils::DetectorUtils::ns_to_TDC(), and novaddt::utils::DetectorUtils::PigTimeOffset().

Referenced by isHitCloseToHit().

216 {
217  double dist1 = fDetUtils.GetReadoutDistance(h1,h2.Cell());
218  double dist2 = fDetUtils.GetReadoutDistance(h2,h1.Cell());
219  double dtc1 = fDetUtils.DistTimeOffset(dist1)+fDetUtils.PigTimeOffset(h1);
220  double dtc2 = fDetUtils.DistTimeOffset(dist2)+fDetUtils.PigTimeOffset(h2);
221  double dtc = (dtc2-dtc1)*fDetUtils.ns_to_TDC();
222  double DT = deltaTDC(h1,h2);
223  /* std::cout<<"dist = "<<dist1<<" , "<<dist2
224  <<"\t dtc = "<<dtc<<";\tDT = "<<DT
225  <<"("<<delta<TDC>(h1,h2)<<")"
226  <<"\t -> "<<std::abs(DT-dtc)<<std::endl;
227  */
228  return std::abs(DT-dtc);
229 }
novaddt::utils::DetectorUtils fDetUtils
double DistTimeOffset(double dist) const
float abs(float number)
Definition: d0nt_math.hpp:39
double DT(const novaddt::TDC &t1, const novaddt::TDC &t2)
double deltaTDC(const novaddt::TDC &h1, const novaddt::TDC &h2)
double PigTimeOffset(const DAQHit &hit) const
Definition: DetectorUtils.h:69
double GetReadoutDistance(const DAQHit &hit, const novaddt::Cell &cell) const
novaddt::Cell const & Cell() const
Definition: DAQHit.h:71
void novaddt::Multiplet::endJob ( )
overridevirtual

Reimplemented from art::EDFilter.

Definition at line 196 of file Multiplet_module.cc.

References _nEvents, _nHitsIn, _nHitsOut, _nSlicesOut, om::cout, allTimeWatchdog::endl, and fVerbose.

197 {
198  if (!fVerbose) return;
199  std::cout << "--- novaddt::Multiplet end " << std::endl;
200  std::cout << "\t# of events: " << _nEvents << std::endl;
201  std::cout << "\t# of hits input: " << _nHitsIn << std::endl;
202  std::cout << "\t# of hits output: " << _nHitsOut << std::endl;
203  std::cout << "\t# of slices output: " << _nSlicesOut << std::endl;
204 }
OStream cout
Definition: OStream.cxx:6
bool novaddt::Multiplet::filter ( art::Event event)
overridevirtual

Implements art::EDFilter.

Definition at line 162 of file Multiplet_module.cc.

References _nEvents, _nHitsIn, _nHitsOut, _nSlicesOut, ApplyCorrection(), fDoApplyTimingCorrection, findslices(), fInputTag, and stan::io::product().

163 {
164  _nEvents++;
165 
166  // Hitlist from event (input)
167  auto hitsHandle=event.getValidHandle<novaddt::HitList>(fInputTag);
168  //make a set from a list
169  novaddt::HitSet allHits(*hitsHandle);
170  //apply correction if needed
172  allHits = ApplyCorrection(allHits);
173 
174  _nHitsIn+=allHits.size();
175 
176  //make a vector of hitlists out of hits after slicing
177  std::unique_ptr< std::vector<HitList> >product (new std::vector<HitList>);
178 
179  // Find slices
180  findslices(allHits,product);
181 
182  _nSlicesOut+=product->size();
183  for (auto slice: *product) _nHitsOut+=slice.size();
184 
185  // Add filtered hitlists to event
186  event.put(std::move(product ));
187  return true;
188 }
HitCollection ApplyCorrection(const HitCollection &hits)
void findslices(const HitCollection &inhits, std::unique_ptr< std::vector< novaddt::HitList > > &product)
std::vector< DAQHit > HitList
Definition: HitList.h:15
T product(std::vector< T > dims)
art::InputTag fInputTag
template<class HitCollection >
void novaddt::Multiplet::findslices ( const HitCollection &  inhits,
std::unique_ptr< std::vector< novaddt::HitList > > &  product 
)
private

Referenced by filter(), and isHitCloseToHit().

template<class HitCollection >
void novaddt::Multiplet::findslices ( const HitCollection &  inhits,
std::unique_ptr< std::vector< HitList > > &  product 
)

Definition at line 265 of file Multiplet_module.cc.

References std::abs(), om::cout, DEFINE_ART_MODULE(), deltaTDC(), allTimeWatchdog::endl, fMaxSliceSize, fMaxTDCSep, fMinSliceSize, fVerbose, hits(), isHitCloseToSlice(), and stan::io::product().

267 {
268  if (!inhits.empty()) {
269 
270  // copy input hitlist to a list that we can start slicing up
271  std::list<DAQHit> hits(inhits.begin(),inhits.end());
272 
273  if (fVerbose) std::cout << "findslices got " << inhits.size()
274  << " hits, working with " << hits.size()<<std::endl;
275  // Loop over all hits
276  while (!hits.empty()) {
277  // this will be the first hit in the slice, put it there
278  HitList frag;
279  frag.emplace_back(hits.front());
280  // remove it from the front of the list, since it's now in a slice
281  hits.pop_front();
282  // point to the first hit in the slice
283  auto lastInSlice = frag.back();
284  auto testhit = hits.begin();
285  while (testhit != hits.end()) {
286  // since hits are time ordered, march along until we get out of time,
287  // with the last hit already in the slice, adding hits that are
288  // also in space with the last hit already in the slice
289  if(std::abs(deltaTDC(*testhit,lastInSlice)) > fMaxTDCSep) break;
290  //we're out of time, this fragment ends
291 
292  if(isHitCloseToSlice(*testhit,frag))
293  {
294  // add this hit to slice
295  frag.emplace_back(*testhit);
296  lastInSlice = frag.back();
297  // remove it from list of potential hits, since a hit can only
298  // belong to one slice (after moving to next hit)
299  auto erasehit = testhit;
300  testhit++;
301  hits.erase(erasehit);
302  }
303  else testhit++;
304 
305  } // end loop over rest of hits
306 
307  // we've finished building a slice, save it to product
308  if (fVerbose) std::cout << "Sliced: " << frag.size() << " hits from "
309  << frag.front().TDC().val << " to "
310  << frag.back().TDC().val <<std::endl;
311  if ((frag.size() <= fMaxSliceSize)
312  && (frag.size() >= fMinSliceSize)){
313  product->emplace_back(frag);
314  }
315  } // loop over full hitlist
316 
317  }
318  // Last slices seem to be noise slices.
319  // Save the slices that don't meet the cuts in here
320  // TODO: right now we're just dropping "noise" hits, more efficient.
321  // Make an empty slice just in case
322  //HitList noise;
323  //product->emplace_back(noise);
324 }
std::vector< DAQHit > HitList
Definition: HitList.h:15
float abs(float number)
Definition: d0nt_math.hpp:39
bool isHitCloseToSlice(const DAQHit &h, const HitList &frag)
void hits()
Definition: readHits.C:15
double deltaTDC(const novaddt::TDC &h1, const novaddt::TDC &h2)
OStream cout
Definition: OStream.cxx:6
T product(std::vector< T > dims)
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  }
novaddt::DAQHit novaddt::Multiplet::HitCorrection ( const DAQHit hit)
private

Definition at line 232 of file Multiplet_module.cc.

References novaddt::DAQHit::ADC(), novaddt::utils::DetectorUtils::CellTimeOffset(), novaddt::DAQHit::Chan(), novaddt::DAQHit::DetID(), fDetUtils, stan::math::floor(), novaddt::TDC::fraction(), novaddt::utils::DetectorUtils::ns_to_TDC(), novaddt::DAQHit::TDC(), and novaddt::TDC::val.

Referenced by ApplyCorrection(), and isHitCloseToHit().

232  {
233  //applying the timing correction
234  double dt = hit.TDC().fraction()-fDetUtils.CellTimeOffset(hit)*fDetUtils.ns_to_TDC();
235  //get int and frac part
236  long dtI = std::floor(dt);
237  double dtF = dt-dtI;
238  //make a TDC object
239  novaddt::TDC tdc(hit.TDC().val + dtI, dtF*100);
240  /* std::cout<<"dt = "<<dt<<" ( "<<dtI<<" + "<<dtF<<" ) "<<std::endl;
241  std::cout<<"tdc0 = "<<hit.TDC().val<<" + "<<hit.TDC().fraction()<<std::endl;
242  std::cout<<"tdc1 = "<<tdc.val<<" + "<<tdc.fraction()<<std::endl;
243  */
244  return DAQHit(hit.DetID(),hit.Chan(), hit.ADC(), tdc);
245 }
novaddt::utils::DetectorUtils fDetUtils
double CellTimeOffset(const DAQHit &hit) const
Definition: Cand.cxx:23
Definition: structs.h:12
fvar< T > floor(const fvar< T > &x)
Definition: floor.hpp:11
bool novaddt::Multiplet::isHitCloseToHit ( const DAQHit h1,
const DAQHit h2 
)
inline

Definition at line 81 of file Multiplet_module.cc.

References std::abs(), ApplyCorrection(), deltaTCorr(), deltaTDC(), fDoApplyDistCorrection, findslices(), fMaxCellSep, fMaxDTxx, fMaxDTxy, fMaxPlaneSep, HitCorrection(), hits(), stan::io::product(), and novaddt::DAQHit::View().

Referenced by isHitCloseToSlice().

81  {
82  if (delta<Plane>(h1,h2)>fMaxPlaneSep) return false;
83  if (h1.View()==h2.View())
84  return (delta<Cell>(h1,h2)<=fMaxCellSep)&&
86 
87  else
89  }
double deltaTCorr(const novaddt::DAQHit &h1, const novaddt::DAQHit &h2)
float abs(float number)
Definition: d0nt_math.hpp:39
double deltaTDC(const novaddt::TDC &h1, const novaddt::TDC &h2)
TH1F * h2
Definition: plot.C:45
TH1F * h1
bool novaddt::Multiplet::isHitCloseToSlice ( const DAQHit h,
const HitList frag 
)
inline

Definition at line 73 of file Multiplet_module.cc.

References isHitCloseToHit().

Referenced by findslices().

73  {
74  //require that candidate hit is close to any hit in slice
75  for(const auto& h2: frag){
76  if(isHitCloseToHit(h,h2))return true;
77  }
78  return false;
79  }
bool isHitCloseToHit(const DAQHit &h1, const DAQHit &h2)
TH1F * h2
Definition: plot.C:45
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
Multiplet& novaddt::Multiplet::operator= ( Multiplet const &  )
delete
Multiplet& novaddt::Multiplet::operator= ( Multiplet &&  )
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

int novaddt::Multiplet::_nEvents = 0
private

Definition at line 118 of file Multiplet_module.cc.

Referenced by endJob(), and filter().

int novaddt::Multiplet::_nHitsIn = 0
private

Definition at line 119 of file Multiplet_module.cc.

Referenced by endJob(), and filter().

int novaddt::Multiplet::_nHitsOut = 0
private

Definition at line 120 of file Multiplet_module.cc.

Referenced by endJob(), and filter().

int novaddt::Multiplet::_nSlicesOut = 0
private

Definition at line 121 of file Multiplet_module.cc.

Referenced by endJob(), and filter().

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

Definition at line 33 of file EDFilter.h.

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

novaddt::utils::DetectorUtils novaddt::Multiplet::fDetUtils
private

Definition at line 103 of file Multiplet_module.cc.

Referenced by deltaTCorr(), and HitCorrection().

bool novaddt::Multiplet::fDoApplyDistCorrection
private

Definition at line 115 of file Multiplet_module.cc.

Referenced by isHitCloseToHit(), and Multiplet().

bool novaddt::Multiplet::fDoApplyTimingCorrection
private

Definition at line 114 of file Multiplet_module.cc.

Referenced by filter(), and Multiplet().

art::InputTag novaddt::Multiplet::fInputTag
private

Definition at line 105 of file Multiplet_module.cc.

Referenced by filter(), and Multiplet().

unsigned novaddt::Multiplet::fMaxCellSep
private

Definition at line 107 of file Multiplet_module.cc.

Referenced by isHitCloseToHit(), and Multiplet().

double novaddt::Multiplet::fMaxDTxx
private

Definition at line 109 of file Multiplet_module.cc.

Referenced by isHitCloseToHit(), and Multiplet().

double novaddt::Multiplet::fMaxDTxy
private

Definition at line 110 of file Multiplet_module.cc.

Referenced by isHitCloseToHit(), and Multiplet().

unsigned novaddt::Multiplet::fMaxPlaneSep
private

Definition at line 106 of file Multiplet_module.cc.

Referenced by isHitCloseToHit(), and Multiplet().

unsigned novaddt::Multiplet::fMaxSliceSize
private

Definition at line 112 of file Multiplet_module.cc.

Referenced by findslices(), and Multiplet().

unsigned novaddt::Multiplet::fMaxTDCSep
private

Definition at line 108 of file Multiplet_module.cc.

Referenced by findslices(), and Multiplet().

unsigned novaddt::Multiplet::fMinSliceSize
private

Definition at line 111 of file Multiplet_module.cc.

Referenced by findslices(), and Multiplet().

bool novaddt::Multiplet::fVerbose
private

Definition at line 113 of file Multiplet_module.cc.

Referenced by endJob(), findslices(), and Multiplet().

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: