00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef STAR_StSsdFastSimMaker
00011 #define STAR_StSsdFastSimMaker
00012 #ifndef StMaker_H
00013 #include "StMaker.h"
00014 #endif
00015 #include "StThreeVectorF.hh"
00016 #include "StThreeVectorD.hh"
00017 #include "StSsdUtil/StSsdBarrel.hh"
00018 #include "StSsdUtil/StSsdWafer.hh"
00019 class StEvent;
00020 class StMcEvent;
00021 class StRandom;
00022 class TH1S;
00023 class TH2S;
00024 class TH2F;
00025
00026 class StSsdBarrel;
00027 class St_ssdDimensions;
00028 class St_ssdWafersPosition;
00029 class slsCtrl_st;
00030 class St_slsCtrl;
00031 class StSsdBarrel;
00032 class St_g2t_ssd_hit;
00033 class St_g2t_svt_hit;
00034 class St_sls_strip;
00035 class ssdConfiguration_st;
00036 class StSsdHit;
00037 class StSsdHitCollection;
00038 class StSsdFastSimMaker : public StMaker {
00039 private :
00040 St_ssdDimensions *m_dimensions;
00041 St_ssdWafersPosition *m_positions;
00042 ssdConfiguration_st *m_config;
00043 St_slsCtrl *m_ctrl;
00044 StSsdHit *mHit;
00045 public:
00046 StSsdFastSimMaker(const char *name="SsdFastSim");
00047
00048
00049
00050 virtual ~StSsdFastSimMaker();
00051
00052
00053
00054
00055
00056
00057
00058 virtual Int_t Make();
00059
00060 virtual Int_t Init();
00061
00062 virtual Int_t InitRun(int);
00063
00064 virtual void Clear(Option_t *option="");
00065
00066 virtual Int_t Finish();
00067
00068 virtual Bool_t accept(StEvent* event);
00069
00070 Float_t distortHit(Float_t x, double res);
00071 void setSsdParameters(ssdDimensions_st *geom_par);
00072 void printSsdParameters();
00073 Int_t idWaferToWaferNumb(Int_t idWafer);
00074 Int_t idWaferToLadderNumb(Int_t idWafer);
00075 Int_t waferNumbToIdWafer(Int_t waferNumb);
00076 Int_t idWaferToWafer(Int_t idWafer) {return (idWafer-7000)/100-1;}
00077 Int_t IsOnWafer(Float_t x, Float_t y);
00078 Int_t RemoveTriangle(Float_t x, Float_t y);
00079
00080 private :
00081 ssdDimensions_st *mDimensions;
00082 Int_t mSsdLayer;
00083 Int_t mNLadder;
00084 Int_t mNWaferPerLadder;
00085 Int_t mNStripPerSide;
00086 Int_t mActiveLadders[20];
00087 Float_t mDetectorLargeEdge;
00088 Float_t mDetectorSmallEdge;
00089 Float_t mStripPitch;
00090 Float_t mTheta;
00091
00092 protected:
00093 StRandom* myRandom;
00094 double mResXSsd;
00095 double mResZSsd;
00096 StSsdHitCollection *mCol;
00097 StEvent *mEvent;
00098 int mSmear;
00099 TH1S *WaferNumb;
00100 TH2S *HitsMap;
00101 TH1F *dX;
00102 TH1F *dY;
00103 TH1F *dZ;
00104 TH2F *Local;
00105 TH1F *Ratio;
00106
00107
00108
00109
00110 virtual const char *GetCVS() const
00111 {
00112 static const char cvs[]="Tag $Name: $ $Id: StSsdFastSimMaker.h,v 1.3 2008/04/02 23:45:25 fisyak Exp $ built "__DATE__" "__TIME__ ;
00113 return cvs;
00114 }
00115 ClassDef(StSsdFastSimMaker,0)
00116 };
00117 #endif