Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
RecoMuon
Navigation
src
MuonNavigableLayer.cc
Go to the documentation of this file.
1
17
#include "
RecoMuon/Navigation/interface/MuonNavigableLayer.h
"
18
19
/* Collaborating Class Header */
20
#include "
TrackingTools/DetLayers/interface/DetLayer.h
"
21
#include "
TrackingTools/DetLayers/interface/BarrelDetLayer.h
"
22
#include "
RecoMuon/Navigation/interface/MuonDetLayerMap.h
"
23
#include "
RecoMuon/Navigation/interface/MuonEtaRange.h
"
24
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
25
/* C++ Headers */
26
#include <algorithm>
27
28
using namespace
std
;
29
30
extern
float
calculateEta
(
float
r
,
float
z) {
31
if
(z > 0)
32
return
-
log
((
tan
(atan(
r
/ z) / 2.)));
33
return
log
(-(
tan
(atan(
r
/ z) / 2.)));
34
}
35
36
MuonEtaRange
MuonNavigableLayer::trackingRange
(
const
FreeTrajectoryState
& fts)
const
{
37
float
z = fts.
position
().
z
();
38
float
r
= fts.
position
().
perp
();
39
float
eta
;
40
if
(z > 0)
41
eta
= -
log
((
tan
(atan(
r
/ z) / 2.)));
42
else
43
eta
=
log
(-(
tan
(atan(
r
/ z) / 2.)));
44
45
double
theta
= atan(
r
/ z);
46
47
double
spread = 5.0 *
sqrt
(fts.
curvilinearError
().
matrix
()(2, 2)) / fabs(
sin
(
theta
));
//5*sigma(eta)
48
49
//C.L.: this spread could be too large to use.
50
// convert it to a smaller one by assuming a virtual radius
51
// that transforms the error on angle to error on z axis.
52
// not accurate, but works!
53
54
double
eta_max
= 0;
55
56
if
(z > 0)
57
eta_max
=
calculateEta
(
r
, z + spread);
58
else
59
eta_max
=
calculateEta
(
r
, z - spread);
60
61
spread =
std::min
(0.07, fabs(
eta_max
-
eta
));
62
63
MuonEtaRange
range
(
eta
+ spread,
eta
- spread);
64
65
spread = 0.07;
66
// special treatment for special geometry in overlap region
67
68
if
(
eta
> 1.0 &&
eta
< 1.1)
69
range
=
MuonEtaRange
(
eta
+ 3.0 * spread,
eta
- spread);
70
if
(eta < -1.0 && eta > -1.1)
71
range
=
MuonEtaRange
(
eta
+ spread,
eta
- 3.0 * spread);
72
73
return
range
;
74
}
75
76
bool
MuonNavigableLayer::isInsideOut
(
const
FreeTrajectoryState
& fts)
const
{
77
return
(fts.
position
().
basicVector
().
dot
(fts.
momentum
().
basicVector
()) > 0);
78
}
FreeTrajectoryState::momentum
GlobalVector momentum() const
Definition:
FreeTrajectoryState.h:68
FastTimerService_cff.range
range
Definition:
FastTimerService_cff.py:34
MessageLogger.h
min
T min(T a, T b)
Definition:
MathUtil.h:58
MuonNavigableLayer.h
FreeTrajectoryState::position
GlobalPoint position() const
Definition:
FreeTrajectoryState.h:67
MuonEtaRange.h
funct::sin
Sin< T >::type sin(const T &t)
Definition:
Sin.h:22
PV3DBase::z
T z() const
Definition:
PV3DBase.h:61
MuonNavigableLayer::trackingRange
MuonEtaRange trackingRange(const FreeTrajectoryState &fts) const
Definition:
MuonNavigableLayer.cc:36
MuonEtaRange
Definition:
MuonEtaRange.h:15
MuonDetLayerMap.h
PVValHelper::eta
Definition:
PVValidationHelpers.h:70
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition:
FreeTrajectoryState.h:89
mathSSE::sqrt
T sqrt(T t)
Definition:
SSEVec.h:19
Basic3DVector::dot
T dot(const Basic3DVector &rh) const
Scalar product, or "dot" product, with a vector of same type.
Definition:
extBasic3DVector.h:189
theta
Geom::Theta< T > theta() const
Definition:
Basic3DVectorLD.h:150
egammaIdentification.eta_max
eta_max
Definition:
egammaIdentification.py:19
MuonNavigableLayer::isInsideOut
bool isInsideOut(const FreeTrajectoryState &fts) const
Definition:
MuonNavigableLayer.cc:76
funct::tan
Tan< T >::type tan(const T &t)
Definition:
Tan.h:22
BarrelDetLayer.h
PV3DBase::basicVector
const BasicVectorType & basicVector() const
Definition:
PV3DBase.h:53
alignCSCRings.r
r
Definition:
alignCSCRings.py:93
std
Definition:
JetResolutionObject.h:76
FreeTrajectoryState
Definition:
FreeTrajectoryState.h:27
calculateEta
float calculateEta(float r, float z)
Definition:
MuonNavigableLayer.cc:30
DetLayer.h
dqm-mbProfile.log
log
Definition:
dqm-mbProfile.py:17
PV3DBase::perp
T perp() const
Definition:
PV3DBase.h:69
CurvilinearTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition:
CurvilinearTrajectoryError.h:61
Generated for CMSSW Reference Manual by
1.8.16