20#include "TDirectoryFile.h"
21#include "TGraphErrors.h"
35 Calib (
int whichPart,
bool saveFile,
const std::string & moduleName =
"") {
40 m_wFile = std::make_unique<TFile>((
m_layers.at(whichPart)+
".HIST.root").c_str(),
"RECREATE");
42 if( not moduleName.empty() ){
49 m_wFile->Write(0,TObject::kOverwrite);
53 bool fillThresholds(
const pix::PixelMapping &pm,
const std::string &inThrFile, std::map<
unsigned int , std::vector<std::unique_ptr<CalibFrontEndInfo>> > &map_info);
54 bool fillTiming (
const pix::PixelMapping &pm,
const std::string &inTimFile, std::map<
unsigned int , std::vector<std::unique_ptr<CalibFrontEndInfo>> > &map_info);
55 bool totFitting (
const pix::PixelMapping &pm,
const std::string &inTimFile, std::map<
unsigned int , std::vector<std::unique_ptr<CalibFrontEndInfo>> > &map_info);
70 const std::array<std::string, 4>
m_layers{
"Blayer",
"L1",
"L2",
"Disk"};
93 static constexpr int m_nFE = 16;
95 static constexpr std::array<float, m_ncharge>
m_chargeArr{ 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500, 9000, 9500, 10000, 12000, 14000, 16000, 18000, 20000, 25000};
96 static constexpr std::array<float, m_ncharge>
m_chargeErrArr{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
102 int chipId(
int iphi,
int ieta);
103 int pixelType(
int iphi,
int ieta,
bool isForTOT =
false);
108 std::vector<float>
getParams(
const TF1 *f,
unsigned int params);
110 bool reFit_normalPix(std::vector<float> ¶ms, std::vector<float> &q, std::vector<float> &qerr, std::vector<float> &tot, std::vector<float> &toterr, std::vector<float> &sig, std::vector<float> &sigerr,
const unsigned int fe);
111 void graphTitles(
const std::unique_ptr<TGraphErrors> &graph,
const std::string &name,
const std::string &Yname);
118 double num =
x[0]+par[1];
119 double denom =
x[0]+par[2];
120 if (denom != 0.0) ret = par[0]*(num/denom);
130 ret = par[0]+par[1]*
x[0];
double charge(const T &p)
double operator()(double *x, double *par)
double operator()(double *x, double *par)
static constexpr int m_qthresh
bool totFitting(const pix::PixelMapping &pm, const std::string &inTimFile, std::map< unsigned int, std::vector< std::unique_ptr< CalibFrontEndInfo > > > &map_info)
static constexpr std::array< float, m_ncharge > m_chargeArr
static constexpr int m_totnbins
std::vector< float > getParams(const TF1 *f, unsigned int params)
bool fillTiming(const pix::PixelMapping &pm, const std::string &inTimFile, std::map< unsigned int, std::vector< std::unique_ptr< CalibFrontEndInfo > > > &map_info)
TH2F * get2DHistogramFromPath(TDirectoryFile *rodDir, const std::string &moduleName, const std::string &histName, int charge=-1)
std::vector< float > getParams_quality(const TF1 *f)
static constexpr float m_chi_error
bool reFit_normalPix(std::vector< float > ¶ms, std::vector< float > &q, std::vector< float > &qerr, std::vector< float > &tot, std::vector< float > &toterr, std::vector< float > &sig, std::vector< float > &sigerr, const unsigned int fe)
static constexpr float m_timHi
static constexpr float m_totLo
static constexpr float m_totsigHi
TIter getRodIterator(const TFile &inputFile)
const std::array< std::string, 4 > m_layers
static constexpr int m_phiBins
static constexpr float m_sigLo
static constexpr int m_ncharge
static constexpr float m_totsigLo
int chipId(int iphi, int ieta)
static constexpr int m_timnbins
const std::array< std::string, 4 > m_MODprefixes
static constexpr int m_etaBins
int pixelType(int iphi, int ieta, bool isForTOT=false)
static constexpr float m_thrLo
static constexpr int m_totsigNBins
bool fillThresholds(const pix::PixelMapping &pm, const std::string &inThrFile, std::map< unsigned int, std::vector< std::unique_ptr< CalibFrontEndInfo > > > &map_info)
TIter getModuleIterator(TDirectoryFile *rodDir)
static constexpr float m_sigHi
static constexpr int m_nFE
std::unique_ptr< TFile > m_wFile
Calib(int whichPart, bool saveFile, const std::string &moduleName="")
static constexpr std::array< float, m_ncharge > m_chargeErrArr
void graphTitles(const std::unique_ptr< TGraphErrors > &graph, const std::string &name, const std::string &Yname)
bool moduleInPart(const std::string &modName)
static constexpr float m_totHi
static constexpr float m_timLo
static constexpr int m_thrnbins
static constexpr float m_thrHi