20#ifndef TAU1P3P_DETAILS_ANALYSIS_H
21#define TAU1P3P_DETAILS_ANALYSIS_H
24#include "CLHEP/Geometry/Vector3D.h"
25#include "CLHEP/Vector/LorentzVector.h"
27#include "AthLinks/ElementLink.h"
28#include "AthLinks/ElementLinkVector.h"
29#include "CaloEvent/CaloClusterContainer.h"
55 virtual const std::string&
className()
const override;
60 virtual double parameter( TauJetParameters :: Detail
detail )
const override;
86 const CLHEP::HepLorentzVector &
sumEM()
const;
250 const Trk :: RecVertex *
secVertex()
const;
361 inline double Tau1P3PDetails :: emRadius()
const
366 inline void Tau1P3PDetails :: setEMRadius(
double emRadius )
371 inline double Tau1P3PDetails :: isolationFraction()
const
381 inline const CLHEP::HepLorentzVector &Tau1P3PDetails :: sumEM()
const
386 inline void Tau1P3PDetails :: setSumEM(
const CLHEP::HepLorentzVector &
sumEM )
391 inline double Tau1P3PDetails :: stripWidth2()
const
396 inline void Tau1P3PDetails :: setStripWidth2(
double stripWidth2 )
401 inline int Tau1P3PDetails :: numStripCells()
const
411 inline double Tau1P3PDetails :: etChrgHAD()
const
416 inline void Tau1P3PDetails :: setETChrgHAD(
double etChrgHAD )
421 inline double Tau1P3PDetails :: etIsolEM()
const
426 inline void Tau1P3PDetails :: setETIsolEM(
double etIsolEM )
431 inline double Tau1P3PDetails :: etIsolHAD()
const
436 inline void Tau1P3PDetails :: setETIsolHAD(
double etIsolHAD )
441 inline int Tau1P3PDetails :: nAssocTracksCore()
const
451 inline int Tau1P3PDetails :: nAssocTracksIsol()
const
461 inline double Tau1P3PDetails :: massTrk3P()
const
466 inline void Tau1P3PDetails :: setMassTrk3P(
double massTrk3P )
471 inline double Tau1P3PDetails :: rWidth2Trk3P()
const
481 inline double Tau1P3PDetails :: signD0Trk3P()
const
486 inline void Tau1P3PDetails :: setSignD0Trk3P(
double signD0Trk3P )
491 inline double Tau1P3PDetails :: z0SinThetaSig()
const
501 inline double Tau1P3PDetails :: etChrgHADoverPttot()
const
511 inline double Tau1P3PDetails :: etIsolFrac()
const
516 inline void Tau1P3PDetails :: setEtIsolFrac(
double etIsolFrac )
521 inline double Tau1P3PDetails :: etEflow()
const
526 inline void Tau1P3PDetails :: setETeflow(
double etEflow )
531 inline double Tau1P3PDetails :: etHadAtEMScale()
const
541 inline double Tau1P3PDetails :: etEMAtEMScale()
const
551 inline double Tau1P3PDetails :: etEMCL()
const
556 inline void Tau1P3PDetails :: setETEMCL(
double etEMCL )
561 inline double Tau1P3PDetails :: etChrgEM()
const
566 inline void Tau1P3PDetails :: setETChrgEM(
double etChrgEM )
571 inline double Tau1P3PDetails :: etNeuEM()
const
576 inline void Tau1P3PDetails :: setETNeuEM(
double etNeuEM )
581 inline double Tau1P3PDetails :: etResNeuEM()
const
586 inline void Tau1P3PDetails :: setETResNeuEM(
double etResNeuEM )
591 inline double Tau1P3PDetails :: etChrgEM01Trk(
unsigned tr )
const
600 inline void Tau1P3PDetails :: setETChrgEM01Trk(
unsigned tr,
double etChrgEM01Trk )
606 inline void Tau1P3PDetails :: resizeETChrgEM01Trk(
size_t sz )
616 inline double Tau1P3PDetails :: etResChrgEMTrk(
unsigned tr )
const
623 inline void Tau1P3PDetails :: setETResChrgEMTrk(
unsigned tr,
double etResChrgEMTrk )
629 inline void Tau1P3PDetails :: resizeETResChrgEMTrk(
size_t sz )
639 inline const Trk :: RecVertex *Tau1P3PDetails :: secVertex()
const
644 inline void Tau1P3PDetails :: setSecVertex(
const Trk :: RecVertex *
secVertex )
652 inline unsigned Tau1P3PDetails :: numPi0()
const
657 inline const CaloCluster *Tau1P3PDetails :: pi0(
unsigned num )
const
672 link.setElement(
pi0 );
674 link.toContainedElement( *cont,
pi0 );
675 m_pi0.push_back( link );
682 inline const CaloCluster *Tau1P3PDetails :: cellEM012Cluster()
const
713 inline double Tau1P3PDetails :: trFlightPathSig()
const
724 inline void Tau1P3PDetails :: setSumEtCellsLArOverLeadTrackPt(
double SumEtCellsLArOverLeadTrackPt )
729 inline double Tau1P3PDetails :: sumEtCellsLArOverLeadTrackPt()
const
734 inline void Tau1P3PDetails :: setHadronicLeak(
double HadronicLeak )
739 inline double Tau1P3PDetails :: hadronicLeak()
const
744 inline void Tau1P3PDetails :: setSecondaryMax(
double SecondaryMax )
749 inline double Tau1P3PDetails :: secondaryMax()
const
Declaration of tau details base class.
friend class TauJet
Definition of the current "tau version".
std ::vector< double > m_etResChrgEMTrk
double etChrgEM() const
Transverse energy of EM cells (at EM scale) classified as "charged electromagnetic" collected in narr...
void setETEMAtEMScale(double etEMAtEMScale)
const ElementLink< CaloClusterContainer > cellEM012ClusterLink() const
ElementLinks to CaloClusters
void setEtIsolFrac(double etIsolFrac)
void setETIsolHAD(double etIsolHad)
double secondaryMax() const
secondary maximum
double etNeuEM() const
Transverse energy of EM cells (at EM scale), within "core" cone around tau1P3P axis after subtraction...
void setSumEM(const CLHEP::HepLorentzVector &sumEM)
void setETChrgEM01Trk(unsigned tr, double etChrgEM01Trk)
double massTrk3P() const
Invariant mass of the tracks system.
void setETResNeuEM(double etResNeuEM)
Tau1P3PDetails & operator=(const Tau1P3PDetails &rhs)
ElementLinkVector< CaloClusterContainer > m_pi0
double hadronicLeak() const
hadronic leakage in Et summed over cells
double etChrgHAD() const
Charged transverse energy in narrow window around track(s) in HAD calo.
int nAssocTracksIsol() const
Associated tracks in isolation region.
double etResChrgEMTrk(unsigned tr) const
Correction term for eflow calculations (evaluated for each track separately).
double etResNeuEM() const
Correction term for eflow calculations.
void setTrFlightPathSig(double trFlightPathSig)
virtual const std::string & className() const override
void setETResChrgEMTrk(unsigned tr, double etResChrgEMTrk)
void resizeETResChrgEMTrk(size_t sz)
CLHEP::HepLorentzVector m_sumEM
void setETIsolEM(double etIsolEM)
std ::vector< double > m_etChrgEM01Trk
std::unique_ptr< Trk::RecVertex > m_secVertex
~Tau1P3PDetails() override
void setIsolationFraction(double isolationFraction)
const CLHEP::HepLorentzVector & sumEM() const
EM part of the energy.
void setETChrgEM(double etChrgEM)
double isolationFraction() const
Ratio of the uncalibrated transverse energy within dR < 0.1 and dR < 0.2.
double sumEtCellsLArOverLeadTrackPt() const
Ratio of sum Et of LAr Cells to the pT of leading track.
void setEtChrgHADoverPttot(double etChrgHADoverPttot)
void setZ0SinThetaSig(double z0SinThetaSig)
double etIsolEM() const
Transverse energy in EM calo (at EM Scale) in 0.2 < dR < 0.4.
double etChrgHADoverPttot() const
charged hadronic transverse energy over sum of transverse momenta of all tracks
double stripWidth2() const
Uncalibrated transverse energy weighted width in the strip layer within dR < 0.2.
double etIsolHAD() const
Transverse energy in HAD calo (at EM Scale) in 0.2 < dR < 0.4.
int nAssocTracksCore() const
Associated, "not good" quality tracks in core region.
double rWidth2Trk3P() const
Width of tracks momenta.
double signD0Trk3P() const
signed transverse impact parameter
double etIsolFrac() const
Ratio of Transverse Energy in 0.2 < dr < 0.4 to total transverse energy at EM scale.
void setETEMCL(double etEMCL)
double etHadAtEMScale() const
Had energy at the EM scale.
void setNAssocTracksCore(int nAssocTracksCore)
int numStripCells() const
Number of Strip cells within dR < 0.2, with E > m_stripEthr.
double trFlightPathSig() const
Transverse flight path significance for taus with at least 2 associated tracks.
void setRWidth2Trk3P(double rWidth2Trk3P)
virtual double parameter(TauJetParameters ::Detail detail) const override
Generic parameter accessors - for old AOD compatibility.
void setEMRadius(double EMRadius)
void setSecVertex(const Trk ::RecVertex *secVertex)
Secondary vertex reconstructed with Vtx::FastFit tool for taus with at least 2 associated tracks.
void setHadronicLeak(double HadronicLeak)
const CaloCluster * pi0(unsigned num) const
access pi0 clusters
virtual bool hasParameter(TauJetParameters ::Detail detail) const override
check if parameter exists
void addPi0(const CaloCluster *pi0, const CaloClusterContainer *pi0a)
add pi0 cluster to the cluster container
void setSumEtCellsLArOverLeadTrackPt(double SumEtCellsLArOverLeadTrackPt)
double emRadius() const
Uncalibrated transverse energy weighted radius in the Presampler + EM1 + EM2 within dR < 0....
double etEMAtEMScale() const
EM energy at the EM scale.
void setETHadAtEMScale(double etHadAtEMScale)
double m_sumEtCellsLArOverLeadTrackPt
void setETChrgHAD(double etChrgHAD)
void setNumStripCells(int numStripCells)
void setCellEM012ClusterLink(const ElementLink< CaloClusterContainer > &x)
void addETResChrgEMTrk(double etResChrgEMTrk)
add transverse energy of track (for eflow correction) to vector
void setNAssocTracksIsol(int nAssocTracksIsol)
void setETNeuEM(double etNeuEM)
double z0SinThetaSig() const
Significance of z0SinTheta.
static const std::string s_className
ElementLinkVector< CaloClusterContainer > & pi0LinkVector()
Get Pi0 Link.
void setCellEM012Cluster(const CaloClusterContainer *cont, const CaloCluster *clust)
void setMassTrk3P(double massTrk3P)
double m_etChrgHADoverPttot
void setSecondaryMax(double SecondaryMax)
const Trk::RecVertex * secVertex() const
const CaloCluster * cellEM012Cluster() const
cells used for candidate building, only EM calorimeter, without 3rd sampling
void resizeETChrgEM01Trk(size_t sz)
double etEMCL() const
Transverse energy of cells classified as "pure electromagnetic" seeded by egamma or topo cluster (ste...
void addETChrgEM01Trk(double etChrgEM01Trk)
add transverse energy of track for EM layers 0 1 only
void setSignD0Trk3P(double signD0Trk3P)
void setETeflow(double etEflow)
friend class Tau1P3PDetailsCnv_p1
double etEflow() const
ET from energy flow.
unsigned numPi0() const
number of pi0 clusters
double etChrgEM01Trk(unsigned tr) const
Transverse energy in narrow window around the track(s), EM layers 0 1 only.
void setStripWidth2(double stripWidth2)
ElementLink< CaloClusterContainer > m_cellEM012Cluster
TauDetails()
Default constructor.
Storable container for CaloCluster.
Principal data class for CaloCell clusters.
ElementLinkVector implementation for standalone ROOT.
ElementLink implementation for ROOT usage.
The namespace of all packages in PhysicsAnalysis/JetTagging.