All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ChannelNoiseService.h
Go to the documentation of this file.
1 // ChannelNoiseService.h
2 
3 // David Adams
4 // December 2015
5 //
6 // Interface for a service that adds noise to a TPC signal vector.
7 
8 #ifndef ChannelNoiseService_H
9 #define ChannelNoiseService_H
10 
11 #include <vector>
12 #include <iostream>
14 #include "art/Framework/Core/EDProducer.h"
15 #include "fhiclcpp/ParameterSet.h"
16 namespace detinfo { class DetectorClocksData; }
17 
19 
20 public:
21 
22  typedef unsigned int Channel;
23 
24  virtual ~ChannelNoiseService() =default;
25 
26  // Add noise to a signal vector sigs appropriate for channel chan.
27  // Noise is added for all entries in the input vector.
28  virtual int addNoise(detinfo::DetectorClocksData const&, Channel chan, AdcSignalVector& sigs) const =0;
29 
31  return;
32  }
33 
34  // Print parameters.
35  virtual std::ostream& print(std::ostream& out =std::cout, std::string prefix ="") const =0;
36 
37  virtual void InitialiseProducerDeps(art::EDProducer * EDProdPointer, fhicl::ParameterSet const& pset){
38  return;
39  }
40 
41 };
42 
43 #ifndef __CLING__
44 #include "art/Framework/Services/Registry/ServiceDeclarationMacros.h"
45 DECLARE_ART_SERVICE_INTERFACE(ChannelNoiseService, LEGACY)
46 #endif
47 
48 #endif
virtual ~ChannelNoiseService()=default
virtual int addNoise(detinfo::DetectorClocksData const &, Channel chan, AdcSignalVector &sigs) const =0
virtual std::ostream & print(std::ostream &out=std::cout, std::string prefix="") const =0
virtual void InitialiseProducerDeps(art::EDProducer *EDProdPointer, fhicl::ParameterSet const &pset)
std::vector< AdcSignal > AdcSignalVector
Contains all timing reference information for the detector.
virtual void generateNoise(detinfo::DetectorClocksData const &)
BEGIN_PROLOG could also be cout