|
ATLAS Offline Software
|
Go to the documentation of this file.
97 return genvecP4().E();
196 std::string calibString =
"";
203 accTauPtCalib( *
this )=
pt;
204 accTauEtaCalib( *
this )=
eta;
205 accTauPhiCalib( *
this )=
phi;
206 accTauMCalib( *
this )=
m;
229 return acc !=
nullptr;
239 if( ! acc )
return -1111.0;
242 return ( *acc )( *this );
260 std::bitset<32> isTauFlags( acc( *
this ) );
261 return isTauFlags[
flag];
268 std::bitset<32> isTauFlags( acc( *
this ) );
270 acc( *
this ) = isTauFlags.to_ulong();
280 std::bitset<32> vetoFlags( acc( *
this ) );
282 acc( *
this ) = vetoFlags.to_ulong();
289 std::bitset<32> vetoFlags( acc( *
this ) );
290 return vetoFlags[
flag];
301 if( ! acc )
return false;
302 if( ! acc->isAvailable( *
this ) )
return false;
305 value = ( *acc )( *this );
315 if( ! acc )
return false;
316 if( ! acc->isAvailable( *
this ) )
return false;
319 value = ( *acc )( *this );
327 ( *( xAODTau::detailsAccessorV2<int>(
detail ) ) )( *this ) =
value;
334 ( *( xAODTau::detailsAccessorV2<float>(
detail ) ) )( *this ) =
value;
344 if( ! acc )
return false;
345 if( ! acc->isAvailable( *
this ) )
return false;
348 value = ( *acc )( *this );
358 if( ! acc )
return false;
359 if( ! acc->isAvailable( *
this ) )
return false;
362 value = ( *acc )( *this );
377 ( *( xAODTau::panTauDetailsAccessorV2<float>(
panTauDetail ) ) )( *this ) =
value;
390 return ( *trackAcc( *
this )[
i ] );
394 return trackAcc( *this ).size();
399 trackAcc( *this ).push_back( tr );
404 trackAcc( *this ).clear();
412 std::vector<uint8_t>
vec = trackFlags(*
this);
414 while (vec.size() < totalTracks) {
417 for (
unsigned int i = 0 ;
i < totalTracks ;
i++) {
420 iterTrack = this->
track(i);
428 if (track == iterTrack) {
429 std::bitset<8> thisTracksFlags(
vec[
i]);
430 return thisTracksFlags[
flag];
439 std::vector<uint8_t>
vec = trackFlags(*
this);
441 while (vec.size() < totalTracks) {
444 for (
unsigned int i = 0 ;
i < totalTracks ;
i++) {
447 iterTrack = this->
track(i);
455 if (track == iterTrack) {
456 std::bitset<8> thisTracksFlags(
vec[
i]);
458 vec[
i] = thisTracksFlags.to_ulong();
461 trackFlags(*
this) =
vec;
477 const std::vector<float>&
vec=trackEtaStripAcc(*
this);
478 if (
vec.size()<numTrack+1)
481 return vec[numTrack];
487 std::vector<float>&
vec=trackEtaStripAcc(*
this);
488 if (
vec.size()<numTrack+1)
489 vec.resize(numTrack+1);
497 const std::vector<float>&
vec=trackPhiStripAcc(*
this);
498 if (
vec.size()<numTrack+1)
501 return vec[numTrack];
507 std::vector<float>&
vec=trackPhiStripAcc(*
this);
508 if (
vec.size()<numTrack+1)
509 vec.resize(numTrack+1);
524 return ( *wideTrackAcc( *
this )[
i ] );
528 return wideTrackAcc( *this ).size();
533 wideTrackAcc( *this ).push_back( tr );
538 wideTrackAcc( *this ).clear();
551 return ( *otherTrackAcc( *
this )[
i ] );
555 return otherTrackAcc( *this ).size();
560 otherTrackAcc( *this ).push_back( tr );
565 otherTrackAcc( *this ).clear();
578 return ( *jetAcc( *
this ) );
583 if( jetAcc( *this ).isValid() )
584 jetAcc( *this ).reset();
585 jetAcc( *this ).toContainedElement( *cont,
jet );
599 return ( *vertexAcc( *
this ) );
604 if( vertexAcc( *this ).isValid() )
605 vertexAcc( *this ).reset();
606 vertexAcc( *this ).toContainedElement( *cont,
vertex );
615 setSecondaryVertexLink )
620 return ( *secondaryVertexAcc( *
this ) );
625 if( secondaryVertexAcc( *this ).isValid() )
626 secondaryVertexAcc( *this ).reset();
627 secondaryVertexAcc( *this ).toContainedElement( *cont,
vertex );
638 setHadronicPFOLinks )
645 return ( *hadronicPFOAcc( *
this )[
i ] );
649 return hadronicPFOAcc( *this ).size();
654 hadronicPFOAcc( *this ).push_back( pfo );
659 hadronicPFOAcc( *this ).clear();
674 return ( *shotPFOAcc( *
this )[
i ] );
678 return shotPFOAcc( *this ).size();
683 shotPFOAcc( *this ).push_back( pfo );
688 shotPFOAcc( *this ).clear();
704 return ( *chargedPFOAcc( *
this )[
i ] );
708 return chargedPFOAcc( *this ).size();
713 chargedPFOAcc( *this ).push_back( pfo );
718 chargedPFOAcc( *this ).clear();
735 return ( *neutralPFOAcc( *
this )[
i ] );
739 return neutralPFOAcc( *this ).size();
744 neutralPFOAcc( *this ).push_back( pfo );
749 neutralPFOAcc( *this ).clear();
766 return ( *pi0PFOAcc( *
this )[
i ] );
770 return pi0PFOAcc( *this ).size();
775 pi0PFOAcc( *this ).push_back( pfo );
780 pi0PFOAcc( *this ).clear();
792 protoChargedPFOLinks,
793 setProtoChargedPFOLinks )
800 return ( *protoChargedPFOAcc( *
this )[
i ] );
804 return protoChargedPFOAcc( *this ).size();
809 protoChargedPFOAcc( *this ).push_back( pfo );
814 protoChargedPFOAcc( *this ).clear();
822 protoNeutralPFOLinks,
823 setProtoNeutralPFOLinks )
830 return ( *protoNeutralPFOAcc( *
this )[
i ] );
834 return protoNeutralPFOAcc( *this ).size();
839 protoNeutralPFOAcc( *this ).push_back( pfo );
844 protoNeutralPFOAcc( *this ).clear();
854 setProtoPi0PFOLinks )
861 return ( *protoPi0PFOAcc( *
this )[
i ] );
865 return protoPi0PFOAcc( *this ).size();
870 protoPi0PFOAcc( *this ).push_back( pfo );
875 protoPi0PFOAcc( *this ).clear();
void setTrackEtaStrip(unsigned int numTrack, float eta)
TauTrackFlag
Enum for tau track flags.
void clearProtoChargedPFOLinks()
Remove all cellbased_charged PFOs from the tau.
const PFO * protoNeutralPFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
void addNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
double ptTauEnergyScale() const
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
TauJet_v2()
Default constructor.
size_t nProtoNeutralPFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
double mDetectorAxis() const
double phiTauEtaCalib() const
double etaTauEtaCalib() const
void clearOtherTrackLinks()
Remove all tracks from the tau.
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
double etaTrigCaloOnly() const
VetoFlags
Enum for Veto flags.
size_t nProtoChargedPFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
const Vertex * vertex() const
void clearHadronicPFOLinks()
Remove all hadronic PFOs from the tau.
void addProtoChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
double ptTauEtaCalib() const
double mTrigCaloOnly() const
size_t nHadronicPFOs() const
Get the number of hadronic PFO particles associated with this tau.
double ptPanTauCellBasedProto() const
void setTrackPhiStrip(unsigned int numTrack, float phi)
double mTauEnergyScale() const
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
void addChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
double phiTauEnergyScale() const
void addShotPFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
std::vector< size_t > vec
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
setRcore setEtHad setFside pt
size_t nChargedPFOs() const
Get the number of charged PFO particles associated with this tau.
TauID
Enum for discriminants.
const PFO * pi0PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
Class providing the definition of the 4-vector interface.
const PFO * shotPFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
const SG::AuxElement::Accessor< float > * discriminantAccessorV2(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
double phiPanTauCellBased() const
TLorentzVector FourMom_t
Definition of the 4-momentum type.
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
double etaIntermediateAxis() const
double ptIntermediateAxis() const
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
size_t nPi0PFOs() const
Get the number of pi0 PFO particles associated with this tau.
void addPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
const PFO * protoPi0PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
const PFO * protoChargedPFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
size_t nShotPFOs() const
Get the number of shot PFO particles associated with this tau.
double phiJetSeed() const
TauCalibType
Enum for tau calib type.
virtual double pt() const
The transverse momentum ( ) of the particle.
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
double etaPanTauCellBased() const
double ptDetectorAxis() const
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
const PFO * neutralPFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
size_t nNeutralPFOs() const
Get the number of neutral PFO particles associated with this tau.
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
void setDetail(TauJetParameters::Detail detail, int value)
Class describing a tau jet.
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
double mTauEtaCalib() const
void setTrackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag, bool value)
size_t nWideTracks() const
Get the number of track particles associated with this tau.
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
double etaTauEnergyScale() const
void addProtoNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
ElementLink implementation for ROOT usage.
double etaDetectorAxis() const
void clearChargedPFOLinks()
Remove all charged PFOs from the tau.
void clearTrackLinks()
Remove all tracks from the tau.
void clearWideTrackLinks()
Remove all tracks from the tau.
double mIntermediateAxis() const
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
bool trackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag) const
virtual double m() const
The invariant mass of the particle.
double mPanTauCellBased() const
void clearPi0PFOLinks()
Remove all pi0 PFOs from the tau.
void clearProtoNeutralPFOLinks()
Remove all cellbased_neutral PFOs from the tau.
double phiTrigCaloOnly() const
double etaPanTauCellBasedProto() const
virtual double eta() const
The pseudorapidity ( ) of the particle.
const PFO * hadronicPFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
double phiIntermediateAxis() const
Class describing a Vertex.
double ptPanTauCellBased() const
const Vertex * secondaryVertex() const
virtual double rapidity() const
The true rapidity (y) of the particle.
size_t nProtoPi0PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
IsTauFlag
Enum for IsTau flags.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
@ Tau
The object is a tau (jet)
double phiDetectorAxis() const
void addProtoPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
double ptTrigCaloOnly() const
Class describing a TrackParticle.
void addHadronicPFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
void clearShotPFOLinks()
Remove all shot PFOs from the tau.
double etaJetSeed() const
ObjectType
Type of objects that have a representation in the xAOD EDM.
setBGCode setTAP setLVL2ErrorBits bool
double mPanTauCellBasedProto() const
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
virtual double phi() const
The azimuthal angle ( ) of the particle.
float trackPhiStrip(unsigned int numTrack) const
void clearProtoPi0PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
const PFO * chargedPFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
double phiPanTauCellBasedProto() const
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1