ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/VertexTools.h
Revision: 1.10
Committed: Fri Oct 26 19:23:05 2012 UTC (12 years, 6 months ago) by fabstoec
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, HEAD
Changes since 1.9: +7 -4 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id $
3 //
4 // VertexTools
5 //
6 // Helper Class for photon Identification decisions.
7 //
8 // Authors: J.Bendavid
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITPHYSICS_UTILS_VERTEXTOOLS_H
12 #define MITPHYSICS_UTILS_VERTEXTOOLS_H
13
14 #include "MitAna/DataTree/interface/Photon.h"
15 #include "MitAna/DataTree/interface/Electron.h"
16 #include "MitAna/DataTree/interface/ElectronCol.h"
17 #include "MitAna/DataTree/interface/BaseVertex.h"
18 #include "MitAna/DataTree/interface/DecayParticleCol.h"
19 #include "MitAna/DataTree/interface/VertexCol.h"
20 #include "MitAna/DataTree/interface/BeamSpotCol.h"
21 #include "MitAna/DataTree/interface/TriggerObjectCol.h"
22 #include "MitCommon/MathTools/interface/MathUtils.h"
23 #include "MitPhysics/Utils/interface/VertexMVA.h"
24 #include "MitAna/DataTree/interface/PFCandidateCol.h"
25
26 #include "TMVA/Reader.h"
27
28 namespace TMVA {//MVA
29 class Reader;
30 }
31
32 namespace mithep {
33 typedef std::vector<double> VertexZarray;
34 typedef std::vector<const Track*> TrackArray;
35
36 class VertexTools {
37 public:
38
39 VertexTools();
40
41 static double NewMass(const Photon* ph1, const Photon* ph2, const BaseVertex* vert);
42
43 static VertexZarray ExtractZarray(const VertexCol* vcol, float zmin=-30, float zmax = 30,
44 const BaseVertex *fBeamSpot = NULL);
45 static VertexZarray ExtractZarray(float zmin=-30, float zmax=30, float step=0.05);
46
47 static const Vertex* BestVtx(const PFCandidateCol *fPFJets, const VertexCol *c,
48 const BaseVertex *fBeamSpot, FourVector diboso);
49
50
51 static double BestVtx(const PFCandidateCol *fPFJets, VertexZarray zcol,
52 const BaseVertex *fBeamSpot, FourVector diboso);
53
54 static double Prob(const PFCandidateCol *fPFJets, double zpos,
55 const BaseVertex *fBeamSpot, FourVector diboso);
56
57 static double VertexWidth(const Vertex*, const BaseVertex* );
58
59 static void BanThisTrack(const Track*);
60 static void Reset();
61
62 static VertexTools* instance(const char* str){
63 if(meobject == NULL){
64 meobject = new VertexTools();
65 meobject->InitM(str);
66 }
67 return meobject;
68 }
69
70 // ----------------------------------------------------------
71 // Methods (added by Fabian) on the EPS BaseLine Analysis
72 const Vertex* findVtxBasicRanking(const Photon* ph1,
73 const Photon* ph2,
74 const BaseVertex* bsp,
75 const VertexCol* vtcs,
76 const DecayParticleCol* conv, Bool_t useMva, Double_t &vtxProb,
77 std::vector<int> * debugInds = NULL ,
78 std::vector<double>* debugVals = NULL ,
79 std::vector<int> * debugConv = NULL );
80 // ----------------------------------------------------------
81
82
83 static std::pair<double,double> VtxZFromConversion(const Photon *p, const DecayParticle *c, const BaseVertex *bsp);
84
85 void InitM(const char* str);
86 void InitP(int version = 1);
87
88 Bool_t IsInitMvaM() const { return fIsInitMvaM; }
89 Bool_t IsInitMvaP() const { return fIsInitMvaP; }
90
91 static Double_t DeltaMassVtx(Double_t xp1, Double_t yp1, Double_t zp1,
92 Double_t xp2, Double_t yp2, Double_t zp2,
93 Double_t xv, Double_t yv, Double_t zv,
94 Double_t dz);
95
96 private:
97
98 double VtxMvaP(float ptbal, float ptasym, float logsumpt2, float limPullToConv, float nConv) const;
99
100 static VertexTools *meobject;
101
102
103 TString relname;
104
105 TrackArray excluded;
106
107 Bool_t fIsInitMvaM;
108 Bool_t fIsInitMvaP;
109
110 Float_t tmvar1, tmvar2, tmvar3, tmvar4, tmvar5, tmvar6;
111 TMVA::Reader* reader;
112
113
114 TMVA::Reader *readervtx;
115 TMVA::Reader *readerevt;
116 mutable Float_t fMvaPVars[5];
117 mutable Float_t fMvaPEvtVars[8];
118
119 TString fVtxProbMvaName;
120
121 ClassDef(VertexTools, 0) // Muon tools
122 };
123 }
124
125 #endif