StFms  0.0.0
FMS software in the STAR framework
FMSCluster::StFmsEventClusterer Class Reference

#include <StFmsEventClusterer.h>

Inheritance diagram for FMSCluster::StFmsEventClusterer:
Collaboration diagram for FMSCluster::StFmsEventClusterer:

Public Member Functions

 StFmsEventClusterer (const StFmsGeometry *geometry, Int_t detectorId)
 
 ~StFmsEventClusterer ()
 
int detector () const
 
Bool_t cluster (std::vector< FMSCluster::StFmsTower > *towers)
 
ClusterListclusters ()
 
const ClusterListclusters () const
 

Private Types

typedef ClusterList::iterator ClusterIter
 
typedef ClusterList::const_iterator ClusterConstIter
 

Private Member Functions

 StFmsEventClusterer (const StFmsEventClusterer &)
 
StFmsEventClustereroperator= (const StFmsEventClusterer &)
 
Int_t fitEvent ()
 
Double_t photonEnergyInCluster (Double_t towerWidth, const StFmsTowerCluster *cluster, const StFmsFittedPhoton *photon) const
 
Double_t photonEnergyInTower (Double_t towerWidth, const StFmsTower *tower, const StFmsFittedPhoton *photon) const
 
Float_t fitOnePhoton (StFmsTowerCluster *cluster)
 
Float_t globalFit (const Int_t, const Int_t, ClusterIter first)
 
Float_t fit2PhotonClust (ClusterIter cluster)
 
bool validate2ndPhoton (ClusterConstIter cluster) const
 

Private Attributes

ClusterList mClusters
 List of clusters in this sub-detector/event. More...
 
StFmsClusterFinder mClusterFinder
 Cluster-finding routine. More...
 
const StFmsGeometrymGeometry
 FMS geometry for current run. More...
 
Int_t mDetectorId
 ID of this FMS sub-detector. More...
 
std::vector
< FMSCluster::StFmsTower > * 
mTowers
 Towers to cluster. More...
 
StFmsClusterFittermFitter
 Routine for fitting photons to clusters. More...
 
std::vector< Float_t > mTowerWidthXY
 Geometry for this sub-detector (cm) More...
 

Detailed Description

Definition at line 26 of file StFmsEventClusterer.h.

Member Typedef Documentation

typedef ClusterList::const_iterator FMSCluster::StFmsEventClusterer::ClusterConstIter
private

ClusterList is defined in StFmsClusterFinder.h

Definition at line 65 of file StFmsEventClusterer.h.

typedef ClusterList::iterator FMSCluster::StFmsEventClusterer::ClusterIter
private

ClusterList is defined in StFmsClusterFinder.h

Definition at line 63 of file StFmsEventClusterer.h.

Constructor & Destructor Documentation

StFmsEventClusterer::StFmsEventClusterer ( const StFmsGeometry geometry,
Int_t  detectorId 
)

Constructor.

Clustering is done per sub-detector, so initialize with the detector ID and FMS geometry information.

See FMSCluster::StFmsDetectorId for valid detector IDs.

Definition at line 108 of file StFmsEventClusterer.cxx.

StFmsEventClusterer::~StFmsEventClusterer ( )

Destructor.

Definition at line 114 of file StFmsEventClusterer.cxx.

FMSCluster::StFmsEventClusterer::StFmsEventClusterer ( const StFmsEventClusterer )
private

Disallow copy construction.

With the various collections of towers, clusters and photons, many of which are dynamically allocated, it becomes too complicated to easily implement copying, and there is little reason to need it. Therefore prevent it from happening.

Member Function Documentation

Bool_t StFmsEventClusterer::cluster ( std::vector< FMSCluster::StFmsTower > *  towers)

Perform cluster-finding and photon-fitting on a list of towers.

Returns true if photon fits to all clusters succeed, or false if one or more clusters have a photon fit with a chi-square exceeding the maximum allowed value.

Todo:
Test of number of towers should be detector-dependent

Definition at line 120 of file StFmsEventClusterer.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

ClusterList& FMSCluster::StFmsEventClusterer::clusters ( )
inline

Returns the list of clusters in this detector for the event.

Definition at line 55 of file StFmsEventClusterer.h.

Here is the caller graph for this function:

const ClusterList& FMSCluster::StFmsEventClusterer::clusters ( ) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 57 of file StFmsEventClusterer.h.

int FMSCluster::StFmsEventClusterer::detector ( ) const
inline

Returns the ID of the detector for which clustering is being performed.

See FMSCluster::StFmsDetectorId for valid detector IDs.

Definition at line 44 of file StFmsEventClusterer.h.

Float_t StFmsEventClusterer::fit2PhotonClust ( ClusterIter  cluster)
private

Definition at line 387 of file StFmsEventClusterer.cxx.

Int_t StFmsEventClusterer::fitEvent ( )
private

Perform all clustering and photon-fitting for the current event.

Returns the final status for the event: true for "all good", false for "something was bad".

Todo:
Change return type to bool.

Definition at line 133 of file StFmsEventClusterer.cxx.

Float_t StFmsEventClusterer::fitOnePhoton ( StFmsTowerCluster cluster)
private

Perform a 1-photon fit on a single cluster.

Returns the χ2 of the fit.

Definition at line 271 of file StFmsEventClusterer.cxx.

Here is the call graph for this function:

Float_t StFmsEventClusterer::globalFit ( const Int_t  nPh,
const Int_t  nCl,
ClusterIter  first 
)
private
Todo:
Improve this implementation? This approach is necessary because the original code uses a pointer to a StFmsTowerCluster in the fitting routines as both a pointer to a single cluster, and an array of clusters .

Definition at line 306 of file StFmsEventClusterer.cxx.

StFmsEventClusterer& FMSCluster::StFmsEventClusterer::operator= ( const StFmsEventClusterer )
private

Disallow assignment.

Double_t StFmsEventClusterer::photonEnergyInCluster ( Double_t  towerWidth,
const StFmsTowerCluster cluster,
const StFmsFittedPhoton photon 
) const
private

The energy deposit in a cluster by a photon.

This is the sum over all towers making the cluster.

Definition at line 245 of file StFmsEventClusterer.cxx.

Here is the call graph for this function:

Double_t StFmsEventClusterer::photonEnergyInTower ( Double_t  towerWidth,
const StFmsTower tower,
const StFmsFittedPhoton photon 
) const
private

The energy deposit in a tower by a photon.

Calculated using the shower-shape function.

Definition at line 258 of file StFmsEventClusterer.cxx.

Here is the call graph for this function:

bool StFmsEventClusterer::validate2ndPhoton ( ClusterConstIter  cluster) const
private

Definition at line 480 of file StFmsEventClusterer.cxx.

Here is the call graph for this function:

Member Data Documentation

StFmsClusterFinder FMSCluster::StFmsEventClusterer::mClusterFinder
private

Cluster-finding routine.

Definition at line 144 of file StFmsEventClusterer.h.

ClusterList FMSCluster::StFmsEventClusterer::mClusters
private

List of clusters in this sub-detector/event.

Definition at line 142 of file StFmsEventClusterer.h.

Int_t FMSCluster::StFmsEventClusterer::mDetectorId
private

ID of this FMS sub-detector.

Definition at line 146 of file StFmsEventClusterer.h.

StFmsClusterFitter* FMSCluster::StFmsEventClusterer::mFitter
private

Routine for fitting photons to clusters.

Definition at line 148 of file StFmsEventClusterer.h.

const StFmsGeometry* FMSCluster::StFmsEventClusterer::mGeometry
private

FMS geometry for current run.

Definition at line 145 of file StFmsEventClusterer.h.

std::vector<FMSCluster::StFmsTower>* FMSCluster::StFmsEventClusterer::mTowers
private

Towers to cluster.

Definition at line 147 of file StFmsEventClusterer.h.

std::vector<Float_t> FMSCluster::StFmsEventClusterer::mTowerWidthXY
private

Geometry for this sub-detector (cm)

Definition at line 149 of file StFmsEventClusterer.h.


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