Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:08:28

0001 // Class:      SiStripPulseShape
0002 //
0003 /**\class SiStripPulseShape SiStripPulseShape.h myTestArea/SiStripPulseShape/src/SiStripPulseShape.h
0004  Description: analog pulse shape at the ouput of the APV. 
0005  Implementation:
0006      This class allows to access the pulse shape at the APV. This is  usefull to take into account
0007      timing effects in the tracker.
0008 */
0009 //
0010 // Original Author:  Christophe Delaere
0011 //         Created:  Thu Nov  5 17:02:15 CEST 2006
0012 // Revision Author:  Georg Auzinger
0013 //         Created:  Thu Nov  5 17:02:15 CEST 2006
0014 //         Updated:  Fri Jun  2 16:00:00 CEST 2017
0015 
0016 //
0017 
0018 #ifndef SiStripPulseShape_h_
0019 #define SiStripPulseShape_h_
0020 
0021 double fpeak(double *x, double *par);
0022 
0023 double fdeconv(double *x, double *par);
0024 
0025 double fturnOn(double *x, double *par);
0026 
0027 double fdecay(double *x, double *par);
0028 
0029 double fpeak_convoluted(double *x, double *par);
0030 
0031 double fdeconv_convoluted(double *x, double *par);
0032 
0033 double pulse_raw(double x, double y, double z, double t);
0034 
0035 double pulse_x0(double y, double z, double t);
0036 
0037 double pulse_yz(double x, double z, double t);
0038 
0039 double pulse_x0_yz(double z, double t);
0040 
0041 double pulse(double x, double y, double z, double t);
0042 
0043 class SiStripPulseShape {
0044 public:
0045   enum mode { peak, deconvolution };
0046   SiStripPulseShape() : mode_(deconvolution) {}
0047   virtual ~SiStripPulseShape() {}
0048   inline void setMode(const mode theMode) { mode_ = theMode; }
0049   inline mode getMode() const { return mode_; }
0050   inline double getNormalizedValue(const double &t) const {
0051     double parameters[5] = {0., -2.82, 0.066, 50, 20};
0052     double time = t;
0053     switch (mode_) {
0054       case peak: {
0055         return fpeak(&time, parameters);
0056       }
0057       case deconvolution: {
0058         return fdeconv(&time, parameters);
0059       }
0060     }
0061   }
0062 
0063 private:
0064   mode mode_;
0065 };
0066 
0067 #endif