Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
athena
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
susy-hackers
athena
Commits
52a3d26e
Commit
52a3d26e
authored
7 years ago
by
Hideyuki Oide
Browse files
Options
Downloads
Patches
Plain Diff
VrtSecInclusive: adding more wrtSV parameters to leptons for completeness
Former-commit-id: 0b0b96f086c6f6d850615555d524f65c3359b73e
parent
3a597186
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Reconstruction/VKalVrt/VrtSecInclusive/VrtSecInclusive/details/Utilities.h
+43
-23
43 additions, 23 deletions
...alVrt/VrtSecInclusive/VrtSecInclusive/details/Utilities.h
with
43 additions
and
23 deletions
Reconstruction/VKalVrt/VrtSecInclusive/VrtSecInclusive/details/Utilities.h
+
43
−
23
View file @
52a3d26e
...
...
@@ -111,18 +111,25 @@ namespace VKalVrtAthena {
const
LeptonContainer
*
leptonContainer
(
nullptr
);
ATH_CHECK
(
evtStore
()
->
retrieve
(
leptonContainer
,
containerName
)
);
static
SG
::
AuxElement
::
Decorator
<
std
::
vector
<
std
::
vector
<
float
>
>
>
decor_d0wrtSV
(
"d0_wrtSVs"
);
static
SG
::
AuxElement
::
Decorator
<
std
::
vector
<
std
::
vector
<
float
>
>
>
decor_z0wrtSV
(
"z0_wrtSVs"
);
using
IPDecoratorType
=
SG
::
AuxElement
::
Decorator
<
std
::
vector
<
std
::
vector
<
float
>
>
>
;
static
IPDecoratorType
decor_d0wrtSV
(
"d0_wrtSVs"
);
static
IPDecoratorType
decor_z0wrtSV
(
"z0_wrtSVs"
);
static
IPDecoratorType
decor_ptwrtSV
(
"pt_wrtSVs"
);
static
IPDecoratorType
decor_etawrtSV
(
"eta_wrtSVs"
);
static
IPDecoratorType
decor_phiwrtSV
(
"phi_wrtSVs"
);
static
IPDecoratorType
decor_d0errWrtSV
(
"d0err_wrtSVs"
);
static
IPDecoratorType
decor_z0errWrtSV
(
"z0err_wrtSVs"
);
// Grouping decorators
std
::
vector
<
IPDecoratorType
>
decor_ipWrtSVs
{
decor_d0wrtSV
,
decor_z0wrtSV
,
decor_ptwrtSV
,
decor_etawrtSV
,
decor_phiwrtSV
,
decor_d0errWrtSV
,
decor_z0errWrtSV
};
enum
{
k_ip_d0
,
k_ip_z0
,
k_ip_pt
,
k_ip_eta
,
k_ip_phi
,
k_ip_d0err
,
k_ip_z0err
};
static
SG
::
AuxElement
::
Decorator
<
std
::
vector
<
ElementLink
<
xAOD
::
VertexContainer
>
>
>
decor_svLink
(
"svLinks"
);
std
::
vector
<
std
::
vector
<
float
>
>
d0wrtSVs
;
std
::
vector
<
std
::
vector
<
float
>
>
z0wrtSVs
;
// Loop over muons
// Loop over leptons
for
(
const
auto
&
lepton
:
*
leptonContainer
)
{
d0wrtSVs
.
clear
();
z0wrtSVs
.
clear
();
std
::
vector
<
std
::
vector
<
std
::
vector
<
float
>
>
>
ip_wrtSVs
(
decor_ipWrtSVs
.
size
()
);
// triple nest of { ip parameters, tracks, DVs }
bool
linkFlag
{
false
};
...
...
@@ -132,8 +139,7 @@ namespace VKalVrtAthena {
// Loop over lepton types
for
(
auto
&
trackType
:
trackTypes
)
{
std
::
vector
<
float
>
d0wrtSV
;
std
::
vector
<
float
>
z0wrtSV
;
std
::
vector
<
std
::
vector
<
float
>
>
ip_wrtSV
(
decor_ipWrtSVs
.
size
()
);
// nest of { tracks, DVs }
const
auto
*
trk
=
getLeptonTrackParticle
<
LeptonFlavor
>
(
lepton
,
trackType
);
...
...
@@ -142,18 +148,32 @@ namespace VKalVrtAthena {
std
::
map
<
const
xAOD
::
Vertex
*
,
std
::
vector
<
double
>
>
distanceMap
;
std
::
vector
<
ElementLink
<
xAOD
::
VertexContainer
>
>
links
;
// Loop over vertices
for
(
const
auto
&
vtx
:
*
secondaryVertexContainer
)
{
std
::
vector
<
double
>
impactParameters
;
std
::
vector
<
double
>
impactParErrors
;
m_fitSvc
->
VKalGetImpact
(
trk
,
vtx
->
position
(),
static_cast
<
int
>
(
lepton
->
charge
()
),
impactParameters
,
impactParErrors
);
m_fitSvc
->
VKalGetImpact
(
trk
,
vtx
->
position
(),
static_cast
<
int
>
(
lepton
->
charge
()
),
impactParameters
,
impactParErrors
);
enum
{
k_d0
,
k_z0
,
k_theta
,
k_phi
,
k_qOverP
};
enum
{
k_d0
,
k_z0
,
k_theta
,
k_phi
,
k_qOverP
};
// for the impact parameter
enum
{
k_d0d0
,
k_d0z0
,
k_z0z0
};
// for the par errors
d0wrtSV
.
emplace_back
(
impactParameters
.
at
(
k_d0
)
);
z0wrtSV
.
emplace_back
(
impactParameters
.
at
(
k_z0
)
);
const
auto
&
theta
=
impactParameters
.
at
(
k_theta
);
const
auto
&
phi
=
impactParameters
.
at
(
k_phi
);
const
auto
p
=
fabs
(
1.0
/
impactParameters
.
at
(
k_qOverP
)
);
const
auto
pt
=
fabs
(
p
*
sin
(
theta
)
);
const
auto
eta
=
-
log
(
tan
(
theta
/
2.
)
);
// filling the parameters to the corresponding container
ip_wrtSV
.
at
(
k_ip_d0
)
.
emplace_back
(
impactParameters
.
at
(
k_d0
)
);
ip_wrtSV
.
at
(
k_ip_z0
)
.
emplace_back
(
impactParameters
.
at
(
k_d0
)
);
ip_wrtSV
.
at
(
k_ip_pt
)
.
emplace_back
(
pt
);
ip_wrtSV
.
at
(
k_ip_eta
)
.
emplace_back
(
eta
);
ip_wrtSV
.
at
(
k_ip_phi
)
.
emplace_back
(
phi
);
ip_wrtSV
.
at
(
k_ip_d0err
)
.
emplace_back
(
impactParErrors
.
at
(
k_d0d0
)
);
ip_wrtSV
.
at
(
k_ip_z0err
)
.
emplace_back
(
impactParErrors
.
at
(
k_z0z0
)
);
if
(
!
linkFlag
)
{
...
...
@@ -162,22 +182,22 @@ namespace VKalVrtAthena {
}
}
}
// end of vertex loop
// The linking to the vertices need to be done only once
if
(
!
linkFlag
)
{
decor_svLink
(
*
lepton
)
=
links
;
linkFlag
=
true
;
}
d0wrtSVs
.
emplace_back
(
d0wrtSV
);
z0wrtSVs
.
emplace_back
(
z0wrtSV
);
for
(
size_t
ipar
=
0
;
ipar
<
ip_wrtSVs
.
size
();
ipar
++
)
ip_wrtSVs
.
at
(
ipar
).
emplace_back
(
ip_wrtSV
.
at
(
ipar
)
);
}
}
// end of track type loop
decor
_d0wrtSV
(
*
lepton
)
=
d0wrtSVs
;
decor_z0wrtSV
(
*
lepton
)
=
z0
wrtSVs
;
//
decor
ation
for
(
size_t
ipar
=
0
;
ipar
<
decor_ipWrtSVs
.
size
();
ipar
++
)
decor_ipWrtSVs
.
at
(
ipar
)
(
*
lepton
)
=
ip_
wrtSVs
.
at
(
ipar
)
;
}
}
// end of lepton container loop
return
StatusCode
::
SUCCESS
;
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment