All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IFakeParticle.h
Go to the documentation of this file.
1 /**
2  * @file IFakeParticle.h
3  *
4  * @brief This provides an art tool interface definition for tools which can create
5  * "fake" particles to overlay onto input daq fragments during decoding
6  *
7  * @author usher@slac.stanford.edu
8  *
9  */
10 #ifndef IFakeParticle_h
11 #define IFakeParticle_h
12 
13 // Framework Includes
14 #include "fhiclcpp/ParameterSet.h"
15 #include "art/Framework/Principal/Event.h"
16 
17 // Algorithm includes
18 #include "artdaq-core/Data/Fragment.hh"
19 namespace detinfo {
20  class DetectorClocksData;
21 }
22 
23 //------------------------------------------------------------------------------------------------------------------------------------------
24 
25 namespace daq
26 {
27 /**
28  * @brief IFakeParticle interface class definiton
29  */
31 {
32 public:
33  /**
34  * @brief Virtual Destructor
35  */
36  virtual ~IFakeParticle() noexcept = default;
37 
38  /**
39  * @brief Interface for configuring the particular algorithm tool
40  *
41  * @param ParameterSet The input set of parameters for configuration
42  */
43  virtual void configure(const fhicl::ParameterSet&) = 0;
44 
45  /**
46  * @brief Creates a fake particle and overlays on the input fragment
47  *
48  * @param waveforms The waveform container to place fake particle on
49  */
50  using VectorShort = std::vector<short>;
51  using VectorFloat = std::vector<float>;
52  using ArrayShort = std::vector<VectorShort>;
53  using ArrayFloat = std::vector<VectorFloat>;
54  virtual void overlayFakeParticle(detinfo::DetectorClocksData const& clockData,
55  ArrayFloat& waveforms) = 0;
56 };
57 
58 } // namespace daq
59 #endif
virtual ~IFakeParticle() noexcept=default
Virtual Destructor.
std::vector< VectorShort > ArrayShort
Definition: IFakeParticle.h:52
std::vector< float > VectorFloat
Definition: IFakeParticle.h:51
std::vector< VectorFloat > ArrayFloat
Definition: IFakeParticle.h:53
virtual void overlayFakeParticle(detinfo::DetectorClocksData const &clockData, ArrayFloat &waveforms)=0
IFakeParticle interface class definiton.
Definition: IFakeParticle.h:30
Contains all timing reference information for the detector.
std::vector< short > VectorShort
Creates a fake particle and overlays on the input fragment.
Definition: IFakeParticle.h:50
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.