27#include "CLHEP/Vector/LorentzVector.h"
29#include "AthLinks/ElementLinkVector.h"
32#include "CaloEvent/CaloClusterContainer.h"
58 ::Analysis::TauJetNavigation,
99 std::ostream& o,
const TauJet& tau);
105 std::ostream& o,
const TauJet* tau);
111 MsgStream& o,
const TauJet& tau);
117 MsgStream& o,
const TauJet* tau);
150 const std::any& )
const;
236 const Rec :: TrackParticle *
track(
unsigned int i )
const;
269 unsigned int i )
const;
395 const std::string &name,
396 const std::string& className =
"" );
412 template <
typename T>
414 const std::string &name )
const;
418 template <
typename T>
427 const std::string& name =
"")
const;
459 TauJetParameters :: Author
author()
const;
464 const TauJetParameters :: Author &
author )
const;
469 const TauJetParameters :: Author &
author );
474 const TauJetParameters :: Author &
author );
564 void storeHLV( TauJetParameters :: TauCalibType
type, CLHEP :: HepLorentzVector
hlv );
565 CLHEP::HepLorentzVector
getHLV( TauJetParameters :: TauCalibType
type )
const;
577 template <
class stream>
655 std::vector<std::pair< TauJetParameters::TauCalibType, CLHEP::HepLorentzVector > >
m_tauHLVStorage;
662 template <
class stream>
669 o << *(*itrk) <<
" ";
671 <<
"conversionTracks: {";
675 o << *(*itrk) <<
" ";
680 if ((*idetail).isValid())
681 o << *(*idetail) <<
" ";
695 std::ostream& o,
const TauJet& tau)
702 std::ostream& o,
const TauJet* tau)
709 MsgStream& o,
const TauJet& tau)
716 MsgStream& o,
const TauJet* tau)
Declaration of details class for tau event.
Declaration of tau details container transient class.
Definition of parameters for TauJet object.
DEPRECATED DO NOT USE - MIGRATE TO TauCommonDetails Basic details class containing information produc...
Basic detail class containing information for track and calo seeded tau reconstruction algorithms.
const std::vector< PanTau::PanTauSeed * > & getListOfPanTauSeeds() const
Get the list of links to PanTauSeed objects that were created for this tauJet.
void setCellClusterLink(const ElementLink< CaloClusterContainer > &x)
set ElementLink of the CaloCluster seed of TauJet
void setE(double ene)
set energy data member
const ElementLink< CaloClusterContainer > cellClusterLink() const
ElementLink to cell CaloCluster, might be invalid the ID variables are calculated from this cluster i...
const CaloCluster * cluster() const
seed CaloCluster, DEPRECATED as of release 13
void addPanTauSeed(PanTau::PanTauSeed *pantauSeed)
add a new PanTauSeed to this tau
ElementLinkVector< Rec::TrackParticleContainer > & trackLinkVector()
Get track link vector.
void setROIWord(unsigned int RoiWord)
Set ROI Word (trigger purposes)
unsigned int numTrack() const
number of Tracks associated to Tau candidate, CAUTION not to be confused with numberOfTracks()!
ElementLink< CaloClusterContainer > m_cellCluster
Calo cell.
const ElementLinkVector< Rec::TrackParticleContainer > & trackLinkVector() const
Get track link vector.
void setNumberOfTracks(unsigned int numberOfTracks)
Set number of tracks.
ElementLink< JetCollection > & jetLink()
ElementLink to seed Jet, might be invalid if not seeded from a Jet
ElementLink< CaloClusterContainer > & clusterLink()
ElementLink to seed CaloCluster (const) DEPRECATED as of release 13
const CaloCluster * cellCluster() const
cell CaloCluster, might be NULL the ID variables are calculated from this cluster if its not empty
void addTrack(const Rec::TrackParticleContainer *cont, const Rec::TrackParticle *track)
Add a track to the TauJet.
double parameter(TauJetParameters ::Detail detail) const
dummy Parameter accessors, for analysis code backward compatibility
ElementLinkVector< Rec::TrackParticleContainer > m_conversionTracks
Conversion tracks.
const ElementLink< CaloClusterContainer > clusterLink() const
ElementLink to seed CaloCluster, DEPRECATED as of release 13
const ElementLink< JetCollection > jetLink() const
ElementLink to seed Jet, might be invalid if not seeded from a Jet
const ElementLink< TauDetailsContainer > detailElementLink(int i) const
Get TauDetails ElementLink by index
void setJet(const JetCollection *cont, const Jet *clust)
set the Jet as the seed to the TauJet
void clearConversionTracks()
Remove all associated track from TauJet.
void clearAuthor(const TauJetParameters ::Author &author)
clear the author flag to value false
void addSeedTrk_track(const Rec::TrackParticleContainer *cont, const Rec::TrackParticle *track)
Add a seed trk track to the TauJet.
const ElementLinkVector< Rec::TrackParticleContainer > & seedCalo_trackLinkVector() const
Get seed calo track link vector.
bool operator!=(const TauJet &rhs) const
Inequality operator.
bool isConversionTrack(unsigned int i) const
Check if track is a conversion track.
unsigned int ROIWord() const
Retrieve ROI Word (trigger purposes)
void setM(double m)
set mass data member
void addConversionTrack(const Rec::TrackParticleContainer *cont, const Rec::TrackParticle *track)
Add a conversion track.
std::string toString() const
Uses printOn to make a string of the TauDetails.
void setEta(double eta)
set eta data member
virtual ~TauJet()
Virtual Destructor.
std::bitset< 8 > m_author
Allow more than one author, TauJetParameters::Author used as index.
ElementLink< JetCollection > m_jet
Jets.
TauJetParameters::Author author() const
Author of this object (DO NOT USE! only for backward compatibility)
void setTauID(TauPID *tauID)
Set TauPID object that contains discriminant values.
const Rec::TrackParticle * seedTrk_track(unsigned int i) const
Seed Track Tracks associated to Tau candidate.
void setCluster(const CaloClusterContainer *cont, const CaloCluster *clust)
set the CaloCluster as the seed of TauJet, DEPRECATED as of release 13
void setClusterLink(const ElementLink< CaloClusterContainer > &x)
set ElementLink of the CaloCluster seed of TauJet DEPRECATED as of release 13
void MergeToCommonDetails(TauDetailsContainer *tauDetailsContainer=0, TauDetailsContainer *tauExtraDetailsContainer=0)
Merge Tau[1P3P|Rec](Extra)Details to TauCommon(Extra)Details.
TauJetImpl_t::navigable_type navigable_type
int nDetails() const
number of details objects in this TauJet
friend std::ostream & operator<<(std::ostream &o, const TauJet &tau)
Printing operator.
void storeHLV(TauJetParameters ::TauCalibType type, CLHEP ::HepLorentzVector hlv)
void removeDetails(const std::string &name, const std::string &className="")
Remove all tau details object with matching name.
void setHasMergedToCommonDetails(bool state)
Set state Merge to common details state.
TauPID * tauID()
Get TauPID object containing discriminant values.
const ElementLinkVector< Rec::TrackParticleContainer > & conversionTrackLinkVector() const
Get conversion track element link vector (const)
void CopyToCommonDetails(const Tau1P3PDetails *tau1P3PDetails, TauCommonDetails *tauCommonDetails)
Converts a Tau1P3PDetails to a TauCommonDetails.
ElementLinkVector< Rec::TrackParticleContainer > & seedCalo_trackLinkVector()
Get seed calo track link vector.
virtual void fillToken(INavigationToken &thisToken) const
INavigable interface, fill constituents (Jet,CaloCluster,CaloCell)
void CleanDetailsForAOD()
clean details for AOD Removes extra details and any invalid elementlinks from details list
ElementLink< CaloClusterContainer > m_cluster
Calo cluster.
std::vector< PanTau::PanTauSeed * > m_listOfPanTauSeeds
List of associated pantau seeds.
const ElementLinkVector< Rec::TrackParticleContainer > & seedTrk_trackLinkVector() const
Get seed trk track link vector.
void setJetLink(const ElementLink< JetCollection > &x)
set the ElementLink to the seed Jet
bool hasMergedToCommonDetails() const
Overloading MergeToCommonDetails function.
void addDetails(const TauDetailsContainer *container, TauDetails *details)
Add new tau detail instance.
unsigned int numberOfTracks() const
Get number of tracks.
const Jet * jet() const
seed Jet, might be NULL if not seeded from a Jet
CLHEP::HepLorentzVector getHLV(TauJetParameters ::TauCalibType type) const
void clearTracks()
Remove all associated track from TauJet.
int nProng() const
Number of prongs.
const T * details() const
Get the first details object matching requested type or return NULL.
TauJetImpl_t::particle_type particle_type
bool m_hasMergedToCommonDetails
True if MergeToCommonDetails has been called.
void clearSeedCalo_tracks()
Remove all seed calo associated tracks from TauJet.
unsigned int m_numberOfTracks
Number of tracks.
std::vector< std::pair< TauJetParameters::TauCalibType, CLHEP::HepLorentzVector > > m_tauHLVStorage
HLV storage.
const TauPID * tauID() const
Get TauPID object containing discriminant values.
ElementLinkVector< Rec::TrackParticleContainer > & seedTrk_trackLinkVector()
Get seed trk track link vector.
void setCellCluster(const CaloClusterContainer *cont, const CaloCluster *clust)
set the CaloCluster as the seed of TauJet
const Rec::TrackParticle * conversionTrack(unsigned int i) const
Get a conversion track.
ElementLink< CaloClusterContainer > & cellClusterLink()
ElementLink to cell CaloCluster, might be invalid the ID variables are calculated from this cluster i...
ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM > TauJetImpl_t
const ElementLinkVector< TauDetailsContainer > & tauDetailLinkVector() const
unsigned int numConversionTrack() const
Number of conversion tracks.
ElementLinkVector< Rec::TrackParticleContainer > m_tracks
Tracks.
unsigned int seedTrk_numTrack() const
number of seed trk Tracks associated to Tau candidate,
ElementLinkVector< Rec::TrackParticleContainer > m_seedTrk_tracks
Seed Trk Tracks.
const Rec::TrackParticle * seedCalo_track(unsigned int i) const
Seed Calo Tracks associated to Tau candidate.
ElementLinkVector< Rec::TrackParticleContainer > m_seedCalo_tracks
Seed Calo Tracks.
ElementLinkVector< TauDetailsContainer > m_tauDetails
Vector containing all details.
void printOn(stream &o) const
Printing function.
TauJet & operator=(const TauJet &rhs)
assignment operator
ElementLinkVector< TauDetailsContainer > & tauDetailLinkVector()
TauJet()
Default Constructor.
void clearSeedTrk_tracks()
Remove all seed trk associated tracks from TauJet.
std::string detailName(int i) const
Get classname of TauDetails by index.
TauJetImpl_t::momentum_type momentum_type
const T * details(const std::string &name) const
Get first details object stored in SG collection with matching name.
void addSeedCalo_track(const Rec::TrackParticleContainer *cont, const Rec::TrackParticle *track)
Add a seed calo track to the TauJet.
bool operator==(const TauJet &rhs) const
Equality operator.
const Rec::TrackParticle * track(unsigned int i) const
Tracks associated to Tau candidate.
ElementLinkVector< Rec::TrackParticleContainer > & conversionTrackLinkVector()
Get conversion track element link vector.
unsigned int seedCalo_numTrack() const
number of seed calo Tracks associated to Tau candidate,
bool hasAuthor(const TauJetParameters ::Author &author) const
check if this object has Author author (can be more than one)
unsigned int m_roiWord
ROI word.
void setPhi(double phi)
set phi data member
void setAuthor(const TauJetParameters ::Author &author)
set the author flag to true
Class containing discriminants produced by identification algorithms.
DEPRECATED DO NOT USE - MIGRATE TO TauCommonDetails Basic details class containing information produc...
Storable container for CaloCluster.
Principal data class for CaloCell clusters.
ElementLinkVector implementation for standalone ROOT.
ELVIterator< typename RefVector::const_iterator > const_iterator
ElementLink implementation for ROOT usage.
Dummy type needed fro specialized implementation.
P4ImplEEtaPhiM is a base class for classes with 4-momentum behavior, for which E, eta,...
::Analysis::TauJetNavigation navigable_type
virtual CLHEP::HepLorentzVector hlv() const
ParticleEvent::Base particle_type
virtual double phi() const
virtual double eta() const
::P4ImplEEtaPhiM momentum_type
The namespace of all packages in PhysicsAnalysis/JetTagging.
MsgStream & operator<<(MsgStream &out, const IPInfoBase &)
output.
NavigableTerminalNode TauJetNavigation