StEEmcGenericClusterMaker Class Reference

#include <StEEmcGenericClusterMaker.h>

Inheritance diagram for StEEmcGenericClusterMaker:

StMaker

List of all members.

Classes

struct  EEmatch

Public Member Functions

 StEEmcGenericClusterMaker (const Char_t *name, const StEEmcA2EMaker *a2e=NULL)
virtual Int_t Init ()
virtual Int_t Make ()
void makeHistograms ()
void makeClusterMap ()
void makeStEvent ()
void makeTrackMap ()
virtual void Clear (Option_t *opts="")
 User defined functions.
void add (const StEEmcCluster &cluster)
 Add a tower (pre/postshower) cluster to the list of clusters.
void add (const StEEmcSmdCluster &cluster)
 Add a smd cluster to the list of clusters.
void remove (const StEEmcCluster &cluster)
void remove (const StEEmcSmdCluster &cluster)
 Searches list of smd clusters and removes the matching cluster.
StEEmcClusterVec_t & clusters (Int_t sec, Int_t layer)
 Return a vector of tower clusters.
const StEEmcClusterVec_t & clusters (Int_t sec, Int_t layer) const
StEEmcSmdClusterVec_t & smdclusters (Int_t sec, Int_t plane)
 Return a vector of smd clusters.
const StEEmcSmdClusterVec_t & smdclusters (Int_t sec, Int_t plane) const
StEEmcClustercluster (Int_t sector, Int_t layer, Int_t index)
const StEEmcClustercluster (Int_t sector, Int_t layer, Int_t index) const
StEEmcSmdClustersmdcluster (Int_t sector, Int_t plane, Int_t index)
const StEEmcSmdClustersmdcluster (Int_t sector, Int_t plane, Int_t index) const
Int_t numberOfTracks (const StEEmcCluster &cluster) const
Int_t numberOfBackgroundTracks (const StEEmcCluster &cluster) const
StMuTracktrack (const StEEmcCluster &cluster, Int_t index) const
StMuTrackbackgroundTrack (const StEEmcCluster &cluster, Int_t index) const
Int_t numberOfClusters (Int_t sector, Int_t layer) const
Int_t numberOfClusters (Int_t layer) const
 returns the total number of clusters in a given layer
Int_t numberOfClusters () const
 returns the total number of clusters summed over all layers
EEmatchclusterMatch (const StEEmcCluster &c)
const EEmatchclusterMatch (const StEEmcCluster &c) const
Int_t lastClusterId () const
 Returns the current largest cluster ID.
Int_t numberOfMatchingSmdClusters (const StEEmcCluster &cluster, Int_t plane) const
StEEmcSmdClustermatchingSmdCluster (const StEEmcCluster &cluster, Int_t plane, Int_t index)
const StEEmcSmdClustermatchingSmdCluster (const StEEmcCluster &cluster, Int_t plane, Int_t index) const
void setTrackMatching (Float_t distance, Int_t layer)
Bool_t extrapolateToZ (const StPhysicalHelixD &helix, const double z, TVector3 &r) const
 extrapolates helix to position z (borrowed from StEEmcPool/TTM)
void buildHistograms (const StEEmcCluster &cluster)
Int_t nextClusterId ()
Int_t maxClusterId () const
virtual const char * GetCVS () const

Protected Member Functions

virtual Int_t buildTowerClusters ()
 builder for tower clusters
virtual Int_t buildPreshowerClusters ()
 builder for preshower clusters (both layers)
virtual Int_t buildPostshowerClusters ()
 builder for postshower clusters
virtual Int_t buildSmdClusters ()
 builder for smd clusters
Bool_t match (const StEEmcCluster &c1, const StEEmcCluster &c2) const
Bool_t match (const StEEmcCluster &c1, const StEEmcSmdCluster &c2) const
Bool_t match (const StEEmcSmdCluster &c1, const StEEmcSmdCluster &c2) const
Bool_t match (const StEEmcCluster &c1, const StMuTrack *track) const
Bool_t match (const StEEmcSmdCluster &c1, const StMuTrack *track) const
Bool_t matchBackgroundTrack (const StEEmcCluster &c1, const StMuTrack *track) const
 ClassDef (StEEmcGenericClusterMaker, 1)

Protected Attributes

const StEEmcA2EMakermEEanalysis
Int_t mClusterId
std::vector< std::vector
< StEEmcClusterVec_t > > 
mTowerClusters
std::vector< std::vector
< StEEmcSmdClusterVec_t > > 
mSmdClusters
Int_t mNumberOfClusters [6]
const EEmcGeomSimplemEEmcGeom
const EEmcSmdGeommESmdGeom
const EEmcSmdMap * mESmdMap
Int_t mSmdMatchRange
std::map< Int_t, EEmatchmClusterMap
std::map< Int_t, std::vector
< StMuTrack * > > 
mClusterTrackMap
std::map< Int_t, std::vector
< StMuTrack * > > 
mBackgroundTrackMap
std::map< Int_t, EEmatchmTrackClusterMap
Float_t mClusterTrackSeparation [6]


Detailed Description

Date:
11/21/2006
Author:
Jason C. Webb <Jason.Webb@Valpo.edu>
StEEmcGenericClusterMaker provides a generic framework for finding clusters in the endcap. The detailed algorithm is left up to the user, who should create a new class which inherits from this class. An example class, StMyClusterMaker, is provided:

Definition at line 92 of file StEEmcGenericClusterMaker.h.


Constructor & Destructor Documentation

StEEmcGenericClusterMaker::StEEmcGenericClusterMaker ( const Char_t *  name,
const StEEmcA2EMaker a2e = NULL 
)

Initialize storage banks for tower and SMD clusters. Both will be stored sector-wise and layer-wise.

Tower clusters are stored according to the sector in which we find their seed tower.

Layers: T=0, P=1, Q=2, R=3 / Planes: U=0, V=1

mTowerClusters[sector][layer] returns vector of tower clusters mSmdClusters[sector][plane] returns vector of SMD clusters

Tracks will be matched to clusters if they fall within a user-specified distance between the track extrapolated to the layer containing the cluster. (Tracks are extrapolated to the smd layer when matching tower clusters).

< default parameter: tower, dr<0.05 where dr=sqrt(deta^2+dphi^2)

< default parameter: preshower 1 dr<0.075

< default parameter: preshower 2 dr<0.075

< default parameter: postshower dr<0.075

< default parameter: smd u 3.0 strips

< default parameter: smd v 3.0 strips

Definition at line 24 of file StEEmcGenericClusterMaker.cxx.

References Clear().


Member Function Documentation

void StEEmcGenericClusterMaker::buildHistograms ( const StEEmcCluster cluster  ) 

Builds histograms for SMD clusters matching the specified tower cluster. Histograms will be stored in the .hist branch of this maker. Histograms will follow a naming convention h[TUV]cluster[key]_[event] where [TUV] ...

StEEmcCluster& StEEmcGenericClusterMaker::cluster ( Int_t  sector,
Int_t  layer,
Int_t  index 
) [inline]

Return a specific cluster from a given sector, layer

Parameters:
sector specifies the sector id [0,11]
layer specifies which layer 0=T 1=P 2=Q 3=R
index specifies which cluster to return

Definition at line 140 of file StEEmcGenericClusterMaker.h.

Referenced by makeTrackMap().

EEmatch& StEEmcGenericClusterMaker::clusterMatch ( const StEEmcCluster c  )  [inline]

Returns the clusters which match (see match()) the specified cluster

Definition at line 194 of file StEEmcGenericClusterMaker.h.

Referenced by matchingSmdCluster(), and numberOfMatchingSmdClusters().

Int_t StEEmcGenericClusterMaker::Make (  )  [virtual]

The Make() method is the one responsible for calling the maker's InitRun(). Note that that InitRun() is called for real data and if both of the following are true

  • a header exists
  • the run number changes

This is the ONLY place calling the InitRun() routine.

check privilege to skip event

Reimplemented from StMaker.

Definition at line 93 of file StEEmcGenericClusterMaker.cxx.

References makeStEvent(), and makeTrackMap().

void StEEmcGenericClusterMaker::makeStEvent (  ) 

First the eemc tower clusters

Next the pre and postshower clusters

Finally the U&V smd clusters

Definition at line 342 of file StEEmcGenericClusterMaker.cxx.

Referenced by Make().

void StEEmcGenericClusterMaker::makeTrackMap (  ) 

loop over sectors

loop over layers

loop over sectors

loop over layers

Definition at line 243 of file StEEmcGenericClusterMaker.cxx.

References cluster(), StMuTrack::flag(), StMaker::GetName(), StMuDst::globalTracks(), match(), StMuDstMaker::muDst(), numberOfClusters(), StMuDst::primaryTracks(), and track().

Referenced by Make().

Bool_t StEEmcGenericClusterMaker::match ( const StEEmcCluster c1,
const StEEmcCluster c2 
) const [protected]

Default methods to determine whether clusters in different layers match. Tower clusters match pre/postshower clusters if the seed towers are adjacent. Smd clusters match tower clusters if they fall within +/- mSmdMatchRange strips of the center of the seed tower.

Definition at line 452 of file StEEmcGenericClusterMaker.cxx.

References StEEmcTower::isNeighbor(), and StEEmcCluster::tower().

Referenced by add(), and makeTrackMap().

StEEmcSmdCluster & StEEmcGenericClusterMaker::matchingSmdCluster ( const StEEmcCluster cluster,
Int_t  plane,
Int_t  index 
)

Returns a specific SMD cluster which matches the tower clster

Parameters:
cluster a tower cluster
plane 0=U 1=V
index index of the SMD cluster

Definition at line 600 of file StEEmcGenericClusterMaker.cxx.

References clusterMatch().

Int_t StEEmcGenericClusterMaker::nextClusterId (  )  [inline]

Utility method to provide the "next" cluster id. It's in public scope to allow later makers in the chain (i.e. the point maker) to form new clusters and assign a unique cluster id (key).

Definition at line 227 of file StEEmcGenericClusterMaker.h.

Referenced by add().

Int_t StEEmcGenericClusterMaker::numberOfClusters ( Int_t  sector,
Int_t  layer 
) const [inline]

returns the total number of clusters in a given sector, layer

Parameters:
sector specifies the sector id [0,11]
layer specifies which layer 0=T 1=P 2=Q 3=R 4=U 5=V

Definition at line 165 of file StEEmcGenericClusterMaker.h.

Int_t StEEmcGenericClusterMaker::numberOfMatchingSmdClusters ( const StEEmcCluster cluster,
Int_t  plane 
) const

Returns the number of matching SMD clusters for the given tower cluster and plane

Parameters:
cluster a tower cluster
plane 0=U 1=V

Definition at line 594 of file StEEmcGenericClusterMaker.cxx.

References clusterMatch().

Int_t StEEmcGenericClusterMaker::numberOfTracks ( const StEEmcCluster cluster  )  const [inline]

returns the number of tracks pointing at the specified cluster

Parameters:
cluster 

Definition at line 152 of file StEEmcGenericClusterMaker.h.

void StEEmcGenericClusterMaker::remove ( const StEEmcCluster cluster  )  [inline]

Searches list of tower (pre/postshower) clusters and removes the matching cluster.

Definition at line 123 of file StEEmcGenericClusterMaker.h.

void StEEmcGenericClusterMaker::setTrackMatching ( Float_t  distance,
Int_t  layer 
) [inline]

Sets track-cluster matching parameters

Parameters:
distance maximum separation in cm from the cluster centroid to the track for a match to be made.

Definition at line 214 of file StEEmcGenericClusterMaker.h.

StEEmcSmdCluster& StEEmcGenericClusterMaker::smdcluster ( Int_t  sector,
Int_t  plane,
Int_t  index 
) [inline]

return a specific cluster from a given sector, plane

Parameters:
sector specifies the sector id [0,11]
plane specifies which smd plane 0=U 1=V (note difference from "layer" definition)
index specifies which cluster to return

Definition at line 147 of file StEEmcGenericClusterMaker.h.

StMuTrack* StEEmcGenericClusterMaker::track ( const StEEmcCluster cluster,
Int_t  index 
) const [inline]

return a pointer to a StMuTrack which points at the given cluster

Parameters:
cluster given a cluster, return a pointer to the track which matches it... yikes this shouldn't be unique...
index index of the track pointing to the cluster

Definition at line 159 of file StEEmcGenericClusterMaker.h.

Referenced by makeTrackMap().


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

Generated on Thu Feb 9 04:27:22 2012 for StRoot by  doxygen 1.5.9