LDMX Software
TrigScintDigiProducer.h
Go to the documentation of this file.
1
7#ifndef EVENTPROC_TRIGSCINTDIGIPRODUCER_H
8#define EVENTPROC_TRIGSCINTDIGIPRODUCER_H
9
10/*~~~~~~~~~~*/
11/* ROOT */
12/*~~~~~~~~~~*/
13#include "TRandom3.h"
14
15// LDMX
16#include "DetDescr/TrigScintID.h"
20#include "TrigScint/Event/TrigScintHit.h"
21
22/*~~~~~~~~~~~~~~~*/
23/* Framework */
24/*~~~~~~~~~~~~~~~*/
25#include "Framework/Configure/Parameters.h"
27
28namespace trigscint {
29
30enum TrigScintSection {
31 UPSTREAM_TAGGER = 1,
32 UPSTREAM_TARGET,
33 DOWNSTREAM_TARGET,
34 NUM_SECTIONS
35};
36
42 public:
43 typedef int layer;
44
45 typedef std::pair<double, double> zboundaries;
46
47 TrigScintDigiProducer(const std::string& name, framework::Process& process);
48
49 ~TrigScintDigiProducer() = default;
50
57 void configure(framework::config::Parameters& parameters) override;
58
59 void produce(framework::Event& event) override;
60
61 ldmx::TrigScintID generateRandomID(int module);
62
63 private:
65 std::unique_ptr<TRandom3> random_{nullptr};
66
68 std::unique_ptr<ldmx::NoiseGenerator> noiseGenerator_{nullptr};
69
71 // TODO: Make use of the global verbose parameter.
72 bool verbose_{false};
73
75 std::string inputCollection_;
76
79 std::string inputPassName_;
80
83 std::string outputCollection_;
84
87
90
92 double meanNoise_{0};
93
95 double mevPerMip_{1.40};
96
98 double pePerMip_{13.5};
99};
100
101} // namespace trigscint
102
103#endif
Class providing string constants for the event model.
Base classes for all user event processing components to extend.
Utility used to generate noise hits.
Class which stores simulated calorimeter hit information.
Implements an event buffer system for storing event data.
Definition Event.h:41
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
Class that defines the detector ID of the trigger scintillator.
Definition TrigScintID.h:14
Performs digitization of simulated Trigger Scintillator data.
std::string inputPassName_
Name of the pass that the input collection is on (empty string means take any pass)
std::unique_ptr< TRandom3 > random_
Random number generator.
std::string inputCollection_
Name of the input collection containing the sim hits.
double meanNoise_
Mean readout noise.
std::string outputCollection_
Name of the output collection that will be used to stored the digitized trigger scintillator hits.
void configure(framework::config::Parameters &parameters) override
Callback for the processor to configure itself from the given set of parameters.
double pePerMip_
Total number of photoelectrons per MIP.
bool verbose_
Class to set the verbosity level.
void produce(framework::Event &event) override
Process the event and put new data products into it.
int stripsPerArray_
Number of strips per array.
std::unique_ptr< ldmx::NoiseGenerator > noiseGenerator_
Generate noise hits given the number of channels and mean noise.