 |
ATLAS Offline Software
|
Go to the documentation of this file.
79 return genvecP4().E();
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 ) );
238 acc( *
this ) = isTauFlags.to_ulong();
248 std::bitset<32> vetoFlags( acc( *
this ) );
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 );
295 ( *( xAODTau::detailsAccessorV1<int>(
detail ) ) )( *this ) =
value;
302 ( *( xAODTau::detailsAccessorV1<float>(
detail ) ) )( *this ) =
value;
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 );
345 ( *( xAODTau::panTauDetailsAccessorV1<float>(
panTauDetail ) ) )( *this ) =
value;
362 return ( *trackAcc( *
this )[
i ] );
366 return trackAcc( *this ).size();
371 trackAcc( *this ).push_back( tr );
376 trackAcc( *this ).clear();
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();
double etaPanTauCellBasedProto() const
size_t nEflowRec_Charged_PFOs() const
Get the number of eflowRec_charged PFO particles associated with this tau.
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
double phiTauEnergyScale() const
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
virtual double rapidity() const
The true rapidity (y) of the particle.
size_t nTracks() const
Get the number of track particles associated with this tau.
double ptPanTauCellBasedProto() const
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void addShot_PFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
VetoFlags
Enum for Veto flags.
double etaPanTauCellBased() const
size_t nEflowRec_Neutral_PFOs() const
Get the number of eflowRec_neutral PFO particles associated with this tau.
double etaJetSeed() const
double etaIntermediateAxis() const
double mDetectorAxis() const
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
void clearEflowRec_Charged_PFOLinks()
Remove all eflowRec_charged PFOs from the tau.
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
void clearHadronic_PFOLinks()
Remove all hadronic PFOs from the tau.
void addEflowRec_Charged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_charged PFO to the tau
const PFO * eflowRec_Pi0_PFO(size_t i) const
Get the pointer to a given eflowRec_pi0 PFO associated with this tau.
const PFO * cellBased_Pi0_PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
double mTauEtaCalib() const
void clearOtherTrackLinks()
Remove all tracks from the tau.
double phiDetectorAxis() const
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
const Vertex * vertex() const
std::vector< size_t > vec
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
void addCharged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
size_t nShot_PFOs() const
Get the number of shot PFO particles associated with this tau.
double mPanTauCellBasedProto() const
setRcore setEtHad setFside pt
TauID
Enum for discriminants.
Class providing the definition of the 4-vector interface.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
double ptTauEnergyScale() const
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
Class describing a tau jet.
void addEflowRec_Pi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_pi0 PFO to the tau
void clearShot_PFOLinks()
Remove all shot PFOs from the tau.
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void setTrackPhiStrip(unsigned int numTrack, float phi)
TLorentzVector FourMom_t
Definition of the 4-momentum type.
void clearEflowRec_Pi0_PFOLinks()
Remove all eflowRec_pi0 PFOs from the tau.
void addConversionTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
virtual double m() const
The invariant mass of the particle.
void addNeutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
const PFO * cellBased_Charged_PFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
double mTauEnergyScale() const
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
const TrackParticle * conversionTrack(size_t i) const
Get the pointer to a given track associated with this tau.
double ptDetectorAxis() const
void clearCellBased_Neutral_PFOLinks()
Remove all cellbased_neutral PFOs from the tau.
double ptIntermediateAxis() const
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)
double mPanTauCellBased() const
void addCellBased_Neutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
TauCalibType
Enum for tau calib type.
size_t nPi0_PFOs() const
Get the number of pi0 PFO particles associated with this tau.
void setTrackFilterPass(unsigned int numTrack, int pass)
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
double phiPanTauCellBased() const
void clearConversionTrackLinks()
Remove all tracks from the tau.
double mIntermediateAxis() const
void setDetail(TauJetParameters::Detail detail, int value)
double phiIntermediateAxis() const
double phiJetSeed() const
double ptPanTauCellBased() const
double etaTauEnergyScale() const
size_t nCellBased_Pi0_PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
virtual double pt() const
The transverse momentum ( ) of the particle.
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
size_t nEflowRec_Pi0_PFOs() const
Get the number of eflowRec_pi0 PFO particles associated with this tau.
size_t nCellBased_Charged_PFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
void clearCellBased_Pi0_PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
virtual double eta() const
The pseudorapidity ( ) of the particle.
size_t nWideTracks() const
Get the number of track particles associated with this tau.
ElementLink implementation for ROOT usage.
double etaTauEtaCalib() const
const PFO * eflowRec_Charged_PFO(size_t i) const
Get the pointer to a given eflowRec_charged PFO associated with this tau.
TauJet_v1()
Default constructor.
const PFO * cellBased_Neutral_PFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
void clearWideTrackLinks()
Remove all tracks from the tau.
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
const PFO * shot_PFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
void clearTrackLinks()
Remove all tracks from the tau.
void addEflowRec_Neutral_PFOLink(const ElementLink< PFOContainer > &pfo)
add a eflowRec_neutral PFO to the tau
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
double phiTauEtaCalib() const
void clearCharged_PFOLinks()
Remove all charged PFOs from the tau.
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
double etaDetectorAxis() const
void setTrackEtaStrip(unsigned int numTrack, float eta)
const PFO * neutral_PFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
void clearNeutral_PFOLinks()
Remove all neutral PFOs from the tau.
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Class describing a Vertex.
void addPi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
void addHadronic_PFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
virtual double phi() const
The azimuthal angle ( ) of the particle.
size_t nCellBased_Neutral_PFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
const PFO * hadronic_PFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
IsTauFlag
Enum for IsTau flags.
const PFO * eflowRec_Neutral_PFO(size_t i) const
Get the pointer to a given eflowRec_neutral PFO associated with this tau.
double ptTauEtaCalib() const
@ Tau
The object is a tau (jet)
const PFO * charged_PFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
size_t nConversionTracks() const
Get the number of track particles associated with this tau.
Class describing a TrackParticle.
size_t nCharged_PFOs() const
Get the number of charged PFO particles associated with this tau.
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
float trackPhiStrip(unsigned int numTrack) const
ObjectType
Type of objects that have a representation in the xAOD EDM.
void clearCellBased_Charged_PFOLinks()
Remove all cellbased_charged PFOs from the tau.
setBGCode setTAP setLVL2ErrorBits bool
void addCellBased_Pi0_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
const PFO * pi0_PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
int trackFilterPass(unsigned int numTrack) const
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....
void addCellBased_Charged_PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
void clearPi0_PFOLinks()
Remove all pi0 PFOs from the tau.
void clearEflowRec_Neutral_PFOLinks()
Remove all eflowRec_neutral PFOs from the tau.
size_t nNeutral_PFOs() const
Get the number of neutral PFO particles associated with this tau.
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
size_t nHadronic_PFOs() const
Get the number of hadronic PFO particles associated with this tau.
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
double phiPanTauCellBasedProto() const
const Vertex * secondaryVertex() const