ATLAS Offline Software
Loading...
Searching...
No Matches
SiNoise_bt.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include <cmath>
7
9// Noise production
10// Di r = +1 along momentum , -1 opposite momentum
11// Model = 1 - muon, 2 - electron
13
14void
22
23
25(int Dir,int Model,const Trk::TrackParameters& Tp)
26{
27 reset();
28 if(Model < 1 || Model > 2) return;
29 m_model = Model;
30 double radlength = 0.03;
31 double energylose = 0.4;
32
33 const Amg::Transform3D& T = Tp.associatedSurface().transform();
34 const AmgVector(5)& Vp = Tp.parameters();
35
36 double q = std::abs(Vp[4]);
37 double cosp = std::cos(Vp[3]) ;
38 double sinp2 = (1.-cosp)*(1.+cosp) ;
39 if(sinp2==0) sinp2 = 0.000001;
40 double s =
41 std::abs(std::sqrt(sinp2)*(std::cos(Vp[2])*T(0,2)+std::sin(Vp[2]*T(1,2)))+cosp*T(2,2));
42 s < .05 ? s = 20. : s = 1./s;
43
44 m_covariancePola = 134.*s*radlength*q*q;
46
47 if(m_model==1) {
48 double dp = energylose*q*s;
49 m_covarianceIMom = .2*dp*dp*q*q;
50 m_correctionIMom = 1.-dp;
51 }
52 else {
55 }
57}
#define AmgVector(rows)
static Double_t Tp(Double_t *t, Double_t *par)
double m_covarianceIMom
Definition SiNoise_bt.h:38
double m_correctionIMom
Definition SiNoise_bt.h:39
double m_covariancePola
Definition SiNoise_bt.h:37
double m_covarianceAzim
Definition SiNoise_bt.h:36
void production(int direction, int model, const Trk::TrackParameters &tp)
Eigen::Affine3d Transform3D
ParametersBase< TrackParametersDim, Charged > TrackParameters