Go to the documentation of this file.00001 #ifndef SimpleVertexTree_H
00002 #define SimpleVertexTree_H
00003
00004 #include <string>
00005
00006 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
00007 #include "RecoVertex/KalmanVertexFit/interface/VertexFitterResult.h"
00008 #include "SimDataFormats/TrackingAnalysis/interface/TrackingVertex.h"
00009 #include "SimTracker/TrackAssociation/interface/TrackAssociatorByChi2.h"
00010
00011 #include "TString.h"
00012
00038 class TFile;
00039 class TTree;
00040
00041 class SimpleVertexTree {
00042 public:
00043
00049 SimpleVertexTree(const char * fitterName = "VertexFitter",
00050 TrackAssociatorByChi2 * associator = 0);
00051 virtual ~SimpleVertexTree();
00052
00059 void fill(const TransientVertex & recv, const TrackingVertex *simv = 0,
00060 reco::RecoToSimCollection *recSimColl = 0,
00061 const float &time = 0.);
00062
00063 void fill(const TransientVertex & recv, const TrackingVertex *simv = 0,
00064 const float &time = 0.);
00065
00071 void fill(const TransientVertex & recv, const float &time = 0.);
00072
00077 void fill(const TrackingVertex *simv);
00078
00079
00080
00081
00082
00083
00084
00088 void fill();
00089
00090 private:
00091
00092 void defineTrackBranch(const TString& prefix, const TString& type,
00093 const float* (VertexFitterResult::*pfunc)(const int) const,
00094 const TString& index);
00095
00096 float simPos[3];
00097 float recPos[3];
00098 float recErr[3];
00099 float chiTot, ndf, chiProb;
00100 int numberOfVertices;
00101 TTree* vertexTree;
00102 VertexFitterResult* result;
00103 TString theFitterName;
00104
00105 bool trackTest;
00106 int maxTrack;
00107 TString* parameterNames[5];
00108 TrackAssociatorByChi2 * associatorForParamAtPca;
00109 };
00110 #endif
00111