Changes in examples/ExamplePVtxFit.C [0d65492:127644a] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
examples/ExamplePVtxFit.C
r0d65492 r127644a 1 1 /* 2 2 Example of using vertex fitter class to fit primary vertex 3 assumed to be generated in (0,0,0). 4 To run compiled version: 5 root 6 root> .L examples/LoadPvtxFit.C+ 7 root> LoadPVtxFit() 8 root> ExamplePVtxFit("infile.root", Nevents) 3 assumed to be generated in (0,0,0) 4 */ 9 5 10 March 4, 2021 11 F. Bedeschi, INFN-Pisa, Italy 12 */ 6 #ifdef __CLING__ 7 R__LOAD_LIBRARY(libDelphes) 13 8 14 9 #include "classes/DelphesClasses.h" … … 18 13 #include "external/TrackCovariance/VertexFit.h" 19 14 20 #include <TClonesArray.h> 21 #include <TChain.h> 22 #include <TVectorD.h> 23 #include <TMatrixDSym.h> 24 #include <TH1.h> 25 #include <TCanvas.h> 26 #include <TStyle.h> 15 #endif 16 27 17 28 18 //------------------------------------------------------------------------------ … … 56 46 treeReader->ReadEntry(entry); 57 47 Int_t Ntr = 0; // # of tracks from primary vertex 58 Int_t NtrG = branchTrack->GetEntries(); // Total # of tracks48 Int_t NtrG = branchTrack->GetEntries(); 59 49 TVectorD** pr = new TVectorD * [NtrG]; 60 50 TMatrixDSym** cv = new TMatrixDSym * [NtrG]; … … 68 58 Track* trk = (Track*)branchTrack->At(it); 69 59 // 70 // Get associated generated particle 60 // Get associated generated particle 71 61 GenParticle* gp = (GenParticle*)trk->Particle.GetObject(); 72 62 // 73 // Position of origin (mm)74 Double_t x = gp->X;75 Double_t y = gp->Y;76 Double_t z = gp->Z;63 // Position of origin in meters 64 Double_t x = 1.0e-3 * gp->X; 65 Double_t y = 1.0e-3 * gp->Y; 66 Double_t z = 1.0e-3 * gp->Z; 77 67 // 78 // Select group oftracks originating from the primary vertex68 // group tracks originating from the primary vertex 79 69 if (x == 0.0 && y == 0.0) 80 70 { … … 88 78 Double_t oPar[5] = { obsD0, obsPhi, obsC, obsZ0, obsCtg }; 89 79 TVectorD obsPar(5, oPar); // Fill observed parameters 80 TVector3 xv(x, y, z); 90 81 // 91 82 pr[Ntr] = new TVectorD(obsPar); … … 94 85 } 95 86 } // End loop on tracks 87 //std::cout << "Total of " << Ntr << " primary tracks out of " << NtrG << " tracks" << std::endl; 96 88 } 97 89 // … … 115 107 } 116 108 109 //std::cout << "Vertex chi2/Ndof = " << Chi2 / Ndof << std::endl; 117 110 // 118 111 // Cleanup … … 125 118 // Show resulting histograms 126 119 // 127 TCanvas* Cnv = new TCanvas("Cnv", "Delphes primary vertex fit pulls", 50, 50, 900, 500);120 TCanvas* Cnv = new TCanvas("Cnv", "Delphes generated track plots", 50, 50, 900, 500); 128 121 Cnv->Divide(2, 2); 129 Cnv->cd(1); gPad->SetLogy(1); gStyle->SetOptFit(1111); 122 Cnv->cd(1); gPad->SetLogy(1); gStyle->SetOptFit(1111); 130 123 hXpull->Fit("gaus"); hXpull->Draw(); 131 Cnv->cd(2); gPad->SetLogy(1); gStyle->SetOptFit(1111); 124 Cnv->cd(2); gPad->SetLogy(1); gStyle->SetOptFit(1111); 132 125 hYpull->Fit("gaus"); hYpull->Draw(); 133 126 Cnv->cd(3); gPad->SetLogy(1); gStyle->SetOptFit(1111);
Note:
See TracChangeset
for help on using the changeset viewer.