47 #ifndef StFmsCollection_hh
48 #define StFmsCollection_hh
52 #include "StContainers.h"
69 unsigned int numberOfHits()
const;
70 unsigned int numberOfClusters()
const;
71 unsigned int numberOfPoints()
const;
73 StSPtrVecFmsHit& hits();
74 const StSPtrVecFmsHit& hits()
const;
76 StSPtrVecFmsCluster& clusters();
77 const StSPtrVecFmsCluster& clusters()
const;
79 StSPtrVecFmsPoint& points();
80 const StSPtrVecFmsPoint& points()
const;
82 int fmsReconstructionFlag()
const;
83 int isMergeSmallToLarge()
const;
84 int isGlobalRefit()
const;
85 int isTry1PhotonFit()
const;
86 int isNewClusterCategorization()
const;
87 int isScaleShowerShape()
const;
88 float scaleShowerShapeLarge()
const;
89 float scaleShowerShapeSmall()
const;
90 void setFmsReconstructionFlag(
int v);
91 void setMergeSmallToLarge(
int v);
92 void setGlobalRefit(
int v);
93 void setTry1PhotonFit(
int v);
94 void setNewClusterCategorization(
int v);
95 void setScaleShowerShape(
int v);
96 void setScaleShowerShape(
float l,
float s);
99 void fillFpsAssociation();
100 StSPtrVecFpsSlat& fpsSlats();
103 void fillFmsPointPair();
104 unsigned int numberOfPointPairs();
105 vector<StFmsPointPair*>& pointPairs();
106 vector<StFmsPointPair*>& pointPairsEnergySorted();
107 vector<StFmsPointPair*>& pointPairsETSorted();
108 vector<StFmsPointPair*>& pointPairsPi0MassSorted();
110 void sortPointsByEnergy();
111 void sortPointsByET();
113 void print(
int option=1);
116 StSPtrVecFmsHit mHits;
117 StSPtrVecFmsCluster mClusters;
118 StSPtrVecFmsPoint mPoints;
119 StSPtrVecFpsSlat mFpsSlats;
121 vector<StFmsPointPair*> mPointPairs;
122 vector<StFmsPointPair*> mPointPairsEnergySorted;
123 vector<StFmsPointPair*> mPointPairsETSorted;
124 vector<StFmsPointPair*> mPointPairsPi0MassSorted;
126 Int_t mFmsReconstructionFlag;
129 Float_t mScaleShowerShapeLarge=1.0;
130 Float_t mScaleShowerShapeSmall=1.0;
134 bool mFpsAssociationFilled;
135 bool mFmsPointPairFilled;
140 inline int StFmsCollection::fmsReconstructionFlag()
const {
return mFmsReconstructionFlag;}
141 inline int StFmsCollection::isMergeSmallToLarge()
const {
return (mFmsReconstructionFlag & 0x1);}
142 inline int StFmsCollection::isGlobalRefit()
const {
return ((mFmsReconstructionFlag & 0x2)>>1);}
143 inline int StFmsCollection::isTry1PhotonFit()
const {
return ((mFmsReconstructionFlag & 0x4)>>2);}
144 inline int StFmsCollection::isNewClusterCategorization()
const {
return ((mFmsReconstructionFlag & 0x8)>>3);}
145 inline int StFmsCollection::isScaleShowerShape()
const {
return ((mFmsReconstructionFlag & 0x10)>>4);}
146 inline float StFmsCollection::scaleShowerShapeLarge()
const {
return mScaleShowerShapeLarge;}
147 inline float StFmsCollection::scaleShowerShapeSmall()
const {
return mScaleShowerShapeSmall;}
148 inline void StFmsCollection::setFmsReconstructionFlag(
int v) {mFmsReconstructionFlag=v;}
149 inline void StFmsCollection::setMergeSmallToLarge(
int v) {mFmsReconstructionFlag=(mFmsReconstructionFlag & 0xfffffe) | (v & 0x1); }
150 inline void StFmsCollection::setGlobalRefit(
int v) {mFmsReconstructionFlag=(mFmsReconstructionFlag & 0xfffffd) | (v & 0x1)<<1;}
151 inline void StFmsCollection::setTry1PhotonFit(
int v) {mFmsReconstructionFlag=(mFmsReconstructionFlag & 0xfffffb) | (v & 0x1)<<2;}
152 inline void StFmsCollection::setNewClusterCategorization(
int v) {mFmsReconstructionFlag=(mFmsReconstructionFlag & 0xfffff7) | (v & 0x1)<<3;}
153 inline void StFmsCollection::setScaleShowerShape(
int v) {mFmsReconstructionFlag=(mFmsReconstructionFlag & 0xffffef) | (v & 0x1)<<4;}
154 inline void StFmsCollection::setScaleShowerShape(
float l,
float s) {mScaleShowerShapeLarge=l; mScaleShowerShapeSmall=s;};