BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Emc/EmcRecGeoSvc/include/EmcRecGeoSvc/EmcRecBarrelGeo.h
Go to the documentation of this file.
1//
2// EmcRecBarrelGeo
3//
4// Dec 18, 2003, Created by Wang.Zhe
5//
6// unit: mm, radian
7//
8#ifndef EMC_REC_BARREL_GEO_H
9#define EMC_REC_BARREL_GEO_H
10
11#include <iostream>
12#include <vector>
13
14#include "CLHEP/Geometry/Point3D.h"
15#ifndef ENABLE_BACKWARDS_COMPATIBILITY
16typedef HepGeom::Point3D<double> HepPoint3D;
17#endif
18
19#include "EmcRecGeoSvc/EmcRecCrystal.h"
20#include "Identifier/EmcID.h"
21#include "Identifier/Identifier.h"
22
23using namespace CLHEP;
24
26public:
27 // Constructors and destructors
30
31 // private method
32private:
33 //====for barrel EMC
34 void ParameterInitialize();
35 // Evaluate one volumn along y-axis, then transform them to others by rotation.
36 void CalculateStandardCrystal();
37 // Figure out the volumn with minimum phi
38 void Transform2Column1();
39 // Fill crystals' center vector
40 void FillCCenterVector();
41
42public:
43 // Access by others (refer to Identifier for ID arrangement)
44 //
45 // Index range: theta phi
46 // barrel==> 0-43 0-119
47 // (value of angel from min to max)
48 //
49 EmcRecCrystal GetCrystal( const Identifier& id ) const;
50 HepPoint3D GetCCenter( const Identifier& id ) const;
51 HepPoint3D GetCFrontCenter( const Identifier& id ) const;
52
53 inline double GetBarrelR() const { return fBarrelR; }
54 inline double GetBarrelOffset1() const { return fBarrelOffset1; }
55 inline double GetBarrelOffset2() const { return fBarrelOffset2; }
56 inline double GetBarrelh1() const { return fBarrelh1; }
57 inline double GetBarrelh2() const { return fBarrelh2; }
58 inline double GetBarrelh3() const { return fBarrelh3; }
59 inline double GetBarrelL() const { return fBarrelL; }
60 inline int GetBarrelNPhiMax() const { return fBarrelNPhiMax; }
61 inline int GetBarrelNThetaMax() const { return fBarrelNThetaMax; }
62
63 // private data members
64private:
65 // for Barrel EMC
66 double fBarrelR;
67 double fBarrelOffset1;
68 double fBarrelOffset2;
69 double fBarrelh1;
70 double fBarrelh2;
71 double fBarrelh3;
72 double fBarrelL;
73 double fBarrelL2;
74 double fBarrelAlpha;
75 int fBarrelNPhiMax;
76 int fBarrelNThetaMax;
77
78 // standard crystals
79 vector<EmcRecCrystal> fStandard;
80 // vector of each crystal's center
81 vector<HepPoint3D> fCCenter;
82 vector<HepPoint3D> fCFrontCenter;
83};
84#endif /* EMC_REC_BARREL_GEO_H */
HepGeom::Point3D< double > HepPoint3D
EmcRecCrystal GetCrystal(const Identifier &id) const
HepPoint3D GetCFrontCenter(const Identifier &id) const
HepPoint3D GetCCenter(const Identifier &id) const