36 #ifndef STETOFHITMAKER_H
37 #define STETOFHITMAKER_H
44 #include "StThreeVectorD.hh"
68 Int_t InitRun( Int_t );
69 Int_t FinishRun( Int_t );
74 void processStEvent();
79 void setFileNameSignalVelocity(
const char* fileName );
80 void setFileNameModMatrix(
const char* fileName );
81 void setFileNameAlignParam(
const char* fileName );
83 void setGet4MinTime(
const double minTime );
84 void setSoftwareDeadTime(
const double& deadTime );
85 void setDoClockJumpShift(
const bool doShift );
86 void setDoDoubleClockJumpShift(
const bool doDoubleShift );
88 void setIsSim(
const bool isSim );
89 void setDoQA(
const bool doQA );
90 void setDebug(
const bool debug );
91 void setDoAfterPulseCorr(
const bool apcorr );
93 void updateClockJumpMap(
const std::map< int, int >& clockJumpDir );
95 void modifyHit(
int modMode,
double& localX,
double& localY,
double& time);
99 void bookHistograms();
100 void setHistFileName();
101 void writeHistograms();
103 void clearHits(
const bool isMuDst );
106 bool fillStorage(
StETofDigi* aDigi,
unsigned int index );
107 bool fillStorage(
StMuETofDigi* aDigi,
unsigned int index );
111 void mergeClusters(
const bool isMuDst );
113 void assignAssociatedHits(
const bool isMuDst );
116 void startTimeVpd(
double& startTime,
double& vertexVz );
118 void fillUnclusteredHitQA(
const double& tstart,
const bool isMuDst );
120 void fillHitQA(
const bool isMuDst,
const double& tstart );
121 void updateCyclicRunningMean(
const double& value,
double& mean,
int& count,
const double& range );
123 unsigned int detectorToKey(
const unsigned int detectorId );
130 std::map< int, std::vector< int > > mGet4PartnerPairMap;
131 std::map< int , int > mGet4DefaultMap;
133 std::string mFileNameHitParam;
134 std::string mFileNameSignalVelocity;
135 std::string mFileNameModMatrix;
136 std::string mFileNameAlignParam;
139 std::map< UInt_t, std::vector< StETofDigi* > > mStoreDigi;
142 std::map< StETofDigi*, UInt_t > mMapDigiIndex;
145 std::map< UInt_t, std::vector< StETofHit* > > mStoreHit;
148 std::map< StETofHit*, std::vector< UInt_t > > mMapHitDigiIndices;
151 std::map< UInt_t, std::vector< UInt_t > > mMapHitIndexDigiIndices;
155 Double_t mMergingRadius;
157 std::map< UInt_t, Double_t > mSigVel;
159 Double_t mSoftwareDeadTime;
160 Bool_t mDoClockJumpShift;
161 Bool_t mDoDoubleClockJumpShift;
163 std::map< Int_t, Int_t > mClockJumpDirection;
165 std::map< Int_t, int > mModMatrix;
167 float mGet4doublejumpTmin;
168 std::map< Int_t, bool > mGet4doublejumpFlag;
169 std::map< Int_t, std::vector < float > > mGet4doublejumpTimes;
178 std::string mHistFileName;
179 std::map< std::string, TH1* > mHistograms;
181 std::vector< Bool_t > mCounterActive;
183 virtual const Char_t *GetCVS()
const {
static const char cvs[]=
"Tag $Name: $Id: built " __DATE__
" " __TIME__ ;
return cvs; }
190 inline void StETofHitMaker::setFileNameSignalVelocity(
const char* fileName ) { mFileNameSignalVelocity = fileName; }
191 inline void StETofHitMaker::setFileNameModMatrix(
const char* fileName ) { mFileNameModMatrix = fileName; }
192 inline void StETofHitMaker::setFileNameAlignParam(
const char* fileName ) { mFileNameAlignParam = fileName; }
195 inline void StETofHitMaker::setGet4MinTime(
const double minTime ) { mGet4doublejumpTmin = minTime; }
196 inline void StETofHitMaker::setSoftwareDeadTime(
const double& deadTime ) { mSoftwareDeadTime = deadTime; }
197 inline void StETofHitMaker::setDoClockJumpShift(
const bool doShift ) { mDoClockJumpShift = doShift; }
198 inline void StETofHitMaker::setDoDoubleClockJumpShift(
const bool doDoubleShift ) { mDoDoubleClockJumpShift = doDoubleShift; }
200 inline void StETofHitMaker::setIsSim(
const bool isSim ) { mIsSim = isSim; }
201 inline void StETofHitMaker::setDoQA(
const bool doQA ) { mDoQA = doQA; }
202 inline void StETofHitMaker::setDebug(
const bool debug ) { mDebug = debug; }
203 inline void StETofHitMaker::setDoAfterPulseCorr(
const bool apcorr ) { mApCorr = apcorr; }
void setFileNameHitParam(const char *fileName)
read hit building parameters from file