348 int ntr =
tracks.GetEntries();
349 Log(3,
"vtxComb",
"ntr=%d",ntr);
350 TObjArray vertices1, vertices2;
353 for(
int nitems=ntr; nitems >= ntr/2; nitems-- )
356 TObjArray selected, other;
357 while( comber.NextCombination(selected,other) ) {
368 for(
int i=0; i<ic; i++) {
371 float prob = v1->
V()->
prob();
372 if( v2 ) prob *= v2->
V()->
prob();
375 Sort(ic,probarr.GetArray(),ind.GetArray(),1);
378 for(
int i=0; i<ic-1; i++)
384 if( Abs( probarr[i1]-probarr[i2] ) < 0.00000001 ) ind[i+1]=-1;
388 printf(
"\n # prob1 X1 Y1 Z1 prob2 X2 Y2 Z2 set1 set2\n");
389 printf(
"-----------------------------------------------------------------------------------------------------------------------------------------------\n");
391 float prob_lim = env.GetValue(
"emvtx.fbt.ProbLim", 0.001 );
392 for(
int i=0; i<ic; i++)
394 if(ind[i]<0)
continue;
395 if(prob_pred>prob_lim && probarr[ind[i]] < prob_lim)
396 printf(
" ----- below the probability product is less then %f ------\n",prob_lim );
397 prob_pred=probarr[ind[i]];
403 if( vv1->
VZ() < vv2->
VZ() ) {v1 = vv1; v2 = vv2; }
404 else {v2 = vv1; v1 = vv2; }
407 printf(
" %9.7f %9.1f %9.1f %9.1f", v1->
V()->
prob(), v1->
VX(), v1->
VY(), v1->
VZ());
408 if(v2) printf(
" %9.7f %9.1f %9.1f %9.1f",v2->
V()->
prob(), v2->
VX(), v2->
VY(), v2->
VZ());
411 for(
int i=0; i<v1->
N(); i++) printf(
"%6d", v1->
GetTrack(i)->
ID() );
412 for(
int i=0; i<ntr-v1->
N(); i++) printf(
" " );
414 if(v2)
for(
int i=0; i<v2->
N(); i++) printf(
"%6d", v2->
GetTrack(i)->
ID() );
418 printf(
"\n---------------- The most probable combinations --------------------\n" );
419 for(
int i=0; i<ic; i++)
421 if(ind[i]<0)
continue;
422 if(probarr[ind[i]] < prob_lim)
continue;
424 printf(
"\n----------- the probability product is %f :----------\n", probarr[ind[i]]);
429 int naux = aux_tr.GetEntries();
430 for(
int j=0; j<naux; j++)
439 printf(
"\n The measurements errors assigned to tracks at last measured point:\n");
440 printf(
" sigmaX0 sigmaY0 sigmaTX0 sigmaTY0 Degrad\n");
441 printf(
"%8.3f %8.3f %8.4f %8.4f %8.2f\n",
443 printf(
"The errors extrapolated to the vertex point taking into account CMS with Rad length of the media X0 = %10.2f [microns]\n",cond->
RadX0());
Definition: EdbCombGen.h:15
EdbScanCond const * GetScanCond()
Definition: EdbPVRec.h:172
float SigmaTX(float ax) const
Definition: EdbScanCond.h:106
float Degrad() const
Definition: EdbScanCond.h:100
float SigmaTY(float ay) const
Definition: EdbScanCond.h:107
float SigmaX(float ax) const
Definition: EdbScanCond.h:102
float SigmaY(float ay) const
Definition: EdbScanCond.h:103
float RadX0() const
Definition: EdbScanCond.h:58
Int_t ID() const
Definition: EdbSegP.h:144
EdbPVRec * ePVR
Definition: EdbVertex.h:206
void Print()
Definition: EdbVertex.cxx:328
Float_t VX() const
Definition: EdbVertex.h:133
float CheckImp(const EdbTrackP *tr)
Definition: EdbVertex.cxx:463
VERTEX::Vertex * V() const
Definition: EdbVertex.h:154
Float_t VY() const
Definition: EdbVertex.h:134
float CheckImpGeom(const EdbTrackP *tr)
Definition: EdbVertex.cxx:452
Float_t VZ() const
Definition: EdbVertex.h:135
float prob() const
upper tail $\chi^2$ probability
Definition: VtVertex.C:237