Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:49

0001 #ifndef CSCFitAFEBThr_h
0002 #define CSCFitAFEBThr_h
0003 
0004 /** \class CSCFitAFEBThr
0005  *
0006  * Concrete algorithmic class used to identify threshold and noise in 
0007  * AFEB channel threshold scan in the endcap muon CSCs. 
0008  * Based on CSCFitSCAPulse as an example
0009  */
0010 
0011 #include <Minuit2/VariableMetricMinimizer.h>
0012 
0013 class CSCThrTurnOnFcn;
0014 
0015 class CSCFitAFEBThr {
0016 public:
0017   typedef ROOT::Minuit2::ModularFunctionMinimizer ModularFunctionMinimizer;
0018   CSCFitAFEBThr();
0019   virtual ~CSCFitAFEBThr();
0020 
0021   /// Find the threshold and noise from the threshold turn-on curve.
0022   /// The returned bool is success/fail status.
0023   virtual bool ThresholdNoise(const std::vector<float>& inputx,
0024                               const std::vector<float>& inputy,
0025                               const int& npulses,
0026                               std::vector<int>& dacoccup,
0027                               std::vector<float>& mypar,
0028                               std::vector<float>& ermypar,
0029                               float& ercorr,
0030                               float& chisq,
0031                               int& ndf,
0032                               int& niter,
0033                               float& edm) const;
0034 
0035 private:
0036   ModularFunctionMinimizer* theFitter;
0037   CSCThrTurnOnFcn* theOBJfun;
0038 };
0039 
0040 #endif