LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
recob::HitCollectionCreator Class Reference

A class handling a collection of hits and its associations. More...

#include "HitCreator.h"

Inheritance diagram for recob::HitCollectionCreator:
recob::HitAndAssociationsWriterBase

Public Member Functions

size_t size () const
 Returns the number of hits currently in the collection. More...
 
void reserve (size_t new_size)
 Prepares the collection to host at least new_size hits. More...
 
void put_into (art::Event &)
 Moves the data into an event. More...
 
void put_into ()
 Moves the data into the event. More...
 
std::vector< recob::Hit > const & peek () const
 Returns a read-only reference to the current list of hits. More...
 
Constructors
template<typename ModuleType >
 HitCollectionCreator (ModuleType &producer, art::Event &event, std::string instance_name="", bool doWireAssns=true, bool doRawDigitAssns=true)
 Constructor: sets instance name and whether to build associations. More...
 
template<typename ModuleType >
 HitCollectionCreator (ModuleType &producer, art::Event &event, bool doWireAssns, bool doRawDigitAssns)
 Constructor: no product instance name. More...
 
Addition of hits
void emplace_back (recob::Hit &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
 Adds the specified hit to the data collection. More...
 
void emplace_back (recob::Hit const &hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
 Adds the specified hit to the data collection. More...
 
void emplace_back (HitCreator &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
 Adds the specified hit to the data collection. More...
 
void emplace_back (recob::Hit &&hit, art::Ptr< raw::RawDigit > const &digits)
 Adds the specified hit to the data collection. More...
 
void emplace_back (HitCreator &&hit, art::Ptr< raw::RawDigit > const &digits)
 Adds the specified hit to the data collection. More...
 
void emplace_back (HitCreator const &hit, art::Ptr< raw::RawDigit > const &digits)
 Adds the specified hit to the data collection. More...
 

Static Public Member Functions

template<typename ModuleType >
static void declare_products (ModuleType &producer, std::string instance_name="", bool doWireAssns=true, bool doRawDigitAssns=true)
 Declares the hit products we are going to fill. More...
 

Protected Types

using HitPtr_t = HitAndAssociationsWriterBase::HitPtr_t
 

Protected Member Functions

HitPtr_t CreatePtrToLastHit () const
 Creates an art pointer to the hit with the last index. More...
 
void CreateAssociationsToLastHit (art::Ptr< recob::Wire > const &wire, art::Ptr< raw::RawDigit > const &digits)
 Creates associations between the last hit and the specified pointers. More...
 
HitPtr_t CreatePtr (size_t index) const
 Creates an art pointer to the hit with the specified index. More...
 

Protected Attributes

std::string prod_instance
 Tame of the instance for data products. More...
 
std::unique_ptr< std::vector< recob::Hit > > hits
 Collection of hits. More...
 
std::unique_ptr< art::Assns< recob::Wire, recob::Hit > > WireAssns
 Associations with wires. More...
 
std::unique_ptr< art::Assns< raw::RawDigit, recob::Hit > > RawDigitAssns
 Associations with raw digits. More...
 
art::Eventevent = nullptr
 Pointer to the event we are using. More...
 
art::PtrMaker< recob::HithitPtrMaker
 Tool to create hit pointers,. More...
 

Detailed Description

A class handling a collection of hits and its associations.


Instead of creating a collection of hits, one for its association with wires and one for its association with raw digits, one can push hits into this object, and then move it into the event.

Definition at line 513 of file HitCreator.h.

Member Typedef Documentation

Constructor & Destructor Documentation

template<typename ModuleType >
recob::HitCollectionCreator::HitCollectionCreator ( ModuleType &  producer,
art::Event event,
std::string  instance_name = "",
bool  doWireAssns = true,
bool  doRawDigitAssns = true 
)

Constructor: sets instance name and whether to build associations.

Template Parameters
ModuleTypetype of producing module (EDProducer or EDFilter)
Parameters
producerthe module producing the data products
eventthe event the products are going to be put into
instance_namename of the instance for all data products
doWireAssnswhether to enable associations to wires
doRawDigitAssnswhether to enable associations to raw digits

All the data products (hit collection and associations) will have the specified product instance name.

Definition at line 1159 of file HitCreator.h.

References recob::HitAndAssociationsWriterBase::hits.

1165  (producer, event, instance_name, doWireAssns, doRawDigitAssns)
1166 {
1167  hits.reset(new std::vector<recob::Hit>);
1168 } // recob::HitCollectionCreator::HitCollectionCreator()
HitAndAssociationsWriterBase(ModuleType &producer, art::Event &event, std::string instance_name, bool doWireAssns, bool doRawDigitAssns)
Constructor: sets instance name and whether to build associations.
Definition: HitCreator.h:1097
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
template<typename ModuleType >
recob::HitCollectionCreator::HitCollectionCreator ( ModuleType &  producer,
art::Event event,
bool  doWireAssns,
bool  doRawDigitAssns 
)
inline

Constructor: no product instance name.

Template Parameters
ModuleTypetype of producing module (EDProducer or EDFilter)
Parameters
producerthe module producing the data products
eventthe event the products are going to be put into
doWireAssnswhether to enable associations to wires
doRawDigitAssnswhether to enable associations to raw digits

Definition at line 547 of file HitCreator.h.

550  :
551  HitCollectionCreator(producer, event, "", doWireAssns, doRawDigitAssns)
552  {}
HitCollectionCreator(ModuleType &producer, art::Event &event, std::string instance_name="", bool doWireAssns=true, bool doRawDigitAssns=true)
Constructor: sets instance name and whether to build associations.
Definition: HitCreator.h:1159

Member Function Documentation

void recob::HitCollectionCreator::CreateAssociationsToLastHit ( art::Ptr< recob::Wire > const &  wire,
art::Ptr< raw::RawDigit > const &  digits 
)
protected

Creates associations between the last hit and the specified pointers.

Definition at line 282 of file HitCreator.cxx.

References art::Ptr< T >::isNonnull(), and recob::HitCollectionAssociator::use_hits().

284  {
285  // if no association is required, we are done
286  if (!WireAssns && !RawDigitAssns) return;
287 
288  // art pointer to the hit we just created
289  HitPtr_t hit_ptr(CreatePtrToLastHit());
290 
291  // association with wires
292  if (WireAssns && wire.isNonnull())
293  WireAssns->addSingle(wire, hit_ptr); // if it fails, it throws
294 
295  // association with wires
296  if (RawDigitAssns && digits.isNonnull())
297  RawDigitAssns->addSingle(digits, hit_ptr); // if it fails, it throws
298 
299  } // HitCollectionCreator::CreateAssociationsToLastHit()
HitPtr_t CreatePtrToLastHit() const
Creates an art pointer to the hit with the last index.
Definition: HitCreator.h:683
HitAndAssociationsWriterBase::HitPtr_t HitPtr_t
Definition: HitCreator.h:680
bool isNonnull() const
Definition: Ptr.h:335
std::unique_ptr< art::Assns< recob::Wire, recob::Hit > > WireAssns
Associations with wires.
Definition: HitCreator.h:469
std::unique_ptr< art::Assns< raw::RawDigit, recob::Hit > > RawDigitAssns
Associations with raw digits.
Definition: HitCreator.h:471
HitPtr_t recob::HitAndAssociationsWriterBase::CreatePtr ( size_t  index) const
inlineprotectedinherited

Creates an art pointer to the hit with the specified index.

Definition at line 499 of file HitCreator.h.

499 { return hitPtrMaker(index); }
art::PtrMaker< recob::Hit > hitPtrMaker
Tool to create hit pointers,.
Definition: HitCreator.h:475
HitPtr_t recob::HitCollectionCreator::CreatePtrToLastHit ( ) const
inlineprotected

Creates an art pointer to the hit with the last index.

Definition at line 683 of file HitCreator.h.

References hits().

684  { return hits->empty()? HitPtr_t(): CreatePtr(hits->size() - 1); }
HitAndAssociationsWriterBase::HitPtr_t HitPtr_t
Definition: HitCreator.h:680
HitPtr_t CreatePtr(size_t index) const
Creates an art pointer to the hit with the specified index.
Definition: HitCreator.h:499
size_t size() const
Returns the number of hits currently in the collection.
Definition: HitCreator.h:647
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
template<typename ModuleType >
void recob::HitAndAssociationsWriterBase::declare_products ( ModuleType &  producer,
std::string  instance_name = "",
bool  doWireAssns = true,
bool  doRawDigitAssns = true 
)
staticinherited

Declares the hit products we are going to fill.

Template Parameters
ModuleTypetype of producing module (EDProducer or EDFilter)
Parameters
producerthe module producing the data products
instance_namename of the instance for all data products
doWireAssnswhether to enable associations to wires
doRawDigitAssnswhether to enable associations to raw digits

This declaration must be given in the constructor of producer. It is equivalent to manually declare the relevant among these products:

produces<std::vector<recob::Hit>>(prod_instance);
produces<art::Assns<recob::Wire, recob::Hit>>(prod_instance);
produces<art::Assns<raw::RawDigit, recob::Hit>>(prod_instance);

in the producer constructor. All the data products (hit collection and associations) will have the specified product instance name.

Definition at line 1117 of file HitCreator.h.

Referenced by apa::APAHitFinder::APAHitFinder(), cluster::ClusterCrawler::ClusterCrawler(), CRHitRemoval::CRHitRemoval(), recob::HitAndAssociationsWriterManager< Writer, ModuleType >::declareProducts(), hit::DisambigCheater::DisambigCheater(), hit::DPRawHitFinder::DPRawHitFinder(), hit::FFTHitFinder::FFTHitFinder(), hit::GausHitFinder::GausHitFinder(), hit::HitCheater::HitCheater(), hit::HitFinder::HitFinder(), cluster::LineCluster::LineCluster(), hit::RawHitFinder::RawHitFinder(), hit::RFFHitFinder::RFFHitFinder(), cluster::SimpleLineCluster::SimpleLineCluster(), cluster::TrajCluster::TrajCluster(), and hit::TTHitFinder::TTHitFinder().

1121  {
1122  producer.template produces<std::vector<recob::Hit>>(instance_name);
1123 
1124  // declare the other products we are creating (if any)
1125  if (doWireAssns) {
1126  producer.template produces<art::Assns<recob::Wire, recob::Hit>>
1127  (instance_name);
1128  }
1129  if (doRawDigitAssns) {
1130  producer.template produces<art::Assns<raw::RawDigit, recob::Hit>>
1131  (instance_name);
1132  }
1133 
1134 } // recob::HitAndAssociationsWriterBase::declare_products()
void recob::HitCollectionCreator::emplace_back ( recob::Hit &&  hit,
art::Ptr< recob::Wire > const &  wire = art::Ptr<recob::Wire>(),
art::Ptr< raw::RawDigit > const &  digits = art::Ptr<raw::RawDigit>() 
)

Adds the specified hit to the data collection.

Parameters
hitthe hit that will be moved into the collection
wireart pointer to the wire to be associated to this hit
digitsart pointer to the raw digits to be associated to this hit

After this call, hit will be invalid. If a art pointer is not valid, that association will not be stored.

Definition at line 245 of file HitCreator.cxx.

References hits().

Referenced by CRHitRemoval::copyAllHits(), CRHitRemoval::copyInTimeHits(), hit::DisambigCheater::MakeDisambigHit(), hit::TTHitFinder::produce(), apa::APAHitFinder::produce(), hit::HitCheater::produce(), hit::FFTHitFinder::produce(), hit::RawHitFinder::produce(), hit::GausHitFinder::produce(), and hit::DPRawHitFinder::produce().

248  {
249 
250  // add the hit to the collection
251  hits->emplace_back(std::move(hit));
252 
253  CreateAssociationsToLastHit(wire, digits);
254  } // HitCollectionCreator::emplace_back(Hit&&)
void CreateAssociationsToLastHit(art::Ptr< recob::Wire > const &wire, art::Ptr< raw::RawDigit > const &digits)
Creates associations between the last hit and the specified pointers.
Definition: HitCreator.cxx:282
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
void recob::HitCollectionCreator::emplace_back ( recob::Hit const &  hit,
art::Ptr< recob::Wire > const &  wire = art::Ptr<recob::Wire>(),
art::Ptr< raw::RawDigit > const &  digits = art::Ptr<raw::RawDigit>() 
)

Adds the specified hit to the data collection.

Parameters
hitthe hit that will be copied into the collection
wireart pointer to the wire to be associated to this hit
digitsart pointer to the raw digits to be associated to this hit

If a art pointer is not valid, that association will not be stored.

Definition at line 258 of file HitCreator.cxx.

References hits().

261  {
262 
263  // add the hit to the collection
264  hits->push_back(hit);
265 
266  CreateAssociationsToLastHit(wire, digits);
267  } // HitCollectionCreator::emplace_back(Hit)
void CreateAssociationsToLastHit(art::Ptr< recob::Wire > const &wire, art::Ptr< raw::RawDigit > const &digits)
Creates associations between the last hit and the specified pointers.
Definition: HitCreator.cxx:282
Detector simulation of raw signals on wires.
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
void recob::HitCollectionCreator::emplace_back ( HitCreator &&  hit,
art::Ptr< recob::Wire > const &  wire = art::Ptr<recob::Wire>(),
art::Ptr< raw::RawDigit > const &  digits = art::Ptr<raw::RawDigit>() 
)
inline

Adds the specified hit to the data collection.

Parameters
hitthe HitCreator object containing the hit
wireart pointer to the wire to be associated to this hit
digitsart pointer to the raw digits to be associated to this hit

After this call, the hit creator will be empty. If a art pointer is not valid, that association will not be stored.

Definition at line 601 of file HitCreator.h.

606  { emplace_back(hit.move(), wire, digits); }
void emplace_back(recob::Hit &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
Adds the specified hit to the data collection.
Definition: HitCreator.cxx:245
Detector simulation of raw signals on wires.
void recob::HitCollectionCreator::emplace_back ( recob::Hit &&  hit,
art::Ptr< raw::RawDigit > const &  digits 
)
inline

Adds the specified hit to the data collection.

Parameters
hitthe hit that will be moved into the collection
digitsart pointer to the raw digits to be associated to this hit

After this call, hit will be invalid. If the digit pointer is not valid, its association will not be stored.

Definition at line 617 of file HitCreator.h.

618  { emplace_back(std::move(hit), art::Ptr<recob::Wire>(), digits); }
void emplace_back(recob::Hit &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
Adds the specified hit to the data collection.
Definition: HitCreator.cxx:245
Definition: fwd.h:25
void recob::HitCollectionCreator::emplace_back ( HitCreator &&  hit,
art::Ptr< raw::RawDigit > const &  digits 
)
inline

Adds the specified hit to the data collection.

Parameters
hitthe HitCreator object containing the hit
digitsart pointer to the raw digits to be associated to this hit

After this call, the hit creator will be empty. If the digit pointer is not valid, its association will not be stored.

Definition at line 629 of file HitCreator.h.

630  { emplace_back(std::move(hit), art::Ptr<recob::Wire>(), digits); }
void emplace_back(recob::Hit &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
Adds the specified hit to the data collection.
Definition: HitCreator.cxx:245
Detector simulation of raw signals on wires.
Definition: fwd.h:25
void recob::HitCollectionCreator::emplace_back ( HitCreator const &  hit,
art::Ptr< raw::RawDigit > const &  digits 
)
inline

Adds the specified hit to the data collection.

Parameters
hitthe HitCreator object containing the hit
digitsart pointer to the raw digits to be associated to this hit

If the digit pointer is not valid, its association will not be stored.

Definition at line 641 of file HitCreator.h.

References recob::HitCreator::copy().

642  { emplace_back(std::move(hit.copy()), art::Ptr<recob::Wire>(), digits); }
void emplace_back(recob::Hit &&hit, art::Ptr< recob::Wire > const &wire=art::Ptr< recob::Wire >(), art::Ptr< raw::RawDigit > const &digits=art::Ptr< raw::RawDigit >())
Adds the specified hit to the data collection.
Definition: HitCreator.cxx:245
Detector simulation of raw signals on wires.
Definition: fwd.h:25
std::vector<recob::Hit> const& recob::HitCollectionCreator::peek ( ) const
inline

Returns a read-only reference to the current list of hits.

Definition at line 676 of file HitCreator.h.

References hits().

676 { return *hits; }
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
void recob::HitCollectionCreator::put_into ( art::Event )
inline

Moves the data into an event.

The calling module must have already declared the production of these products with the proper instance name. After the move, the collections in this object are empty.

Deprecated:
Use the version with no arguments instead.

Definition at line 663 of file HitCreator.h.

References put_into().

Referenced by hit::DisambigCheater::produce(), hit::TTHitFinder::produce(), apa::APAHitFinder::produce(), hit::HitCheater::produce(), hit::FFTHitFinder::produce(), hit::RawHitFinder::produce(), hit::GausHitFinder::produce(), hit::DPRawHitFinder::produce(), and put_into().

663 { put_into(); }
void put_into()
Moves the data into the event.
Definition: HitCreator.cxx:271
void recob::HitCollectionCreator::put_into ( )

Moves the data into the event.

The calling module must have already declared the production of these products with the proper instance name. After the move, the collections in this object are empty.

Definition at line 271 of file HitCreator.cxx.

References hits(), art::errors::LogicError, and recob::HitAndAssociationsWriterBase::put_into().

271  {
272  if (!hits) {
274  << "HitCollectionCreator is trying to put into the event"
275  " a hit collection that was never created!\n";
276  }
278  } // HitCollectionCreator::put_into()
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
void put_into()
Moves the data into the event.
Definition: HitCreator.cxx:234
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
void recob::HitCollectionCreator::reserve ( size_t  new_size)
inline

Prepares the collection to host at least new_size hits.

Definition at line 651 of file HitCreator.h.

References hits().

Referenced by hit::RawHitFinder::produce().

651 { if (hits) hits->reserve(new_size); }
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467
size_t recob::HitCollectionCreator::size ( ) const
inline

Returns the number of hits currently in the collection.

Definition at line 647 of file HitCreator.h.

References hits().

Referenced by hit::TTHitFinder::produce(), and hit::HitCheater::produce().

647 { return hits->size(); }
std::unique_ptr< std::vector< recob::Hit > > hits
Collection of hits.
Definition: HitCreator.h:467

Member Data Documentation

art::Event* recob::HitAndAssociationsWriterBase::event = nullptr
protectedinherited

Pointer to the event we are using.

Definition at line 473 of file HitCreator.h.

Referenced by recob::HitAndAssociationsWriterManager< Writer, ModuleType >::collectionWriter().

art::PtrMaker<recob::Hit> recob::HitAndAssociationsWriterBase::hitPtrMaker
protectedinherited

Tool to create hit pointers,.

Definition at line 475 of file HitCreator.h.

std::unique_ptr<std::vector<recob::Hit> > recob::HitAndAssociationsWriterBase::hits
protectedinherited
std::string recob::HitAndAssociationsWriterBase::prod_instance
protectedinherited

Tame of the instance for data products.

Definition at line 464 of file HitCreator.h.

std::unique_ptr<art::Assns<raw::RawDigit, recob::Hit> > recob::HitAndAssociationsWriterBase::RawDigitAssns
protectedinherited

Associations with raw digits.

Definition at line 471 of file HitCreator.h.

Referenced by recob::HitCollectionAssociator::HitCollectionAssociator().

std::unique_ptr<art::Assns<recob::Wire, recob::Hit> > recob::HitAndAssociationsWriterBase::WireAssns
protectedinherited

Associations with wires.

Definition at line 469 of file HitCreator.h.

Referenced by recob::HitCollectionAssociator::HitCollectionAssociator().


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