ATLAS Offline Software
DiTauJet_v1.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2019 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"
22 #include "xAODJet/JetContainer.h"
23 #include "xAODPFlow/PFOContainer.h"
24 
25 // ROOT include(s):
26 #include "Math/Vector4D.h"
27 
28 namespace xAOD {
29 
30 
31  class DiTauJet_v1 : public IParticle {
32 
33  public:
35  DiTauJet_v1();
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 
53  GenVecFourMom_t genvecP4() const;
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 
101  // // secondary vertices
102  // // typedef ElementLink< xAOD::VertexContainer > VertexLink_t;
103  // typedef std::vector< ElementLink< xAOD::VertexContainer > > SecVertexLinks_t;
104 
105  // const SecVertexLinks_t& secVertexLinks() const;
106  // void setSecVertexLinks( const SecVertexLinks_t& secondayVertices );
107  // // Get the pointer to a given secondary vertex associated with this subjet
108  // const Vertex* secVertex( size_t i ) const;
109  // // Get the number of secondary vertex associated with this subjet
110  // size_t nSecVertex() const;
111  // // add a secondary vertex associated with a subjet
112  // void addSecVertex( const xAOD::VertexContainer*, const xAOD::Vertex*);
113  // // Remove all vertices
114  // void clearSecVertexLinks();
115 
116 
117  // tracks
118  typedef std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t;
119 
120  // tracks within subjets
122  void setTrackLinks( const TrackParticleLinks_t& trackParticles );
123  // Get the pointer to a given track associated with this subjet
124  const TrackParticle* track( size_t i ) const;
125  // Get the number of track particles associated with this subjet
126  size_t nTracks() const;
127  // add a track to the subjet
129  // Remove all tracks
130  void clearTrackLinks();
131 
132  // tracks within isolation region
134  void setOtherTrackLinks( const TrackParticleLinks_t& trackParticles );
135  const TrackParticle* otherTrack( size_t i ) const;
136  size_t nOtherTracks() const;
138  void clearOtherTrackLinks();
139 
140  // tracks within seed jet, not passing quality cuts
142  void setIsoTrackLinks( const TrackParticleLinks_t& trackParticles );
143  const TrackParticle* isoTrack( size_t i ) const;
144  size_t nIsoTracks() const;
146  void clearIsoTrackLinks();
147 
148 
150  bool detail( DiTauJetParameters::Detail detail, int& value ) const;
151  bool detail( DiTauJetParameters::Detail detail, float& value ) const;
154 
155  }; // class DiTauJet
156 
157 } // namespace xAOD
158 
159 // Declare IParticle as a base class of DiTauJet_v1:
162 
163 #endif // XAODDITAU_VERSIONS_DITAUJET_V1_H
164 
xAOD::DiTauJet_v1::m
virtual double m() const
The invariant mass of the particle.
xAOD::DiTauJet_v1::setVertex
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Definition: DiTauJet_v1.cxx:204
xAOD::DiTauJet_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::DiTauJet_v1::JetLink_t
ElementLink< xAOD::JetContainer > JetLink_t
Definition: DiTauJet_v1.h:62
xAOD::DiTauJet_v1::vertexLink
const VertexLink_t & vertexLink() const
xAOD::DiTauJet_v1::TrackParticleLinks_t
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
Definition: DiTauJet_v1.h:118
xAOD::DiTauJet_v1::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: DiTauJet_v1.cxx:30
xAOD::DiTauJet_v1::clearTrackLinks
void clearTrackLinks()
Definition: DiTauJet_v1.cxx:272
xAOD::DiTauJet_v1::setIsoTrackLinks
void setIsoTrackLinks(const TrackParticleLinks_t &trackParticles)
xAOD::DiTauJet_v1::fCore
float fCore(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:168
xAOD::DiTauJet_v1::setJet
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
Definition: DiTauJet_v1.cxx:82
xAOD::DiTauJet_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition: DiTauJet_v1.h:50
IParticle.h
xAOD::DiTauJet_v1::VertexLink_t
ElementLink< xAOD::VertexContainer > VertexLink_t
Definition: DiTauJet_v1.h:90
xAOD::DiTauJet_v1::clearIsoTrackLinks
void clearIsoTrackLinks()
Definition: DiTauJet_v1.cxx:304
xAOD::DiTauJet_v1::addOtherTrack
void addOtherTrack(const xAOD::TrackParticleContainer *, const xAOD::TrackParticle *)
Definition: DiTauJet_v1.cxx:326
xAOD::DiTauJet_v1::setOtherTrackLinks
void setOtherTrackLinks(const TrackParticleLinks_t &trackParticles)
xAOD::DiTauJet_v1::setDetail
void setDetail(DiTauJetParameters::Detail detail, int value)
Definition: DiTauJet_v1.cxx:373
xAOD::DiTauJet_v1::DiTauJet_v1
DiTauJet_v1()
Default constructor.
Definition: DiTauJet_v1.cxx:19
xAOD::DiTauJet_v1::subjetPhi
float subjetPhi(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:112
PFOContainer.h
athena.value
value
Definition: athena.py:124
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
detail
Definition: extract_histogram_tag.cxx:14
xAOD::DiTauJet_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
DiTauDefs.h
xAOD::DiTauJet_v1::setP4
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
Definition: DiTauJet_v1.cxx:40
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::DiTauJet_v1::nOtherTracks
size_t nOtherTracks() const
Definition: DiTauJet_v1.cxx:322
xAOD::DiTauJet_v1::clearOtherTrackLinks
void clearOtherTrackLinks()
Definition: DiTauJet_v1.cxx:336
xAOD::DiTauJet_v1::nSubjets
float nSubjets() const
Definition: DiTauJet_v1.cxx:132
xAOD::DiTauJet_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
Definition: DiTauJet_v1.cxx:36
xAOD::DiTauJet_v1::addTrack
void addTrack(const xAOD::TrackParticleContainer *, const xAOD::TrackParticle *)
Definition: DiTauJet_v1.cxx:262
xAOD::DiTauJet_v1::subjetE
float subjetE(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:122
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:69
xAOD::DiTauJet_v1::addIsoTrack
void addIsoTrack(const xAOD::TrackParticleContainer *, const xAOD::TrackParticle *)
Definition: DiTauJet_v1.cxx:294
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
xAOD::DiTauJet_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::DiTauJet_v1::track
const TrackParticle * track(size_t i) const
IParticleContainer.h
xAOD::DiTauJet_v1::jet
const Jet * jet() const
xAOD::DiTauJet_v1::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: DiTauJet_v1.cxx:52
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAOD::DiTauJet_v1::setVertexLink
void setVertexLink(const VertexLink_t &vertexLink)
xAOD::DiTauJet_v1::setfCore
void setfCore(unsigned int numSubjet, float fCore)
Definition: DiTauJet_v1.cxx:178
xAOD::DiTauJet_v1::subjetEta
float subjetEta(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:102
xAOD::DiTauJet_v1::nIsoTracks
size_t nIsoTracks() const
Definition: DiTauJet_v1.cxx:290
xAOD::DiTauJet_v1::nTracks
size_t nTracks() const
Definition: DiTauJet_v1.cxx:258
xAOD::DiTauJet_v1::setSubjetPtEtaPhiE
void setSubjetPtEtaPhiE(unsigned int numSubjet, float pt, float eta, float phi, float e)
Definition: DiTauJet_v1.cxx:139
xAOD::DiTauJetParameters::Detail
Detail
Definition: DiTauDefs.h:38
xAOD::DiTauJet_v1::otherTrackLinks
const TrackParticleLinks_t & otherTrackLinks() const
xAOD::DiTauJet_v1::setJetLink
void setJetLink(const JetLink_t &jetLink)
xAOD::DiTauJet_v1::jetLink
const JetLink_t & jetLink() const
xAOD::DiTauJet_v1::detail
bool detail(DiTauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
Definition: DiTauJet_v1.cxx:345
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
JetContainer.h
xAOD::DiTauJet_v1
Definition: DiTauJet_v1.h:31
xAOD::DiTauJet_v1::isoTrackLinks
const TrackParticleLinks_t & isoTrackLinks() const
xAOD::DiTauJet_v1::subjetPt
float subjetPt(unsigned int numSubjet) const
Definition: DiTauJet_v1.cxx:92
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::DiTauJet_v1::trackLinks
const TrackParticleLinks_t & trackLinks() const
xAOD::DiTauJet_v1::otherTrack
const TrackParticle * otherTrack(size_t i) const
xAOD::DiTauJet_v1::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: DiTauJet_v1.cxx:57
xAOD::DiTauJet_v1::isoTrack
const TrackParticle * isoTrack(size_t i) const
xAOD::DiTauJet_v1::setTrackLinks
void setTrackLinks(const TrackParticleLinks_t &trackParticles)
TrackParticleContainer.h
xAOD::DiTauJet_v1::vertex
const Vertex * vertex() const
xAOD::DiTauJet_v1::e
virtual double e() const
The total energy of the particle.
Definition: DiTauJet_v1.cxx:62
DATAVECTOR_BASE
DATAVECTOR_BASE(xAOD::DiTauJet_v1, xAOD::IParticle)