 |
Belle II Software
release-05-02-19
|
11 #ifndef CDCDEDXCORRECTIONMODULE_H
12 #define CDCDEDXCORRECTIONMODULE_H
14 #include <framework/core/Module.h>
16 #include <framework/datastore/StoreArray.h>
17 #include <framework/database/DBObjPtr.h>
19 #include <reconstruction/dbobjects/CDCDedxScaleFactor.h>
20 #include <reconstruction/dbobjects/CDCDedxMomentumCor.h>
21 #include <reconstruction/dbobjects/CDCDedxWireGain.h>
22 #include <reconstruction/dbobjects/CDCDedxRunGain.h>
23 #include <reconstruction/dbobjects/CDCDedxCosineCor.h>
24 #include <reconstruction/dbobjects/CDCDedx2DCell.h>
25 #include <reconstruction/dbobjects/CDCDedx1DCell.h>
26 #include <reconstruction/dbobjects/CDCDedxHadronCor.h>
27 #include <reconstruction/dbobjects/CDCDedxADCNonLinearity.h>
28 #include <reconstruction/dbobjects/CDCDedxCosineEdge.h>
45 class CDCDedxCorrectionModule :
public Module {
61 virtual void event()
override;
73 void TwoDCorrection(
int layer,
double doca,
double enta,
double& dedx)
const;
89 void StandardCorrection(
int adc,
int layer,
int wireID,
double doca,
double enta,
double length,
double costheta,
93 double GetCorrection(
int& adc,
int layer,
int wireID,
double doca,
double enta,
double costheta)
const;
97 double D2I(
const double cosTheta,
const double D)
const;
101 double I2D(
const double cosTheta,
const double I)
const;
135 void calculateMeans(
double* mean,
double* truncatedMean,
double* truncatedMeanErr,
const std::vector<double>& dedx)
const;
void calculateMeans(double *mean, double *truncatedMean, double *truncatedMeanErr, const std::vector< double > &dedx) const
Recalculate the dE/dx mean values after corrections.
void CosineEdgeCorrection(double costh, double &dedx) const
Perform the cosine edge correction.
void HadronCorrection(double costheta, double &dedx) const
Perform a hadron saturation correction.
CDCDedxCorrectionModule()
Constructor.
double m_removeLowest
lower bound for truncated mean
bool m_cosineCor
boolean to apply cosine correction
void TwoDCorrection(int layer, double doca, double enta, double &dedx) const
Perform a 2D correction.
bool m_wireGain
boolean to apply wire gains
void StandardCorrection(int adc, int layer, int wireID, double doca, double enta, double length, double costheta, double &dedx) const
Perform a standard set of corrections.
virtual ~CDCDedxCorrectionModule()
Destructor.
void WireGainCorrection(int wireID, double &dedx) const
Perform a wire gain correction.
bool m_momCor
boolean to apply momentum correction
double m_removeHighest
upper bound for truncated mean
bool m_scaleCor
boolean to apply scale factor
bool m_cosineEdge
boolean to apply cosine edge
virtual void terminate() override
End of the event processing.
void OneDCorrection(int layer, double enta, double &dedx) const
Perform a wire gain correction.
DBObjPtr< CDCDedxADCNonLinearity > m_DBNonlADC
hadron saturation non linearity
DBObjPtr< CDCDedxCosineCor > m_DBCosineCor
Electron saturation correction DB object.
virtual void event() override
This method is called for each event.
Class for accessing objects in the database.
virtual void initialize() override
Initialize the Module.
bool m_oneDCell
boolean to apply 1D correction
void CosineCorrection(double costheta, double &dedx) const
Perform the cosine correction.
double GetCorrection(int &adc, int layer, int wireID, double doca, double enta, double costheta) const
Get the standard set of corrections.
DBObjPtr< CDCDedxWireGain > m_DBWireGains
Wire gain DB object.
DBObjPtr< CDCDedx2DCell > m_DB2DCell
2D correction DB object
Abstract base class for different kinds of events.
void RunGainCorrection(double &dedx) const
Perform a run gain correction.
double m_delta
saturation correction parameter: delta
bool m_twoDCell
boolean to apply 2D correction
double I2D(const double cosTheta, const double I) const
Saturation correction: convert the actural ionization (I) to measured ionization (D)
bool m_nonlADC
boolean to apply non linear ADC
double m_power
saturation correction parameter: power on cos(theta)
DBObjPtr< CDCDedxHadronCor > m_DBHadronCor
hadron saturation parameters
DBObjPtr< CDCDedxCosineEdge > m_DBCosEdgeCor
cosine edge calibration
DBObjPtr< CDCDedx1DCell > m_DB1DCell
1D correction DB object
bool m_runGain
boolean to apply run gains
double m_gamma
saturation correction parameter: gamma
Accessor to arrays stored in the data store.
StoreArray< CDCDedxTrack > m_cdcDedxTracks
Store array: CDCDedxTrack.
DBObjPtr< CDCDedxMomentumCor > m_DBMomentumCor
Momentum correction DB object.
bool m_useDBMomCor
boolean to apply momentum correction from DB
std::vector< double > m_hadronpars
hadron saturation parameters
DBObjPtr< CDCDedxRunGain > m_DBRunGain
Run gain DB object.
double m_alpha
saturation correction parameter: alpha
double D2I(const double cosTheta, const double D) const
Saturation correction: convert the measured ionization (D) to actual ionization (I)
bool m_relative
boolean to apply relative or absolute correction
double m_ratio
saturation correction parameter: ratio
DBObjPtr< CDCDedxScaleFactor > m_DBScaleFactor
Scale factor to make electrons ~1.