StFms  0.0.0
FMS software in the STAR framework
StFmsPointMaker Class Reference

#include <StFmsPointMaker.h>

Inheritance diagram for StFmsPointMaker:
Collaboration diagram for StFmsPointMaker:

Public Member Functions

 StFmsPointMaker (const char *name="StFmsPointMaker")
 
 ~StFmsPointMaker ()
 
Int_t InitRun (Int_t runNumber)
 
Int_t Make ()
 
void Clear (Option_t *option="")
 

Private Types

typedef std::vector
< FMSCluster::StFmsTower
TowerList
 
typedef std::map< int, TowerListTowerMap
 

Private Member Functions

 StFmsPointMaker (const StFmsPointMaker &)
 
StFmsPointMakeroperator= (const StFmsPointMaker &)
 
StFmsCollectiongetFmsCollection ()
 
int clusterEvent ()
 
int clusterDetector (TowerList *towers, int detectorId, StFmsCollection *fmsCollection)
 
bool validateTowerEnergySum (const TowerList &towers) const
 
bool processTowerCluster (FMSCluster::StFmsTowerCluster *towerCluster, int detectorId, StFmsCollection *fmsCollection)
 
StFmsPointmakeFmsPoint (const FMSCluster::StFmsFittedPhoton &photon, int detectorId)
 
bool populateTowerLists ()
 
bool isValidChannel (int detector, int row, int col)
 

Private Attributes

StFmsDbMakermFmsDbMaker
 Access to FMS database information. More...
 
FMSCluster::StFmsGeometry mGeometry
 Access to current FMS geometry. More...
 
TowerMap mTowers
 One for each sub-detector, keyed by detector ID. More...
 
int mObjectCount
 Object count in event for use with TRef. More...
 

Detailed Description

Finds FMS clusters and fits them with a photon hypothesis.

A cluster is a collection of adjacent FMS towers with energy depositions. "Point" is a generic term for the energy deposited by an individual particle. This will typically be a photon, but may be e.g. an electron, or energy left by a hadron.

A single cluster may be formed by more than one point, so clusters are fitted with a shower-shape function to disentangle depositions from different particles.

Definition at line 43 of file StFmsPointMaker.h.

Member Typedef Documentation

typedef std::vector<FMSCluster::StFmsTower> StFmsPointMaker::TowerList
private

Definition of a collection of towers.

Definition at line 58 of file StFmsPointMaker.h.

typedef std::map<int, TowerList> StFmsPointMaker::TowerMap
private

Definition of a TowerList per sub-detector, keyed by detector ID.

Definition at line 60 of file StFmsPointMaker.h.

Constructor & Destructor Documentation

StFmsPointMaker::StFmsPointMaker ( const char *  name = "StFmsPointMaker")
explicit

Constructor.

Definition at line 40 of file StFmsPointMaker.cxx.

StFmsPointMaker::~StFmsPointMaker ( )

Destructor.

Definition at line 43 of file StFmsPointMaker.cxx.

StFmsPointMaker::StFmsPointMaker ( const StFmsPointMaker )
private

Disallow copy construction.

Member Function Documentation

void StFmsPointMaker::Clear ( Option_t *  option = "")

Called after each event to reset values.

Definition at line 77 of file StFmsPointMaker.cxx.

int StFmsPointMaker::clusterDetector ( TowerList towers,
int  detectorId,
StFmsCollection fmsCollection 
)
private

Perform photon reconstruction on a single sub-detector.

Cluster all towers for a sub-detector. Update the cluster and photon lists in the provided StFmsCollection with the generated clusters and photons.

Returns standard STAR error codes (kStOk, kStWarn, kStErr).

Definition at line 113 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

int StFmsPointMaker::clusterEvent ( )
private

Perform photon reconstruction in all sub-detectors for a single event.

Populate StFmsCollection with the generated clusters and photons.

Return kStOk upon success, kStErr in case of an error.

Definition at line 98 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

StFmsCollection * StFmsPointMaker::getFmsCollection ( )
private

Get the StFmsCollection from the current StEvent.

Print messages to LOG_ERROR if StEvent/StFmsCollection cannot be found.

Definition at line 85 of file StFmsPointMaker.cxx.

Here is the caller graph for this function:

Int_t StFmsPointMaker::InitRun ( Int_t  runNumber)

Called by StMaker when switching to a new run number.

Definition at line 45 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

bool StFmsPointMaker::isValidChannel ( int  detector,
int  row,
int  col 
)
private

Tests channel validity.

Returns true if a detector/row/column combination physically exists. Detector values should be as defined as in the database, and row and column numbers are in the range [1, N].

Definition at line 240 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

Int_t StFmsPointMaker::Make ( )

Called once per event to process the event.

Note
Object count caching should probably be done in e.g. StMuDstMaker however we do it in StFmsPointMaker for now until we can verify changes with the MuDST coordinator. It should work OK as I don't think any other STAR makers use TRef.

Definition at line 59 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

StFmsPoint * StFmsPointMaker::makeFmsPoint ( const FMSCluster::StFmsFittedPhoton photon,
int  detectorId 
)
private

Creates a new StFmsPoint from an StFmsFittedPhoton.

Definition at line 192 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

StFmsPointMaker& StFmsPointMaker::operator= ( const StFmsPointMaker )
private

Disallow assignment.

bool StFmsPointMaker::populateTowerLists ( )
private

Reads hits from StEvent and prepare them for clustering.

Definition at line 207 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

bool StFmsPointMaker::processTowerCluster ( FMSCluster::StFmsTowerCluster towerCluster,
int  detectorId,
StFmsCollection fmsCollection 
)
private

Process an StFmsTowerCluster and store its StFmsCluster in a collection.

Pass ownership of the StFmsCluster held by the FMSCluster::StFmsTowerCluster to the StFmsCollection. Also update StFmsCollection with any photons in the cluster.

Returns true if the cluster is processed, or false if it is skipped due to bad values (e.g. unphysical coordinates). If the current run information cannot be accessed for some reason, assumes 500 GeV collisions.

Definition at line 147 of file StFmsPointMaker.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

bool StFmsPointMaker::validateTowerEnergySum ( const TowerList towers) const
private

Verify that the sum of tower energies is sensible.

Returns true if the sum is non-negative and does not exceed the center-of-mass energy. Returns false otherwise.

Definition at line 128 of file StFmsPointMaker.cxx.

Here is the caller graph for this function:

Member Data Documentation

StFmsDbMaker* StFmsPointMaker::mFmsDbMaker
private

Access to FMS database information.

Definition at line 123 of file StFmsPointMaker.h.

FMSCluster::StFmsGeometry StFmsPointMaker::mGeometry
private

Access to current FMS geometry.

Definition at line 124 of file StFmsPointMaker.h.

int StFmsPointMaker::mObjectCount
private

Object count in event for use with TRef.

Definition at line 126 of file StFmsPointMaker.h.

TowerMap StFmsPointMaker::mTowers
private

One for each sub-detector, keyed by detector ID.

Definition at line 125 of file StFmsPointMaker.h.


The documentation for this class was generated from the following files: