FGT in MuDst
Here's some documentation on the latest version of putting FGT data in MuDst. Major updates since the last version (January 2012) is the removal of dynamic arrays in the StMuFgtClusters (since ROOT doesn't support this, though it doesn't prevent it), and instead adding a TClonesArray of strip, cluster associations. The StMuFgtInfo TClonesArray was also removed, as it has not been used. Note, once a final decision has been reached (i.e. after officially reviewed and placed in DEV), then documentation (such as the following) will be placed in the FGT drupal pages instead of my person pages. Note, the code can currently be found at
$CVSROOT/offline/StFgtDevel/StRoot/StMuDSTMaker/COMMON
and was checked into CVS July 20th, 2012. One can access the CVS files via the web via http://www.star.bnl.gov/cgi-bin/protected/cvsweb.cgi/offline/StFgtDevel/StRoot/StMuDSTMaker/COMMON/
Overview
The MuDst currently contains three FGT-related TClonesArrays, one for strips, one for clusters, and one for associations between strips and clusters. They are enumerated [StMuArrays.h, line 20] as
enum fgtTypes {muFgtStrips=0, muFgtClusters, muFgtStripAssociations };
Each array, respectively, containes classes of types [StMuArrays.cxx, line 71]
"StMuFgtStrip","StMuFgtCluster","StMuFgtStripAssociation"
Container for FGT Strips [StFgtStrip.h]
The data members are
Int_t mGeoId; // indexing: 6 disk * 4 quad * 2 planes * 720 strips Short_t mAdc[kMuFgtNumTimeBins]; // Short_t mClusterSeedType; // as defined in StEvent/StEnumerations.h Float_t mCharge; // before GEM, units (C), relation: ADC = ped + charge*gain(r,phi,disc) Float_t mChargeUncert; //
representing a subset of the StEvent container StFgtStrip. Combined with the database, all information in the StEvent can be recovered/recomputed.
Container for FGT Clusters [StFgtCluster.h]
The data members are
// data members Int_t mCentralStripGeoId; // obvious--also serves as a unique key, and // identifies the physical quadrant of the cluster Int_t mFirstStripAssociationIdx; // Index in the MuDst mFgtStripAssociation // TClonesArray. The associated strips are from index // mFirstStripAssociationIdx to // mFirstStripAssociationIdx+mNumStrips-1 Int_t mNumStrips; // number of strips associated with this cluster Float_t mCharge, mChargeUncert; // associated charge for the cluster, and its uncertainty Float_t mR, mErrR, mPhi, mErrPhi; // r, phi position and error
which is a subset of the information contained in the StEvent container StFgtHit. Given the database and the MuDst, all information in the StFgtHits can be redetermined.
Container for Associating Strips and Clusters [StFgtStripAssociation.h]
The data members are
Int_t mClusIdx; // index of the cluster in the muFgtClusters TClonesArray Int_t mStripIdx; // index of the strip in the muFgtStrips TClonesArray Float_t mWeight; // membership weight of the strip in the given cluster.
Note well: the indices are the positions of the strip and cluster containers in the respective MuDst TClonesArrays, not the geoIds or elecIds or any other enumeration. However, by using the index and the other TClonesArray, the full container for the strips and clusters are accessable, providing all other needed information.
Information Saved in the FGT [StMuDstMaker.cxx]
Currently all clusters are saved, and all strips which are either associated with a cluster or have the following types are saved:
kFgtSeedType1 kFgtSeedType2 kFgtSeedType3 kFgtClusterPart kFgtClusterEndUp kFgtClusterEndDown kFgtStripShared kFgtClusterTooBig
Note: the caveat is that the strips and clusters have to be present in the StEvent when StMuDstMaker::Make is executed. This should be the case, unless some other maker has removed them. The code actually filling the MuDst arrays based on the data in the StEvent is in the function
void StMuDstMaker::fillFgt(StEvent* ev)
- sgliske's blog
- Login or register to post comments