9#include <svd/modules/svdCalibration/SVDLocalCalibrationsMonitorModule.h>
10#include <vxd/geometry/GeoCache.h>
11#include <svd/geometry/SensorInfo.h>
12#include <framework/datastore/StoreObjPtr.h>
13#include <framework/dataobjects/EventMetaData.h>
29 setDescription(
"Module to produce a list of histograms showing the uploaded calibration constants");
32 addParam(
"outputFileName",
m_rootFileName,
"Name of output root file.", std::string(
"SVDLocalCalibrationMonitor_output.root"));
42 m_tree =
new TTree(
"calibLocal",
"RECREATE");
93 B2WARNING(
"No valid SVDFADCMaskedStrip for the requested IoV");
95 B2WARNING(
"No valid SVDNoiseCalibration for the requested IoV");
97 B2FATAL(
"No valid SVDLocalConfigParameters for the requested IoV");
99 B2FATAL(
"No valid SVDGlobalConfigParameters for the requested IoV");
101 B2WARNING(
"No valid SVDPedestalCalibration for the requested IoV");
103 B2WARNING(
"No valid SVDPulseShapeCalibrations for the requested IoV");
111 TH1F hOccupancy(
"occupancy_L@layerL@ladderS@sensor@view",
112 "occupancy in hits/evt in @layer.@ladder.@sensor @view/@side",
114 hOccupancy.GetXaxis()->SetTitle(
"strip occupancy ()");
117 TH2F h2Occupancy_512(
"occupancy2D_512_L@layerL@ladderS@sensor@view",
118 "occupancy in HITS/EVT in @layer.@ladder.@sensor @view/@side VS cellID",
119 128 * 4, -0.5, 128 * 4 - 0.5, 1500, 0.0, 0.006);
120 h2Occupancy_512.GetYaxis()->SetTitle(
"strip occupancy (HITS/EVT)");
121 h2Occupancy_512.GetXaxis()->SetTitle(
"cellID");
123 TH2F h2Occupancy_768(
"occupancy2D_768_L@layerL@ladderS@sensor@view",
124 "occupancy in HITS/EVT in @layer.@ladder.@sensor @view/@side VS cellID",
125 128 * 6, -0.5, 128 * 6 - 0.5, 1500, 0.0, 0.006);
126 h2Occupancy_768.GetYaxis()->SetTitle(
"strip occupancy (HITS/EVT)");
127 h2Occupancy_768.GetXaxis()->SetTitle(
"cellID");
132 TH1F hHotstrips(
"hotstrips_L@layerL@ladderS@sensor@view",
133 "hot strips in @layer.@ladder.@sensor @view/@side",
135 hHotstrips.GetXaxis()->SetTitle(
"isHotStrips");
139 TH1F hHotStrips768(
"HotStrips768_L@layerL@ladderS@sensor@view",
"Hot Strips of @layer.@ladder.@sensor @view/@side side", 768, 0,
141 hHotStrips768.GetXaxis()->SetTitle(
"cellID");
142 TH1F hHotStrips512(
"HotStrips512_L@layerL@ladderS@sensor@view",
"Hot Strips of @layer.@ladder.@sensor @view/@side side", 512, 0,
144 hHotStrips512.GetXaxis()->SetTitle(
"cellID");
147 TH2F h2Hotstrips_512(
"hotstrips2D_512_L@layerL@ladderS@sensor@view",
148 "hot strips in @layer.@ladder.@sensor @view/@side VS cellID",
149 128 * 4, -0.5, 128 * 4 - 0.5, 2, -0.5, 1.5);
150 h2Hotstrips_512.GetYaxis()->SetTitle(
"isHotStrips");
151 h2Hotstrips_512.GetXaxis()->SetTitle(
"cellID");
153 TH2F h2Hotstrips_768(
"hotstrips2D_768_L@layerL@ladderS@sensor@view",
154 "hot strips in @layer.@ladder.@sensor @view/@side VS cellID",
155 128 * 6, -0.5, 128 * 6 - 0.5, 2, -0.5, 1.5);
156 h2Hotstrips_768.GetYaxis()->SetTitle(
"isHotStrips");
157 h2Hotstrips_768.GetXaxis()->SetTitle(
"cellID");
166 TH1F hMask(
"masked_L@layerL@ladderS@sensor@view",
167 "masked strip in @layer.@ladder.@sensor @view/@side",
169 hMask.GetXaxis()->SetTitle(
"isMasked");
172 TH2F h2Mask_512(
"masked2D_512_L@layerL@ladderS@sensor@view",
173 "masked strip in @layer.@ladder.@sensor @view/@side VS cellID",
174 128 * 4, -0.5, 128 * 4 - 0.5, 2, -0.5, 1.5);
175 h2Mask_512.GetYaxis()->SetTitle(
"isMasked");
176 h2Mask_512.GetXaxis()->SetTitle(
"cellID");
178 TH2F h2Mask_768(
"masked2D_768_L@layerL@ladderS@sensor@view",
179 "masked strip in @layer.@ladder.@sensor @view/@side VS cellID",
180 128 * 6, -0.5, 128 * 6 - 0.5, 2, -0.5, 1.5);
181 h2Mask_768.GetYaxis()->SetTitle(
"isMasked");
182 h2Mask_768.GetXaxis()->SetTitle(
"cellID");
187 TH1F hNoise(
"noiseADC_L@layerL@ladderS@sensor@view",
188 "noise in ADC in @layer.@ladder.@sensor @view/@side",
190 hNoise.GetXaxis()->SetTitle(
"strip noise (ADC)");
193 TH2F h2Noise_512(
"noise2D_512_L@layerL@ladderS@sensor@view",
194 "noise in ADC in @layer.@ladder.@sensor @view/@side VS cellID",
195 128 * 4, -0.5, 128 * 4 - 0.5, 80, -0.5, 9.5);
196 h2Noise_512.GetYaxis()->SetTitle(
"strip noise (ADC)");
197 h2Noise_512.GetXaxis()->SetTitle(
"cellID");
199 TH2F h2Noise_768(
"noise2D_768_L@layerL@ladderS@sensor@view",
200 "noise in ADC in @layer.@ladder.@sensor @view/@side VS cellID",
201 128 * 6, -0.5, 128 * 6 - 0.5, 80, -0.5, 9.5);
202 h2Noise_768.GetYaxis()->SetTitle(
"strip noise (ADC)");
203 h2Noise_768.GetXaxis()->SetTitle(
"cellID");
209 TH1F hNoiseEl(
"noiseEl_L@layerL@ladderS@sensor@view",
210 "noise in e- in @layer.@ladder.@sensor @view/@side",
211 600, -199.5, 1499.5);
212 hNoiseEl.GetXaxis()->SetTitle(
"strip noise (e-)");
215 TH2F h2NoiseEl_512(
"noiseEl2D_512_L@layerL@ladderS@sensor@view",
216 "noise in e- in @layer.@ladder.@sensor @view/@side VS cellID",
217 128 * 4, -0.5, 128 * 4 - 0.5, 600, -199.5, 1499.5);
218 h2NoiseEl_512.GetYaxis()->SetTitle(
"strip noise (e-)");
219 h2NoiseEl_512.GetXaxis()->SetTitle(
"cellID");
221 TH2F h2NoiseEl_768(
"noiseEl2D_768_L@layerL@ladderS@sensor@view",
222 "noise in e- in @layer.@ladder.@sensor @view/@side VS cellID",
223 128 * 6, -0.5, 128 * 6 - 0.5, 600, -199.5, 1499.5);
224 h2NoiseEl_768.GetYaxis()->SetTitle(
"strip noise (e-)");
225 h2NoiseEl_768.GetXaxis()->SetTitle(
"cellID");
231 TH1F hPedestal(
"pedestalADC_L@layerL@ladderS@sensor@view",
232 "pedestal in ADC in @layer.@ladder.@sensor @view/@side",
234 hPedestal.GetXaxis()->SetTitle(
"strip pedestal (ADC)");
237 TH2F h2Pedestal_512(
"pedestal2D_512_L@layerL@ladderS@sensor@view",
238 "pedestal in ADC in @layer.@ladder.@sensor @view/@side VS cellID",
239 128 * 4, -0.5, 128 * 4 - 0.5, 200, -199.5, 599.5);
240 h2Pedestal_512.GetYaxis()->SetTitle(
"strip pedestal (ADC)");
241 h2Pedestal_512.GetXaxis()->SetTitle(
"cellID");
243 TH2F h2Pedestal_768(
"pedestal2D_768_L@layerL@ladderS@sensor@view",
244 "pedestal in ADC in @layer.@ladder.@sensor @view/@side VS cellID",
245 128 * 6, -0.5, 128 * 6 - 0.5, 200, -199.5, 599.5);
246 h2Pedestal_768.GetYaxis()->SetTitle(
"strip pedestal (ADC)");
247 h2Pedestal_768.GetXaxis()->SetTitle(
"cellID");
252 TH1F hGain(
"gainADC_L@layerL@ladderS@sensor@view",
253 "1/gain in @layer.@ladder.@sensor @view/@side",
255 hGain.GetXaxis()->SetTitle(
"strip 1/gain (e-/ADC)");
258 TH2F h2Gain_512(
"gain2D_512_L@layerL@ladderS@sensor@view",
259 "1/gain in @layer.@ladder.@sensor @view/@side VS cellID",
260 128 * 4, -0.5, 128 * 4 - 0.5, 300, -0.5, 499.5);
261 h2Gain_512.GetYaxis()->SetTitle(
"strip 1/gain (e-/ADC)");
262 h2Gain_512.GetXaxis()->SetTitle(
"cellID");
264 TH2F h2Gain_768(
"gain2D_768_L@layerL@ladderS@sensor@view",
265 "1/gain in @layer.@ladder.@sensor @view/@side VS cellID",
266 128 * 6, -0.5, 128 * 6 - 0.5, 300, -0.5, 499.5);
267 h2Gain_768.GetYaxis()->SetTitle(
"strip 1/gain (e-/ADC)");
268 h2Gain_768.GetXaxis()->SetTitle(
"cellID");
273 TH1F hCalPeakTime(
"calPeakTime_L@layerL@ladderS@sensor@view",
274 "calPeakTime in @layer.@ladder.@sensor @view/@side",
276 hCalPeakTime.GetXaxis()->SetTitle(
"strip calPeakTime (ns)");
279 TH2F h2CalPeakTime_512(
"calPeakTime2D_512_L@layerL@ladderS@sensor@view",
280 "calPeakTime in @layer.@ladder.@sensor @view/@side VS cellID",
281 128 * 4, -0.5, 128 * 4 - 0.5, 255, -0.5, 254.5);
282 h2CalPeakTime_512.GetYaxis()->SetTitle(
"strip calPeakTime (ns)");
283 h2CalPeakTime_512.GetXaxis()->SetTitle(
"cellID");
285 TH2F h2CalPeakTime_768(
"calPeakTime2D_768_L@layerL@ladderS@sensor@view",
286 "calPeakTime in @layer.@ladder.@sensor @view/@side VS cellID",
287 128 * 6, -0.5, 128 * 6 - 0.5, 255, -0.5, 254.5);
288 h2CalPeakTime_768.GetYaxis()->SetTitle(
"strip calPeakTime (ns)");
289 h2CalPeakTime_768.GetXaxis()->SetTitle(
"cellID");
294 TH1F hCalPeakADC(
"calPeakADC_L@layerL@ladderS@sensor@view",
295 "calPeakADC in @layer.@ladder.@sensor @view/@side",
297 hCalPeakADC.GetXaxis()->SetTitle(
"strip calPeakADC (ADC)");
300 TH2F h2CalPeakADC_512(
"calPeakADC2D_512_L@layerL@ladderS@sensor@view",
301 "calPeakADC in @layer.@ladder.@sensor @view/@side VS cellID",
302 128 * 4, -0.5, 128 * 4 - 0.5, 80, 44.5, 124.5);
303 h2CalPeakADC_512.GetYaxis()->SetTitle(
"strip calPeakADC (ADC)");
304 h2CalPeakADC_512.GetXaxis()->SetTitle(
"cellID");
306 TH2F h2CalPeakADC_768(
"calPeakADC2D_768_L@layerL@ladderS@sensor@view",
307 "calPeakADC in @layer.@ladder.@sensor @view/@side VS cellID",
308 128 * 6, -0.5, 128 * 6 - 0.5, 80, 44.5, 124.5);
309 h2CalPeakADC_768.GetYaxis()->SetTitle(
"strip calPeakADC (ADC)");
310 h2CalPeakADC_768.GetXaxis()->SetTitle(
"cellID");
315 TH1F hPulseWidth(
"pulseWidth_L@layerL@ladderS@sensor@view",
316 "pulseWidth in @layer.@ladder.@sensor @view/@side",
318 hPulseWidth.GetXaxis()->SetTitle(
"strip pulseWidth (ns)");
321 TH2F h2PulseWidth_512(
"pulseWidth2D_512_L@layerL@ladderS@sensor@view",
322 "pulseWidth in @layer.@ladder.@sensor @view/@side VS cellID",
323 128 * 4, -0.5, 128 * 4 - 0.5, 255, -0.5, 254.5);
324 h2PulseWidth_512.GetYaxis()->SetTitle(
"strip pulseWidth (ns)");
325 h2PulseWidth_512.GetXaxis()->SetTitle(
"cellID");
327 TH2F h2PulseWidth_768(
"pulseWidth2D_768_L@layerL@ladderS@sensor@view",
328 "pulseWidth in @layer.@ladder.@sensor @view/@side VS cellID",
329 128 * 6, -0.5, 128 * 6 - 0.5, 255, -0.5, 254.5);
330 h2PulseWidth_768.GetYaxis()->SetTitle(
"strip pulseWidth (ns)");
331 h2PulseWidth_768.GetXaxis()->SetTitle(
"cellID");
341 m_exp = meta->getExperiment();
342 m_run = meta->getRun();
351 std::set<Belle2::VxdID>::iterator itSvdLayers = svdLayers.begin();
353 while ((itSvdLayers != svdLayers.end()) && (itSvdLayers->getLayerNumber() != 7)) {
355 std::set<Belle2::VxdID> svdLadders = aGeometry.
getLadders(*itSvdLayers);
356 std::set<Belle2::VxdID>::iterator itSvdLadders = svdLadders.begin();
358 while (itSvdLadders != svdLadders.end()) {
360 std::set<Belle2::VxdID> svdSensors = aGeometry.
getSensors(*itSvdLadders);
361 std::set<Belle2::VxdID>::iterator itSvdSensors = svdSensors.begin();
362 B2DEBUG(1,
" svd sensor info " << * (svdSensors.begin()));
364 while (itSvdSensors != svdSensors.end()) {
365 B2DEBUG(1,
" svd sensor info " << *itSvdSensors);
367 int layer = itSvdSensors->getLayerNumber();
368 int ladder = itSvdSensors->getLadderNumber();
369 int sensor = itSvdSensors->getSensorNumber();
379 int Ncells = currentSensorInfo->
getUCells();
451 B2INFO(
"now computing Mean and RMS of local calibration constants");
455 itSvdLayers = svdLayers.begin();
457 while ((itSvdLayers != svdLayers.end()) && (itSvdLayers->getLayerNumber() != 7)) {
459 std::set<Belle2::VxdID> svdLadders = aGeometry.
getLadders(*itSvdLayers);
460 std::set<Belle2::VxdID>::iterator itSvdLadders = svdLadders.begin();
462 while (itSvdLadders != svdLadders.end()) {
464 std::set<Belle2::VxdID> svdSensors = aGeometry.
getSensors(*itSvdLadders);
465 std::set<Belle2::VxdID>::iterator itSvdSensors = svdSensors.begin();
466 B2DEBUG(1,
" svd sensor info " << * (svdSensors.begin()));
468 while (itSvdSensors != svdSensors.end()) {
469 B2DEBUG(1,
" svd sensor info " << *itSvdSensors);
471 m_layer = itSvdSensors->getLayerNumber();
472 m_ladder = itSvdSensors->getLadderNumber();
473 m_sensor = itSvdSensors->getSensorNumber();
516 B2RESULT(
"******************************************");
517 B2RESULT(
"** UNIQUE IDs of calibration DB objects **");
534 B2WARNING(
"No valid SVDFADCMaskedStrips for the requested IoV");
539 B2WARNING(
"No valid SVDNoiseCalibrations for the requested IoV");
544 B2WARNING(
"No valid SVDPedestalCalibrations for the requested IoV");
549 B2WARNING(
"No valid SVDPulseShapeCalibrations for the requested IoV");
578 for (
auto ladder : geoCache.getLadders(layer))
657 B2RESULT(
"The rootfile containing the list of histograms has been filled and closed [Local].");
void setDescription(const std::string &description)
Sets the description of the module.
float isMasked(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
This is the method for getting the comprehensive list of masked strips at FADC level.
TString getUniqueID()
returns the unique ID of the payload
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
template class for SVd histograms
void fill(const VxdID &vxdID, int view, Types ... args)
fill the histogram for
H * getHistogram(const VxdID &vxdID, int view)
get a reference to the histogram for
std::string m_rootFileName
root file name
TBranch * b_calPeakTimeRMS
sensor calPeakTime arm
float m_calPeakADC
strip peak time
SVDHistograms< TH2F > * m_h2Pedestal
pedestal (ADC) VS strip 2D histo
SVDHistograms< TH2F > * m_h2CalPeakADC
calPeakADC (ns) VS strip 2D histo
TBranch * b_noiseEl
strip noise (e-)
SVDFADCMaskedStrips m_MaskedStr
FADC masked strip payload.
TBranch * b_pedestalRMS
rms sensor pedestal
TBranch * b_run
run number
TBranch * b_mask
strip mask 0/1
TBranch * b_gainRMS
sensor gain rms
float m_occupancy
strip occupancy (ADC)
SVDHistograms< TH2F > * m_h2Noise
noise (ADC) VS strip 2D histo
SVDLocalCalibrationsMonitorModule()
Constructor: Sets the description, the properties and the parameters of the module.
TTree * m_tree
pointer at tree containing the mean and RMS of calibration constants
float m_hv
applied hv=Vbias/2
TBranch * b_pedestal
strip pedestal
TBranch * b_calPeakADCRMS
sensor calPeakADC arm
TBranch * b_date
date of the noise local run in yyyy-mm-dd format
TBranch * b_layer
layer number
TBranch * b_occupancy
strip occupancy
TBranch * b_pedestalAVE
average sensor pedestal
SVDHistograms< TH2F > * m_h2CalPeakTime
calPeakTime (ns) VS strip 2D histo
int m_ladder
ladder number
TBranch * b_side
sensor side
TTree * m_treeDetailed
pointer at tree containing the calibration constants of each strip
TBranch * b_calPeakTimeAVE
sensor calPeakTime average
SVDHistograms< TH1F > * hm_hot_strips
hot strips per sensor
TBranch * b_noise
strip noise (ADC)
TBranch * b_maskAVE
average sensor mask
float m_noiseEl
strip noise (e-)
float m_noiseRMS
sensor noise rms (ADC)
virtual void event() override
fill trees and histograms
SVDHistograms< TH1F > * m_hGain
gain (e-/ADC) histo
TBranch * b_calPeakTime
strip calPeakTime
TBranch * b_noiseElRMS
sensor noise rms (e-)
float m_calPeakADCAVE
sensor peak time average
SVDNoiseCalibrations m_NoiseCal
noise payload
virtual void endRun() override
print the payloads uniqueID and write trees and histograms to the rootfile
TBranch * b_exp
exp number
int m_sensor
sensor number
float m_maskAVE
sensor mask average
float m_occupancyAVE
sensor occupancy average
SVDSummaryPlots * m_hHotStripsSummary
hot strip summary histo
SVDHistograms< TH1F > * m_hCalPeakTime
calPeakTime (ns) histo
SVDHistograms< TH2F > * m_h2Mask
mask VS strip 2D histo
SVDHistograms< TH1F > * m_hMask
MASKS.
TBranch * b_hotstrips
strip hotstrips 0/1
TBranch * b_pulseWidthAVE
sensor pulse width average
float m_calPeakADCRMS
sensor peak time rms
float m_pulseWidth
strip pulse width
TBranch * b_sensor
sensor number
TBranch * b_strip
strip number
SVDPulseShapeCalibrations m_PulseShapeCal
pulse shape payload
SVDHistograms< TH1F > * m_hNoiseEl
noise in e- histo
float m_hotstrips
strip hotstrips 0/1
float m_mask
strip mask 0/1
virtual void beginRun() override
initialize the TTrees and check validities of payloads
TBranch * b_pulseWidthRMS
sensor pulse width rms
float m_calPeakTimeRMS
sensor peak time rms
float m_pedestalAVE
sensor pedestal average
float m_noiseElAVE
sensor noise average (e-)
SVDHistograms< TH2F > * m_h2NoiseEl
noise in e- VS strip 2D histo
float m_pulseWidthRMS
sensor pulse width rms
TBranch * b_gain
strip gain
DBObjPtr< SVDLocalConfigParameters > m_svdLocalConfig
SVD Local Configuration payload.
char m_date[11]
date of the noise local run in yyyy-mm-dd format
float m_gainAVE
sensor gain average
TBranch * b_gainAVE
sensor gain average
SVDHistograms< TH1F > * m_hHotstrips
hot strips histo
SVDHistograms< TH1F > * m_hNoise
noise (ADC) histo
float m_pedestalRMS
sensor pedestal rms
DBObjPtr< SVDGlobalConfigParameters > m_svdGlobalConfig
SVD Global Configuration payload.
TBranch * b_noiseAVE
sensor noise average (ADC)
SVDHistograms< TH1F > * m_hPulseWidth
calPeakTime (ns) histo
float m_calPeakTimeAVE
sensor peak time average
float m_noiseElRMS
sensor noise rms (e-)
SVDHistograms< TH1F > * m_hCalPeakADC
calPeakADC (ns) histo
SVDHistograms< TH2F > * m_h2PulseWidth
calPeakTime (ns) VS strip 2D histo
SVDHistograms< TH1F > * m_hPedestal
pedestal (ADC) histo
TBranch * b_pulseWidth
strip pulse width
float m_gainRMS
sensor gain rms
TBranch * b_noiseRMS
sensor noise rms (ADC)
SVDHistograms< TH2F > * m_h2Occupancy
occupancy (hits/evt) VS strip 2D histo
float m_calPeakTime
strip peak time
TBranch * b_ladder
ladder number
TBranch * b_noiseElAVE
sensor noise average (e-)
float m_hotstripsAVE
sensor hotstrips average
TBranch * b_occupancyAVE
sensor occupancy average (ADC)
float m_pulseWidthAVE
sensor pulse width average
float m_noiseAVE
sensor noise average (ADC)
TFile * m_rootFilePtr
pointer at root file used for storing histograms
TBranch * b_calPeakADC
strip calPeakADC
TBranch * b_hotstripsAVE
average sensor hotstrips
SVDPedestalCalibrations m_PedestalCal
pedestal payload
float m_pedestal
strip pedestal
TBranch * b_calPeakADCAVE
sensor calPeakADC average
float m_noise
strip noise (ADC)
TBranch * b_occupancyRMS
sensor occupancy rms (ADC)
SVDHistograms< TH2F > * m_h2Gain
gain (e-/ADC) VS strip 2D histo
SVDHistograms< TH2F > * m_h2Hotstrips
hotstrips VS strip 2D histo
float m_occupancyRMS
sensor occupancy rms
SVDHistograms< TH1F > * m_hOccupancy
occupancy (hits/evt) histo
float getNoiseInElectrons(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
This method provides the correct noise conversion into electrons, taking into account that the noise ...
float getNoise(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
This is the method for getting the noise.
TString getUniqueID()
returns the unique ID of the payload
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
float getPedestal(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
This is the method for getting the pedestal.
TString getUniqueID()
returns the unique ID of the payload
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
double getChargeFromADC(const Belle2::VxdID &sensorID, const bool &isU, const unsigned short &strip, const double &pulseADC) const
Return the charge (number of electrons/holes) collected on a specific strip, given the number of ADC ...
float getPeakTime(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
Return the peaking time of the strip.
TString getUniqueID()
returns the unique ID of the payload
float getWidth(const VxdID &sensorID, const bool &isU, const unsigned short &strip) const
Return the width of the pulse shape for a given strip.
bool isValid()
returns true if the m_aDBObtPtr is valid in the requested IoV
class to summarize SVD quantities per sensor and side
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific infor...
Type-safe access to single objects in the data store.
Class to faciliate easy access to sensor information of the VXD like coordinate transformations or pi...
const std::set< Belle2::VxdID > getLayers(SensorInfoBase::SensorType sensortype=SensorInfoBase::VXD)
Return a set of all known Layers.
const SensorInfoBase & getSensorInfo(Belle2::VxdID id) const
Return a referecne to the SensorInfo of a given SensorID.
const std::set< Belle2::VxdID > & getSensors(Belle2::VxdID ladder) const
Return a set of all sensor IDs belonging to a given ladder.
static GeoCache & getInstance()
Return a reference to the singleton instance.
const std::set< Belle2::VxdID > & getLadders(Belle2::VxdID layer) const
Return a set of all ladder IDs belonging to a given layer.
int getVCells() const
Return number of pixel/strips in v direction.
int getUCells() const
Return number of pixel/strips in u direction.
Class to uniquely identify a any structure of the PXD and SVD.
void addParam(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.