MarlinTPC  1.2.0
MMPulseShapeFunction.h
1 #ifndef MMPULSESHAPEFUNCTION_H
2 #define MMPULSESHAPEFUNCTION_H
3 
4 #include <TMath.h>
5 
6 namespace marlintpc
7 {
8 
10 
11  public:
12 
14 
15  double pulse_shape(double *time, double *par) {
16 
17 
18  // electronic shape function to fit MM pulse shape
19 
20  double func_electronic,dtsbeta,variable,puiss;
21 
22  double fFunc_max = par[0];
23  double fAlpha = par[1];
24  double fTime_max = par[2];
25  double fBeta = par[3];
26 
27  double albet = fAlpha*fBeta ;
28 
29  if( albet <= 0 ) return( (double)0. );
30  double dt = time[0]-fTime_max ;
31  if(dt > -albet) {
32  dtsbeta=dt/fBeta ;
33  variable=1.+dt/albet ;
34  puiss=TMath::Power(variable,fAlpha);
35  func_electronic=fFunc_max*puiss*TMath::Exp(-dtsbeta);
36  }
37  else func_electronic = 0. ;
38 
39  return func_electronic ;
40 
41  }
42 
43  };
44 }
45 #endif
46 
Definition: MMPulseShapeFunction.h:9