|
ATLAS Offline Software
|
#include <JetCaloEnergies.h>
|
| JetCaloEnergies (const std::string &t) |
|
virtual StatusCode | initialize () override |
| Dummy implementation of the initialisation function. More...
|
|
virtual StatusCode | decorate (const xAOD::JetContainer &jets) const override |
| Decorate a jet collection without otherwise modifying it. More...
|
|
virtual void | print () const |
| Print the state of the tool. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
virtual StatusCode | modify (xAOD::JetContainer &jets) const override final |
| Concrete implementation of the function inherited from IJetModifier. More...
|
|
|
Gaudi::Property< std::vector< std::string > > | m_calculationNames {this, "Calculations", {}, "Name of calo quantities to compute and add as decorations"} |
|
Gaudi::Property< std::string > | m_jetContainerName {this, "JetContainer", "", "SG key for the input jet container"} |
|
Gaudi::Property< bool > | m_calcClusterBasedVars {this, "calcClusterBasedVars", false, "SG key to decide if cluster-based variables will be calculated for FE-based jets"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_ePerSamplingKey {this, "EPerSamplingName", "EnergyPerSampling", "SG key for the EnergyPerSampling attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_emFracKey {this, "EMFracName", "EMFrac", "SG key for the EMFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_hecFracKey {this, "HECFracName", "HECFrac", "SG key for the HECFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_psFracKey {this, "PSFracName", "PSFrac", "SG key for the PSFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_em3FracKey {this, "EM3FracName", "EM3Frac", "SG key for the EM3Frac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_tile0FracKey {this, "Tile0FracName", "Tile0Frac", "SG key for the Tile0Frac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_effNClustsFracKey {this, "EffNClustsName", "EffNClusts", "SG key for the EffNClusts attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_fracSamplingMaxKey {this, "FracSamplingMaxName", "FracSamplingMax", "SG key for the FracSamplingMax attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_fracSamplingMaxIndexKey {this, "FracSamplingMaxIndexName", "FracSamplingMaxIndex", "SG key for the FracSamplingMaxIndex attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_ePerSamplingClusterKey {this, "EPerSamplingClusterName", "EnergyPerSamplingCaloBased", "SG key for the EnergyPerSampling attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_emFracClusterKey {this, "EMFracClusterName", "EMFracCaloBased", "SG key for the EMFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_hecFracClusterKey {this, "HECFracClusterName", "HECFracCaloBased", "SG key for the HECFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_psFracClusterKey {this, "PSFracClusterName", "PSFracCaloBased", "SG key for the PSFrac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_em3FracClusterKey {this, "EM3FracClusterName", "EM3FracCaloBased", "SG key for the EM3Frac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_tile0FracClusterKey {this, "Tile0FracClusterName", "Tile0FracCaloBased", "SG key for the Tile0Frac attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_effNClustsFracClusterKey {this, "EffNClustsClusterName", "EffNClustsCaloBased", "SG key for the EffNClusts attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_fracSamplingMaxClusterKey {this, "FracSamplingMaxClusterName", "FracSamplingMaxCaloBased", "SG key for the FracSamplingMax (clus) attribute"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_fracSamplingMaxIndexClusterKey {this, "FracSamplingMaxIndexClusterName", "FracSamplingMaxIndexCaloBased", "SG key for FracSamplingMaxIndex (clus) attribute"} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 17 of file JetCaloEnergies.h.
◆ StoreGateSvc_t
◆ JetCaloEnergies()
JetCaloEnergies::JetCaloEnergies |
( |
const std::string & |
t | ) |
|
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ decorate()
Decorate a jet collection without otherwise modifying it.
Implements IJetDecorator.
Definition at line 102 of file JetCaloEnergies.cxx.
106 size_t numConstit =
jet->numConstituents();
108 std::vector<float>& ePerSampling = ePerSamplingHandle(*
jet);
109 for (
float&
e : ePerSampling )
e = 0.0;
111 if ( numConstit == 0 ) {
133 ATH_MSG_VERBOSE(
" Constituents are FlowElements - Additional calculation");
137 std::vector<float>& ePerSamplingCluster = ePerSamplingClusterHandle(*
jet);
138 for (
float&
e : ePerSamplingCluster )
e = 0.0;
144 ATH_MSG_VERBOSE(
"Constituents are not CaloClusters, PFOs, or FlowElements.");
148 return StatusCode::SUCCESS;
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ fillEperSamplingCluster()
void JetCaloEnergies::fillEperSamplingCluster |
( |
const xAOD::Jet & |
jet, |
|
|
std::vector< float > & |
ePerSampling |
|
) |
| const |
|
protected |
Definition at line 151 of file JetCaloEnergies.cxx.
153 size_t numConstit =
jet.numConstituents();
154 for (
size_t i=0;
i<numConstit;
i++ ) {
156 ATH_MSG_WARNING(
"Tried to call fillEperSamplingCluster with a jet constituent that is not a cluster!");
165 double fracSamplingMax = -999999999.;
166 int fracSamplingMaxIndex = -1;
167 double sumE_samplings = 0.0;
170 for(
unsigned int i = 0;
i < ePerSampling.size(); ++
i){
171 double e = ePerSampling[
i];
173 if (
e>fracSamplingMax){
175 fracSamplingMaxIndex =
i;
190 fracSamplingMaxHandle(
jet) = sumE_samplings != 0. ? fracSamplingMax/sumE_samplings : 0.;
192 fracSamplingMaxIndexHandle(
jet) = fracSamplingMaxIndex;
◆ fillEperSamplingFE()
void JetCaloEnergies::fillEperSamplingFE |
( |
const xAOD::Jet & |
jet, |
|
|
std::vector< float > & |
ePerSampling |
|
) |
| const |
|
protected |
Definition at line 287 of file JetCaloEnergies.cxx.
295 size_t numConstit =
jet.numConstituents();
297 std::vector<int> indicesNeutralFE;
298 std::vector<int> indicesChargedFE;
300 for (
size_t i=0;
i<numConstit;
i++ ) {
302 ATH_MSG_WARNING(
"Tried to call fillEperSamplingFE with a jet constituent that is not a FlowElement!");
321 eTot += constit->
e();
322 e2Tot += constit->
e()*constit->
e();
326 ePerSampling[
s] += constitEPerSampling[
s];
364 e2Tot += nFE->
e()*nFE->
e();
368 ePerSampling[
s] += neutralEPerSampling[
s];
394 if(
std::find(indicesChargedFE.begin(), indicesChargedFE.end(), FE_from_combined->
index()) == indicesChargedFE.end()){
395 eTot += FE_from_combined->
e();
396 e2Tot += FE_from_combined->
e()*FE_from_combined->
e();
397 indicesChargedFE.push_back(FE_from_combined->
index());
404 if(
std::find(indicesNeutralFE.begin(), indicesNeutralFE.end(), FE_from_combined->
index()) == indicesNeutralFE.end()){
405 eTot += FE_from_combined->
e();
406 e2Tot += FE_from_combined->
e()*FE_from_combined->
e();
409 ePerSampling[
s] += neutralFromCombEPerSampling[
s];
426 indicesNeutralFE.push_back(FE_from_combined->
index());
433 double fracSamplingMax = -999999999.;
434 int fracSamplingMaxIndex = -1;
435 double sumE_samplings = 0.0;
438 for(
unsigned int i = 0;
i < ePerSampling.size(); ++
i){
439 double e = ePerSampling[
i];
441 if (
e>fracSamplingMax){
443 fracSamplingMaxIndex =
i;
449 if ( calcN ==
"EMFrac" ) {
452 }
else if ( calcN ==
"HECFrac" ) {
454 hecFracHandle(
jet) =
eTot != 0. ? hecTot/
eTot : 0.;
455 }
else if ( calcN ==
"PSFrac" ) {
458 }
else if ( calcN ==
"EM3Frac" ) {
460 em3FracHandle(
jet) =
eTot != 0. ? em3Tot/
eTot : 0.;
461 }
else if ( calcN ==
"Tile0Frac" ) {
463 tile0FracHandle(
jet) =
eTot != 0. ? tile0Tot/
eTot : 0.;
464 }
else if ( calcN ==
"EffNClusts" ) {
466 effNClustsFracHandle(
jet) =
eTot != 0. ? std::sqrt(
eTot*
eTot/e2Tot) : 0.;
467 }
else if ( calcN ==
"FracSamplingMax" ){
469 fracSamplingMaxHandle(
jet) = sumE_samplings != 0. ? fracSamplingMax/sumE_samplings : 0.;
471 fracSamplingMaxIndexHandle(
jet) = fracSamplingMaxIndex;
◆ fillEperSamplingFEClusterBased()
void JetCaloEnergies::fillEperSamplingFEClusterBased |
( |
const xAOD::Jet & |
jet, |
|
|
std::vector< float > & |
ePerSampling |
|
) |
| const |
|
protected |
Definition at line 479 of file JetCaloEnergies.cxx.
487 size_t numConstit =
jet.numConstituents();
488 std::unique_ptr<std::vector<const xAOD::CaloCluster*> > constitV_tot = std::make_unique<std::vector<const xAOD::CaloCluster*>>();
490 for (
size_t i=0;
i<numConstit;
i++ ) {
492 ATH_MSG_WARNING(
"Tried to call fillEperSamplingFE with a jet constituent that is not a FlowElement!");
500 if(index_pfo<0)
continue;
516 if(!cluster)
continue;
518 if(
std::find(constitV_tot->begin(), constitV_tot->end(), cluster) == constitV_tot->end()){
523 e2Tot += cluster->
rawE()*cluster->
rawE();
540 constitV_tot->push_back(cluster);
545 float fracSamplingMax = -999999999.;
546 int fracSamplingMaxIndex = -1;
547 float sumE_samplings = 0.0;
550 for(
unsigned int i = 0;
i < ePerSampling.size(); ++
i){
551 float e = ePerSampling[
i];
553 if (
e>fracSamplingMax){
555 fracSamplingMaxIndex =
i;
561 if ( calcN ==
"EMFrac" ) {
563 emFracClusterHandle(
jet) =
eTot != 0. ? emTot/
eTot : 0.;
564 }
else if ( calcN ==
"HECFrac" ) {
566 hecFracClusterHandle(
jet) =
eTot != 0. ? hecTot/
eTot : 0.;
567 }
else if ( calcN ==
"PSFrac" ) {
569 psFracClusterHandle(
jet) =
eTot != 0. ? psTot/
eTot : 0.;
570 }
else if ( calcN ==
"EM3Frac" ) {
572 em3FracClusterHandle(
jet) =
eTot != 0. ? em3Tot/
eTot : 0.;
573 }
else if ( calcN ==
"Tile0Frac" ) {
575 tile0FracClusterHandle(
jet) =
eTot != 0. ? tile0Tot/
eTot : 0.;
576 }
else if ( calcN ==
"EffNClusts" ) {
578 effNClustsFracClusterHandle(
jet) =
eTot != 0. ? std::sqrt(
eTot*
eTot/e2Tot) : 0.;
579 }
else if ( calcN ==
"FracSamplingMax" ){
581 fracSamplingMaxClusterHandle(
jet) = sumE_samplings != 0. ? fracSamplingMax/sumE_samplings : 0.;
583 fracSamplingMaxIndexClusterHandle(
jet) = fracSamplingMaxIndex;
◆ fillEperSamplingPFO()
void JetCaloEnergies::fillEperSamplingPFO |
( |
const xAOD::Jet & |
jet, |
|
|
std::vector< float > & |
ePerSampling |
|
) |
| const |
|
protected |
Definition at line 202 of file JetCaloEnergies.cxx.
207 size_t numConstit =
jet.numConstituents();
209 for (
size_t i=0;
i<numConstit;
i++ ) {
212 if ( fabs(constit->
charge())>FLT_MIN ){
215 eTot += constit->
e();
252 emTot += ( E_PreSamplerB+E_EMB1+E_EMB2+E_EMB3+
253 E_PreSamplerE+E_EME1+E_EME2+E_EME3+
255 hecTot += ( E_HEC0+E_HEC1+E_HEC2+E_HEC3 );
259 ATH_MSG_WARNING(
"Tried to call fillEperSamplingPFlow with a jet constituent that is not a PFO!");
265 emFracHandle(
jet) = emTot/
eTot;
272 emFracHandle(
jet) = 0.;
277 hecFracHandle(
jet) = hecTot/
eTot;
280 hecFracHandle(
jet) = 0.;
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ initialize()
StatusCode JetCaloEnergies::initialize |
( |
| ) |
|
|
overridevirtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 42 of file JetCaloEnergies.cxx.
46 ATH_MSG_ERROR(
"JetCaloEnergies needs to have its input jet container configured!");
47 return StatusCode::FAILURE;
97 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isInVector()
bool JetCaloEnergies::isInVector |
( |
const std::string & |
key, |
|
|
const std::vector< std::string > & |
calculations |
|
) |
| |
|
protected |
Definition at line 27 of file JetCaloEnergies.cxx.
29 std::vector<std::string>
split;
30 std::string sub_string;
31 std::istringstream tokenStream(
key);
33 while (std::getline(tokenStream, sub_string,
'.'))
35 split.push_back(sub_string);
39 return std::find(calculations.begin(), calculations.end(),
split[1]) != calculations.end();
◆ modify()
|
inlinefinaloverridevirtualinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_calcClusterBasedVars
Gaudi::Property<bool> JetCaloEnergies::m_calcClusterBasedVars {this, "calcClusterBasedVars", false, "SG key to decide if cluster-based variables will be calculated for FE-based jets"} |
|
private |
◆ m_calculationNames
Gaudi::Property<std::vector<std::string> > JetCaloEnergies::m_calculationNames {this, "Calculations", {}, "Name of calo quantities to compute and add as decorations"} |
|
private |
◆ m_detStore
◆ m_doFracSamplingMax
bool JetCaloEnergies::m_doFracSamplingMax = false |
|
protected |
◆ m_effNClustsFracClusterKey
◆ m_effNClustsFracKey
◆ m_em3FracClusterKey
◆ m_em3FracKey
◆ m_emFracClusterKey
◆ m_emFracKey
◆ m_ePerSamplingClusterKey
◆ m_ePerSamplingKey
◆ m_evtStore
◆ m_fracSamplingMaxClusterKey
◆ m_fracSamplingMaxIndexClusterKey
SG::WriteDecorHandleKey<xAOD::JetContainer> JetCaloEnergies::m_fracSamplingMaxIndexClusterKey {this, "FracSamplingMaxIndexClusterName", "FracSamplingMaxIndexCaloBased", "SG key for FracSamplingMaxIndex (clus) attribute"} |
|
private |
◆ m_fracSamplingMaxIndexKey
◆ m_fracSamplingMaxKey
◆ m_hecFracClusterKey
◆ m_hecFracKey
◆ m_jetContainerName
Gaudi::Property<std::string> JetCaloEnergies::m_jetContainerName {this, "JetContainer", "", "SG key for the input jet container"} |
|
private |
◆ m_psFracClusterKey
◆ m_psFracKey
◆ m_tile0FracClusterKey
◆ m_tile0FracKey
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
SG::WriteDecorHandleKey< xAOD::JetContainer > m_fracSamplingMaxClusterKey
bool isInVector(const std::string &key, const std::vector< std::string > &calculations)
SG::WriteDecorHandleKey< xAOD::JetContainer > m_effNClustsFracKey
Gaudi::Property< std::string > m_jetContainerName
void fillEperSamplingPFO(const xAOD::Jet &jet, std::vector< float > &ePerSampling) const
std::string find(const std::string &s)
return a remapped string
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const TrackParticle * track(unsigned int index) const
Retrieve a const pointer to a Rec::TrackParticle.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_em3FracClusterKey
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
SG::WriteDecorHandleKey< xAOD::JetContainer > m_fracSamplingMaxIndexKey
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual Type::ObjectType type() const =0
The type of the object as a simple enumeration.
void fillEperSamplingFE(const xAOD::Jet &jet, std::vector< float > &ePerSampling) const
float eTot(const U &p)
Accessor utility function for getting the value of Energy.
#define ATH_MSG_VERBOSE(x)
std::vector< float > getEnergiesPerSampling(const xAOD::FlowElement &fe)
SG::WriteDecorHandleKey< xAOD::JetContainer > m_tile0FracKey
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_ePerSamplingKey
virtual void setOwner(IDataHandleHolder *o)=0
SG::WriteDecorHandleKey< xAOD::JetContainer > m_psFracClusterKey
SG::WriteDecorHandleKey< xAOD::JetContainer > m_ePerSamplingClusterKey
virtual double e() const
The total energy of the particle.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_hecFracClusterKey
Description of a calorimeter cluster.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
SG::WriteDecorHandleKey< xAOD::JetContainer > m_fracSamplingMaxKey
Handle class for adding a decoration to an object.
float charge() const
get charge of PFO
signal_t signalType() const
SG::WriteDecorHandleKey< xAOD::JetContainer > m_fracSamplingMaxIndexClusterKey
@ ParticleFlow
The object is a particle-flow object.
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
size_t index() const
Return the index of this element within its container.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_tile0FracClusterKey
#define FillESamplingPFO(LAYERNAME)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const xAOD::IParticle * chargedObject(std::size_t i) const
Class describing a particle flow object.
virtual double e() const override
The total energy of the particle.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_effNClustsFracClusterKey
virtual double e() const override final
The total energy of the particle.
Gaudi::Property< std::vector< std::string > > m_calculationNames
SG::WriteDecorHandleKey< xAOD::JetContainer > m_emFracKey
SG::WriteDecorHandleKey< xAOD::JetContainer > m_emFracClusterKey
Gaudi::Property< bool > m_calcClusterBasedVars
static double hecF(const Jet *jet)
float eSample(const CaloSample sampling) const
virtual StatusCode decorate(const xAOD::JetContainer &jets) const =0
Decorate a jet collection without otherwise modifying it.
#define ATH_MSG_WARNING(x)
const xAOD::IParticle * otherObject(std::size_t i) const
SG::WriteDecorHandleKey< xAOD::JetContainer > m_em3FracKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_psFracKey
static double emFraction(const std::vector< float > &ePerSampling)
void fillEperSamplingFEClusterBased(const xAOD::Jet &jet, std::vector< float > &ePerSampling) const
SG::WriteDecorHandleKey< xAOD::JetContainer > m_hecFracKey
void fillEperSamplingCluster(const xAOD::Jet &jet, std::vector< float > &ePerSampling) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
static double presamplerFraction(const Jet *jet)
virtual double e() const =0
The total energy of the particle.
std::vector< const xAOD::IParticle * > otherObjects() const
A detector object made of other lower level object(s)