BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Mdc/MdcRecEvent/include/MdcRecEvent/RecMdcDedxHit.h
Go to the documentation of this file.
1/*
2 * @class : MdcDedx
3 *
4 * this class models "dE/dx hit" used in Mdc Reconstruction
5 *
6 * @author: xcao
7 *
8 * ********************************************************/
9
10#ifndef RECMDCDEDXHIT_H
11#define RECMDCDEDXHIT_H
12#include "EventModel/EventModel.h"
13#include "GaudiKernel/ContainedObject.h"
14#include "GaudiKernel/ObjectVector.h"
15#include "GaudiKernel/SmartRef.h"
16#include "Identifier/Identifier.h"
17
18#include "RecMdcHit.h"
19#include "RecMdcKalHelixSeg.h"
20
21extern const CLID& CLID_RecMdcDedxHit;
22class RecMdcDedx;
23
24class RecMdcDedxHit : virtual public ContainedObject {
25
26public:
27 virtual const CLID& clID() const { return RecMdcDedxHit::classID(); }
28
29 static const CLID& classID() { return CLID_RecMdcDedxHit; }
30
31 // ctor and dector
33 RecMdcDedxHit( const RecMdcDedxHit& recdedxhit );
35 // is this hit grouped to any track?
36 bool isGrouped( void );
37 bool isMdcHitValid() { return ( m_mdcHit != 0 ); }
38 bool isMdcKalHelixSegValid() { return ( m_mdcKalHelixSeg != 0 ); }
39
40 // extractors
41
42 RecMdcKalHelixSeg* getMdcKalHelixSeg() { return m_mdcKalHelixSeg; }
43 RecMdcHit* getMdcHit() { return m_mdcHit; }
44
45 const int getTrkId( void ) const { return m_trkid; }
46 const int getFlagLR( void ) const { return m_lr; }
47 const double getDedx( void ) const { return m_dedx; }
48 double getPathLength( void ) const { return m_pathlength; }
49 const Identifier getMdcId( void ) const { return m_mdcid; }
50
51 // modifiers
52 void setMdcKalHelixSeg( const RecMdcKalHelixSeg* mdcKalHelixSeg ) {
53 m_mdcKalHelixSeg = mdcKalHelixSeg;
54 }
55 void setMdcHit( const RecMdcHit* mdcHit ) { m_mdcHit = mdcHit; }
56
57 void setTrkId( int trkid ) { m_trkid = trkid; }
58 void setFlagLR( int lr ) { m_lr = lr; }
59 void setDedx( double dedx ) { m_dedx = dedx; }
60 void setPathLength( double pathlength ) { m_pathlength = pathlength; }
61 void setMdcId( Identifier mdcid ) { m_mdcid = mdcid; }
62
63private:
64 // RecMdcKalHelixSeg m_kalHelixSeg;
65 int m_trkid{ 0 }; // id of track containing this hit,if this hit belongs to no track, set as
66 // -1;
67 int m_lr{ 0 }; // flag indicating left or right 0:left 1:right 2:ambig
68 double m_pathlength{ 0.0 }; // path length of track cross a cell
69 double m_dedx{ 0.0 };
70 Identifier m_mdcid; // MDC identifier
71
72 SmartRef<RecMdcKalHelixSeg> m_mdcKalHelixSeg;
73 SmartRef<RecMdcHit> m_mdcHit;
74};
75
76typedef ObjectVector<RecMdcDedxHit> RecMdcDedxHitCol;
77
78#endif
const CLID & CLID_RecMdcDedxHit
const CLID & CLID_RecMdcDedxHit
RecMdcDedxHit(const RecMdcDedxHit &recdedxhit)
void setMdcKalHelixSeg(const RecMdcKalHelixSeg *mdcKalHelixSeg)
bool isGrouped(void)