CMS 3D CMS Logo

Functions
SiStripPulseShape.cc File Reference
#include "DQM/SiStripCommissioningAnalysis/interface/SiStripPulseShape.h"
#include <TF1.h>
#include <TMath.h>

Go to the source code of this file.

Functions

double fdecay (double *x, double *par)
 
double fdeconv (double *x, double *par)
 
double fdeconv_convoluted (double *x, double *par)
 
double fpeak (double *x, double *par)
 
double fpeak_convoluted (double *x, double *par)
 
double fturnOn (double *x, double *par)
 
double pulse (double x, double y, double z, double t)
 
double pulse_raw (double x, double y, double z, double t)
 
double pulse_x0 (double y, double z, double t)
 
double pulse_x0_yz (double z, double t)
 
double pulse_yz (double x, double z, double t)
 

Function Documentation

◆ fdecay()

double fdecay ( double *  x,
double *  par 
)

Definition at line 91 of file SiStripPulseShape.cc.

91  {
92  double s = par[0];
93  double c_exp = par[1];
94  double c_pow = par[2];
95 
96  return s * TMath::Exp(x[0] * c_exp) * (1 + x[0] * c_pow);
97 }

References alignCSCRings::s, and genVertex_cff::x.

Referenced by CalibrationScanAlgorithm::analyse().

◆ fdeconv()

double fdeconv ( double *  x,
double *  par 
)

Definition at line 101 of file SiStripPulseShape.cc.

101  {
102  double xm = par[6] * (x[0] - 25);
103  double xp = par[6] * (x[0] + 25);
104  double xz = par[6] * x[0];
105  return 1.2131 * fpeak(&xp, par) - 1.4715 * fpeak(&xz, par) + 0.4463 * fpeak(&xm, par);
106 }

References fpeak(), genVertex_cff::x, and geometryCSVtoXML::xz.

Referenced by CalibrationAlgorithm::analyse(), CalibrationScanAlgorithm::analyse(), and SiStripPulseShape::getNormalizedValue().

◆ fdeconv_convoluted()

double fdeconv_convoluted ( double *  x,
double *  par 
)

Definition at line 113 of file SiStripPulseShape.cc.

113  {
114  double xm = (x[0] - 25);
115  double xp = (x[0] + 25);
116  double xz = x[0];
117  return 1.2131 * fpeak_convoluted(&xp, par) - 1.4715 * fpeak_convoluted(&xz, par) +
118  0.4463 * fpeak_convoluted(&xm, par);
119 }

References fpeak_convoluted(), genVertex_cff::x, and geometryCSVtoXML::xz.

Referenced by SamplingAlgorithm::SamplingAlgorithm().

◆ fpeak()

double fpeak ( double *  x,
double *  par 
)

Definition at line 66 of file SiStripPulseShape.cc.

66  {
67  double xx = par[0];
68  double y = par[1];
69  double z = par[2];
70  double a_0 = par[3];
71  double s = par[4];
72  double t_0 = par[5];
73  double t = x[0] - t_0;
74 
75  // below turn-on time return just a constant
76  if (x[0] < t_0)
77  return a_0;
78  // elswhere return the pulse
79  return a_0 + s * pulse(xx, y, z, t);
80 }

References pulse(), alignCSCRings::s, submitPVValidationJobs::t, genVertex_cff::x, geometryCSVtoXML::xx, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by CalibrationAlgorithm::analyse(), fdeconv(), fpeak_convoluted(), and SiStripPulseShape::getNormalizedValue().

◆ fpeak_convoluted()

double fpeak_convoluted ( double *  x,
double *  par 
)

Definition at line 108 of file SiStripPulseShape.cc.

108  {
109  TF1 f("peak_convoluted", fpeak, 0, 250, 4);
110  return f.IntegralError(x[0] - par[4] / 2., x[0] + par[4] / 2., par, nullptr, 1.) / (par[4]);
111 }

References f, fpeak(), and genVertex_cff::x.

Referenced by fdeconv_convoluted(), and SamplingAlgorithm::SamplingAlgorithm().

◆ fturnOn()

double fturnOn ( double *  x,
double *  par 
)

Definition at line 82 of file SiStripPulseShape.cc.

82  {
83  double a_0 = par[0];
84  double s = par[1];
85  double t_0 = par[2];
86  double width = par[3];
87 
88  return a_0 + s * TMath::Erf((x[0] - t_0) / width);
89 }

References alignCSCRings::s, ApeEstimator_cff::width, and genVertex_cff::x.

Referenced by CalibrationScanAlgorithm::analyse().

◆ pulse()

double pulse ( double  x,
double  y,
double  z,
double  t 
)

Definition at line 49 of file SiStripPulseShape.cc.

49  {
50  if (x > y) {
51  double pivot = x;
52  x = y;
53  y = pivot;
54  }
55 
56  if ((x == 0) && (y == z))
57  return pulse_x0_yz(z, t);
58  else if (x == 0)
59  return pulse_x0(y, z, t);
60  else if (y == z)
61  return pulse_yz(x, z, t);
62  else
63  return pulse_raw(x, y, z, t);
64 }

References pulse_raw(), pulse_x0(), pulse_x0_yz(), pulse_yz(), submitPVValidationJobs::t, genVertex_cff::x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by EcalUncalibRecHitTimingCCAlgo::computeTimeCC(), fpeak(), pos::PixelFEDTestDAC::levelEncoder(), HcalSiPMHitResponse::makeSiPMSignal(), FitterFuncs::PulseShapeFunctor::PulseShapeFunctor(), AbsElectronicODERHS::setInputPulse(), HcalQie::shape(), and EcalUncalibRecHitTimeWeightsAlgo< EBDataFrame >::time().

◆ pulse_raw()

double pulse_raw ( double  x,
double  y,
double  z,
double  t 
)

Definition at line 19 of file SiStripPulseShape.cc.

19  {
20  double result1, result2, result3;
21 
22  result1 = z * y * exp(-t / y);
23  result1 /= pow(y, 2) - (x + z) * y + z * x;
24 
25  result2 = z * x * exp(-t / x);
26  result2 /= pow(x, 2) - (x - z) * y - z * x;
27 
28  result3 = pow(z, 2) * exp(-t / z);
29  result3 /= pow(z, 2) + (x - z) * y - z * x;
30 
31  return result1 + result2 + result3;
32 }

References JetChargeProducer_cfi::exp, funct::pow(), submitPVValidationJobs::t, genVertex_cff::x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by pulse().

◆ pulse_x0()

double pulse_x0 ( double  y,
double  z,
double  t 
)

Definition at line 34 of file SiStripPulseShape.cc.

34 { return z / (y - z) * (exp(-t / y) - exp(-t / z)); }

References JetChargeProducer_cfi::exp, submitPVValidationJobs::t, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by pulse().

◆ pulse_x0_yz()

double pulse_x0_yz ( double  z,
double  t 
)

Definition at line 47 of file SiStripPulseShape.cc.

47 { return t / z * exp(-t / z); }

References JetChargeProducer_cfi::exp, submitPVValidationJobs::t, and detailsBasic3DVector::z.

Referenced by pulse().

◆ pulse_yz()

double pulse_yz ( double  x,
double  z,
double  t 
)

Definition at line 36 of file SiStripPulseShape.cc.

36  {
37  double result1, result2;
38 
39  result1 = exp(-t / x) - exp(-t / z);
40  result1 *= z * x / (z - x);
41 
42  result2 = t * exp(-t / z);
43 
44  return (result1 + result2) / (z - x);
45 }

References JetChargeProducer_cfi::exp, submitPVValidationJobs::t, genVertex_cff::x, and detailsBasic3DVector::z.

Referenced by pulse().

ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
detailsBasic3DVector::z
float float float z
Definition: extBasic3DVector.h:14
fpeak_convoluted
double fpeak_convoluted(double *x, double *par)
Definition: SiStripPulseShape.cc:108
pulse
double pulse(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:49
alignCSCRings.s
s
Definition: alignCSCRings.py:92
pulse_x0
double pulse_x0(double y, double z, double t)
Definition: SiStripPulseShape.cc:34
pulse_raw
double pulse_raw(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:19
pulse_yz
double pulse_yz(double x, double z, double t)
Definition: SiStripPulseShape.cc:36
geometryCSVtoXML.xz
xz
Definition: geometryCSVtoXML.py:19
genVertex_cff.x
x
Definition: genVertex_cff.py:13
detailsBasic3DVector::y
float float y
Definition: extBasic3DVector.h:14
fpeak
double fpeak(double *x, double *par)
Definition: SiStripPulseShape.cc:66
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
pulse_x0_yz
double pulse_x0_yz(double z, double t)
Definition: SiStripPulseShape.cc:47
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19