2524 Log(2,
"EdbDataProc::MakeVertexTree",
"write vertices into %s ... ",
file);
2525 TFile *fil = TFile::Open(
file,
"RECREATE");
2526 TTree *vtx=
new TTree(
"vtx",
"Reconstructed vertices in emulion");
2531 TClonesArray *
tracks =
new TClonesArray(
"EdbSegP");
2532 TClonesArray *segments =
new TClonesArray(
"EdbSegP");
2533 TClonesArray *segmentsf =
new TClonesArray(
"EdbSegP");
2539 Float_t meanvx, meanvy, meanvz;
2541 Float_t maxaperture;
2542 Float_t probability;
2545 const Int_t maxdim = 1000;
2547 Int_t TrackID[maxdim];
2548 Int_t nholes[maxdim];
2549 Int_t maxgap[maxdim];
2554 Float_t impactparameter[maxdim];
2555 Int_t incoming[maxdim];
2557 Int_t MCEventID[maxdim];
2558 Int_t MCTrackID[maxdim];
2559 Int_t MCTrackPdgCode[maxdim];
2560 Int_t MCMotherID[maxdim];
2563 vtx->Branch(
"vID",&vID,
"vID/I");
2564 vtx->Branch(
"flag",&flag,
"flag/I");
2565 vtx->Branch(
"vx",&vx,
"vx/F");
2566 vtx->Branch(
"vy",&vy,
"vy/F");
2567 vtx->Branch(
"vz",&vz,
"vz/F");
2568 vtx->Branch(
"vCOV",&vCOV);
2569 vtx->Branch(
"meanvx",&meanvx,
"meanvx/F");
2570 vtx->Branch(
"meanvy",&meanvy,
"meanvy/F");
2571 vtx->Branch(
"meanvz",&meanvz,
"meanvz/F");
2572 vtx->Branch(
"maxaperture",&maxaperture,
"maxaperture/F");
2574 vtx->Branch(
"probability",&probability,
"probability/F");
2575 vtx->Branch(
"n",&n,
"n/I");
2576 vtx->Branch(
"t.",&
tracks);
2578 vtx->Branch(
"s", &segments);
2579 vtx->Branch(
"sf",&segmentsf);
2581 vtx->Branch(
"TrackID",&TrackID,
"TrackID[n]/I");
2582 vtx->Branch(
"nseg",&nseg,
"nseg[n]/I");
2583 vtx->Branch(
"npl",&npl,
"npl[n]/I");
2584 vtx->Branch(
"nholes",&nholes,
"nholes[n]/I");
2585 vtx->Branch(
"maxgap",&maxgap,
"maxgap[n]/I");
2586 vtx->Branch(
"incoming",&incoming,
"incoming[n]/I");
2587 vtx->Branch(
"impactparameter",&impactparameter,
"impactparameter[n]/F");
2589 vtx->Branch(
"MCEventID", &MCEventID,
"MCEventID[n]/I");
2590 vtx->Branch(
"MCTrackID",&MCTrackID,
"MCTrackID[n]/I");
2591 vtx->Branch(
"MCTrackPdgCode",&MCTrackPdgCode,
"MCTrackPdgCode[n]/I");
2592 vtx->Branch(
"MCMotherID",&MCMotherID,
"MCMotherID[n]/I");
2594 int nvtx = vtxarr.GetEntriesFast();
2596 for(
int ivtx=0; ivtx<nvtx; ivtx++) {
2599 segments->Clear(
"C");
2600 segmentsf->Clear(
"C");
2603 if(vertex->
Flag()<0)
continue;
2612 for (
int irow = 0; irow < 3; irow++){
2613 for (
int icolumn = 0; icolumn < 3; icolumn++){
2614 vCOV(irow,icolumn) = vertex->
V()->VCOV()(irow,icolumn);
2620 probability = vertex->
V()->
prob();
2621 flag = vertex->
Flag();
2624 for (
int itrk = 0; itrk < n; itrk++){
2631 TrackID[itrk] =
track->Track();
2632 nseg[itrk] =
track->N();
2633 npl[itrk] =
track->Npl();
2635 incoming[itrk] = zpos;
2636 nholes[itrk] =
track->N0();
2637 maxgap[itrk] =
track->CheckMaxGap();
2638 impactparameter[itrk] = vertex->
GetVTa(itrk)->
Imp();
2640 MCEventID[itrk] =
track->MCEvt();
2641 MCTrackID[itrk] =
track->MCTrack();
2642 if(MCEventID[itrk]>-1){
2643 MCTrackPdgCode[itrk] =
track->GetSegment(0)->Vid(0);
2644 MCMotherID[itrk] =
track->Aid(0);
2647 MCTrackPdgCode[itrk] = -999;
2648 MCMotherID[itrk] = -999;
2653 for(
int is=0; is<nseg[itrk]; is++) {
2654 s =
track->GetSegment(is);
2655 if(
s)
new((*segments)[itotalseg])
EdbSegP( *
s );
2656 ((
EdbSegP*) segments->At(itotalseg))->ForceCOV(
s->
COV());
2657 sf =
track->GetSegmentF(is);
2658 if(sf)
new((*segmentsf)[itotalseg])
EdbSegP( *sf );
2659 ((
EdbSegP*) segmentsf->At(itotalseg))->ForceCOV(sf->COV());
2670 Log(2,
"EdbDataProc::MakeVertexTree",
"%d vertices are written",nvtx);
TMatrixD & COV() const
Definition: EdbSegP.h:120
Float_t Imp() const
Definition: EdbVertex.h:48
Int_t Zpos() const
Definition: EdbVertex.h:46
Float_t VX() const
Definition: EdbVertex.h:133
EdbTrackP * GetTrack(int i)
Definition: EdbVertex.h:141
Float_t X() const
Definition: EdbVertex.h:130
Int_t N() const
Definition: EdbVertex.h:121
VERTEX::Vertex * V() const
Definition: EdbVertex.h:154
Float_t VY() const
Definition: EdbVertex.h:134
Float_t VZ() const
Definition: EdbVertex.h:135
Float_t Z() const
Definition: EdbVertex.h:132
EdbVTA * GetVTa(int i)
Definition: EdbVertex.h:139
Int_t Flag() const
Definition: EdbVertex.h:124
Float_t MaxAperture()
Definition: EdbVertex.cxx:252
Float_t Y() const
Definition: EdbVertex.h:131
float prob() const
upper tail $\chi^2$ probability
Definition: VtVertex.C:237
#define NULL
Definition: nidaqmx.h:84