ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
Trk::ForCFT Struct Reference

#include <ForCFT.h>

Collaboration diagram for Trk::ForCFT:

Public Member Functions

void prcfit (long int ntrk, double *wm, const double *wmfit, double bmag, const double *vrt, const double *vrte) noexcept
 
void vksetIterationNum (long int Iter) noexcept
 
void vksetIterationPrec (double Prec) noexcept
 
void vksetRobustScale (double Scale) noexcept
 
void vksetRobustness (long int Rob) noexcept
 
void vksetUseMassCnst () noexcept
 
void vksetUsePhiCnst () noexcept
 
void vksetUsePlaneCnst (double a, double b, double c, double d) noexcept
 
void vksetUseThetaCnst () noexcept
 
void vksetUseAprioriVrt () noexcept
 
void vksetUsePointingCnst (int iType=1) noexcept
 
void vksetUsePassNear (int iType=1) noexcept
 
void setmasscnst_ (long int ncnsttrk, long int *indextrk, double wmcnst) noexcept
 
 ForCFT () noexcept
 
 ~ForCFT ()=default
 

Public Attributes

int useMassCnst
 
int usePhiCnst
 
int useThetaCnst
 
int usePointingCnst
 
int useAprioriVrt
 
int usePassNear
 
int usePlaneCnst
 
int nmcnst
 
double wm [vkalNTrkM]
 
double wmfit [vkalMaxNMassCnst]
 
double localbmag
 
double Ap
 
double Bp
 
double Cp
 
double Dp
 
double vrt [3] {}
 
double covvrt [6] {}
 
double wgtvrt [6] {}
 
double vrtstp [3] {}
 
int irob
 
double RobustScale
 
double robres [vkalNTrkM]
 
int indtrkmc [vkalMaxNMassCnst][vkalNTrkM]
 
int IterationNumber
 
double IterationPrecision
 

Detailed Description

Definition at line 12 of file ForCFT.h.

Constructor & Destructor Documentation

◆ ForCFT()

Trk::ForCFT::ForCFT ( )
noexcept

Definition at line 122 of file PrCFit.cxx.

122  {
123  nmcnst=0;
126  Ap=Bp=Dp=Cp=0.;
127  IterationNumber = 50;
128  IterationPrecision=1.e-3;
129  RobustScale = 1.; irob=0;
130  for (int ic=0; ic<vkalMaxNMassCnst; ++ic) wmfit[ic] = -10000.;
131  for (int it=0; it<vkalNTrkM; ++it) {
132  wm[it] = 139.57018;
133  robres[it] = 1.;
134  for(int ic=0; ic<vkalMaxNMassCnst; ic++) indtrkmc[ic][it]=0;
135  }
136  localbmag=1.997; // Safety: standard magnetic field in ID
137 }

◆ ~ForCFT()

Trk::ForCFT::~ForCFT ( )
default

Member Function Documentation

◆ prcfit()

void Trk::ForCFT::prcfit ( long int  ntrk,
double *  wm,
const double *  wmfit,
double  bmag,
const double *  vrt,
const double *  vrte 
)
noexcept

Definition at line 43 of file PrCFit.cxx.

44 {
45  long int i__1;
46  double summ;
47 
48 
49 /*------------------------------------------------------------------------------*/
50 /* SETTING OF INITIAL PARAMETERS FOR C-FIT */
51 /* (DEPENDING ON TYPE OF FIT) */
52 /* INPUT: */
53 /* NTRK : number of tracks */
54 /* WM(JTK) : track masses ( if negative - track doesn't */
55 /* : participate in mass constraint ) */
56 /* WMFIT : masses for mass constraints */
57 /* VRT(3) : point for directional constraint */
58 /* (usually primary vertex) */
59 /* VRTE(6) : error matrix for VRT ( for IFLAG=6) */
60 /* BMAG : magnetic field (in Tesla) */
61 /* Magnetic field is obligatory , other parameters MUST be set */
62 /* when used in constraints */
63 /* General mass constraint for all tracks is set in PRCFIT through WMFIT */
64 /* if WMFIT > Sum_of_track_masses */
65 /* Any number of additional mass constraints can be set up with */
66 /* SetMassCnst(NCnstTrk,IndexTrk,WMCNST) where */
67 /* INPUT: */
68 /* NCnstTrk :track number of track subset for cnst.*/
69 /* IndexTrk(NCnstTrk) :index of each track from subset in */
70 /* :general track set for vertex fit. */
71 /* WmCnst :Mass for given constraint */
72 /* Author: V.Kostioukhine (1995 ,2004,2005) */
73 /* */
74 /* All functions here must be called AFTER(!!!) prcfit. */
75 /* */
76 /*------------------------------------------------------------------------------*/
77 
78  this->localbmag = bmag;
79  this->nmcnst = 0;
80  for (int i=0; i<8; ++i) this->wmfit[i] = -10000.;
81  summ = 0.;
82  i__1 = ntrk<vkalNTrkM ? ntrk: vkalNTrkM;
83  for (int i=0; i<i__1; ++i) {
84  this->wm[i] = std::abs(wm[i]);
85  summ += wm[i];
86  }
87  if ((*wmfit) > summ) {
88 /* Set general mass constraint based on ALL tracks */
89  this->nmcnst = 1;
90  for (int i = 0; i < vkalNTrkM; ++i) {
91  indtrkmc[0][i] = 0;
92  if (i < ntrk) {indtrkmc[0][i] = 1;}
93  }
94  this->wmfit[0] = (*wmfit);
95  }
96 
97  this->vrt[0] = vrt[0];
98  this->vrt[1] = vrt[1];
99  this->vrt[2] = vrt[2];
100  this->covvrt[0] = vrte[0];
101  this->covvrt[1] = vrte[1];
102  this->covvrt[2] = vrte[2];
103  this->covvrt[3] = vrte[3];
104  this->covvrt[4] = vrte[4];
105  this->covvrt[5] = vrte[5];
106  this->irob = 0;
107  this->IterationNumber = 50;
108  this->IterationPrecision = 1.e-3;
109  for (int i = 0; i < vkalNTrkM; ++i) this->robres[i]=1.; //Safety
110 //
111 // Reset all constraints
112 //
113 this->useMassCnst = 0;
114 this->usePhiCnst = 0;
115 this->useThetaCnst = 0;
116 this->useAprioriVrt = 0;
117 this->usePointingCnst = 0;
118 this->usePassNear = 0;
119 //forcft_1.usePlaneCnst = 0; //Used only on demand=> must NOT be reset here!!!
120 }

◆ setmasscnst_()

void Trk::ForCFT::setmasscnst_ ( long int  ncnsttrk,
long int *  indextrk,
double  wmcnst 
)
noexcept

Definition at line 178 of file PrCFit.cxx.

179 {
180  if (indextrk==nullptr) return; //Protection! Track indices start from 1 (not 0)!
181  --indextrk;
182 
183  ++nmcnst;
184  if (nmcnst > 8) return ;
185  for (int i = 0; i < vkalNTrkM; ++i) {
186  indtrkmc[nmcnst-1][i] = 0;
187  }
188  for (int i = 0; i < ncnsttrk; ++i) {
189  if (indextrk[i] > 0 && indextrk[i] < vkalNTrkM) {
190  indtrkmc[nmcnst-1][indextrk[i]] = 1;
191  }
192  }
193  wmfit[nmcnst - 1] = wmcnst;
194  }

◆ vksetIterationNum()

void Trk::ForCFT::vksetIterationNum ( long int  Iter)
noexcept

Definition at line 140 of file PrCFit.cxx.

141 {
142  if (Iter<3) Iter=3;
143  if (Iter>100) Iter=100;
144  IterationNumber = Iter;
145 }

◆ vksetIterationPrec()

void Trk::ForCFT::vksetIterationPrec ( double  Prec)
noexcept

Definition at line 147 of file PrCFit.cxx.

148 {
149  if (Prec<1.e-5) Prec=1.e-5;
150  if (Prec>1.e-1) Prec=1.e-1;
151  IterationPrecision = Prec;
152 }

◆ vksetRobustness()

void Trk::ForCFT::vksetRobustness ( long int  Rob)
noexcept

Definition at line 161 of file PrCFit.cxx.

162 {
163  if (Rob<0) Rob=0;
164  if (Rob>7) Rob=7;
165  irob = Rob;
166 }

◆ vksetRobustScale()

void Trk::ForCFT::vksetRobustScale ( double  Scale)
noexcept

Definition at line 154 of file PrCFit.cxx.

155 {
156  if (Scale<0.01) Scale=0.01;
157  if (Scale>100.) Scale=100.;
158  RobustScale = Scale;
159 }

◆ vksetUseAprioriVrt()

void Trk::ForCFT::vksetUseAprioriVrt ( )
inlinenoexcept

Definition at line 60 of file ForCFT.h.

60 { useAprioriVrt = 1;}

◆ vksetUseMassCnst()

void Trk::ForCFT::vksetUseMassCnst ( )
noexcept

Definition at line 168 of file PrCFit.cxx.

168 { useMassCnst = 1;}

◆ vksetUsePassNear()

void Trk::ForCFT::vksetUsePassNear ( int  iType = 1)
inlinenoexcept

Definition at line 62 of file ForCFT.h.

62 { usePassNear = iType<2 ? 1 : 2 ;}

◆ vksetUsePhiCnst()

void Trk::ForCFT::vksetUsePhiCnst ( )
noexcept

Definition at line 169 of file PrCFit.cxx.

169 { usePhiCnst = 1;}

◆ vksetUsePlaneCnst()

void Trk::ForCFT::vksetUsePlaneCnst ( double  a,
double  b,
double  c,
double  d 
)
noexcept

Definition at line 170 of file PrCFit.cxx.

170  {
171  if(a+b+c+d == 0.){ usePlaneCnst = 0;
172  }else{ usePlaneCnst = 1; }
173  Ap = a; Bp = b; Cp = c; Dp = d;
174 }

◆ vksetUsePointingCnst()

void Trk::ForCFT::vksetUsePointingCnst ( int  iType = 1)
inlinenoexcept

Definition at line 61 of file ForCFT.h.

61 { usePointingCnst = iType<2 ? 1 : 2 ;}

◆ vksetUseThetaCnst()

void Trk::ForCFT::vksetUseThetaCnst ( )
inlinenoexcept

Definition at line 59 of file ForCFT.h.

59 { useThetaCnst = 1;}

Member Data Documentation

◆ Ap

double Trk::ForCFT::Ap

Definition at line 30 of file ForCFT.h.

◆ Bp

double Trk::ForCFT::Bp

Definition at line 30 of file ForCFT.h.

◆ covvrt

double Trk::ForCFT::covvrt[6] {}

Definition at line 39 of file ForCFT.h.

◆ Cp

double Trk::ForCFT::Cp

Definition at line 30 of file ForCFT.h.

◆ Dp

double Trk::ForCFT::Dp

Definition at line 30 of file ForCFT.h.

◆ indtrkmc

int Trk::ForCFT::indtrkmc[vkalMaxNMassCnst][vkalNTrkM]

Definition at line 46 of file ForCFT.h.

◆ irob

int Trk::ForCFT::irob

Definition at line 43 of file ForCFT.h.

◆ IterationNumber

int Trk::ForCFT::IterationNumber

Definition at line 47 of file ForCFT.h.

◆ IterationPrecision

double Trk::ForCFT::IterationPrecision

Definition at line 48 of file ForCFT.h.

◆ localbmag

double Trk::ForCFT::localbmag

Definition at line 28 of file ForCFT.h.

◆ nmcnst

int Trk::ForCFT::nmcnst

Definition at line 25 of file ForCFT.h.

◆ robres

double Trk::ForCFT::robres[vkalNTrkM]

Definition at line 45 of file ForCFT.h.

◆ RobustScale

double Trk::ForCFT::RobustScale

Definition at line 44 of file ForCFT.h.

◆ useAprioriVrt

int Trk::ForCFT::useAprioriVrt

Definition at line 19 of file ForCFT.h.

◆ useMassCnst

int Trk::ForCFT::useMassCnst

Definition at line 15 of file ForCFT.h.

◆ usePassNear

int Trk::ForCFT::usePassNear

Definition at line 20 of file ForCFT.h.

◆ usePhiCnst

int Trk::ForCFT::usePhiCnst

Definition at line 16 of file ForCFT.h.

◆ usePlaneCnst

int Trk::ForCFT::usePlaneCnst

Definition at line 21 of file ForCFT.h.

◆ usePointingCnst

int Trk::ForCFT::usePointingCnst

Definition at line 18 of file ForCFT.h.

◆ useThetaCnst

int Trk::ForCFT::useThetaCnst

Definition at line 17 of file ForCFT.h.

◆ vrt

double Trk::ForCFT::vrt[3] {}

Definition at line 39 of file ForCFT.h.

◆ vrtstp

double Trk::ForCFT::vrtstp[3] {}

Definition at line 42 of file ForCFT.h.

◆ wgtvrt

double Trk::ForCFT::wgtvrt[6] {}

Definition at line 39 of file ForCFT.h.

◆ wm

double Trk::ForCFT::wm[vkalNTrkM]

Definition at line 26 of file ForCFT.h.

◆ wmfit

double Trk::ForCFT::wmfit[vkalMaxNMassCnst]

Definition at line 27 of file ForCFT.h.


The documentation for this struct was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::ForCFT::useThetaCnst
int useThetaCnst
Definition: ForCFT.h:17
hist_file_dump.d
d
Definition: hist_file_dump.py:137
skel.it
it
Definition: skel.GENtoEVGEN.py:396
Trk::ForCFT::Cp
double Cp
Definition: ForCFT.h:30
Trk::ForCFT::vrt
double vrt[3]
Definition: ForCFT.h:39
Trk::ForCFT::usePassNear
int usePassNear
Definition: ForCFT.h:20
Trk::ForCFT::indtrkmc
int indtrkmc[vkalMaxNMassCnst][vkalNTrkM]
Definition: ForCFT.h:46
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::ForCFT::RobustScale
double RobustScale
Definition: ForCFT.h:44
Trk::ForCFT::useAprioriVrt
int useAprioriVrt
Definition: ForCFT.h:19
Trk::ForCFT::IterationPrecision
double IterationPrecision
Definition: ForCFT.h:48
Scale
void Scale(TH1 *h, double d=1)
Definition: comparitor.cxx:77
Trk::ForCFT::usePhiCnst
int usePhiCnst
Definition: ForCFT.h:16
Trk::ForCFT::usePlaneCnst
int usePlaneCnst
Definition: ForCFT.h:21
Trk::ForCFT::covvrt
double covvrt[6]
Definition: ForCFT.h:39
grepfile.ic
int ic
Definition: grepfile.py:33
Trk::ForCFT::wm
double wm[vkalNTrkM]
Definition: ForCFT.h:26
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
Trk::ForCFT::Dp
double Dp
Definition: ForCFT.h:30
Trk::ForCFT::Ap
double Ap
Definition: ForCFT.h:30
vkalNTrkM
#define vkalNTrkM
Definition: CommonPars.h:22
Trk::ForCFT::wmfit
double wmfit[vkalMaxNMassCnst]
Definition: ForCFT.h:27
Trk::ForCFT::localbmag
double localbmag
Definition: ForCFT.h:28
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::ForCFT::irob
int irob
Definition: ForCFT.h:43
vkalMaxNMassCnst
#define vkalMaxNMassCnst
Definition: CommonPars.h:27
Trk::ForCFT::IterationNumber
int IterationNumber
Definition: ForCFT.h:47
Trk::ForCFT::nmcnst
int nmcnst
Definition: ForCFT.h:25
Trk::ForCFT::Bp
double Bp
Definition: ForCFT.h:30
python.compressB64.c
def c
Definition: compressB64.py:93
Trk::ForCFT::robres
double robres[vkalNTrkM]
Definition: ForCFT.h:45
Trk::ForCFT::useMassCnst
int useMassCnst
Definition: ForCFT.h:15
Trk::ForCFT::usePointingCnst
int usePointingCnst
Definition: ForCFT.h:18