CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalDeterministicFit.h
Go to the documentation of this file.
1 #ifndef HcalDeterministicFit_h
2 #define HcalDeterministicFit_h 1
3 
4 #include <typeinfo>
5 #include <vector>
6 
9 
14 
15 
17  public:
21 
22  void init(HcalTimeSlew::ParaSource tsParam, HcalTimeSlew::BiasSetting bias, NegStrategy nStrat, PedestalSub pedSubFxn_);
23 
24  // This is the CMSSW Implementation of the apply function
25  void apply(const CaloSamples & cs, const std::vector<int> & capidvec, const HcalCalibrations & calibs, std::vector<double> & HLTOutput) const;
26  // This is the edited implementation for our standalone test code
27  void applyXM(const std::vector<double> & inputCharge, const std::vector<double> & inputPedestal, std::vector<double> & HLTOutput) const;
28  //void apply(const std::vector<double> & inputCharge, const std::vector<double> & inputPedestal, std::vector<double> & HLTOutput) const;
29  void getLandauFrac(float tStart, float tEnd, float &sum) const;
30 
31  //void SolveEquations(double *TS, double *par, double *fit) const;
32  double det2(double *b, double *c) const;
33  double det3(double *a, double *b, double *c) const;
34  void pulseFraction(const double fC, double *TS46) const;
35 
36  private:
41 
42  static constexpr float landauFrac[] {0, 7.6377e-05, 0.000418655, 0.00153692, 0.00436844, 0.0102076,
43  0.0204177, 0.0360559, 0.057596, 0.0848493, 0.117069, 0.153152, 0.191858, 0.23198, 0.272461, 0.312438,
44  0.351262, 0.388476, 0.423788, 0.457036, 0.488159, 0.517167, 0.54412, 0.569112, 0.592254, 0.613668,
45  0.633402, 0.651391, 0.667242, 0.680131, 0.688868, 0.692188, 0.689122, 0.67928, 0.662924, 0.64087,
46  0.614282, 0.584457, 0.552651, 0.51997, 0.487317, 0.455378, 0.424647, 0.395445, 0.367963, 0.342288,
47  0.318433, 0.29636, 0.275994, 0.257243, 0.24, 0.224155, 0.2096, 0.196227, 0.183937, 0.172635,
48  0.162232, 0.15265, 0.143813, 0.135656, 0.128117, 0.12114, 0.114677, 0.108681, 0.103113, 0.0979354,
49  0.0931145, 0.0886206, 0.0844264, 0.0805074, 0.0768411, 0.0734075, 0.0701881, 0.0671664, 0.0643271,
50  0.0616564, 0.0591418, 0.0567718, 0.054536, 0.0524247, 0.0504292, 0.0485414, 0.046754, 0.0450602,
51  0.0434538, 0.041929, 0.0404806, 0.0391037, 0.0377937, 0.0365465, 0.0353583, 0.0342255, 0.0331447,
52  0.032113, 0.0311274, 0.0301854, 0.0292843, 0.0284221, 0.0275964, 0.0268053, 0.0253052, 0.0238536,
53  0.0224483, 0.0210872, 0.0197684, 0.0184899, 0.01725, 0.0160471, 0.0148795, 0.0137457, 0.0126445,
54  0.0115743, 0.0105341, 0.00952249, 0.00853844, 0.00758086, 0.00664871,0.00574103, 0.00485689, 0.00399541,
55  0.00315576, 0.00233713, 0.00153878, 0.000759962, 0 };
56 
57 
58  //static double TS3par[3] = {0.44, -18.6, 5.136}; //Gaussian parameters: norm, mean, sigma for the TS3 fraction
59  static constexpr double TS4par[] = {0.71, -5.17, 12.23}; //Gaussian parameters: norm, mean, sigma for the TS4 fraction
60  static constexpr double TS5par[] = {0.258, 0.0178, 4.786e-4}; // pol2 parameters for the TS5 fraction
61  static constexpr double TS6par[] = {0.06391, 0.002737, 8.396e-05, 1.475e-06};// pol3 parameters for the TS6 fraction
62 
63 };
64 
65 #endif // HLTAnalyzer_h
auto_ptr< ClusterSequence > cs
void applyXM(const std::vector< double > &inputCharge, const std::vector< double > &inputPedestal, std::vector< double > &HLTOutput) const
#define constexpr
HcalTimeSlew::ParaSource fTimeSlew
double det2(double *b, double *c) const
void apply(const CaloSamples &cs, const std::vector< int > &capidvec, const HcalCalibrations &calibs, std::vector< double > &HLTOutput) const
void getLandauFrac(float tStart, float tEnd, float &sum) const
double det3(double *a, double *b, double *c) const
void init(HcalTimeSlew::ParaSource tsParam, HcalTimeSlew::BiasSetting bias, NegStrategy nStrat, PedestalSub pedSubFxn_)
void pulseFraction(const double fC, double *TS46) const
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
HcalTimeSlew::BiasSetting fTimeSlewBias