11#include <calibration/CalibrationAlgorithm.h>
12#include <framework/database/DBObjPtr.h>
14#include <cdc/dbobjects/CDCGeometry.h>
15#include <cdc/geometry/CDCGeometryPar.h>
16#include <cdc/geometry/CDCGeometryParConstants.h>
105 void printCanvasRun(std::map<int, TH1D*>& htemp, std::string namesfx);
113 void printCanvas(std::vector<TH1D*>& htemp, std::string namesfx, std::string svar);
133 void defineHisto(std::vector<TH1D*>& htemp, std::string var, std::string stype);
139 void wireGain(std::vector<TH1D*>& hdedxhit);
147 void printCanvasWire(std::vector<TH1D*> temp, std::string namesfx,
const std::vector<double>& vdedx_mean);
157 void fit(TH1D*& hist,
double& mean,
double& meanErr,
double& sigma,
double& sigmaErr);
181 void printCanvasdEdx(std::array<std::vector<TH1D*>, 2>& htemp, std::string namesfx, std::string svar);
191 std::string label =
"";
192 if (tedges < 2e4)label = Form(
"%0.01f-%0.01fK",
m_tedges[it] / 1e3,
m_tedges[it + 1] / 1e3);
193 else if (tedges < 1e5)label = Form(
"%0.0f-%0.0fK",
m_tedges[it] / 1e3,
m_tedges[it + 1] / 1e3);
194 else label = Form(
"%0.01f-%0.01fM",
m_tedges[it] / 1e6,
m_tedges[it + 1] / 1e6);
224 pt.SetShadowColor(kWhite);
225 pt.SetTextColor(color);
306 std::array<std::string, 2>
m_sring{
"ler",
"her"};
void setTestingPayload(const std::string &testingPayloadName)
Set testing payload name.
void bhabhaValidation()
Validate dE/dx using bhabha sample (vs run, cosine)
double m_eaMax
upper edge of entrance angle
void setGlobalTag(const std::string &globalTagName)
Set Global Tag name.
double m_momMin
min range of momentum
void resetDatabase()
Clear current DB pointers and state.
void wireGain(std::vector< TH1D * > &hdedxhit)
Validate wire gain data using dE/dx histograms.
void printCanvasdEdx(std::array< std::vector< TH1D * >, 2 > &htemp, std::string namesfx, std::string svar)
Draw dE/dx histograms for momentum and cosine bins.
void printCanvasRun(std::map< int, TH1D * > &htemp, std::string namesfx)
Draw dE/dx per run histogram canvas.
int m_cosBins
bins for cosine
void radeeValidation()
Validate dE/dx using radee sample (vs momentum, injection time)
double m_sigmaR
fit dedx dist in sigma range
void setTextCosmetics(TPaveText pt, Color_t color)
Set text cosmetics for TPaveText.
WireGainData getwiregain(int experiment, int run)
Retrieve wire gain data from DB.
void getExpRunInfo()
function to get extract calibration run/exp
virtual ~CDCDedxValidationAlgorithm()
Destructor.
double m_cosMax
max range of cosine
OnedData getonedgain(int experiment, int run)
Retrieve 1D gain data from DB.
double * m_tedges
internal time array (copy of vtlocaledges)
std::string m_GlobalTagName
Global Tag name.
void DatabaseIN(int experiment, int run)
Load database payload for given run.
void defineTimeBins(std::vector< double > &vtlocaledges)
Set bin edges for injection time.
std::array< std::string, 2 > m_sring
injection ring name
CosGainData getcosgain(int experiment, int run)
Retrieve cosine gain data from DB.
void printCanvasWire(std::vector< TH1D * > temp, std::string namesfx, const std::vector< double > &vdedx_mean)
Plot dE/dx vs wire number.
std::string m_testingPayloadName
Testing payload location.
std::string m_suffix
suffix string to separate plots
int m_momBins
bins for momentum
int m_dedxBins
bins for dedx histogram
DBObjPtr< CDCGeometry > m_cdcGeo
Geometry of CDC.
double m_momMax
max range of momentum
CDCDedxValidationAlgorithm()
Constructor: Sets the description, the properties and the parameters of the algorithm.
double getrungain(int experiment, int run)
Retrieve run gain data from DB.
void fitGaussianWRange(TH1D *&temphist, std::string &status)
Perform Gaussian fit with range on a histogram.
double m_cosMin
min range of cosine
void plotEventStats()
Plot summary statistics of selected events.
virtual EResult calibrate() override
Main calibration method.
void printCanvas(std::vector< TH1D * > &htemp, std::string namesfx, std::string svar)
Draw dE/dx histograms across bins.
double m_dedxMax
max range of dedx
StoreObjPtr< EventMetaData > m_EventMetaData
Event metadata.
double m_dedxMin
min range of dedx
unsigned int m_tbins
internal time bins
void defineHisto(std::vector< TH1D * > &htemp, std::string var, std::string stype)
Define dE/dx histograms for plotting.
std::string getTimeBinLabel(const double &tedges, const int &it)
Get time bin label string.
void fit(TH1D *&hist, double &mean, double &meanErr, double &sigma, double &sigmaErr)
Perform full Gaussian fit and extract parameters.
double m_eaMin
lower edge of entrance angle
EResult
The result of calibration.
CalibrationAlgorithm(const std::string &collectorModuleName)
Constructor - sets the prefix for collected objects (won't be accesses until execute(....
Class for accessing objects in the database.
Type-safe access to single objects in the data store.
Abstract base class for different kinds of events.
Container for cosine gain data.
std::vector< double > cosgain
Gain correction factors for cos(theta) bins.
std::vector< double > costh
cos(theta) bin centers
Container for 1D gain data.
std::vector< double > inner1D
Inner cell dE/dx values.
std::vector< double > outer1D
Outer cell dE/dx values.
std::vector< double > Enta
Entrance angle values.
Container for wire gain data.
std::vector< double > layermean
Mean gain values per layer.
std::vector< double > wiregain
Gain values for individual wires.