|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
  174     std::string calibString = 
"";
 
  181       accTauPtCalib( *
this )=
pt;
 
  182       accTauEtaCalib( *
this )=
eta;
 
  183       accTauPhiCalib( *
this )=
phi;
 
  184       accTauMCalib( *
this )=
m;
 
  207     return acc != 
nullptr;
 
  217     if( ! acc ) 
return -1111.0;
 
  220     return ( *acc )( *this );
 
  238       std::bitset<32> isTauFlags( acc( *
this ) );
 
  239       return isTauFlags[
flag];
 
  246       std::bitset<32> isTauFlags( acc( *
this ) );
 
  248       acc( *
this ) = isTauFlags.to_ulong();
 
  258       std::bitset<32> vetoFlags( acc( *
this ) );
 
  260       acc( *
this ) = vetoFlags.to_ulong();
 
  267       std::bitset<32> vetoFlags( acc( *
this ) );
 
  268       return vetoFlags[
flag];
 
  279     if( ! acc ) 
return false;
 
  280     if( ! acc->isAvailable( *
this ) ) 
return false;    
 
  283     value = ( *acc )( *this );
 
  293     if( ! acc ) 
return false;
 
  294     if( ! acc->isAvailable( *
this ) ) 
return false;    
 
  297     value = ( *acc )( *this );
 
  305     ( *( xAODTau::detailsAccessorV2<int>( 
detail ) ) )( *this ) = 
value;
 
  312     ( *( xAODTau::detailsAccessorV2<float>( 
detail ) ) )( *this ) = 
value;
 
  322     if( ! acc ) 
return false;
 
  323     if( ! acc->isAvailable( *
this ) ) 
return false;    
 
  326     value = ( *acc )( *this );
 
  336     if( ! acc ) 
return false;
 
  337     if( ! acc->isAvailable( *
this ) ) 
return false;    
 
  340     value = ( *acc )( *this );
 
  355     ( *( xAODTau::panTauDetailsAccessorV2<float>( 
panTauDetail ) ) )( *this ) = 
value;
 
  368    return ( *trackAcc( *
this )[ 
i ] );
 
  372     return trackAcc( *this ).size();
 
  377    trackAcc( *this ).push_back( tr );
 
  382    trackAcc( *this ).clear();
 
  390     std::vector<uint8_t> 
vec = trackFlags(*
this);
 
  392     while (vec.size() < totalTracks) {
 
  395     for (
unsigned int i = 0 ; 
i < totalTracks ; 
i++) {
 
  398         iterTrack = this->
track(i);
 
  406       if (track == iterTrack) {
 
  407         std::bitset<8> thisTracksFlags(
vec[
i]);
 
  408         return thisTracksFlags[
flag];
 
  417     std::vector<uint8_t> 
vec = trackFlags(*
this);
 
  419     while (vec.size() < totalTracks) {
 
  422     for (
unsigned int i = 0 ; 
i < totalTracks ; 
i++) {
 
  425         iterTrack = this->
track(i);
 
  433       if (track == iterTrack) {
 
  434         std::bitset<8> thisTracksFlags(
vec[
i]);
 
  436         vec[
i] = thisTracksFlags.to_ulong();
 
  439     trackFlags(*
this) = 
vec;
 
  455     const std::vector<float>& 
vec=trackEtaStripAcc(*
this);
 
  456     if (
vec.size()<numTrack+1)
 
  459       return vec[numTrack];
 
  465     std::vector<float>& 
vec=trackEtaStripAcc(*
this);
 
  466     if (
vec.size()<numTrack+1)
 
  467       vec.resize(numTrack+1); 
 
  475     const std::vector<float>& 
vec=trackPhiStripAcc(*
this);
 
  476     if (
vec.size()<numTrack+1)
 
  479       return vec[numTrack];
 
  485     std::vector<float>& 
vec=trackPhiStripAcc(*
this);
 
  486     if (
vec.size()<numTrack+1)
 
  487       vec.resize(numTrack+1); 
 
  502    return ( *wideTrackAcc( *
this )[ 
i ] );
 
  506    return wideTrackAcc( *this ).size();
 
  511    wideTrackAcc( *this ).push_back( tr );
 
  516    wideTrackAcc( *this ).clear();
 
  529    return ( *otherTrackAcc( *
this )[ 
i ] );
 
  533    return otherTrackAcc( *this ).size();
 
  538    otherTrackAcc( *this ).push_back( tr );
 
  543    otherTrackAcc( *this ).clear();
 
  556    return ( *jetAcc( *
this ) );
 
  561     if( jetAcc( *this ).isValid() )
 
  562       jetAcc( *this ).reset();
 
  563     jetAcc( *this ).toContainedElement( *cont, 
jet );
 
  577    return ( *vertexAcc( *
this ) );
 
  582     if( vertexAcc( *this ).isValid() )
 
  583       vertexAcc( *this ).reset();
 
  584     vertexAcc( *this ).toContainedElement( *cont, 
vertex );
 
  593                      setSecondaryVertexLink )
 
  598    return ( *secondaryVertexAcc( *
this ) );
 
  603     if( secondaryVertexAcc( *this ).isValid() )
 
  604       secondaryVertexAcc( *this ).reset();
 
  605     secondaryVertexAcc( *this ).toContainedElement( *cont, 
vertex );
 
  616                      setHadronicPFOLinks )
 
  623    return ( *hadronicPFOAcc( *
this )[ 
i ] );
 
  627    return hadronicPFOAcc( *this ).size();
 
  632    hadronicPFOAcc( *this ).push_back( pfo );
 
  637    hadronicPFOAcc( *this ).clear();
 
  652    return ( *shotPFOAcc( *
this )[ 
i ] );
 
  656    return shotPFOAcc( *this ).size();
 
  661    shotPFOAcc( *this ).push_back( pfo );
 
  666    shotPFOAcc( *this ).clear();
 
  682    return ( *chargedPFOAcc( *
this )[ 
i ] );
 
  686    return chargedPFOAcc( *this ).size();
 
  691    chargedPFOAcc( *this ).push_back( pfo );
 
  696    chargedPFOAcc( *this ).clear();
 
  713    return ( *neutralPFOAcc( *
this )[ 
i ] );
 
  717    return neutralPFOAcc( *this ).size();
 
  722    neutralPFOAcc( *this ).push_back( pfo );
 
  727    neutralPFOAcc( *this ).clear();
 
  744    return ( *pi0PFOAcc( *
this )[ 
i ] );
 
  748    return pi0PFOAcc( *this ).size();
 
  753    pi0PFOAcc( *this ).push_back( pfo );
 
  758    pi0PFOAcc( *this ).clear();
 
  770                      protoChargedPFOLinks,
 
  771                      setProtoChargedPFOLinks )
 
  778    return ( *protoChargedPFOAcc( *
this )[ 
i ] );
 
  782    return protoChargedPFOAcc( *this ).size();
 
  787    protoChargedPFOAcc( *this ).push_back( pfo );
 
  792    protoChargedPFOAcc( *this ).clear();
 
  800                      protoNeutralPFOLinks,
 
  801                      setProtoNeutralPFOLinks )
 
  808    return ( *protoNeutralPFOAcc( *
this )[ 
i ] );
 
  812    return protoNeutralPFOAcc( *this ).size();
 
  817    protoNeutralPFOAcc( *this ).push_back( pfo );
 
  822    protoNeutralPFOAcc( *this ).clear();
 
  832                      setProtoPi0PFOLinks )
 
  839    return ( *protoPi0PFOAcc( *
this )[ 
i ] );
 
  843    return protoPi0PFOAcc( *this ).size();
 
  848    protoPi0PFOAcc( *this ).push_back( pfo );
 
  853    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
const SG::Accessor< float > * discriminantAccessorV2(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
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
bool ptIntermediateAxis(const xAOD::TauJet &tau, float &out)
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
Scalar eta() const
pseudorapidity method
double ptTauEtaCalib() const
bool ptDetectorAxis(const xAOD::TauJet &tau, float &out)
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.
GenVecFourMom_t genvecP4(float qOverP, float thetaT, float phiT, double m)
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
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.
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
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