11#include <top/dbobjects/TOPGeometry.h>
12#include <top/geometry/FrontEndMapper.h>
13#include <top/geometry/ChannelMapper.h>
14#include <framework/database/DBObjPtr.h>
15#include <framework/database/DBArray.h>
16#include <top/dbobjects/TOPPmtInstallation.h>
17#include <top/dbobjects/TOPPmtQE.h>
18#include <top/dbobjects/TOPNominalQE.h>
19#include <top/dbobjects/TOPCalChannelRQE.h>
20#include <top/dbobjects/TOPCalChannelThresholdEff.h>
116 int moduleID,
int pmtID,
double x,
double y)
const;
130 unsigned getPMTType(
int moduleID,
int pmtID)
const;
202 const std::string& serialNumber);
210 const std::string& serialNumber);
218 const std::string& serialNumber);
226 std::string
addNumber(
const std::string& str,
unsigned number);
261 return (moduleID << 16) + pmtID;
272 return (moduleID << 16) + pixelID;
283 double integralOfQE(
const std::vector<float>& qe,
double ce,
284 double lambdaFirst,
double lambdaStep)
const;
318 mutable std::map<int, const TOPPmtQE*>
m_pmts;
342 double lambda =
c_hc / energy;
343 return 15100 * pow(lambda / 405, 4);
Class for accessing objects in the database.
GearDir is the basic class used for accessing the parameter store.
Optional DBArray: This class behaves the same as the DBArray except that it will not raise errors whe...
Geometry parameters of a quartz bar segment.
Geometry parameters of a mirror segment.
Geometry parameters of prism.
Geometry parameters of TOP.
Nominal quantum efficiency of PMT.
Nominal time transition spread of PMT.
Provides mapping between electronic channels and pixels.
EType
Enum for electornic types.
Provides mapping between electronics module position within a TOP module and SCROD ID,...
Singleton class for TOP Geometry Parameters.
double integralOfQE(const std::vector< float > &qe, double ce, double lambdaFirst, double lambdaStep) const
Returns integral of quantum efficiency over photon energies.
TOPGeoPrism createPrism(const GearDir &content, const std::string &serialNumber)
Create a parameter object from gearbox for prism.
virtual ~TOPGeometryPar()
Destructor.
OptionalDBArray< TOPPmtQE > m_pmtQEData
quantum efficiencies
double getRelativePixelEfficiency(int moduleID, int pixelID) const
Returns relative pixel efficiency (including CE, RQE and threshold efficiency)
bool m_BfieldOn
true if B field is on
double getPMTEfficiencyEnvelope(double energy) const
Returns PMT efficiency envelope, e.g.
bool m_fromDB
parameters from database or Gearbox
const ChannelMapper & getChannelMapper(ChannelMapper::EType type) const
Returns channel mapper (mapping of channels to pixels) - Gearbox only.
const TOPGeometry * getGeometry() const
Returns pointer to geometry object using basf2 units.
TOPGeoMirrorSegment createMirrorSegment(const GearDir &content, const std::string &serialNumber)
Create a parameter object from gearbox for mirror segment.
DBObjPtr< TOPGeometry > * m_geoDB
geometry parameters from database
double getGroupIndexDerivative(double energy) const
Returns the derivative (dn_g/dE) of group refractive index of quartz at given photon energy.
unsigned getPMTType(int moduleID, int pmtID) const
Returns PMT type at a given position.
double getPhaseIndexDerivative(double energy) const
Returns the derivative (dn/dE) of phase refractive index of quartz at given photon energy.
void finalizeInitialization()
finalize initialization
int getUniquePixelID(int moduleID, int pixelID) const
Returns unique pixel ID within the detector.
const ChannelMapper & getChannelMapper() const
Returns default channel mapper (mapping of channels to pixels)
void prepareRelEfficiencies() const
Prepares a map of relative pixel efficiencies.
double getPMTEfficiency(double energy, int moduleID, int pmtID, double x, double y) const
Returns PMT pixel efficiency, a product of quantum and collection efficiency.
TOPGeometry * createConfiguration(const GearDir &content)
Create a parameter object from gearbox.
bool isValid() const
check if the geometry is available
DBObjPtr< TOPCalChannelThresholdEff > m_thresholdEff
channel threshold effi.
static TOPGeometryPar * Instance()
Static method to obtain the pointer to its instance.
TOPNominalQE m_envelopeQE
envelope quantum efficiency
std::map< int, unsigned > m_pmtTypes
PMT types mapped to positions.
const FrontEndMapper & getFrontEndMapper() const
Returns front-end mapper (mapping of SCROD's to positions within TOP modules)
DBObjPtr< TOPCalChannelRQE > m_channelRQE
channel relative quantum effi.
ChannelMapper m_channelMapperIRS3B
channel-pixel mapper
FrontEndMapper m_frontEndMapper
front end electronics mapper
std::string addNumber(const std::string &str, unsigned number)
Adds number to string.
static const double c_hc
Planck constant times speed of light in [eV*nm].
double getAbsorptionLength(double energy) const
Returns bulk absorption lenght of quartz at given photon energy.
const TOPNominalTTS & getTTS(int moduleID, int pmtID) const
Returns TTS of a PMT at given position.
std::map< int, const TOPPmtQE * > m_pmts
QE data mapped to positions.
bool m_valid
true if geometry is available
void clearCache()
Clears cache for PMT dependent QE data - function is used in call backs.
ChannelMapper m_channelMapperIRSX
channel-pixel mapper
void Initialize()
Initialize from database.
TOPGeoBarSegment createBarSegment(const GearDir &content, const std::string &serialNumber)
Create a parameter object from gearbox for bar segment.
double getPhaseIndex(double energy) const
Returns phase refractive index of quartz at given photon energy.
double refractiveIndex(double lambda) const
Quartz refractive index (SellMeier equation)
bool m_oldPayload
true if old payload found in DB
void mapPmtQEToPositions() const
Maps PMT QE data to positions within the detector.
double getGroupIndex(double energy) const
Returns group refractive index of quartz at given photon energy.
TOPGeometry * m_geo
geometry parameters from Gearbox
TOPGeometryPar()
Hidden constructor since it is a singleton class.
void setEnvelopeQE() const
Constructs envelope of quantum efficiency from PMT data.
void mapPmtTypeToPositions() const
Maps PMT type to positions within the detector.
int getUniquePmtID(int moduleID, int pmtID) const
Returns unique PMT ID within the detector.
static TOPGeometryPar * s_instance
Pointer to the class instance.
OptionalDBArray< TOPPmtInstallation > m_pmtInstalled
PMT installation data.
std::map< int, double > m_relEfficiencies
pixel relative QE
Abstract base class for different kinds of events.