164 std::string calibString =
"";
171 accTauPtCalib( *
this )=
pt;
172 accTauEtaCalib( *
this )=
eta;
173 accTauPhiCalib( *
this )=
phi;
174 accTauMCalib( *
this )=
m;
197 return acc !=
nullptr;
207 if( !
acc )
return -1111.0;
210 return ( *
acc )( *this );
228 std::bitset<32> isTauFlags(
acc( *
this ) );
229 return isTauFlags[
flag];
236 std::bitset<32> isTauFlags(
acc( *
this ) );
237 isTauFlags[
flag] = value;
238 acc( *
this ) = isTauFlags.to_ulong();
248 std::bitset<32> vetoFlags(
acc( *
this ) );
249 vetoFlags[
flag] = value;
250 acc( *
this ) = vetoFlags.to_ulong();
257 std::bitset<32> vetoFlags(
acc( *
this ) );
258 return vetoFlags[
flag];
269 if( !
acc )
return false;
270 if( !
acc->isAvailable( *
this ) )
return false;
273 value = ( *acc )( *this );
283 if( !
acc )
return false;
284 if( !
acc->isAvailable( *
this ) )
return false;
287 value = ( *acc )( *this );
312 if( !
acc )
return false;
313 if( !
acc->isAvailable( *
this ) )
return false;
316 value = ( *acc )( *this );
326 if( !
acc )
return false;
327 if( !
acc->isAvailable( *
this ) )
return false;
330 value = ( *acc )( *this );
384 const std::vector<int>&
vec=trackPassAcc(*
this);
385 if (
vec.size()<numTrack+1)
388 return vec[numTrack];
394 std::vector<int>&
vec=trackPassAcc(*
this);
395 if (
vec.size()<numTrack+1)
396 vec.resize(numTrack+1);
413 const std::vector<float>&
vec=trackEtaStripAcc(*
this);
414 if (
vec.size()<numTrack+1)
417 return vec[numTrack];
423 std::vector<float>&
vec=trackEtaStripAcc(*
this);
424 if (
vec.size()<numTrack+1)
425 vec.resize(numTrack+1);
433 const std::vector<float>&
vec=trackPhiStripAcc(*
this);
434 if (
vec.size()<numTrack+1)
437 return vec[numTrack];
443 std::vector<float>&
vec=trackPhiStripAcc(*
this);
444 if (
vec.size()<numTrack+1)
445 vec.resize(numTrack+1);
454 conversionTrackLinks,
455 setConversionTrackLinks )
460 return ( *convTrackAcc( *
this )[ i ] );
464 return convTrackAcc( *this ).size();
469 convTrackAcc( *this ).push_back( tr );
474 convTrackAcc( *this ).clear();
487 return ( *wideTrackAcc( *
this )[ i ] );
491 return wideTrackAcc( *this ).size();
496 wideTrackAcc( *this ).push_back( tr );
501 wideTrackAcc( *this ).clear();
514 return ( *otherTrackAcc( *
this )[ i ] );
518 return otherTrackAcc( *this ).size();
523 otherTrackAcc( *this ).push_back( tr );
528 otherTrackAcc( *this ).clear();
541 return ( *jetAcc( *
this ) );
546 if( jetAcc( *this ).isValid() )
547 jetAcc( *this ).
reset();
548 jetAcc( *this ).toContainedElement( *cont,
jet );
562 return ( *vertexAcc( *
this ) );
567 if( vertexAcc( *this ).isValid() )
568 vertexAcc( *this ).reset();
569 vertexAcc( *this ).toContainedElement( *cont,
vertex );
578 setSecondaryVertexLink )
583 return ( *secondaryVertexAcc( *
this ) );
588 if( secondaryVertexAcc( *this ).isValid() )
589 secondaryVertexAcc( *this ).reset();
590 secondaryVertexAcc( *this ).toContainedElement( *cont,
vertex );
601 setHadronic_PFOLinks )
608 return ( *hadronic_PFOAcc( *
this )[ i ] );
612 return hadronic_PFOAcc( *this ).size();
617 hadronic_PFOAcc( *this ).push_back( pfo );
622 hadronic_PFOAcc( *this ).clear();
637 return ( *shot_PFOAcc( *
this )[ i ] );
641 return shot_PFOAcc( *this ).size();
646 shot_PFOAcc( *this ).push_back( pfo );
651 shot_PFOAcc( *this ).clear();
660 setCharged_PFOLinks )
667 return ( *charged_PFOAcc( *
this )[ i ] );
671 return charged_PFOAcc( *this ).size();
676 charged_PFOAcc( *this ).push_back( pfo );
681 charged_PFOAcc( *this ).clear();
691 setNeutral_PFOLinks )
698 return ( *neutral_PFOAcc( *
this )[ i ] );
702 return neutral_PFOAcc( *this ).size();
707 neutral_PFOAcc( *this ).push_back( pfo );
712 neutral_PFOAcc( *this ).clear();
729 return ( *pi0_PFOAcc( *
this )[ i ] );
733 return pi0_PFOAcc( *this ).size();
738 pi0_PFOAcc( *this ).push_back( pfo );
743 pi0_PFOAcc( *this ).clear();
755 cellBased_Charged_PFOLinks,
756 setCellBased_Charged_PFOLinks )
763 return ( *cellBased_Charged_PFOAcc( *
this )[ i ] );
767 return cellBased_Charged_PFOAcc( *this ).size();
772 cellBased_Charged_PFOAcc( *this ).push_back( pfo );
777 cellBased_Charged_PFOAcc( *this ).clear();
785 cellBased_Neutral_PFOLinks,
786 setCellBased_Neutral_PFOLinks )
793 return ( *cellBased_Neutral_PFOAcc( *
this )[ i ] );
797 return cellBased_Neutral_PFOAcc( *this ).size();
802 cellBased_Neutral_PFOAcc( *this ).push_back( pfo );
807 cellBased_Neutral_PFOAcc( *this ).clear();
816 cellBased_Pi0_PFOLinks,
817 setCellBased_Pi0_PFOLinks )
824 return ( *cellBased_Pi0_PFOAcc( *
this )[ i ] );
828 return cellBased_Pi0_PFOAcc( *this ).size();
833 cellBased_Pi0_PFOAcc( *this ).push_back( pfo );
838 cellBased_Pi0_PFOAcc( *this ).clear();
851 eflowRec_Charged_PFOLinks,
852 setEflowRec_Charged_PFOLinks )
859 return ( *eflowRec_Charged_PFOAcc( *
this )[ i ] );
863 return eflowRec_Charged_PFOAcc( *this ).size();
868 eflowRec_Charged_PFOAcc( *this ).push_back( pfo );
873 eflowRec_Charged_PFOAcc( *this ).clear();
881 eflowRec_Neutral_PFOLinks,
882 setEflowRec_Neutral_PFOLinks )
889 return ( *eflowRec_Neutral_PFOAcc( *
this )[ i ] );
893 return eflowRec_Neutral_PFOAcc( *this ).size();
898 eflowRec_Neutral_PFOAcc( *this ).push_back( pfo );
903 eflowRec_Neutral_PFOAcc( *this ).clear();
912 eflowRec_Pi0_PFOLinks,
913 setEflowRec_Pi0_PFOLinks )
920 return ( *eflowRec_Pi0_PFOAcc( *
this )[ i ] );
924 return eflowRec_Pi0_PFOAcc( *this ).size();
929 eflowRec_Pi0_PFOAcc( *this ).push_back( pfo );
934 eflowRec_Pi0_PFOAcc( *this ).clear();
Scalar eta() const
pseudorapidity method
#define AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, NAME)
Macro creating a getter function with a type conversion.
#define AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER)
Macro creating the accessors of primitive auxiliary properties.
#define AUXSTORE_OBJECT_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER)
Macro creating the accessors of complex auxiliary properties.
std::vector< size_t > vec
ElementLink implementation for ROOT usage.
Helper class to provide type-safe access to aux data.
TLorentzVector FourMom_t
Definition of the 4-momentum type.
SG::Accessor< T, ALLOC > Accessor
void reset()
Function making sure that the object is ready for persistification.
Class describing a tau jet.
void clearCellBased_Charged_PFOLinks()
Remove all cellbased_charged PFOs from the tau.
double ptTauEtaCalib() const
double etaTauEnergyScale() const
size_t nCellBased_Charged_PFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
double phiPanTauCellBasedProto() const
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
void setTrackPhiStrip(unsigned int numTrack, float phi)
size_t nConversionTracks() const
Get the number of track particles associated with this tau.
const PFO * charged_PFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
void clearWideTrackLinks()
Remove all tracks from the tau.
void addCellBased_Pi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
double phiPanTauCellBased() const
void setTrackEtaStrip(unsigned int numTrack, float eta)
size_t nEflowRec_Neutral_PFOs() const
Get the number of eflowRec_neutral PFO particles associated with this tau.
double phiJetSeed() const
TauJet_v1()
Default constructor.
void addEflowRec_Pi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_pi0 PFO to the tau
void clearOtherTrackLinks()
Remove all tracks from the tau.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
const TrackParticle * conversionTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void addHadronic_PFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
size_t nTracks() const
Get the number of track particles associated with this tau.
void clearEflowRec_Charged_PFOLinks()
Remove all eflowRec_charged PFOs from the tau.
virtual double pt() const
The transverse momentum ( ) of the particle.
void addEflowRec_Neutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_neutral PFO to the tau
bool hasDiscriminant(TauJetParameters::TauID discID) const
Check if class contains requested discriminant.
double etaIntermediateAxis() const
void setTrackFilterPass(unsigned int numTrack, int pass)
double phiIntermediateAxis() const
double phiDetectorAxis() const
void clearCellBased_Pi0_PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
float trackPhiStrip(unsigned int numTrack) const
const Vertex * secondaryVertex() const
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
void addConversionTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
void clearHadronic_PFOLinks()
Remove all hadronic PFOs from the tau.
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
const PFO * cellBased_Charged_PFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
const PFO * neutral_PFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
double etaJetSeed() const
void addCharged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
const PFO * eflowRec_Charged_PFO(size_t i) const
Get the pointer to a given eflowRec_charged PFO associated with this tau.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
size_t nCharged_PFOs() const
Get the number of charged PFO particles associated with this tau.
virtual double phi() const
The azimuthal angle ( ) of the particle.
double ptTauEnergyScale() const
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
void clearCharged_PFOLinks()
Remove all charged PFOs from the tau.
float trackEtaStrip(unsigned int numTrack) const
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
size_t nEflowRec_Charged_PFOs() const
Get the number of eflowRec_charged PFO particles associated with this tau.
size_t nEflowRec_Pi0_PFOs() const
Get the number of eflowRec_pi0 PFO particles associated with this tau.
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
double phiTauEtaCalib() const
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
double phiTauEnergyScale() const
double mPanTauCellBasedProto() const
const PFO * cellBased_Neutral_PFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
double mPanTauCellBased() const
const PFO * shot_PFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
const PFO * eflowRec_Neutral_PFO(size_t i) const
Get the pointer to a given eflowRec_neutral PFO associated with this tau.
double mTauEnergyScale() const
const PFO * cellBased_Pi0_PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
double mDetectorAxis() const
void clearNeutral_PFOLinks()
Remove all neutral PFOs from the tau.
const PFO * pi0_PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
ElementLink< xAOD::VertexContainer > VertexLink_t
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
size_t nShot_PFOs() const
Get the number of shot PFO particles associated with this tau.
size_t nCellBased_Neutral_PFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
void addPi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
virtual double rapidity() const
The true rapidity (y) of the particle.
void addNeutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
double ptIntermediateAxis() const
double etaTauEtaCalib() const
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
void addShot_PFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
double etaPanTauCellBasedProto() const
size_t nPi0_PFOs() const
Get the number of pi0 PFO particles associated with this tau.
virtual double e() const
The total energy of the particle.
void clearEflowRec_Neutral_PFOLinks()
Remove all eflowRec_neutral PFOs from the tau.
double ptPanTauCellBased() const
void clearConversionTrackLinks()
Remove all tracks from the tau.
size_t nCellBased_Pi0_PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
int trackFilterPass(unsigned int numTrack) const
void clearEflowRec_Pi0_PFOLinks()
Remove all eflowRec_pi0 PFOs from the tau.
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
void clearPi0_PFOLinks()
Remove all pi0 PFOs from the tau.
void addEflowRec_Charged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_charged PFO to the tau
double ptDetectorAxis() const
size_t nWideTracks() const
Get the number of track particles associated with this tau.
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
void setDetail(TauJetParameters::Detail detail, int value)
void clearTrackLinks()
Remove all tracks from the tau.
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
void addCellBased_Neutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
const PFO * hadronic_PFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
double mIntermediateAxis() const
double mTauEtaCalib() const
double ptPanTauCellBasedProto() const
virtual double m() const
The invariant mass of the particle.
double etaPanTauCellBased() const
size_t nNeutral_PFOs() const
Get the number of neutral PFO particles associated with this tau.
void clearCellBased_Neutral_PFOLinks()
Remove all cellbased_neutral PFOs from the tau.
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
size_t nHadronic_PFOs() const
Get the number of hadronic PFO particles associated with this tau.
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
const Vertex * vertex() const
const PFO * eflowRec_Pi0_PFO(size_t i) const
Get the pointer to a given eflowRec_pi0 PFO associated with this tau.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
void clearShot_PFOLinks()
Remove all shot PFOs from the tau.
double etaDetectorAxis() const
ElementLink< xAOD::JetContainer > JetLink_t
virtual double eta() const
The pseudorapidity ( ) of the particle.
void addCellBased_Charged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
TauCalibType
Enum for tau calib type.
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
VetoFlags
Enum for Veto flags.
TauID
Enum for discriminants.
IsTauFlag
Enum for IsTau flags.
const SG::Accessor< int > * panTauDetailsAccessorV1< int >(xAOD::TauJetParameters::PanTauDetails detail)
const SG::Accessor< float > * detailsAccessorV1< float >(xAOD::TauJetParameters::Detail detail)
const SG::Accessor< float > * panTauDetailsAccessorV1< float >(xAOD::TauJetParameters::PanTauDetails detail)
const SG::Accessor< int > * detailsAccessorV1< int >(xAOD::TauJetParameters::Detail detail)
const SG::Accessor< float > * discriminantAccessorV1(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Jet_v1 Jet
Definition of the current "jet version".
setStrategy setMatchFlag ElementLink< TrackParticleContainer >
static const SG::AuxElement::Accessor< Vertex_v1::TrackParticleLinks_t > trackAcc("trackParticleLinks")
Accessor for the track links.
setRcore setEtHad setFside pt
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
setBGCode setTAP setLVL2ErrorBits bool
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)