BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/DstEvent/include/DstEvent/DstEmcShower.h
Go to the documentation of this file.
1#ifndef DST_EMCSHOWER_H
2#define DST_EMCSHOWER_H
3#include "CLHEP/Geometry/Point3D.h"
4#include "CLHEP/Matrix/SymMatrix.h"
5#include "EventModel/EventModel.h"
6#include "GaudiKernel/ContainedObject.h"
7#include "GaudiKernel/ObjectVector.h"
8
9#include <vector>
10
11#ifndef ENABLE_BACKWARDS_COMPATIBILITY
12// backwards compatibility will be enabled ONLY in CLHEP 1.9
13typedef HepGeom::Point3D<double> HepPoint3D;
14#endif
15using namespace CLHEP;
16
17using namespace std;
18using namespace EventModel;
19extern const CLID& CLID_DstEmcShower;
20
21class DstEmcShower : virtual public ContainedObject {
22public:
24 virtual ~DstEmcShower() {}
25
26 virtual const CLID& clID() const { return DstEmcShower::classID(); }
27 static const CLID& classID() { return CLID_DstEmcShower; }
28
29 int trackId() const { return m_trackId; }
30 int numHits() const { return m_numHits; }
31 int status() const { return m_status; }
32 int cellId() const { return m_cellId; }
33 int module() const { return m_module; }
34 HepPoint3D position() const { return m_position; }
35 double x() const { return m_position.x(); }
36 double y() const { return m_position.y(); }
37 double z() const { return m_position.z(); }
38 double theta() const { return m_position.theta(); }
39 double phi() const { return m_position.phi(); }
40 double dx() const;
41 double dy() const;
42 double dz() const;
43 double dtheta() const { return m_dTheta; }
44 double dphi() const { return m_dPhi; }
45 double energy() const { return m_energy; }
46 double dE() const { return m_dE; }
47 double eSeed() const { return m_eSeed; }
48 double e3x3() const { return m_e3x3; }
49 double e5x5() const { return m_e5x5; }
50 double time() const { return m_time; }
51 double secondMoment() const { return m_secondMoment; }
52 double latMoment() const { return m_latMoment; }
53 double a20Moment() const { return m_a20Moment; }
54 double a42Moment() const { return m_a42Moment; }
55 HepSymMatrix errorMatrix() const { return m_errorMatrix; }
56
57 void setTrackId( int trackId ) { m_trackId = trackId; }
58 void setNumHits( int hit ) { m_numHits = hit; }
59 void setStatus( int st ) { m_status = st; }
60 void setCellId( int id ) { m_cellId = id; }
61 void setModule( int mod ) { m_module = mod; }
62 void setPosition( const HepPoint3D& pos ) { m_position = pos; }
63 void setEnergy( double e ) { m_energy = e; }
64 void setDE( double de ) { m_dE = de; }
65 void setDtheta( double dt ) { m_dTheta = dt; }
66 void setDphi( double dpi ) { m_dPhi = dpi; }
67 void setESeed( double eSeed ) { m_eSeed = eSeed; }
68 void setE3x3( double e3x3 ) { m_e3x3 = e3x3; }
69 void setE5x5( double e5x5 ) { m_e5x5 = e5x5; }
70 void setTime( double time ) { m_time = time; }
71 void setSecondMoment( double secondMoment ) { m_secondMoment = secondMoment; }
72 void setLatMoment( double latMoment ) { m_latMoment = latMoment; }
73 void setA20Moment( double a20Moment ) { m_a20Moment = a20Moment; }
74 void setA42Moment( double a42Moment ) { m_a42Moment = a42Moment; }
75 void setErrorMatrix( const HepSymMatrix& error ) { m_errorMatrix = error; }
76
77private:
78 int m_trackId{ 0 }; // Track ID wensp Add 2005-10-19
79 int m_numHits{ 0 }; // Total number of hits
80 int m_status{ 0 }; // Status: 1:single seed cluster; 2:splitted from multi-seeds cluster
81 int m_cellId{ 0 }; // Cell ID
82 int m_module{ 0 }; // Module: 0:east endcap; 1:barrel; 2:west endcap
83 HepPoint3D m_position; // Shower position
84 double m_dTheta{ 0.0 };
85 double m_dPhi{ 0.0 };
86 double m_energy{ 0.0 }; // Shower energy after correction
87 double m_dE{ 0.0 };
88 double m_eSeed{ 0.0 }; //// Energy of seed, only one
89 double m_e3x3{ 0.0 }; // Energy of 3x3 crystals, totally 9 ones
90 double m_e5x5{ 0.0 }; // Energy of 5x5 crystals, totally 25 ones
91 double m_time{ 0.0 }; // Time measurement
92 // The following four moments describe the shower shape
93 double m_secondMoment{ 0.0 }; // add 2006-07-03
94 double m_latMoment{ 0.0 }; // Lateral moment
95 double m_a20Moment{ 0.0 }; // Zernike moment
96 double m_a42Moment{ 0.0 };
97 HepSymMatrix m_errorMatrix;
98};
99
100ostream& operator<<( ostream& os, const DstEmcShower& aShower );
101
102typedef ObjectVector<DstEmcShower> DstEmcShowerCol;
103#endif // DST_EMCSHOWER_H
HepGeom::Point3D< double > HepPoint3D
ostream & operator<<(ostream &os, const DstEmcShower &aShower)
const CLID & CLID_DstEmcShower
ObjectVector< DstEmcShower > DstEmcShowerCol
const CLID & CLID_DstEmcShower
TGraph2DErrors * dt
Definition McCor.cxx:41
double dy() const
double dz() const
double dx() const
void setSecondMoment(double secondMoment)
void setPosition(const HepPoint3D &pos)
void setErrorMatrix(const HepSymMatrix &error)