8#ifndef SVDBackgroundMODULE_H_
9#define SVDBackgroundMODULE_H_
11#include <framework/core/Module.h>
12#include <framework/gearbox/Unit.h>
13#include <vxd/dataobjects/VxdID.h>
14#include <vxd/geometry/SensorInfoBase.h>
15#include <svd/geometry/SensorInfo.h>
16#include <vxd/geometry/GeoCache.h>
20#include <vxd/background/niel_fun.h>
118 virtual void event()
override;
120 virtual void endRun()
override;
154 const ROOT::Math::XYZVector&
pointToGlobal(
VxdID sensorID,
const ROOT::Math::XYZVector& local);
156 const ROOT::Math::XYZVector&
vectorToGlobal(
VxdID sensorID,
const ROOT::Math::XYZVector& local);
216 return info.getWidth() * info.getLength() * info.getThickness() *
c_densitySi;
222 return info.getWidth() * info.getLength();
static const unsigned short c_reportNTuple
Summary and NTuple.
std::string m_storeFileMetaDataName
Name of the persistent FileMetaData object.
double m_triggerWidth
RMS of trigger time measurement.
static const unsigned short c_reportSummary
Summary only.
unsigned short m_nfluxReportingLevel
0 - no data, 1 - summary only, 2 - ntuple
const ROOT::Math::XYZVector & vectorToGlobal(VxdID sensorID, const ROOT::Math::XYZVector &local)
Convert local vector coordinates to global.
const ROOT::Math::XYZVector & pointToGlobal(VxdID sensorID, const ROOT::Math::XYZVector &local)
Convert local sensor coordinates to global.
std::string m_storeEnergyDepositsName
SVDEnergyDepositEvents StoreArray name.
const double c_smy
Seconds in snowmass year.
const SVD::SensorInfo & getInfo(VxdID sensorID) const
This is a shortcut to getting SVD::SensorInfo from the GeoCache.
unsigned short m_doseReportingLevel
0 - no data, 1 - summary only, 2 - ntuple
int getTotalSensors()
Get total number of sensors.
std::string m_storeOccupancyEventsName
SVDOccupancyEvents StoreArray name.
std::map< VxdID, SensorData > m_sensorData
Struct to hold sensor-wise background data.
virtual void initialize() override
Initialize module.
std::string m_relTrueHitsSimHitsName
SVDTrueHitsToSVDSimHits RelationArray name.
std::string m_relDigitsMCParticlesName
StoreArray name of SVDDigits to MCParticles relation.
double m_acceptanceWidth
A hit is accepted if arrived within +/- m_acceptanceWidth * RMS(hit time - trigger time).
static const int c_nVXDLayers
Number of VXD layers.
const std::string c_niel_neutronFile
NIEL-correction file for neutrons.
virtual void event() override
Event processing.
virtual ~SVDBackgroundModule()
Destructor.
const double c_densitySi
Density of crystalline Silicon.
std::string m_relClusterDigitName
SVDClustersToSVDDigits RelationArray name.
double getSensorMass(VxdID sensorID) const
Return mass of the sensor with the given sensor ID.
static const unsigned short c_reportNone
No reporting.
virtual void endRun() override
End-of-run tasks.
std::string m_storeNeutronFluxesName
SVDNeutronFluxEvents StoreArray name.
std::string m_storeTrueHitsName
SVDTrueHits StoreArray name.
virtual void terminate() override
Final summary and cleanup.
std::unique_ptr< TNiel > m_nielNeutrons
Pointer to Niel table for neutrons.
std::string m_storeMCParticlesName
MCParticles StoreArray name.
std::unique_ptr< TNiel > m_nielProtons
Pointer to Niel table for protons.
double getSensorThickness(VxdID sensorID) const
Return thickness of the sensor with the given sensor ID.
std::unique_ptr< TNiel > m_nielPions
Pointer to Niel table for pions.
int getNumSensors(int layerNum)
Get number of sensors in a layer.
virtual void beginRun() override
Start-of-run initializations.
const std::string c_niel_electronFile
NIEL-correction file for electrons.
SVDBackgroundModule()
Constructor.
std::string m_storeBgMetaDataName
Name of the persistent BackgroundMetaDta object.
double getSensorArea(VxdID sensorID) const
Return area of the sensor with the given sensor ID.
std::string m_outputDirectoryName
Path to directory where output data will be stored.
std::string m_storeDigitsName
SVDDigits StoreArray name.
std::string m_storeClustersName
SVDClusters StoreArray name.
std::unique_ptr< TNiel > m_nielElectrons
Pointer to Niel table for electrons.
const double c_APVCycleTime
APV cycle time.
const std::string c_niel_protonFile
NIEL-correction file for protons.
const std::string c_niel_pionFile
NIEL-correction file for pions.
std::string m_relParticlesTrueHitsName
MCParticlesToSVDTrueHits RelationArray name.
std::string m_componentName
Name of the current component.
double m_componentTime
Time of current component.
unsigned short m_occupancyReportingLevel
0 - no data, 1 - summary only, 2 - ntuple
std::string m_storeSimHitsName
SVDSimHits StoreArray name.
std::string m_relDigitsTrueHitsName
StoreArray name of SVDDigits to SVDTrueHits relation.
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific infor...
static const double g_cm3
Practical units with the value set at 1.
static const double ns
Standard of [time].
static const double s
[second]
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.
double getThickness() const
Return the thickness of the sensor.
Class to uniquely identify a any structure of the PXD and SVD.
void setLayerNumber(baseType layer)
Set the layer id.
Abstract base class for different kinds of events.
Struct to hold data of an SVD sensor.
double m_firedU_t
Fired pixels in U, occupied time per cm2 and second.
double m_firedV
Fired pixels in V, per cm2 and second, zero-suppression threshold.
double m_expo
Exposition (energy deposited per cm2 and 1 second)
double m_firedV_t
Fired pixels in V, occupied time per cm2 and second.
double m_firedU
Fired pixels in U, per cm2 and second, zero-suppression threshold.
double m_occupancyV
Occupancy in V.
double m_occupancyU_APV
Occupancy in U, for 1 APV cycle.
double m_dose
Dose (Gy/smy)
double m_occupancyU
Occupancy in U.
double m_occupancyV_APV
Occupancy in V, for 1 APV cycle.
double m_neutronFlux
Neutron flux.