StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEEmcSmdGeom.h
1 /*******************************************************************
2  *
3  * $Id: StEEmcSmdGeom.h,v 1.10 2010/08/26 22:48:55 ogrebeny Exp $
4  *
5  * Author: Wei-Ming Zhang
6  *
7  * Revisions:
8  *
9  * 01/28/04 Jason Webb -- StRoot independent code moved to a
10  * separate EEmcSmdGeom class. StEEmcSmdGeom now derives from
11  * that class, implementing functions useful for integrating
12  * with Star. See EEmcSmdGeom.{h,cxx} for further documentation.
13  *
14  *****************************************************************
15  *
16  * Description: Interface to EEMC-SMD database
17  *
18  *****************************************************************
19  *
20  * The following demensions are defined for SMD in EEmcGeomDefs.h
21  * EEmcNumSectors = 12 (The order follows numbering scheme of TPC sectors)
22  * kEEmcNumSmdPlanes = 3 (1: the innermost and 3: the outermost)
23  * kEEmcNumStrips =288 (1: the shortes inner and 288: the shortest outer)
24  * kEEmcNumEdgeStrips =283 (1: the shortes inner and 283: the shortest outer)
25  * kEEmcNumSmdLayers = 2 (1: U and 2: V)
26  *
27  *****************************************************************/
28 #ifndef STEEMCSMDGEOM_H
29 #define STEEMCSMDGEOM_H
30 
31 #include "EEmcSmdGeom.h"
32 
33 // StRoot classes
34 #include "StThreeVectorD.hh"
35 #include "StPhysicalHelixD.hh"
36 
37 class StEEmcSmdGeom : public EEmcSmdGeom {
38 public:
39  StEEmcSmdGeom();
40  virtual ~StEEmcSmdGeom();
41 
42 protected:
43  // The single allowed instance of the class
44  static StEEmcSmdGeom *sInstance;
45 
46 public:
47  // Method(s) to return the single allowed instance of this class
48  static StEEmcSmdGeom *instance();
49  static StEEmcSmdGeom *instance(intVec sectorIdVec);
50 
51 
52  Int_t getEEmcISec(const Int_t iPlane, const StThreeVectorD& point) const;
53 
54  const StructEEmcStrip* getDcaStripPtr(const Int_t iPlane, StThreeVectorD& point, Float_t* dca) const;
55  const StructEEmcStrip* getDcaStripPtr(const Int_t iPlane, const Int_t iSec, const StThreeVectorD& point, Float_t* dca) const;
56 
57  StThreeVectorD getIntersection ( Int_t iSec, Int_t iUStrip, Int_t iVStrip ) const;
58  StThreeVectorD getIntersection ( const StructEEmcStrip *u, const StructEEmcStrip *v ) const;
59 
60  StThreeVectorD getstripEnd(const StructEEmcStrip &strip, const Int_t endId) const;
61 
62  //
63  // three methods for ITTF
64  //
65 
66  // return phiMin and phiMax of a sector including empty sector
67  pairD getEEmcSmdPhiMinMax(const Int_t iPlane, const Int_t iSec) const;
68 
69  // return delta_phi of a sector including empty sector
70  float getEEmcSmdDelPhi(const Int_t iPlane, const Int_t iSec) const;
71 
72  // return center phi of a sector including empty sector
73  float getEEmcSmdCenterPhi(const Int_t iPlane, const Int_t iSec) const;
74 
75  //
76  // Additional ITTF print function
77  //
78  void printSectorPhis(const Int_t iPlane, const Int_t iSec,ostream& os = cout) const;
79 
80  ClassDef(StEEmcSmdGeom,1);
81 };
82 
83 #endif
84 
85 /********************************************************************
86  * $Log: StEEmcSmdGeom.h,v $
87  * Revision 1.10 2010/08/26 22:48:55 ogrebeny
88  * Improved constness
89  *
90  * Revision 1.9 2007/01/25 22:33:22 balewski
91  * add:
92  * - better writeup
93  * - new simpler to use method calculating dca fo track to strip, it is just a wrapper, some approximations were used, may fail at the sector boundary
94  *
95  * Revision 1.8 2004/02/03 22:57:55 jwebb
96  * Added StEEmcSmdGeom::instance(), which is sort of needed...
97  *
98  * Revision 1.7 2004/01/29 15:26:10 jwebb
99  * The StEEmcSmdGeom class was split into two classes. All StRoot-independent
100  * code has been moved to EEmcSmdGeom. TVector3 replaces StThreeVectorD in
101  * all function calls in EEmcSmdGeom. StThreeVectorD wrappers are provided
102  * in StEEmcSmdGeom, for integration into Star framework.
103  *
104  * Revision 1.6 2003/12/05 00:06:11 jwebb
105  * Member function added to return a vector pointing to the intersection of
106  * two strips.
107  *
108  * Revision 1.5 2003/10/15 15:26:03 wzhang
109  * improved and reorganized
110  *
111  * Revision 1.4 2003/08/22 15:14:03 wzhang
112  * Added ClassDef and method stripEnd
113  *
114  * Revision 1.3 2003/06/11 18:58:15 wzhang
115  * added geometry methods for StiEEmc
116  *
117  * Revision 1.2 2003/04/04 15:33:31 wzhang
118  * included EEmcGeomDefs.h & improved codes
119  *
120  * Revision 1.1 2003/03/28 15:50:00 balewski
121  * first
122  *
123  *
124  *******************************************************************/