src
RecoVertex
AdaptiveVertexFinder
interface
SVTimeHelpers.h
Go to the documentation of this file.
1
#ifndef __RecoVertex_AdaptiveVertexFinder_SVTimeHelpers_h__
2
#define __RecoVertex_AdaptiveVertexFinder_SVTimeHelpers_h__
3
4
#include "
RecoVertex/VertexPrimitives/interface/TransientVertex.h
"
5
#include "
TrackingTools/TransientTrack/interface/TransientTrack.h
"
6
7
#include "
FWCore/Utilities/interface/isFinite.h
"
8
9
namespace
svhelper
{
10
11
inline
void
updateVertexTime
(
TransientVertex
&
vtx
) {
12
const
auto
&
trks
=
vtx
.originalTracks();
13
double
meantime = 0., expv_x2 = 0., normw = 0., timecov = 0.;
14
for
(
const
auto
&
trk
:
trks
) {
15
if
(
edm::isFinite
(
trk
.timeExt())) {
16
const
double
time
=
trk
.timeExt();
17
const
double
inverr = 1.0 /
trk
.dtErrorExt();
18
const
double
w
= inverr * inverr;
19
meantime +=
time
*
w
;
20
expv_x2 +=
time
*
time
*
w
;
21
normw +=
w
;
22
}
23
}
24
if
(normw > 0.) {
25
meantime = meantime / normw;
26
expv_x2 = expv_x2 / normw;
27
timecov = expv_x2 - meantime * meantime;
28
auto
err
=
vtx
.positionError().matrix4D();
29
err
(3, 3) = timecov / (double)
trks
.size();
30
vtx
=
TransientVertex
(
vtx
.position(), meantime,
err
,
vtx
.originalTracks(),
vtx
.totalChiSquared());
31
}
32
}
33
}
// namespace svhelper
34
35
#endif
isFinite.h
hltEgammaHLTExtra_cfi.trks
trks
Definition:
hltEgammaHLTExtra_cfi.py:43
w
T w() const
Definition:
extBasic3DVector.h:229
TransientTrack.h
L1BJetProducer_cff.vtx
vtx
Definition:
L1BJetProducer_cff.py:10
trk
Trktree trk
Definition:
Trktree.cc:2
svhelper
Definition:
SVTimeHelpers.h:9
edm::isFinite
constexpr bool isFinite(T x)
hcalRecHitTable_cff.time
time
Definition:
hcalRecHitTable_cff.py:14
submitPVResolutionJobs.err
err
Definition:
submitPVResolutionJobs.py:84
TransientVertex.h
TransientVertex
Definition:
TransientVertex.h:18
svhelper::updateVertexTime
void updateVertexTime(TransientVertex &vtx)
Definition:
SVTimeHelpers.h:11
Generated for CMSSW Reference Manual by
1.8.14