2 #ifndef HBHE_PULSESHAPE_FLAG_H_IKAJHGEWRHIGKHAWFIKGHAWIKGH
3 #define HBHE_PULSESHAPE_FLAG_H_IKAJHGEWRHIGKHAWFIKGHAWIKGH
33 double TS4TS5ChargeThreshold,
34 double TS3TS4ChargeThreshold,
35 double TS3TS4UpperChargeThreshold,
36 double TS5TS6ChargeThreshold,
37 double TS5TS6UpperChargeThreshold,
38 double R45PlusOneRange,
39 double R45MinusOneRange,
40 unsigned int TrianglePeakTS,
41 const std::vector<double>& LinearThreshold,
42 const std::vector<double>& LinearCut,
43 const std::vector<double>& RMS8MaxThreshold,
44 const std::vector<double>& RMS8MaxCut,
45 const std::vector<double>& LeftSlopeThreshold,
46 const std::vector<double>& LeftSlopeCut,
47 const std::vector<double>& RightSlopeThreshold,
48 const std::vector<double>& RightSlopeCut,
49 const std::vector<double>& RightSlopeSmallThreshold,
50 const std::vector<double>& RightSlopeSmallCut,
56 bool TriangleIgnoreSlow);
88 double DualNominalFitSingleTry(
const std::vector<double> &Charge,
int Offset,
int Distance,
bool newCharges=
true);
92 bool CheckPassFilter(
double Charge,
double Discriminant, std::vector<std::pair<double, double> > &Cuts,
94 std::vector<double>
f1_;
95 std::vector<double>
f2_;
std::vector< double > f1_
double mMinimumChargeThreshold
std::vector< std::pair< double, double > > mLambdaLinearCut
double mTS5TS6UpperChargeThreshold
std::vector< double > f2_
double mTS3TS4ChargeThreshold
double CalculateRMS8Max(const std::vector< double > &Charge)
std::vector< std::pair< double, double > > mTS4TS5LowerCut
double PerformNominalFit(const std::vector< double > &Charge)
double DualNominalFitSingleTry(const std::vector< double > &Charge, int Offset, int Distance, bool newCharges=true)
double PerformDualNominalFit(const std::vector< double > &Charge)
~HBHEPulseShapeFlagSetter()
double PerformLinearFit(const std::vector< double > &Charge)
std::vector< std::pair< double, double > > mLeftSlopeCut
tuple TS4TS5UpperThreshold
TriangleFitResult PerformTriangleFit(const std::vector< double > &Charge)
tuple TS4TS5LowerThreshold
MVATrainerComputer * calib
double mTS4TS5ChargeThreshold
HBHEPulseShapeFlagSetter()
std::vector< std::pair< double, double > > mRightSlopeCut
bool CheckPassFilter(double Charge, double Discriminant, std::vector< std::pair< double, double > > &Cuts, int Side)
std::vector< double > mCharge
std::vector< std::pair< double, double > > mRightSlopeSmallCut
double mTS3TS4UpperChargeThreshold
double mTS5TS6ChargeThreshold
void SetPulseShapeFlags(HBHERecHit &hbhe, const HBHEDataFrame &digi, const HcalCoder &coder, const HcalCalibrations &calib)
std::vector< double > errors_
std::vector< double > CumulativeIdealPulse
std::vector< std::pair< double, double > > mLambdaRMS8MaxCut
std::vector< std::pair< double, double > > mTS4TS5UpperCut