|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include <Math/GenVector/PtEtaPhiM4D.h>
20 namespace MatrixHelpers{
29 for (
unsigned int i = 0;
i <
N ; ++
i){
30 for (
unsigned int j = 0; j <=
i; ++j){
36 void expand(std::vector<float>::const_iterator
it,
37 std::vector<float>::const_iterator, Eigen::Matrix<float,N,N,0,N,N>&
covMatrix) {
38 for (
unsigned int i = 0;
i <
N; ++
i) {
39 for (
unsigned int j = 0; j <=
i; ++j) {
141 if(!acc.isAvailable(*
this) ) {
144 const std::vector<float>&
v = acc(*
this);
145 size_t size=
v.size();
148 cov = Eigen::Map<const EgammaCovMatrix_t> (
v.data());
175 acc(*
this) =
author | newAuthor;
180 acc(*
this) = newAuthor;
190 ambiguityLinkAcc(
"ambiguityLink" );
195 if( ! ambiguityLinkAcc.isAvailable( *
this ) ) {
212 if(!acc->isAvailable(*
this) ) {
216 value = ( *acc )(*this);
222 if(!acc )
throw std::runtime_error(
"Unknown/Unavailable Shower Shape type requested" );
223 return ( *acc )(*this);
228 if( !acc )
return false;
230 ( *acc )(*this) =
value;
258 if(!acc->isAvailable(*
this) ) {
262 value = ( *acc )(*this);
268 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
269 return ( *acc )(*this);
274 if( !acc )
return false;
276 ( *acc )(*this) =
value;
284 if(!acc.isAvailable(*
this) ) {
296 if( !acc.isAvailable(*
this) ) {
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );}
310 if(!acc.isAvailable(*
this) ) {
320 if( !acc.isAvailable(*
this) ) {
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );}
332 if(!acc.isAvailable(*
this) ) {
342 if( !acc.isAvailable(*
this) ) {
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );}
355 if(!acc.isAvailable(*
this) ) {
359 value = std::bitset<32>(acc(*
this));
365 if( !acc.isAvailable(*
this) ) {
throw std::runtime_error(
"Unknown/Unavailable Isolation BitSet requested" );}
380 clusterAcc(
"caloClusterLinks" );
383 return clusterAcc(*this).size();
411 caloClusterLinks, setCaloClusterLinks)
416 if(!acc.isAvailable(*
this) ) {
435 if(!acc.isAvailable(*
this) ) {
void setAuthor(uint16_t)
set author
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr, const Iso::IsolationCorrectionParameter param) const
Accessor for flavour and type depended Isolation Calo correction.
virtual Type::ObjectType type() const override=0
The type of the object as a simple enumeration, remains pure virtual in e/gamma.
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection corr, const Iso::IsolationCorrectionParameter param)
set method for flavour and type depended Isolation Calo Corrections.
void addAuthor(uint16_t)
add author
Scalar eta() const
pseudorapidity method
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
virtual double e() const override final
The total energy of the particle.
constexpr int CalculateCompressedSize(int n)
uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const
Get author.
void setM(float m)
set the Mass
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr)
Set method for Isolation Track Corrections.
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
std::vector< size_t > vec
setRcore setEtHad setFside pt
Class providing the definition of the 4-vector interface.
size_t nCaloClusters() const
Return the number of xAOD::CaloClusters that define the electron candidate.
bool isValid() const
Test to see if the link can be dereferenced.
IsolationCorrectionParameter
bool showerShapeValue(float &value, const EgammaParameters::ShowerShapeType information) const
Accessor for ShowerShape values.
bool setIsolation(float value, const Iso::IsolationType information)
set method for Isolation values.
const ElementLink< CaloClusterContainer > & caloClusterLink(size_t index=0) const
ElementLink to the xAOD::CaloCluster/s that match the electron candidate.
const SG::AuxElement::Accessor< float > getIsolationCorrectionAccessor(Iso::IsolationFlavour type, Iso::IsolationCaloCorrection corr, Iso::IsolationCorrectionParameter param)
TLorentzVector FourMom_t
Definition of the 4-momentum type.
size_t index() const
Return the index of this element within its container.
void setCovMatrix(const EgammaCovMatrix_t &cov)
set the 4x4 symmetric covariance matrix .
const Egamma_v1 * ambiguousObject() const
Get ambiguous.
Description of a calorimeter cluster.
void setP4(float pt, float eta, float phi, float m)
set the 4-vec
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
Egamma_v1 & operator=(const Egamma_v1 &eg)
Assignment Operator. Using the assignment of SG::AuxElement.
void setPhi(float phi)
set the phi
IsolationType
Overall enumeration for isolation types in xAOD files.
const SG::AuxElement::Accessor< float > * showerShapeAccessorV1(xAOD::EgammaParameters::ShowerShapeType type)
Explicit Instantiation of Template.
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
void compress(const Eigen::Matrix< float, N, N, 0, N, N > &covMatrix, std::vector< float > &vec)
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
const SG::AuxElement::Accessor< float > * getIsolationAccessor(Iso::IsolationType type)
Get the Accessor object for a given isolation type.
uint32_t OQ() const
Return the object quality bit word.
EgammaCovMatrix_t covMatrix() const
Returns the 4x4 symmetric covariance matrix .
void setPt(float pt)
set the Pt
ElementLink implementation for ROOT usage.
const CLELVec_t & caloClusterLinks() const
Get all cluster links.
virtual double rapidity() const override final
The true rapidity (y) of the particle.
Eigen::Matrix< float, 4, 4 > EgammaCovMatrix_t
4x4 Covariance Matrix in EtEtaPhiM (needs decision)
void setEta(float eta)
set the eta
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for egamma.
Egamma_v1()
Default constructor.
void makePrivateStore()
Create a new (empty) private store for this object.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal egamma type.
bool hasStore() const
Return true if this object has an associated store.
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
void expand(std::vector< float >::const_iterator it, std::vector< float >::const_iterator, Eigen::Matrix< float, N, N, 0, N, N > &covMatrix)
const SG::AuxElement::Accessor< uint32_t > getIsolationCorrectionBitsetAccessor(Iso::IsolationFlavour type)
Returns an accessor for the correction bitset corresponding to this IsolationType.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
bool selectionisEM(unsigned int &value, const std::string &isEM) const
Return the isEM word for a selection menu If the menu isEM is stored in this xAOD::Egamma,...
virtual double m() const override final
The invariant mass of the particle.
void setPassSelection(bool value, const std::string &menu)
Set the selection decision for a menu (using the name)
const SG::AuxVectorData * container() const
Return the container holding this element.
std::vector< ElementLink< CaloClusterContainer > > CLELVec_t
Helper type definition.
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection corr) const
Accessor for Isolation Track correction.
bool setShowerShapeValue(float value, const EgammaParameters::ShowerShapeType information)
Set method for Shower Shape values.
void setOQ(uint32_t newOQ)
Set the object quality.
IParticle & operator=(const IParticle &)=default
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
void setSelectionisEM(unsigned int value, const std::string &isEM)
Set the isEM word for a selection menu (using the name)
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
bool isGoodOQ(uint32_t mask) const
Check object quality. Return True is it is Good Object Quality.