ATLAS Offline Software
Loading...
Searching...
No Matches
BeamSpot Namespace Reference

Classes

struct  BeamSpotDB
 A simple struct to hold vertex info. More...
struct  Event
class  ID
struct  VrtHolder

Functions

void myFCN_LLsolver (Int_t &, Double_t *, Double_t &, Double_t *, Int_t)
void myFCN_LLsolverNorm (Int_t &, Double_t *, Double_t &, Double_t *, Int_t)
double norm_xMin (-1e8)
double norm_xMax (1e8)
double norm_yMin (-1e8)
double norm_yMax (1e8)
double norm_zMin (-1e8)
double norm_zMax (1e8)
double pdfxy (double *x, double *p)

Variables

std::mutex mutex
const std::vector< BeamSpot::VrtHolder > *vertexData ATLAS_THREAD_SAFE

Function Documentation

◆ myFCN_LLsolver()

void BeamSpot::myFCN_LLsolver ( Int_t & ,
Double_t * ,
Double_t & f,
Double_t * par,
Int_t  )

Definition at line 1032 of file InDetBeamSpotVertex.cxx.

1032 {
1033 constexpr double Pi = M_PI;
1034 //par[*]
1035 //0, 1, 2, 3, 4, 5, 6, 7, 8 9
1036 //X0, Y0, Ax. Ay, sx, sy, rhoxy, k z0 sigma(z)
1037
1038 f = 0;
1039
1040 using Vertices = std::vector<BeamSpot::VrtHolder>;
1041 std::lock_guard<std::mutex> lock(BeamSpot::mutex);
1042 Vertices::const_iterator vit = BeamSpot::vertexData->begin();
1043
1044 double temp =0;
1045 double x=0,y=0,z=0;
1046 double vxx,vyy, vxy;
1047 double covXX,covYY,covXY;
1048 double det,k2;
1049
1050 // ln L = Sum[ ln(F) ]
1051 for ( ; vit != vertexData->end(); ++vit) {
1052 if (!vit->valid) continue; // don't use non-valid vertices
1053 temp =0;
1054 x = vit->x;
1055 y = vit->y;
1056 z = vit->z;
1057 vxx = vit->vxx;
1058 vxy = vit->vxy;
1059 vyy = vit->vyy;
1060
1061
1062 k2 = par[7]*par[7];
1063
1064 covXX = k2 *vxx + par[4]*par[4];
1065 covYY = k2 *vyy + par[5]*par[5];
1066 covXY = k2 *vxy + par[6] *par[4]* par[5];
1067
1068 det = covXX * covYY - covXY*covXY;
1069 double recDet = 1./det;
1070
1071 //temp = TMath::Log(2*Pi * sqrt(std::abs(det)));
1072 temp = 2*TMath::Log(2*Pi);
1073 temp += TMath::Log(det);
1074
1075 covXY = -covXY * recDet;
1076 double t = covXX *recDet;
1077 covXX = covYY *recDet;
1078 covYY = t;
1079
1080 temp += (
1081 ( x - par[0] - par[2]*z) * covXX * ( x - par[0] - par[2]*z)
1082 + ( y - par[1] - par[3]*z) * covYY * ( y - par[1] - par[3]*z)
1083 + 2*( x - par[0] - par[2]*z) * covXY * ( y - par[1] - par[3]*z)
1084 );
1085
1086 temp += TMath::Log( 2*Pi * par[9]*par[9] ) + ( z - par[8]) * (z-par[8]) / (par[9] * par[9] );
1087 f+= 0.5*temp;
1088 }//for
1089
1090
1091}//myFCN
#define M_PI
virtual void lock()=0
Interface to allow an object to lock itself when made const in SG.
static const double Pi
#define y
#define x
#define z

◆ myFCN_LLsolverNorm()

void BeamSpot::myFCN_LLsolverNorm ( Int_t & ,
Double_t * ,
Double_t & ,
Double_t * ,
Int_t  )

Definition at line 1100 of file InDetBeamSpotVertex.cxx.

1100 {
1101
1102}

◆ norm_xMax()

double BeamSpot::norm_xMax ( 1e8 )

◆ norm_xMin()

double BeamSpot::norm_xMin ( - 1e8)

◆ norm_yMax()

double BeamSpot::norm_yMax ( 1e8 )

◆ norm_yMin()

double BeamSpot::norm_yMin ( - 1e8)

◆ norm_zMax()

double BeamSpot::norm_zMax ( 1e8 )

◆ norm_zMin()

double BeamSpot::norm_zMin ( - 1e8)

◆ pdfxy()

double BeamSpot::pdfxy ( double * x,
double * p )

Definition at line 1093 of file InDetBeamSpotVertex.cxx.

1093 {
1094
1095 return 0; // TBD dlete
1096}

Variable Documentation

◆ ATLAS_THREAD_SAFE

const std::vector< BeamSpot::VrtHolder >* vertexData BeamSpot::ATLAS_THREAD_SAFE

Definition at line 20 of file InDetBeamSpotVertex.cxx.

◆ mutex

std::mutex BeamSpot::mutex

Definition at line 19 of file InDetBeamSpotVertex.cxx.