ATLAS Offline Software
Loading...
Searching...
No Matches
DiTauJet_v1.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5*/
6
7// $Id: DiTauJet_v1.h 631921 2015-09-23 23:30:59Z dkirchme $
8#ifndef XAODDITAU_VERSIONS_DITAUJET_V1_H
9#define XAODDITAU_VERSIONS_DITAUJET_V1_H
10
11
12// Core include(s):
13#include "AthLinks/ElementLink.h"
14
15
16// xAOD include(s):
17#include "xAODBase/IParticle.h"
19#include "xAODTau/DiTauDefs.h"
24
25// ROOT include(s):
26#include "Math/Vector4D.h"
27
28namespace xAOD {
29
30
31 class DiTauJet_v1 : public IParticle {
32
33 public:
36
37
38 virtual double pt() const;
39 virtual double eta() const;
40 virtual double phi() const;
41 virtual double e() const;
42
43 virtual double m() const;
44 virtual double rapidity() const;
45
47 virtual FourMom_t p4() const;
48
50 typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > GenVecFourMom_t;
51
54
56 void setP4(double pt, double eta, double phi, double m);
57
59 virtual Type::ObjectType type() const;
60
61 // seed jet
63
64 const JetLink_t& jetLink() const;
65
66 void setJetLink( const JetLink_t& jetLink );
67
68 void setJet( const xAOD::JetContainer *cont, const xAOD::Jet *jet );
69
70 const Jet* jet() const;
71
72 // subjet 4-mom
73 float subjetPt(unsigned int numSubjet) const;
74 float subjetEta(unsigned int numSubjet) const;
75 float subjetPhi(unsigned int numSubjet) const;
76 float subjetE(unsigned int numSubjet) const;
77
78 void setSubjetPtEtaPhiE(unsigned int numSubjet,
79 float pt, float eta, float phi, float e);
80
81 float nSubjets() const;
82
83
84 // f_core
85 float fCore(unsigned int numSubjet) const;
86 void setfCore(unsigned int numSubjet, float fCore);
87
88
89 // vertex that both taus come from
91
92 const VertexLink_t& vertexLink() const;
93
95
96 void setVertex( const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex );
97
98 const Vertex* vertex() const;
99
100 // tracks
101 typedef std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t;
102
103 // tracks within subjets
105 void setTrackLinks( const TrackParticleLinks_t& trackParticles );
106 // Get the pointer to a given track associated with this subjet
107 const TrackParticle* track( size_t i ) const;
108 // Get the number of track particles associated with this subjet
109 size_t nTracks() const;
110 // add a track to the subjet
112 // Remove all tracks
113 void clearTrackLinks();
114
115 // tracks within isolation region
117 void setOtherTrackLinks( const TrackParticleLinks_t& trackParticles );
118 const TrackParticle* otherTrack( size_t i ) const;
119 size_t nOtherTracks() const;
122
123 // tracks within seed jet, not passing quality cuts
125 void setIsoTrackLinks( const TrackParticleLinks_t& trackParticles );
126 const TrackParticle* isoTrack( size_t i ) const;
127 size_t nIsoTracks() const;
129 void clearIsoTrackLinks();
130
131
133 bool detail( DiTauJetParameters::Detail detail, int& value ) const;
134 bool detail( DiTauJetParameters::Detail detail, float& value ) const;
136 void setDetail( DiTauJetParameters::Detail detail, float value );
137
138 }; // class DiTauJet
139
140} // namespace xAOD
141
142// Declare IParticle as a base class of DiTauJet_v1:
145
146#endif // XAODDITAU_VERSIONS_DITAUJET_V1_H
147
An STL vector of pointers that by default owns its pointed-to elements.
#define DATAVECTOR_BASE(T, BASE)
Declare base class info to DataVector.
Definition DataVector.h:649
size_t nOtherTracks() const
ElementLink< xAOD::VertexContainer > VertexLink_t
Definition DiTauJet_v1.h:90
const TrackParticle * track(size_t i) const
virtual FourMom_t p4() const
The full 4-momentum of the particle.
void setJetLink(const JetLink_t &jetLink)
const TrackParticleLinks_t & isoTrackLinks() const
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
virtual double e() const
The total energy of the particle.
virtual double eta() const
The pseudorapidity ( ) of the particle.
const JetLink_t & jetLink() const
virtual double m() const
The invariant mass of the particle.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition DiTauJet_v1.h:50
void setDetail(DiTauJetParameters::Detail detail, int value)
virtual double rapidity() const
The true rapidity (y) of the particle.
float fCore(unsigned int numSubjet) const
float subjetEta(unsigned int numSubjet) const
virtual double pt() const
The transverse momentum ( ) of the particle.
void setOtherTrackLinks(const TrackParticleLinks_t &trackParticles)
const TrackParticle * isoTrack(size_t i) const
void setTrackLinks(const TrackParticleLinks_t &trackParticles)
const TrackParticle * otherTrack(size_t i) const
const VertexLink_t & vertexLink() const
size_t nTracks() const
ElementLink< xAOD::JetContainer > JetLink_t
Definition DiTauJet_v1.h:62
float subjetE(unsigned int numSubjet) const
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
void setSubjetPtEtaPhiE(unsigned int numSubjet, float pt, float eta, float phi, float e)
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
float subjetPt(unsigned int numSubjet) const
void setVertexLink(const VertexLink_t &vertexLink)
void addOtherTrack(const xAOD::TrackParticleContainer *, const xAOD::TrackParticle *)
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
float subjetPhi(unsigned int numSubjet) const
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
virtual double phi() const
The azimuthal angle ( ) of the particle.
const Jet * jet() const
DiTauJet_v1()
Default constructor.
const TrackParticleLinks_t & otherTrackLinks() const
const TrackParticleLinks_t & trackLinks() const
const Vertex * vertex() const
void setfCore(unsigned int numSubjet, float fCore)
float nSubjets() const
void setIsoTrackLinks(const TrackParticleLinks_t &trackParticles)
size_t nIsoTracks() const
void addIsoTrack(const xAOD::TrackParticleContainer *, const xAOD::TrackParticle *)
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Class providing the definition of the 4-vector interface.
IParticle()=default
TLorentzVector FourMom_t
Definition of the 4-momentum type.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Jet_v1 Jet
Definition of the current "jet version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
JetContainer_v1 JetContainer
Definition of the current "jet container version".