All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SimDepoSource.h
Go to the documentation of this file.
1 /** A sim depo source provides IDepo objects to WCT from LS simulation objects.
2 
3  Multiple strategies are possible for ingesting depositions into
4  WCT simulation.
5 
6  1) Treat the vector of SimEnergyDeposit in each art::Event in
7  whole and independently from those in other art::Event's. That's
8  what this converter does.
9 
10  2) Allow for multiple, independent vectors of SimEnergyDeposit
11  otherwise as above to each be ingested into WCT on each art::Event
12  and let WCT properly mix them (eg with WCT's Gen::DepoMerger
13  component).
14 
15  3) As above but relax treating each art::Event atomically and
16  allow accumulation of depos spanning multiple visit()'s. This can
17  be used to allow art modules to feed WCT to set up a streaming
18  simulation such as one might want to do to simulate for DUNE
19  triggering studies. The back end of the WCT simulation will still
20  need to spit out discrete frames but it can do so such that their
21  boundaries can be stitched together seemlessly.
22 
23 */
24 
25 #ifndef LARWIRECELL_COMPONENTS_SIMDEPOSOURCE
26 #define LARWIRECELL_COMPONENTS_SIMDEPOSOURCE
27 
29 #include "WireCellIface/IDepoSource.h"
30 #include "WireCellIface/IConfigurable.h"
31 #include "WireCellIface/IDepo.h"
32 #include "canvas/Utilities/InputTag.h"
33 
34 #include <deque>
35 
36 namespace wcls {
37 
38  namespace bits {
39  class DepoAdapter;
40  }
41 
43  public WireCell::IDepoSource,
44  public WireCell::IConfigurable {
45  public:
46  SimDepoSource();
47  virtual ~SimDepoSource();
48 
49  /// IArtEventVisitor
50  virtual void visit(art::Event & event);
51 
52  /// IDepoSource
53  virtual bool operator()(WireCell::IDepo::pointer& out);
54 
55  /// IConfigurable
56  virtual WireCell::Configuration default_configuration() const;
57  virtual void configure(const WireCell::Configuration& config);
58 
59  private:
60  std::deque<WireCell::IDepo::pointer> m_depos;
62 
63  art::InputTag m_inputTag;
64  art::InputTag m_assnTag; // associated input
65  };
66 }
67 #endif
virtual WireCell::Configuration default_configuration() const
IConfigurable.
std::deque< WireCell::IDepo::pointer > m_depos
Definition: SimDepoSource.h:60
art::InputTag m_assnTag
Definition: SimDepoSource.h:64
virtual void configure(const WireCell::Configuration &config)
art::InputTag m_inputTag
Definition: SimDepoSource.h:63
virtual bool operator()(WireCell::IDepo::pointer &out)
IDepoSource.
virtual void visit(art::Event &event)
IArtEventVisitor.
bits::DepoAdapter * m_adapter
Definition: SimDepoSource.h:61