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"
58 virtual const std::string&
className()
const;
89 const CLHEP::HepLorentzVector &
sumEM()
const;
253 const Trk :: RecVertex *
secVertex()
const;
364 inline double Tau1P3PDetails :: emRadius()
const
369 inline void Tau1P3PDetails :: setEMRadius(
double emRadius )
374 inline double Tau1P3PDetails :: isolationFraction()
const
384 inline const CLHEP::HepLorentzVector &Tau1P3PDetails :: sumEM()
const
389 inline void Tau1P3PDetails :: setSumEM(
const CLHEP::HepLorentzVector &
sumEM )
394 inline double Tau1P3PDetails :: stripWidth2()
const
399 inline void Tau1P3PDetails :: setStripWidth2(
double stripWidth2 )
404 inline int Tau1P3PDetails :: numStripCells()
const
414 inline double Tau1P3PDetails :: etChrgHAD()
const
419 inline void Tau1P3PDetails :: setETChrgHAD(
double etChrgHAD )
424 inline double Tau1P3PDetails :: etIsolEM()
const
429 inline void Tau1P3PDetails :: setETIsolEM(
double etIsolEM )
434 inline double Tau1P3PDetails :: etIsolHAD()
const
439 inline void Tau1P3PDetails :: setETIsolHAD(
double etIsolHAD )
444 inline int Tau1P3PDetails :: nAssocTracksCore()
const
454 inline int Tau1P3PDetails :: nAssocTracksIsol()
const
464 inline double Tau1P3PDetails :: massTrk3P()
const
469 inline void Tau1P3PDetails :: setMassTrk3P(
double massTrk3P )
474 inline double Tau1P3PDetails :: rWidth2Trk3P()
const
484 inline double Tau1P3PDetails :: signD0Trk3P()
const
489 inline void Tau1P3PDetails :: setSignD0Trk3P(
double signD0Trk3P )
494 inline double Tau1P3PDetails :: z0SinThetaSig()
const
504 inline double Tau1P3PDetails :: etChrgHADoverPttot()
const
514 inline double Tau1P3PDetails :: etIsolFrac()
const
519 inline void Tau1P3PDetails :: setEtIsolFrac(
double etIsolFrac )
524 inline double Tau1P3PDetails :: etEflow()
const
529 inline void Tau1P3PDetails :: setETeflow(
double etEflow )
534 inline double Tau1P3PDetails :: etHadAtEMScale()
const
544 inline double Tau1P3PDetails :: etEMAtEMScale()
const
554 inline double Tau1P3PDetails :: etEMCL()
const
559 inline void Tau1P3PDetails :: setETEMCL(
double etEMCL )
564 inline double Tau1P3PDetails :: etChrgEM()
const
569 inline void Tau1P3PDetails :: setETChrgEM(
double etChrgEM )
574 inline double Tau1P3PDetails :: etNeuEM()
const
579 inline void Tau1P3PDetails :: setETNeuEM(
double etNeuEM )
584 inline double Tau1P3PDetails :: etResNeuEM()
const
589 inline void Tau1P3PDetails :: setETResNeuEM(
double etResNeuEM )
594 inline double Tau1P3PDetails :: etChrgEM01Trk(
unsigned tr )
const
603 inline void Tau1P3PDetails :: setETChrgEM01Trk(
unsigned tr,
double etChrgEM01Trk )
609 inline void Tau1P3PDetails :: resizeETChrgEM01Trk(
size_t sz )
619 inline double Tau1P3PDetails :: etResChrgEMTrk(
unsigned tr )
const
626 inline void Tau1P3PDetails :: setETResChrgEMTrk(
unsigned tr,
double etResChrgEMTrk )
632 inline void Tau1P3PDetails :: resizeETResChrgEMTrk(
size_t sz )
642 inline const Trk :: RecVertex *Tau1P3PDetails :: secVertex()
const
647 inline void Tau1P3PDetails :: setSecVertex(
const Trk :: RecVertex *
secVertex )
656 inline unsigned Tau1P3PDetails :: numPi0()
const
661 inline const CaloCluster *Tau1P3PDetails :: pi0(
unsigned num )
const
679 m_pi0.push_back( link );
686 inline const CaloCluster *Tau1P3PDetails :: cellEM012Cluster()
const
717 inline double Tau1P3PDetails :: trFlightPathSig()
const
728 inline void Tau1P3PDetails :: setSumEtCellsLArOverLeadTrackPt(
double SumEtCellsLArOverLeadTrackPt )
733 inline double Tau1P3PDetails :: sumEtCellsLArOverLeadTrackPt()
const
738 inline void Tau1P3PDetails :: setHadronicLeak(
double HadronicLeak )
743 inline double Tau1P3PDetails :: hadronicLeak()
const
748 inline void Tau1P3PDetails :: setSecondaryMax(
double SecondaryMax )
753 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)
Assignment Operator.
virtual double parameter(TauJetParameters ::Detail detail) const
Generic parameter accessors - for old AOD compatibility.
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)
void setETResChrgEMTrk(unsigned tr, double etResChrgEMTrk)
void resizeETResChrgEMTrk(size_t sz)
CLHEP::HepLorentzVector m_sumEM
void setETIsolEM(double etIsolEM)
std ::vector< double > m_etChrgEM01Trk
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.
virtual const std::string & className() const
virtual ~Tau1P3PDetails()
Destructor.
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.
Trk::RecVertex * m_secVertex
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.
Tau1P3PDetails()
Default Constructor.
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)
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
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
virtual bool hasParameter(TauJetParameters ::Detail detail) const
check if parameter exists
TauDetails()
Default constructor.
Storable container for CaloCluster.
Principal data class for CaloCell clusters.
ElementLinkVector implementation for standalone ROOT.
ElementLink implementation for ROOT usage.
bool setElement(ElementType element)
Set to point to an element.
bool toContainedElement(BaseConstReference data, ElementType element, IProxyDict *sg=0)
Set from element pointer and a reference to the container (storable)
The namespace of all packages in PhysicsAnalysis/JetTagging.