438 TClonesArray *segs = 0;
439 for(
int i=0; i<
npat; i++ )
467 if (
hp[25])
hp[25]->Fill(0.);
468 if (
hp[26])
hp[26]->Fill(0.);
497 if (
hp[16])
hp[16]->Fill(0.);
498 if (
hp[19])
hp[19]->Fill(0.);
499 if (
hp[10])
hp[10]->Fill(0.);
500 if (
hp[9])
hp[9]->Fill(0.);
501 if (
hp[8])
hp[8]->Fill(0.);
502 if (
hp[23])
hp[23]->Fill(0.);
506 int nsegmatch = 0, itrg = 0;
510 for (
int itr=0; itr<ntr; itr++) {
515 itrg =
tr->GetSegmentsAid(nsegmatch);
519 if (itrg < 0 || itrg >= ntrg)
continue;
525 tr->SetErrorP(
p*
p*0.2*0.2);
528 p =
p*(1.+
dpp*gRandom->Gaus());
529 if (
p < 0.05)
p = 0.05;
530 else if (
p > 30.0)
p = 30.;
551 printf(
"%d tracks was found\n",ntr);
555 int negflag = 0, ntrgood_r = 0, numveg = 0;
556 int negflag1 = 0, ntrgood_r1 = 0;
557 int nreject_nseg = 0, nreject_prob = 0;
558 int nreject_nseg1 = 0, nreject_prob1 = 0;
559 double right_ratio = 0.;
563 for(
int itr=0; itr<ntr; itr++) {
570 itrg =
tr->GetSegmentsAid(nsegmatch);
574 if (itrg >= 0 && itrg < ntrg)
577 right_ratio = (double)nsegmatch/
tr->N();
580 numveg = trg->
Flag() - 1;
581 if (numveg >= 0 && numveg < 500)
610 if (numveg == 1) negflag1++;
613 if (
hp[11])
hp[11]->Fill(
tr->N());
618 if (numveg == 1) nreject_nseg1++;
622 dx = (
tr->GetSegmentFirst())->
X()-(
tr->GetSegmentFFirst())->
X();
624 if (trg != 0 && dx != 0.)
626 hp[17]->Fill(
tr->Prob());
632 if (numveg == 1) nreject_prob1++;
637 if (trg->
Flag() == 0)
647 else if (trg->
Flag() <= nvg)
654 if (numveg == 1) ntrgood_r1++;
656 hp[15]->Fill(right_ratio);
662 if (dx != 0. &&
tr->N() > 2)
hp[12]->
Fill(dx);
667 printf(
" %6d tracks found after propagation\n", ntr-negflag);
669 if (
hp[16])
hp[16]->Fill((
float)(ntrgood_r)/ntrg);
670 if (
hp[19])
hp[19]->Fill((
float)(ntr-negflag)/ntrg);
671 if (
hp[10])
hp[10]->Fill(ntr-negflag);
684 for (
int i=0; i<100; i++) nvagood[i] = 0;
685 for (
int i=0; i<100; i++) nvagoodm[i] = 0;
686 int nvgoodm = 0, nvgood = 0;
691 if (
hp[9])
hp[9]->Fill(0.);
692 if (
hp[23])
hp[23]->Fill(0.);
693 if (
hp[8])
hp[8]->Fill(0.);
704 for (
int i=0; i<nvtx; i++)
707 if (edbv && (edbv->Flag() != -10))
719 tr = edbv->GetTrack(0);
722 if(
tr) ivg0 =
tr->GetSegmentsAid(nsegmatch);
726 if (ivg0 >= 0 && ivg0 < ntrg)
738 for (
int j=1; j<edbv->N() && ivg0>0; j++)
740 tr = edbv->GetTrack(j);
742 if (
tr) ivg =
tr->GetSegmentsAid(nsegmatch);
746 if (ivg >= 0 && ivg < ntrg)
753 if (ivg != ivg0)
break;
755 if (ivg != ivg0)
continue;
756 if (ivg <= 0)
continue;
757 if (ivg > nvg)
continue;
776 if (
hp[9])
hp[9]->Fill(nvgood);
787 int nlv =
gAli->LinkedVertexes();
788 printf(
"%d linked vertexes found\n", nlv);
791 for(
int i=0; i<nv; i++)
796 vc = v->GetConnectedVertex(0);
797 if (vc->ID() > v->ID())
807 int nn =
gAli->VertexNeighboor(1000.,2);
808 printf(
"%d neighbooring tracks found\n", nn);
int MaxTrack
Definition: RecDispNU.C:90
int maxgaps[6]
Definition: RecDispNU.C:36
bool use_mc_mass
Definition: RecDispNU.C:5
bool use_mc_momentum
Definition: RecDispNU.C:4
int rec_primary_vertex_ntracks_min
Definition: RecDispNU.C:9
bool usemom
Definition: RecDispNU.C:64
EdbPatternsVolume * vol
Definition: RecDispNU.C:116
float ProbMinV
Definition: RecDispNU.C:59
float AngleAcceptance
Definition: RecDispNU.C:57
void FillHistsV(Vertex &v)
Definition: RecDispNU.C:1102
float ProbMinT
Definition: RecDispNU.C:62
void GCodesInit()
Definition: RecDispNU.C:1245
int nsegMin
Definition: RecDispNU.C:63
float dpp
Definition: RecDispNU.C:30
float ProbMinP
Definition: RecDispNU.C:61
void FillPVGen()
Definition: RecDispNU.C:332
EdbScanCond * scan
Definition: RecDispNU.C:117
float ProbMinVN
Definition: RecDispNU.C:60
float RightRatioMin
Definition: RecDispNU.C:33
void FillHistsGen()
Definition: RecDispNU.C:1117
cout<< tr-> GetEntries()<< endl
Int_t npat
Definition: Xi2HatStartScript.C:33
Definition: EdbPVGen.h:18
void SetVolume(EdbPatternsVolume *pv)
Definition: EdbPVGen.h:34
void SetScanCond(EdbScanCond *scan)
Definition: EdbPVGen.h:35
int MakeTracks(int nsegments=2, int flag=0)
Definition: EdbPVRec.cxx:1985
EdbScanCond const * GetScanCond()
Definition: EdbPVRec.h:172
void FillTracksCell()
Definition: EdbPVRec.cxx:1315
void ResetCouples()
Definition: EdbPVRec.cxx:949
void FillCell(float stepx, float stepy, float steptx, float stepty)
Definition: EdbPVRec.cxx:1088
int Link()
Definition: EdbPVRec.cxx:1183
int PropagateTracks(int nplmax, int nplmin, float probMin=0.05, int ngapMax=3, int design=0)
Definition: EdbPVRec.cxx:2483
void FitTracks(float p=10., float mass=0.139, TObjArray *gener=0, int design=0)
Definition: EdbPVRec.cxx:1889
Definition: EdbPattern.h:348
Int_t Npatterns() const
Definition: EdbPattern.h:380
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1887
Float_t P() const
Definition: EdbSegP.h:149
Int_t Flag() const
Definition: EdbSegP.h:146
Float_t M() const
Definition: EdbPattern.h:160
const MATRIX::CMatrix & V() const
covariance matrix
Definition: VtTrack.C:205
Definition: VtVertex.hh:88
bool valid() const
is vertex valid?
p
Definition: testBGReduction_AllMethods.C:8