StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
St_sls_Maker.h
1 
16 #ifndef STAR_St_sls_Maker
17 #define STAR_St_sls_Maker
18 
19 #ifndef StMaker_H
20 #include "StMaker.h"
21 #include "StThreeVectorF.hh"
22 #include "StThreeVectorD.hh"
23 #include "StSsdUtil/StSsdBarrel.hh"
24 #include "StSsdUtil/StSsdWafer.hh"
25 #endif
26 class St_g2t_ssd_hit;
27 class St_g2t_svt_hit;
28 class St_sls_strip;
29 class slsCtrl_st;
30 class St_slsCtrl;
31 class St_g2t_track;
32 class St_ssdDimensions;
33 class St_ssdWafersPosition;
34 class StMcEvent;
35 class StDAQReader;
36 class StMcSsdHit;
37 
38 class St_sls_Maker : public StMaker {
39  private :
40 
41  slsCtrl_st *m_ctrl;
42  St_ssdDimensions *m_dimensions;
43  St_ssdWafersPosition *m_positions;
44  double mBField; // z component of BField;
45  StMcSsdHit *mHit;
46  public:
47  St_sls_Maker(const char *name="sls_strip");
48  virtual ~St_sls_Maker();
49  virtual Int_t Init();
50  virtual Int_t InitRun(Int_t runNumber);
51  virtual Int_t Make();
52  virtual Int_t Finish();
53  virtual void PrintInfo();
54  virtual void Clear(const char *opt);
55  Int_t readPointFromTable(St_g2t_ssd_hit *g2t_ssd_hit);
56  Int_t readPointFromTable(St_g2t_svt_hit *g2t_svt_hit) {return readPointFromTable((St_g2t_ssd_hit *) g2t_svt_hit);}
57  Int_t removeInactiveHitInTable(St_g2t_ssd_hit *g2t_ssd_hit);
58  Int_t removeInactiveHitInTable(St_g2t_svt_hit *g2t_svt_hit) {return removeInactiveHitInTable((St_g2t_ssd_hit *) g2t_svt_hit);}
59  void chargeSharingOverStrip(slsCtrl_st *ctrl);
60  Int_t writeStripToTable(St_sls_strip *sls_strip);
61  Int_t readPointFromTableWithEmbedding(St_g2t_ssd_hit *g2t_ssd_hit,St_g2t_track *g2t_track,Int_t N,ssdWafersPosition_st *positions);
62  void setSsdParameters(ssdDimensions_st *geom_par);
63  void printSsdParameters();
64  Int_t idWaferToWaferNumb(Int_t idWafer); // idwafer = layer*1000+waf*100+ladder => waferNumb = mNWaferPerLadder*(ladder-1) + waf - 1
65  Int_t idWaferToLadderNumb(Int_t idWafer);// idwafer => ladder-1
66  Int_t waferNumbToIdWafer(Int_t waferNumb);// waferNumb = mNWaferPerLadder*(ladder-1) + waf - 1 => idwafer
67  Int_t idWaferToWafer(Int_t idWafer) {return (idWafer-7000)/100-1;}
68  Int_t ideal2RealTranslation(StThreeVector<double> *pos, StThreeVector<double> *mtm, double charge, int wafId, int index, ssdWafersPosition_st *positions,Int_t *IL, Int_t *IW);
69  int IsOnWafer(const StThreeVector<double>& LocalPosition);
70  void debugUnPeu();
71 
72  private :
73  Int_t mSsdLayer;
74  Int_t mNLadder;
75  Int_t mNWaferPerLadder;
76  Int_t mNStripPerSide;
77  Int_t mActiveLadders[20];
78  Float_t mDetectorLargeEdge;
79  Float_t mDetectorSmallEdge;
80  Float_t mStripPitch;
81  Float_t mTheta;
82  Int_t *counter;
83  TH1F *hRejected;
84  ssdDimensions_st *mDimensions;
85  protected:
86  StMcEvent *mcEvent;
87  Int_t N;
88  ssdWafersPosition_st *positions;
89 
90  virtual const char *GetCVS() const
91  {static const char cvs[]="Tag $Name: $ $Id: St_sls_Maker.h,v 1.14 2014/08/06 11:43:43 jeromel Exp $ built " __DATE__ " " __TIME__ ; return cvs;}
92 
93 
94 
95  ClassDef(St_sls_Maker, 1) //StAF chain virtual base class for Makers
96 };
97 #endif
98 
99  /**************************************************************************
100  * $Id: St_sls_Maker.h,v 1.14 2014/08/06 11:43:43 jeromel Exp $
101  *
102  * $Log: St_sls_Maker.h,v $
103  * Revision 1.14 2014/08/06 11:43:43 jeromel
104  * Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
105  *
106  * Revision 1.13 2008/08/12 22:48:38 bouchet
107  * retrieve positions and dimensions tables using Get methods
108  *
109  * Revision 1.12 2008/05/29 03:07:27 bouchet
110  * remove inactive variables;fix a potential memory leak
111  *
112  * Revision 1.11 2008/05/07 22:59:11 bouchet
113  * EmbeddingMaker:initial version ; modified reading of GEANT hits
114  *
115  * Revision 1.10 2007/03/21 17:19:56 fisyak
116  * use new StSsdBarrel
117  *
118  * Revision 1.9 2006/10/16 16:36:08 bouchet
119  * Unify classes : Remove StSlsStrip, StSlsPoint, StSpaStrip, StSpaNoise by the same classes used in StSsdPointMaker (StSsdStrip,StSsdPoint) ; The methods for these classes are in StSsdUtil
120  *
121  * Revision 1.8 2006/09/15 21:09:52 bouchet
122  * read the noise and pedestal from ssdStripCalib
123  *
124  * Revision 1.7 2005/05/13 08:39:33 lmartin
125  * CVS tags added
126  *
127  * Revision 1.6 2003/10/08 03:46:34 suire
128  * *** empty log message ***
129  *
130  * Revision 1.3 2002/03/25 20:06:44 suire
131  * Doxygen documentation, cleaning
132  *
133  *
134  **************************************************************************/
135 
136 
137 
138 
139 
140 
virtual Int_t Make()
virtual Int_t Finish()
Event data structure to hold all information from a Monte Carlo simulation. This class is the interfa...
Definition: StMcEvent.hh:169