ATLAS Offline Software
SCT_LorentzAngleFunc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //For SCT Lorentz Angle
6 
7 #include <cmath>
8 #include "RtypesCore.h" // for Double_t etc.
9 
10 Double_t
11 LA_func(Double_t* x, Double_t* par) {
12  const Int_t n{1000}; // number of integration step
13  const Double_t xmin{x[0] - 5.0*par[3]};
14  const Double_t xmax{x[0] + 5.0*par[3]};
15  const Double_t h{(xmax - xmin)/(n - 1)};
16  const double piOver180 = M_PI/180.;
17  const double piNorm = 1./std::sqrt(2.*M_PI);
18  Double_t sum{0.};
19  Double_t x_{xmin};
20  Double_t LA_sum{0.};
21  for (Int_t i{1}; i<n; i++) {
22  LA_sum = par[0]*std::abs(std::tan(x_*piOver180)-std::tan(par[1]*piOver180))+par[2];
23  sum += LA_sum * 0.017455 * piNorm/(par[3]*piOver180)
24  * std::exp(-(x[0]*piOver180 - x_*piOver180 )*(x[0]*piOver180 - x_*piOver180 )/(2*par[3]*piOver180*par[3]*piOver180)) * h;
25  x_ += h;
26  }
27  return sum;
28 }
M_PI
#define M_PI
Definition: ActiveFraction.h:11
LA_func
Double_t LA_func(Double_t *x, Double_t *par)
Definition: SCT_LorentzAngleFunc.h:11
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
x
#define x
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
lumiFormat.i
int i
Definition: lumiFormat.py:92
xmin
double xmin
Definition: listroot.cxx:60
beamspotman.n
n
Definition: beamspotman.py:731
extractSporadic.h
list h
Definition: extractSporadic.py:97
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
h
xmax
double xmax
Definition: listroot.cxx:61