LDMX Software
TrigScintDQM.cxx
1
2#include "DQM/TrigScintDQM.h"
3
5
6namespace dqm {
7
8TrigScintDQM::TrigScintDQM(const std::string &name, framework::Process &process)
9 : framework::Analyzer(name, process) {}
10
12
14 ldmx_log(debug) << "Process starts!";
15
17
18 histograms_.create("id", "Channel ID of sim hit", 100, 0, 100);
19 histograms_.create("total_energy", "Total energy deposition in the pad/event",
20 1000, 0, 3000);
21 histograms_.create("n_hits", "TrigScint hit multiplicity in the pad/event",
22 100, 0, 100);
23 histograms_.create("x", "Hit x position", 1000, -100, 100);
24 histograms_.create("y", "Hit y position", 1000, -100, 100);
25 histograms_.create("z", "Hit z position", 1000, -900, 100);
26
27 histograms_.create("energy", "Energy deposition in a TrigScint bar", 250, 0,
28 1500);
29 histograms_.create("hit_time", "TrigScint hit time (ns)", 1600, -100, 1500);
30
31 histograms_.create("max_pe:time", "Max Photoelectrons in a TrigScint bar",
32 1500, 0, 1500, "TrigScint max PE hit time (ns)", 1500, 0,
33 1500);
34
35 histograms_.create("min_time_hit_above_thresh:pe",
36 "Photoelectrons in a TrigScint bar", 1500, 0, 1500,
37 "Earliest time of TrigScint hit above threshold (ns)",
38 1600, -100, 1500);
39}
40
42 hitCollectionName_ = ps.getParameter<std::string>("hit_collection");
43 padName_ = ps.getParameter<std::string>("pad");
44
45 ldmx_log(debug) << "In TrigScintDQM::configure, got parameters "
46 << hitCollectionName_ << " and " << padName_;
47}
48
50 const std::vector<ldmx::SimCalorimeterHit> TrigScintHits =
51 event.getCollection<ldmx::SimCalorimeterHit>(hitCollectionName_);
52
53 // Get the total hit count
54 int hitCount = TrigScintHits.size();
55 histograms_.fill("n_hits", hitCount);
56
57 double totalEnergy{0};
58 for (const ldmx::SimCalorimeterHit &hit : TrigScintHits) {
59 ldmx::TrigScintID detID(hit.getID());
60
61 int bar = detID.bar();
62
63 histograms_.fill("energy", hit.getEdep());
64 histograms_.fill("hit_time", hit.getTime());
65 histograms_.fill("id", bar);
66
67 std::vector<float> posvec = hit.getPosition();
68 histograms_.fill("x", posvec.at(0));
69 histograms_.fill("y", posvec.at(1));
70 histograms_.fill("z", posvec.at(2));
71
72 totalEnergy += hit.getEdep();
73 }
74
75 histograms_.fill("total_energy", totalEnergy);
76}
77
78} // namespace dqm
79
80DECLARE_ANALYZER_NS(dqm, TrigScintDQM)
#define DECLARE_ANALYZER_NS(NS, CLASS)
Macro which allows the framework to construct an analyzer given its name during configuration.
Class which stores simulated calorimeter hit information.
Analyzer used for TrigScint DQM.
void analyze(const framework::Event &event)
Process the event and make histograms ro summaries.
TrigScintDQM(const std::string &name, framework::Process &process)
Constructor.
std::string padName_
Name of Pad.
void configure(framework::config::Parameters &pSet)
Configure the processor using the given user specified parameters.
std::string hitCollectionName_
Name of trigger pad hit collection.
void onProcessStart()
Method executed before processing of events begins.
~TrigScintDQM()
Destructor.
TDirectory * getHistoDirectory()
Access/create a directory in the histogram file for this event processor to create histograms and ana...
HistogramHelper histograms_
Interface class for making and filling histograms.
Implements an event buffer system for storing event data.
Definition Event.h:41
void fill(const std::string &name, const double &val)
Fill a 1D histogram.
Definition Histograms.h:166
void create(const std::string &name, const std::string &xLabel, const double &bins, const double &xmin, const double &xmax)
Create a ROOT 1D histogram of type TH1F and pool it for later use.
Class which represents the process under execution.
Definition Process.h:36
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
T getParameter(const std::string &name) const
Retrieve the parameter of the given name.
Definition Parameters.h:89
Stores simulated calorimeter hit information.
Class that defines the detector ID of the trigger scintillator.
Definition TrigScintID.h:14
int bar() const
Get the value of the bar field from the ID.
Definition TrigScintID.h:64
All classes in the ldmx-sw project use this namespace.
Definition PerfDict.cxx:45