|
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
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.