Athena-Atlfast: User Guide
PrevChapter 6. Atlfast Reconstructed EntitiesNext

Atlfast Reconstructed Entities

In this chapter the different types of objects that Atlfast makes and that can be used in analysis are discussed. The way of accessing them and their methods are presented. Most of Atlfasts Reconstructed entities inherit from the IKinematic interface and thus must have the following methods:

virtual HepLorentzVector momentum() const
virtual double eta() const
virtual double phi() const
virtual double pT() const
virtual double eT() const
virtual double mT() const


1) Reconstructed Particles.

There are three types of reconstructed particle, Electrons , Photons and Muons . All are stored as ReconstructedParticleCollection vectors and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<ReconstructedParticleCollection>    particles( this->eventDataService(), m_particleLocation ) ;

The m_particleLocation can be set to any of the following values:

/Event/AtlfastIsolatedElectrons
/Event/AtlfastNonIsolatedElectrons
/Event/AtlfastIsolatedPhotons
/Event/AtlfastNonIsolatdPhotons
/Event/AtlfastIsolatedMuons
/Event/AtlfastNonIsolatedMuons

Reconstructed particles are IKinematics and in addition have the following extra methods:

int pdg_id() const


2) Jets.

Jet vectors and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<Jet>    jets( this->eventDataService(), m_jetLocation ) ;

The m_jetLocation should be set to the following:

/Event/AtlfastJets

Jets are IKinematics and in addition have the following extra methods:

virtual double px() const
virtual double py() const
virtual double pz() const
double e() const
bool isBTag()
bool isCTag()
bool isTauTag()
int pdg_id()


3) Clusters.

Cluster vectors and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<Cluster>    clusters( this->eventDataService(), m_clusterLocation ) ;

The m_cellLocation should be set to the following:

/Event/AtlfastClusters

Clusters are IKinematics.


4) Cells.

Cell vectors and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<Cell>    cells( this->eventDataService(), m_cellLocation ) ;

The m_cellLocation should be set to the following:

/Event/AtlfastCells

Cells are IKinematics and have in addition the following extra methods:

int numberOfHits() const
std::vector particles() const

The particles() method returns a vector of HepMC::Particles which have been deposited in the cell.


5) Event Header.

The Event Header contains information about the event as a whole. It is stored as an EventHeader vector and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<EventHeader>    theEventHeader( this->eventDataService(), m_eventHeaderLocation ) ;

The m_eventHeaderLocation should be set to the following:

/Event/AtlfastEventHeader

The EventHeader has the following methods:

int runNumber()
int evtNumber()
int nElectrons()
int nIsolatedMuons()
int nMuons()
int nNonIsolatedMuons()
int nPhotons()
int nJets()
int nBJets()
int nCJets()
int nTauJets()
double jetCircularity()
double eventCircularity()
double thrust()
double oblateness()
HepLorentzVector pMiss()
HepLorentzVector pEscaped()


6) Tracks.

Information about tracks was only included in Atlfast--00--00--19 and thus is not in Athena release 2.x.x. To access track information the src code for Atlfast-00-00-19 must be obtained from CVS. Tracks are stored as Track vectors and can be accessed through a SmartDataPtr as shown bellow:

SmartDataPtr<Track>    tracks( this->eventDataService(), m_trackLocation ) ;

The m_trackLocation should be set to the following:

/Event/AtlfastTracks

The Tracks inherit from ITrackTrajectory which has the following methods:

virtual double impactParameter() const
virtual double zPerigee() const
virtual HepPoint3D startPoint() const
virtual double radius() const
virtual double phi() const
virtual double eta() const
virtual double cotTheta() const
virtual double pT() const
virtual Hep3Vector threeMomentum() const
virtual operator Hep3Vector() const
virtual double invPtCharge() const
virtual double curvature() const
virtual int signOfCharge() const

In Addition the Tracks have the following extra methods:

virtual TrackTrajectory trajectory() const
const HepMC::Particle* truth() const
const HepMatrix smearMatrix() const
const TrackTrajectory truthTrajectory() const

The truth() method returns the HepMC::Particle which initiated the track. The truthTrajectory() method returns the unsmeared track trajectory which is an ITrackTrajectory.



WRITING AN ANALYSIS ALGORITHM PrevhomeNext HOME