File indexing completed on 2024-04-06 11:57:52
0001
0002
0003
0004
0005
0006
0007 #include <CalibCalorimetry/EcalLaserAnalyzer/interface/TMom.h>
0008 #include <CalibCalorimetry/EcalLaserAnalyzer/interface/TMTQ.h>
0009 #include <CalibCalorimetry/EcalLaserAnalyzer/interface/TMarkov.h>
0010 #include <TMath.h>
0011
0012 using namespace std;
0013
0014
0015
0016
0017 TMTQ::TMTQ() { init(); }
0018
0019
0020 TMTQ::~TMTQ() {}
0021
0022 void TMTQ::init() {
0023 for (int j = 0; j < nOutVar; j++) {
0024 cuts[0][j] = 0.0;
0025 cuts[1][j] = 10.0e9;
0026 mom[j] = new TMom();
0027 }
0028 }
0029
0030 void TMTQ::addEntry(double peak,
0031 double sigma,
0032 double fit,
0033 double ampl,
0034 double trise,
0035 double fwhm,
0036 double fw20,
0037 double fw80,
0038 double ped,
0039 double pedsig,
0040 double sliding) {
0041 double val[nOutVar];
0042
0043 val[iPeak] = peak;
0044 val[iSigma] = sigma;
0045 val[iFit] = fit;
0046 val[iAmpl] = ampl;
0047 val[iTrise] = trise;
0048 val[iFwhm] = fwhm;
0049 val[iFw20] = fw20;
0050 val[iFw80] = fw80;
0051 val[iPed] = ped;
0052 val[iPedsig] = pedsig;
0053 val[iSlide] = sliding;
0054
0055 for (int ivar = 0; ivar < nOutVar; ivar++) {
0056 mom[ivar]->addEntry(val[ivar]);
0057 }
0058 }
0059
0060 void TMTQ::setCut(int ivar, double mean, double sig) {
0061 if (ivar < nOutVar) {
0062 cuts[0][ivar] = mean - 2.0 * sig;
0063 cuts[1][ivar] = mean + 2.0 * sig;
0064
0065 mom[ivar]->setCut(cuts[0][ivar], cuts[1][ivar]);
0066 }
0067 }
0068
0069 std::vector<double> TMTQ::get(int ivar) {
0070 std::vector<double> res;
0071
0072 if (ivar < nOutVar) {
0073 res.push_back(mom[ivar]->getMean());
0074 res.push_back(mom[ivar]->getRMS());
0075 res.push_back(mom[ivar]->getM3());
0076 res.push_back(mom[ivar]->getNevt());
0077 res.push_back(mom[ivar]->getMin());
0078 res.push_back(mom[ivar]->getMax());
0079 }
0080 return res;
0081 }
0082
0083 std::vector<double> TMTQ::getPeak() {
0084 std::vector<double> x = get(TMTQ::iPeak);
0085 return x;
0086 }
0087 std::vector<double> TMTQ::getAmpl() {
0088 std::vector<double> x = get(TMTQ::iAmpl);
0089 return x;
0090 }
0091 std::vector<double> TMTQ::getSigma() {
0092 std::vector<double> x = get(TMTQ::iSigma);
0093 return x;
0094 }
0095 std::vector<double> TMTQ::getTrise() {
0096 std::vector<double> x = get(TMTQ::iTrise);
0097 return x;
0098 }
0099 std::vector<double> TMTQ::getFit() {
0100 std::vector<double> x = get(TMTQ::iFit);
0101 return x;
0102 }
0103 std::vector<double> TMTQ::getFwhm() {
0104 std::vector<double> x = get(TMTQ::iFwhm);
0105 return x;
0106 }
0107 std::vector<double> TMTQ::getFw20() {
0108 std::vector<double> x = get(TMTQ::iFw20);
0109 return x;
0110 }
0111 std::vector<double> TMTQ::getFw80() {
0112 std::vector<double> x = get(TMTQ::iFw80);
0113 return x;
0114 }
0115 std::vector<double> TMTQ::getPed() {
0116 std::vector<double> x = get(TMTQ::iPed);
0117 return x;
0118 }
0119 std::vector<double> TMTQ::getPedsig() {
0120 std::vector<double> x = get(TMTQ::iPedsig);
0121 return x;
0122 }
0123 std::vector<double> TMTQ::getSliding() {
0124 std::vector<double> x = get(TMTQ::iSlide);
0125 return x;
0126 }