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 useRadiusCnst {}
 
int nmcnst
 
double wm [vkalNTrkM]
 
double wmfit [vkalMaxNMassCnst]
 
double localbmag
 
double Ap {}
 
double Bp {}
 
double Cp {}
 
double Dp {}
 
double RC {}
 
double radiusRefP [2] {}
 
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 123 of file PrCFit.cxx.

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

◆ ~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 44 of file PrCFit.cxx.

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

◆ setmasscnst_()

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

Definition at line 179 of file PrCFit.cxx.

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

◆ vksetIterationNum()

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

Definition at line 141 of file PrCFit.cxx.

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

◆ vksetIterationPrec()

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

Definition at line 148 of file PrCFit.cxx.

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

◆ vksetRobustness()

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

Definition at line 162 of file PrCFit.cxx.

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

◆ vksetRobustScale()

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

Definition at line 155 of file PrCFit.cxx.

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

◆ vksetUseAprioriVrt()

void Trk::ForCFT::vksetUseAprioriVrt ( )
inlinenoexcept

Definition at line 66 of file ForCFT.h.

66 { useAprioriVrt = 1;}

◆ vksetUseMassCnst()

void Trk::ForCFT::vksetUseMassCnst ( )
noexcept

Definition at line 169 of file PrCFit.cxx.

169 { useMassCnst = 1;}

◆ vksetUsePassNear()

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

Definition at line 68 of file ForCFT.h.

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

◆ vksetUsePhiCnst()

void Trk::ForCFT::vksetUsePhiCnst ( )
noexcept

Definition at line 170 of file PrCFit.cxx.

170 { usePhiCnst = 1;}

◆ vksetUsePlaneCnst()

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

Definition at line 171 of file PrCFit.cxx.

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

◆ vksetUsePointingCnst()

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

Definition at line 67 of file ForCFT.h.

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

◆ vksetUseThetaCnst()

void Trk::ForCFT::vksetUseThetaCnst ( )
inlinenoexcept

Definition at line 65 of file ForCFT.h.

65 { useThetaCnst = 1;}

Member Data Documentation

◆ Ap

double Trk::ForCFT::Ap {}

Definition at line 31 of file ForCFT.h.

◆ Bp

double Trk::ForCFT::Bp {}

Definition at line 32 of file ForCFT.h.

◆ covvrt

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

Definition at line 45 of file ForCFT.h.

◆ Cp

double Trk::ForCFT::Cp {}

Definition at line 33 of file ForCFT.h.

◆ Dp

double Trk::ForCFT::Dp {}

Definition at line 34 of file ForCFT.h.

◆ indtrkmc

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

Definition at line 52 of file ForCFT.h.

◆ irob

int Trk::ForCFT::irob

Definition at line 49 of file ForCFT.h.

◆ IterationNumber

int Trk::ForCFT::IterationNumber

Definition at line 53 of file ForCFT.h.

◆ IterationPrecision

double Trk::ForCFT::IterationPrecision

Definition at line 54 of file ForCFT.h.

◆ localbmag

double Trk::ForCFT::localbmag

Definition at line 29 of file ForCFT.h.

◆ nmcnst

int Trk::ForCFT::nmcnst

Definition at line 26 of file ForCFT.h.

◆ radiusRefP

double Trk::ForCFT::radiusRefP[2] {}

Definition at line 36 of file ForCFT.h.

◆ RC

double Trk::ForCFT::RC {}

Definition at line 35 of file ForCFT.h.

◆ robres

double Trk::ForCFT::robres[vkalNTrkM]

Definition at line 51 of file ForCFT.h.

◆ RobustScale

double Trk::ForCFT::RobustScale

Definition at line 50 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.

◆ useRadiusCnst

int Trk::ForCFT::useRadiusCnst {}

Definition at line 22 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 45 of file ForCFT.h.

◆ vrtstp

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

Definition at line 48 of file ForCFT.h.

◆ wgtvrt

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

Definition at line 45 of file ForCFT.h.

◆ wm

double Trk::ForCFT::wm[vkalNTrkM]

Definition at line 27 of file ForCFT.h.

◆ wmfit

double Trk::ForCFT::wmfit[vkalMaxNMassCnst]

Definition at line 28 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:142
skel.it
it
Definition: skel.GENtoEVGEN.py:407
Trk::ForCFT::RC
double RC
Definition: ForCFT.h:35
Trk::ForCFT::Cp
double Cp
Definition: ForCFT.h:33
ParticleConstants::PDG2011::chargedPionMassInMeV
constexpr double chargedPionMassInMeV
the mass of the charged pion (in MeV)
Definition: ParticleConstants.h:41
Trk::ForCFT::vrt
double vrt[3]
Definition: ForCFT.h:45
Trk::ForCFT::usePassNear
int usePassNear
Definition: ForCFT.h:20
Trk::ForCFT::indtrkmc
int indtrkmc[vkalMaxNMassCnst][vkalNTrkM]
Definition: ForCFT.h:52
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::ForCFT::RobustScale
double RobustScale
Definition: ForCFT.h:50
Trk::ForCFT::useAprioriVrt
int useAprioriVrt
Definition: ForCFT.h:19
Trk::ForCFT::IterationPrecision
double IterationPrecision
Definition: ForCFT.h:54
Scale
void Scale(TH1 *h, double d=1)
Definition: comparitor.cxx:79
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:45
grepfile.ic
int ic
Definition: grepfile.py:33
Trk::ForCFT::wm
double wm[vkalNTrkM]
Definition: ForCFT.h:27
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
Trk::ForCFT::Dp
double Dp
Definition: ForCFT.h:34
Trk::ForCFT::Ap
double Ap
Definition: ForCFT.h:31
vkalNTrkM
#define vkalNTrkM
Definition: CommonPars.h:22
Trk::ForCFT::wmfit
double wmfit[vkalMaxNMassCnst]
Definition: ForCFT.h:28
Trk::ForCFT::localbmag
double localbmag
Definition: ForCFT.h:29
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::ForCFT::irob
int irob
Definition: ForCFT.h:49
vkalMaxNMassCnst
#define vkalMaxNMassCnst
Definition: CommonPars.h:27
Trk::ForCFT::IterationNumber
int IterationNumber
Definition: ForCFT.h:53
Trk::ForCFT::nmcnst
int nmcnst
Definition: ForCFT.h:26
Trk::ForCFT::Bp
double Bp
Definition: ForCFT.h:32
python.compressB64.c
def c
Definition: compressB64.py:93
Trk::ForCFT::robres
double robres[vkalNTrkM]
Definition: ForCFT.h:51
Trk::ForCFT::useMassCnst
int useMassCnst
Definition: ForCFT.h:15
Trk::ForCFT::usePointingCnst
int usePointingCnst
Definition: ForCFT.h:18