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