Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
atlas
athena
Commits
2b0a5fe8
Commit
2b0a5fe8
authored
Feb 03, 2021
by
Giorgia Proto
⛸
Committed by
Nils Erik Krumnack
Feb 03, 2021
Browse files
Addition of PLImprovedTight and PLImprovedVeryTight WPs
parent
961c4a0f
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
PhysicsAnalysis/TopPhys/xAOD/TopCPTools/Root/TopIsolationCPTools.cxx
View file @
2b0a5fe8
...
...
@@ -80,19 +80,21 @@ namespace top {
"FCTight_FixedRad"
,
"FixedCutPflowTight"
,
"FixedCutPflowLoose"
,
"PflowTight_FixedRad"
,
"PflowLoose_FixedRad"
,
"PflowTight_VarRad"
,
"PflowLoose_VarRad"
,
"HighPtTrackOnly"
,
"TightTrackOnly_VarRad"
,
"TightTrackOnly_FixedRad"
,
"PLVTight"
,
"PLVLoose"
,
"Tight_VarRad"
,
"Tight_FixedRad"
,
"Loose_VarRad"
,
"Loose_FixedRad"
,
"PflowTight_FixedRad"
,
"PflowLoose_FixedRad"
,
"PflowTight_VarRad"
,
"PflowLoose_VarRad"
,
"HighPtTrackOnly"
,
"TightTrackOnly_VarRad"
,
"TightTrackOnly_FixedRad"
,
"PLVTight"
,
"PLVLoose"
,
"Tight_VarRad"
,
"Tight_FixedRad"
,
"Loose_VarRad"
,
"Loose_FixedRad"
,
"PLImprovedTight"
,
"PLImprovedVeryTight"
,
}};
// Electron Isolation WPs
...
...
@@ -105,11 +107,11 @@ namespace top {
"Loose"
,
"Tight"
,
"TightTrackOnly"
,
"TightTrackOnly_FixedRad"
,
"TightTrackOnly_FixedRad"
,
"PflowTight"
,
"PflowLoose"
,
"PLVTight"
,
"PLVLoose"
,
"PLVTight"
,
"PLVLoose"
,
}};
// Photon Isolation WPs
...
...
@@ -129,34 +131,34 @@ namespace top {
for
(
const
std
::
string
&
isoWP
:
all_isolations
)
{
std
::
string
tool_name
;
if
(
isoWP
.
find
(
"PLV"
)
!=
std
::
string
::
npos
){
tool_name
=
"CP::IsolationTool_LowPtPLV"
;
if
(
!
asg
::
ToolStore
::
contains
<
CP
::
IIsolationLowPtPLVTool
>
(
tool_name
))
{
CP
::
IIsolationLowPtPLVTool
*
iso_tool
=
new
CP
::
IsolationLowPtPLVTool
(
tool_name
);
top
::
check
(
iso_tool
->
initialize
(),
"Failed to initialize "
+
tool_name
);
m_isolationToolsLowPtPLV
.
push_back
(
iso_tool
);
}
if
(
isoWP
.
find
(
"PLV"
)
!=
std
::
string
::
npos
)
{
tool_name
=
"CP::IsolationTool_LowPtPLV"
;
if
(
!
asg
::
ToolStore
::
contains
<
CP
::
IIsolationLowPtPLVTool
>
(
tool_name
))
{
CP
::
IIsolationLowPtPLVTool
*
iso_tool
=
new
CP
::
IsolationLowPtPLVTool
(
tool_name
);
top
::
check
(
iso_tool
->
initialize
(),
"Failed to initialize "
+
tool_name
);
m_isolationToolsLowPtPLV
.
push_back
(
iso_tool
);
}
}
tool_name
=
"CP::IsolationTool_"
+
isoWP
;
if
(
!
asg
::
ToolStore
::
contains
<
CP
::
IIsolationSelectionTool
>
(
tool_name
))
{
CP
::
IIsolationSelectionTool
*
iso_tool
=
new
CP
::
IsolationSelectionTool
(
tool_name
);
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"CalibFileName"
,
m_isolationCalibFile
),
"Failed to set CalibFileName for "
+
tool_name
);
if
(
electron_isolations
.
find
(
isoWP
)
!=
electron_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"ElectronWP"
,
isoWP
),
"Failed to set electron WP for "
+
tool_name
);
if
(
muon_isolations
.
find
(
isoWP
)
!=
muon_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"MuonWP"
,
isoWP
),
"Failed to set muon WP for "
+
tool_name
);
if
(
photon_isolations
.
find
(
isoWP
)
!=
photon_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"PhotonWP"
,
isoWP
),
"Failed to set photon WP for "
+
tool_name
);
top
::
check
(
iso_tool
->
initialize
(),
"Failed to initialize "
+
tool_name
);
m_isolationTools
.
push_back
(
iso_tool
);
CP
::
IIsolationSelectionTool
*
iso_tool
=
new
CP
::
IsolationSelectionTool
(
tool_name
);
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"CalibFileName"
,
m_isolationCalibFile
),
"Failed to set CalibFileName for "
+
tool_name
);
if
(
electron_isolations
.
find
(
isoWP
)
!=
electron_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"ElectronWP"
,
isoWP
),
"Failed to set electron WP for "
+
tool_name
);
if
(
muon_isolations
.
find
(
isoWP
)
!=
muon_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"MuonWP"
,
isoWP
),
"Failed to set muon WP for "
+
tool_name
);
if
(
photon_isolations
.
find
(
isoWP
)
!=
photon_isolations
.
end
())
top
::
check
(
asg
::
setProperty
(
iso_tool
,
"PhotonWP"
,
isoWP
),
"Failed to set photon WP for "
+
tool_name
);
top
::
check
(
iso_tool
->
initialize
(),
"Failed to initialize "
+
tool_name
);
m_isolationTools
.
push_back
(
iso_tool
);
}
}
return
StatusCode
::
SUCCESS
;
...
...
PhysicsAnalysis/TopPhys/xAOD/TopConfiguration/Root/ConfigurationSettings.cxx
View file @
2b0a5fe8
This diff is collapsed.
Click to expand it.
PhysicsAnalysis/TopPhys/xAOD/TopSystematicObjectMaker/Root/MuonObjectCollectionMaker.cxx
View file @
2b0a5fe8
...
...
@@ -51,6 +51,9 @@ namespace top {
m_isolationTool_LowPtPLV
(
"CP::IsolationTool_LowPtPLV"
),
m_IFFTruthTool
(
"TruthClassificationTool"
),
m_isolationTool_PLImprovedTight
(
"CP::IsolationTool_PLImprovedTight"
),
m_isolationTool_PLImprovedVeryTight
(
"CP::IsolationTool_PLImprovedVeryTight"
),
m_muonSelectionToolVeryLooseVeto
(
"CP::MuonSelectionToolVeryLooseVeto"
)
{
declareProperty
(
"config"
,
m_config
);
...
...
@@ -79,6 +82,8 @@ namespace top {
declareProperty
(
"IsolationTool_LowPtPLV"
,
m_isolationTool_LowPtPLV
);
declareProperty
(
"IFFTruthClassificationTool"
,
m_IFFTruthTool
);
declareProperty
(
"MuonSelectionToolVeryLooseVeto"
,
m_muonSelectionToolVeryLooseVeto
);
declareProperty
(
"IsolationTool_PLImprovedTight"
,
m_isolationTool_PLImprovedTight
);
declareProperty
(
"IsolationTool_PLImprovedVeryTight"
,
m_isolationTool_PLImprovedVeryTight
);
}
StatusCode
MuonObjectCollectionMaker
::
initialize
()
{
...
...
@@ -107,8 +112,10 @@ namespace top {
top
::
check
(
m_isolationTool_Tight_FixedRad
.
retrieve
(),
"Failed to retrieve Isolation Tool"
);
top
::
check
(
m_isolationTool_Loose_VarRad
.
retrieve
(),
"Failed to retrieve Isolation Tool"
);
top
::
check
(
m_isolationTool_Loose_FixedRad
.
retrieve
(),
"Failed to retrieve Isolation Tool"
);
top
::
check
(
m_isolationTool_PLImprovedTight
.
retrieve
(),
"Failed to retrieve Isolation Tool"
);
top
::
check
(
m_isolationTool_PLImprovedVeryTight
.
retrieve
(),
"Failed to retrieve Isolation Tool"
);
top
::
check
(
m_muonSelectionToolVeryLooseVeto
.
retrieve
(),
"Failed to retrieve Selection Tool"
);
if
(
m_config
->
isMC
())
top
::
check
(
m_IFFTruthTool
.
retrieve
(),
"Failed to retrieve IFF Truth Classification Tool"
);
if
(
m_config
->
isMC
())
top
::
check
(
m_IFFTruthTool
.
retrieve
(),
"Failed to retrieve IFF Truth Classification Tool"
);
///-- Set Systematics Information --///
const
std
::
string
&
syststr
=
m_config
->
systematics
();
...
...
@@ -138,19 +145,22 @@ namespace top {
}
StatusCode
MuonObjectCollectionMaker
::
execute
(
bool
executeNominal
)
{
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptvarcone30_TightTTVA_pt1000
(
"ptvarcone30_TightTTVA_pt1000"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptcone20_TightTTVA_pt1000
(
"ptcone20_TightTTVA_pt1000"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptcone20_TightTTVA_pt500
(
"ptcone20_TightTTVA_pt500"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptvarcone30_TightTTVA_pt500
(
"ptvarcone30_TightTTVA_pt500"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
neflowisol20
(
"neflowisol20"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptvarcone30_TightTTVALooseCone_pt1000
(
"ptvarcone30_TightTTVALooseCone_pt1000"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
ptvarcone30_TightTTVALooseCone_pt1000
(
"ptvarcone30_TightTTVALooseCone_pt1000"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
int
>
chamberIndex
(
"chamberIndex"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
short
>
PLV_TrackJetNTrack
(
"PromptLeptonInput_TrackJetNTrack"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
PLV_DRlj
(
"PromptLeptonInput_DRlj"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
PLV_PtRel
(
"PromptLeptonInput_PtRel"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
PLV_PtFrac
(
"PromptLeptonInput_PtFrac"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
PLV_PromptLeptonVeto
(
"PromptLeptonVeto"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
float
>
PromptLeptonImprovedVeto
(
"PromptLeptonImprovedVeto"
);
static
const
SG
::
AuxElement
::
ConstAccessor
<
short
>
PromptLeptonImprovedInput_MVAXBin
(
"PromptLeptonImprovedInput_MVAXBin"
);
static
const
SG
::
AuxElement
::
Decorator
<
float
>
byhand_LowPtPLV
(
"LowPtPLV"
);
static
const
SG
::
AuxElement
::
Decorator
<
int
>
AnalysisTop_IFFTruthClass
(
"AnalysisTop_IFFTruthClass"
);
...
...
@@ -180,17 +190,19 @@ namespace top {
///-- Loop over the xAOD Container and apply corrections--///
for
(
auto
muon
:
*
(
shallow_xaod_copy
.
first
))
{
///-- Check if chamberIndex is Available if UseMVALowPt is On in order to print some useful message before the crash
if
(
m_isFirstEvent
)
{
if
(
(
m_config
->
muonUseMVALowPt
()
||
m_config
->
muonUseMVALowPtLoose
()
||
m_config
->
softmuonUseMVALowPt
())
&&
!
chamberIndex
.
isAvailable
(
*
muon
)
)
{
ATH_MSG_ERROR
(
"MuonSegmentsAux.chamberIndex is not available in yout derivation so UseMVALowPt cannot be performed."
);
ATH_MSG_ERROR
(
"Please turn OFF UseMVALowPt or use more recent p-tag"
);
ATH_MSG_ERROR
(
"AnalysisTop will crash soon..."
);
throw
std
::
runtime_error
(
"Missing MuonSegmentsAux.chamberIndex variable"
);
}
m_isFirstEvent
=
false
;
}
///-- Check if chamberIndex is Available if UseMVALowPt is On in order to print some useful message before the
// crash
if
(
m_isFirstEvent
)
{
if
((
m_config
->
muonUseMVALowPt
()
||
m_config
->
muonUseMVALowPtLoose
()
||
m_config
->
softmuonUseMVALowPt
())
&&
!
chamberIndex
.
isAvailable
(
*
muon
))
{
ATH_MSG_ERROR
(
"MuonSegmentsAux.chamberIndex is not available in yout derivation so UseMVALowPt cannot be performed."
);
ATH_MSG_ERROR
(
"Please turn OFF UseMVALowPt or use more recent p-tag"
);
ATH_MSG_ERROR
(
"AnalysisTop will crash soon..."
);
throw
std
::
runtime_error
(
"Missing MuonSegmentsAux.chamberIndex variable"
);
}
m_isFirstEvent
=
false
;
}
///-- Apply momentum correction --///
if
(
muon
->
primaryTrackParticle
())
{
...
...
@@ -215,9 +227,9 @@ namespace top {
}
//Decorate muons with IFF-truth classification
if
(
m_config
->
isMC
()){
if
(
m_config
->
isMC
())
{
unsigned
int
IFFclass
(
0
);
top
::
check
(
m_IFFTruthTool
->
classify
(
*
muon
,
IFFclass
),
"Unable the classify muon"
);
top
::
check
(
m_IFFTruthTool
->
classify
(
*
muon
,
IFFclass
),
"Unable the classify muon"
);
AnalysisTop_IFFTruthClass
(
*
muon
)
=
IFFclass
;
}
...
...
@@ -226,81 +238,90 @@ namespace top {
char
passIsol_FCTightTrackOnly_FixedRad
(
0
),
passIsol_FCLoose_FixedRad
(
0
),
passIsol_FCTight_FixedRad
(
0
);
char
passIsol_FixedCutPflowTight
(
0
),
passIsol_FixedCutPflowLoose
(
0
);
char
passIsol_PflowTight_FixedRad
(
0
),
passIsol_PflowLoose_FixedRad
(
0
),
passIsol_PflowTight_VarRad
(
0
),
passIsol_PflowLoose_VarRad
(
0
);
char
passIsol_HighPtTrackOnly
(
0
),
passIsol_TightTrackOnly_VarRad
(
0
),
passIsol_TightTrackOnly_FixedRad
(
0
);
char
passIsol_PLVTight
(
0
),
passIsol_PLVLoose
(
0
);
char
passIsol_Tight_VarRad
(
0
),
passIsol_Tight_FixedRad
(
0
),
passIsol_Loose_VarRad
(
0
),
passIsol_Loose_FixedRad
(
0
);
//initializing al the passIsol_* variable to -1
passIsol_FCTight
=
-
1
;
passIsol_FCLoose
=
-
1
;
passIsol_FCTightTrackOnly
=
-
1
;
passIsol_FCTightTrackOnly_FixedRad
=
-
1
;
passIsol_FCLoose_FixedRad
=
-
1
;
passIsol_FCTight_FixedRad
=
-
1
;
passIsol_FixedCutPflowTight
=
-
1
;
passIsol_FixedCutPflowLoose
=
-
1
;
passIsol_PflowTight_FixedRad
=
-
1
;
passIsol_PflowLoose_FixedRad
=
-
1
;
passIsol_PflowTight_VarRad
=
-
1
;
passIsol_PflowLoose_VarRad
=
-
1
;
passIsol_HighPtTrackOnly
=
-
1
;
passIsol_TightTrackOnly_VarRad
=
-
1
;
passIsol_TightTrackOnly_FixedRad
=
-
1
;
passIsol_PLVTight
=
-
1
;
passIsol_PLVLoose
=
-
1
;
passIsol_Tight_FixedRad
=
-
1
;
passIsol_Loose_FixedRad
=
-
1
;
passIsol_Tight_VarRad
=
-
1
;
passIsol_Loose_VarRad
=
-
1
;
passIsol_FCTight
=
m_isolationTool_FCTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCLoose
=
m_isolationTool_FCLoose
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTightTrackOnly
=
m_isolationTool_FCTightTrackOnly
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTightTrackOnly_FixedRad
=
m_isolationTool_FCTightTrackOnly_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCLoose_FixedRad
=
m_isolationTool_FCLoose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTight_FixedRad
=
m_isolationTool_FCTight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FixedCutPflowTight
=
m_isolationTool_FixedCutPflowTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FixedCutPflowLoose
=
m_isolationTool_FixedCutPflowLoose
->
accept
(
*
muon
)
?
1
:
0
;
//new Iso WPs
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
neflowisol20
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
passIsol_PflowTight_FixedRad
=
m_isolationTool_PflowTight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PflowLoose_FixedRad
=
m_isolationTool_PflowLoose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
neflowisol20
.
isAvailable
(
*
muon
))
{
passIsol_PflowTight_VarRad
=
m_isolationTool_PflowTight_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PflowLoose_VarRad
=
m_isolationTool_PflowLoose_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
char
passIsol_PflowTight_FixedRad
(
0
),
passIsol_PflowLoose_FixedRad
(
0
),
passIsol_PflowTight_VarRad
(
0
),
passIsol_PflowLoose_VarRad
(
0
);
char
passIsol_HighPtTrackOnly
(
0
),
passIsol_TightTrackOnly_VarRad
(
0
),
passIsol_TightTrackOnly_FixedRad
(
0
);
char
passIsol_PLVTight
(
0
),
passIsol_PLVLoose
(
0
),
passIsol_PLImprovedTight
(
0
),
passIsol_PLImprovedVeryTight
(
0
);
char
passIsol_Tight_VarRad
(
0
),
passIsol_Tight_FixedRad
(
0
),
passIsol_Loose_VarRad
(
0
),
passIsol_Loose_FixedRad
(
0
);
//initializing al the passIsol_* variable to -1
passIsol_FCTight
=
-
1
;
passIsol_FCLoose
=
-
1
;
passIsol_FCTightTrackOnly
=
-
1
;
passIsol_FCTightTrackOnly_FixedRad
=
-
1
;
passIsol_FCLoose_FixedRad
=
-
1
;
passIsol_FCTight_FixedRad
=
-
1
;
passIsol_FixedCutPflowTight
=
-
1
;
passIsol_FixedCutPflowLoose
=
-
1
;
passIsol_PflowTight_FixedRad
=
-
1
;
passIsol_PflowLoose_FixedRad
=
-
1
;
passIsol_PflowTight_VarRad
=
-
1
;
passIsol_PflowLoose_VarRad
=
-
1
;
passIsol_HighPtTrackOnly
=
-
1
;
passIsol_TightTrackOnly_VarRad
=
-
1
;
passIsol_TightTrackOnly_FixedRad
=
-
1
;
passIsol_PLVTight
=
-
1
;
passIsol_PLVLoose
=
-
1
;
passIsol_PLImprovedTight
=
-
1
;
passIsol_PLImprovedVeryTight
=
-
1
;
passIsol_Tight_FixedRad
=
-
1
;
passIsol_Loose_FixedRad
=
-
1
;
passIsol_Tight_VarRad
=
-
1
;
passIsol_Loose_VarRad
=
-
1
;
passIsol_FCTight
=
m_isolationTool_FCTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCLoose
=
m_isolationTool_FCLoose
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTightTrackOnly
=
m_isolationTool_FCTightTrackOnly
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTightTrackOnly_FixedRad
=
m_isolationTool_FCTightTrackOnly_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCLoose_FixedRad
=
m_isolationTool_FCLoose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FCTight_FixedRad
=
m_isolationTool_FCTight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FixedCutPflowTight
=
m_isolationTool_FixedCutPflowTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_FixedCutPflowLoose
=
m_isolationTool_FixedCutPflowLoose
->
accept
(
*
muon
)
?
1
:
0
;
//new Iso WPs
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
neflowisol20
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
passIsol_PflowTight_FixedRad
=
m_isolationTool_PflowTight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PflowLoose_FixedRad
=
m_isolationTool_PflowLoose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptcone20_TightTTVA_pt1000
.
isAvailable
(
*
muon
))
{
passIsol_HighPtTrackOnly
=
m_isolationTool_HighPtTrackOnly
->
accept
(
*
muon
)
?
1
:
0
;
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
neflowisol20
.
isAvailable
(
*
muon
))
{
passIsol_PflowTight_VarRad
=
m_isolationTool_PflowTight_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PflowLoose_VarRad
=
m_isolationTool_PflowLoose_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
pt
var
cone
3
0_TightTTVA_pt
5
00
.
isAvailable
(
*
muon
))
{
passIsol_
T
ightTrackOnly
_VarRad
=
m_isolationTool_
T
ightTrackOnly
_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
if
(
ptcone
2
0_TightTTVA_pt
10
00
.
isAvailable
(
*
muon
))
{
passIsol_
H
igh
P
tTrackOnly
=
m_isolationTool_
H
igh
P
tTrackOnly
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt500
.
isAvailable
(
*
muon
)
)
{
passIsol_TightTrackOnly_
Fixed
Rad
=
m_isolationTool_TightTrackOnly_
Fixed
Rad
->
accept
(
*
muon
)
?
1
:
0
;
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
passIsol_TightTrackOnly_
Var
Rad
=
m_isolationTool_TightTrackOnly_
Var
Rad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
if
(
PLV_TrackJetNTrack
.
isAvailable
(
*
muon
)
&&
PLV_DRlj
.
isAvailable
(
*
muon
)
&&
PLV_PtRel
.
isAvailable
(
*
muon
)
&&
PLV_PtFrac
.
isAvailable
(
*
muon
)
)
top
::
check
(
m_isolationTool_LowPtPLV
->
augmentPLV
(
*
muon
),
"Failed to agument muon with LowPtPLV decorations"
);
else
byhand_LowPtPLV
(
*
muon
)
=
1.1
;
if
(
PLV_PromptLeptonVeto
.
isAvailable
(
*
muon
))
{
passIsol_PLVTight
=
m_isolationTool_PLVTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PLVLoose
=
m_isolationTool_PLVLoose
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
passIsol_TightTrackOnly_FixedRad
=
m_isolationTool_TightTrackOnly_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt1000
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt1000
.
isAvailable
(
*
muon
))
{
passIsol_Tight_FixedRad
=
m_isolationTool_Tight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_Loose_FixedRad
=
m_isolationTool_Loose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
))
{
if
(
PLV_TrackJetNTrack
.
isAvailable
(
*
muon
)
&&
PLV_DRlj
.
isAvailable
(
*
muon
)
&&
PLV_PtRel
.
isAvailable
(
*
muon
)
&&
PLV_PtFrac
.
isAvailable
(
*
muon
))
top
::
check
(
m_isolationTool_LowPtPLV
->
augmentPLV
(
*
muon
),
"Failed to agument muon with LowPtPLV decorations"
);
else
byhand_LowPtPLV
(
*
muon
)
=
1.1
;
if
(
PLV_PromptLeptonVeto
.
isAvailable
(
*
muon
))
{
passIsol_PLVTight
=
m_isolationTool_PLVTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PLVLoose
=
m_isolationTool_PLVLoose
->
accept
(
*
muon
)
?
1
:
0
;
}
}
if
(
ptvarcone30_TightTTVA_pt1000
.
isAvailable
(
*
muon
)
&&
ptcone20_TightTTVA_pt1000
.
isAvailable
(
*
muon
))
{
passIsol_Tight_FixedRad
=
m_isolationTool_Tight_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_Loose_FixedRad
=
m_isolationTool_Loose_FixedRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt1000
.
isAvailable
(
*
muon
))
{
passIsol_Tight_VarRad
=
m_isolationTool_Tight_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_Loose_VarRad
=
m_isolationTool_Loose_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
}
if
(
ptvarcone30_TightTTVA_pt1000
.
isAvailable
(
*
muon
))
{
passIsol_Tight_VarRad
=
m_isolationTool_Tight_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_Loose_VarRad
=
m_isolationTool_Loose_VarRad
->
accept
(
*
muon
)
?
1
:
0
;
if
(
ptvarcone30_TightTTVA_pt500
.
isAvailable
(
*
muon
)
&&
PromptLeptonImprovedVeto
.
isAvailable
(
*
muon
)
&&
PromptLeptonImprovedInput_MVAXBin
.
isAvailable
(
*
muon
))
{
passIsol_PLImprovedTight
=
m_isolationTool_PLImprovedTight
->
accept
(
*
muon
)
?
1
:
0
;
passIsol_PLImprovedVeryTight
=
m_isolationTool_PLImprovedVeryTight
->
accept
(
*
muon
)
?
1
:
0
;
}
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_FCTight"
)
=
passIsol_FCTight
;
...
...
@@ -312,19 +333,23 @@ namespace top {
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_FixedCutPflowTight"
)
=
passIsol_FixedCutPflowTight
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_FixedCutPflowLoose"
)
=
passIsol_FixedCutPflowLoose
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowTight_FixedRad"
)
=
passIsol_PflowTight_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowLoose_FixedRad"
)
=
passIsol_PflowLoose_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowTight_VarRad"
)
=
passIsol_PflowTight_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowLoose_VarRad"
)
=
passIsol_PflowLoose_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_HighPtTrackOnly"
)
=
passIsol_HighPtTrackOnly
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_TightTrackOnly_VarRad"
)
=
passIsol_TightTrackOnly_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_TightTrackOnly_FixedRad"
)
=
passIsol_TightTrackOnly_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PLVTight"
)
=
passIsol_PLVTight
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PLVLoose"
)
=
passIsol_PLVLoose
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Tight_VarRad"
)
=
passIsol_Tight_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Tight_FixedRad"
)
=
passIsol_Tight_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Loose_VarRad"
)
=
passIsol_Loose_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Loose_FixedRad"
)
=
passIsol_Loose_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowTight_FixedRad"
)
=
passIsol_PflowTight_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowLoose_FixedRad"
)
=
passIsol_PflowLoose_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowTight_VarRad"
)
=
passIsol_PflowTight_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PflowLoose_VarRad"
)
=
passIsol_PflowLoose_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_HighPtTrackOnly"
)
=
passIsol_HighPtTrackOnly
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_TightTrackOnly_VarRad"
)
=
passIsol_TightTrackOnly_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_TightTrackOnly_FixedRad"
)
=
passIsol_TightTrackOnly_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PLVTight"
)
=
passIsol_PLVTight
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_PLVLoose"
)
=
passIsol_PLVLoose
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_PLImprovedTight"
)
=
passIsol_PLImprovedTight
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_PLImprovedVeryTight"
)
=
passIsol_PLImprovedVeryTight
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Tight_VarRad"
)
=
passIsol_Tight_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Tight_FixedRad"
)
=
passIsol_Tight_FixedRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Loose_VarRad"
)
=
passIsol_Loose_VarRad
;
muon
->
auxdecor
<
char
>
(
"AnalysisTop_Isol_Loose_FixedRad"
)
=
passIsol_Loose_FixedRad
;
// PromptLeptonIsolation - Some protection incase things change in R21
if
(
muon
->
isAvailable
<
float
>
(
"PromptLeptonIso_TagWeight"
))
{
...
...
@@ -374,8 +399,7 @@ namespace top {
m_calibrationPeriodTool
->
recommendedSystematics
());
for
(
auto
s
:
systList
)
{
if
(
!
m_config
->
getTreeFilter
()
->
filterTree
(
s
.
name
()))
continue
;
// Applying tree filter
if
(
!
m_config
->
getTreeFilter
()
->
filterTree
(
s
.
name
()))
continue
;
// Applying tree filter
m_recommendedSystematics
.
push_back
(
s
);
if
(
s
.
name
()
==
""
)
{
m_specifiedSystematics
.
push_back
(
s
);
...
...
PhysicsAnalysis/TopPhys/xAOD/TopSystematicObjectMaker/TopSystematicObjectMaker/MuonObjectCollectionMaker.h
View file @
2b0a5fe8
...
...
@@ -103,6 +103,9 @@ namespace top {
ToolHandle
<
CP
::
IIsolationSelectionTool
>
m_isolationTool_Loose_FixedRad
;
ToolHandle
<
CP
::
IIsolationLowPtPLVTool
>
m_isolationTool_LowPtPLV
;
ToolHandle
<
CP
::
IClassificationTool
>
m_IFFTruthTool
;
//These WPs are defined with release 21.2.156 or later
ToolHandle
<
CP
::
IIsolationSelectionTool
>
m_isolationTool_PLImprovedTight
;
ToolHandle
<
CP
::
IIsolationSelectionTool
>
m_isolationTool_PLImprovedVeryTight
;
// the following is needed to make sure all muons for which d0sig is calculated are at least Loose
ToolHandle
<
CP
::
IMuonSelectionTool
>
m_muonSelectionToolVeryLooseVeto
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment