9 #include <svd/modules/svdPerformance/SVDMaxStripTTreeModule.h>
10 #include <hlt/softwaretrigger/core/FinalTriggerDecisionCalculator.h>
12 #include <vxd/dataobjects/VxdID.h>
13 #include <vxd/geometry/GeoCache.h>
17 using namespace SoftwareTrigger;
23 setDescription(
"The module is used to create a TTree to study the number of strips per APV per event.");
24 addParam(
"outputFileName", m_rootFileName,
"Name of output root file.", std::string(
"SVDMaxStripTTree.root"));
25 addParam(
"ShaperDigits", m_shapersStoreArrayName,
"StoreArray name of the input ShaperDigits.",
26 m_shapersStoreArrayName);
27 addParam(
"skipHLTRejectedEvents", m_skipRejectedEvents,
"If TRUE skip events rejected by HLT",
bool(
true));
32 m_shapers.isRequired(m_shapersStoreArrayName);
34 m_rootFilePtr =
new TFile(m_rootFileName.c_str(),
"RECREATE");
37 m_t =
new TTree(
"tree",
"Tree for SVD u/v-strips");
38 m_t->Branch(
"evt", &m_event,
"evt/i");
39 m_t->Branch(
"svdLayer", &m_svdLayer,
"svdLayer/i");
40 m_t->Branch(
"svdLadder", &m_svdLadder,
"svdLadder/i");
41 m_t->Branch(
"svdSensor", &m_svdSensor,
"svdSensor/i");
42 m_t->Branch(
"svdSide", &m_svdSide,
"svdSide/i");
43 m_t->Branch(
"svdChip", &m_svdChip,
"svdChip/i");
44 m_t->Branch(
"svdHits", &m_svdHits,
"svdHits/i");
52 TH1F hHits(
"nHits_L@layerL@ladderS@sensor@view@apv",
53 "Number of Hits per Event in @layer.@ladder.@sensor chip @apv on the @view/@side side",
64 if (m_skipRejectedEvents && (m_resultStoreObjectPointer.isValid())) {
65 const bool eventAccepted = FinalTriggerDecisionCalculator::getFinalTriggerDecision(*m_resultStoreObjectPointer);
66 if (!eventAccepted)
return;
70 for (
const auto& shaper : m_shapers)
71 m_hHits->fill(shaper.getSensorID(), shaper.isUStrip(), shaper.getCellID() / 128, 0);
77 for (
auto ladder : geoCache.getLadders(layer))
80 for (
int apv = 0; apv < 6; apv ++) {
81 m_svdLayer = sensor.getLayerNumber();
82 m_svdLadder = sensor.getLadderNumber();
83 m_svdSensor = sensor.getSensorNumber();
86 m_svdHits = (m_hHits->getHistogram(sensor, view, apv))->GetEntries();
90 (m_hHits->getHistogram(sensor, view, apv))->Reset();
101 if (m_rootFilePtr !=
nullptr) {
104 m_rootFilePtr->Close();
The module is used to create a TTree to study the number of strips fired per event per APV chip.
void initialize() override
Register input and output data.
void event() override
Compute the variables and fill the tree.
void terminate() override
Write the TTrees to the file.
void beginRun() override
Define APVHistogram.
Class to faciliate easy access to sensor information of the VXD like coordinate transformations or pi...
static GeoCache & getInstance()
Return a reference to the singleton instance.
Class to uniquely identify a any structure of the PXD and SVD.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.