BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
Mdc/MdcRecEvent/MdcRecEvent-00-05-14/MdcRecEvent/RecMdcDedx.h
Go to the documentation of this file.
1/*
2 * @class : MdcDedx
3 *
4 * this class models "dE/dx" used in Mdc Reconstruction
5 *
6 * @author: wangdy
7 *
8 * ********************************************************/
9
10#ifndef RECMDCDEDX_H
11#define RECMDCDEDX_H
12#include "GaudiKernel/ContainedObject.h"
13#include "GaudiKernel/SmartRef.h"
14#include "GaudiKernel/SmartRefVector.h"
15#include "GaudiKernel/ObjectVector.h"
16#include "EventModel/EventModel.h"
17#include "RecMdcTrack.h"
18#include "RecMdcKalTrack.h"
19#include "RecMdcDedxHit.h"
20
21
22//#include "Identifier/Identifier.h"
23//#include "ExtEvent/ExtTrack.h"
24#include "DstEvent/DstMdcDedx.h"
25
26extern const CLID& CLID_RecMdcDedx;
27typedef SmartRefVector<RecMdcDedxHit> DedxHitRefVec;
28
29class RecMdcDedx : virtual public DstMdcDedx {
30
31 public:
32 virtual const CLID& clID() const {
33 return RecMdcDedx::classID();
34 }
35
36 static const CLID& classID() {
37 return CLID_RecMdcDedx;
38 }
39
40
41 //ctor and dector
43 RecMdcDedx(const RecMdcDedx& dedxtrk);
44 RecMdcDedx(const DstMdcDedx& dedxtrk);
47
49 //extractors
50 // int getId(void) const { return m_id; }
51 // int getPid(void) const { return m_pid; }
52 // int getStat(void) const { return m_stat; }
53 // int getNHits(void) const { return m_nhits; }
54 // float getDedx(void) const { return m_dedx; }
55 // float getDedxStd(void) const { return m_dedx_std; }
56 // int getBitrunc(void) const { return m_bitrunc; }
57
58 bool isMdcTrackValid(void) {return (m_mdcTrack!=0);}
59 bool isMdcKalTrackValid(void) {return (m_mdcKalTrack!=0);}
60
61 DedxHitRefVec getVecDedxHits() const {return m_vecdedxhit;}
62
63 double getDedxHit(void) {return m_dedx_hit; }
64 double getDedxEsat(void) {return m_dedx_esat; }
65 double getDedxNoRun(void) {return m_dedx_norun; }
66 double getDedxMoment(void) {return m_dedx_momentum; }
67
68 double getDedxExpect(int pid) const { return m_dedx_exp[pid]; }
69 double getSigmaDedx(int pid) const { return m_sigma_dedx[pid]; }
70 double getPidProb(int pid) const { return m_pid_prob[pid]; }
71 // double getChi(int pid) const { return m_chi[pid]; }
72 RecMdcTrack* getMdcTrack(void) { return m_mdcTrack; }
73 RecMdcKalTrack* getMdcKalTrack(void) {return m_mdcKalTrack; }
74
75 //modifiers
76 void setVecDedxHits(const DedxHitRefVec& vecdedxhit) {m_vecdedxhit = vecdedxhit;}
77
78 void setDedxHit(double dedx_hit) { m_dedx_hit = dedx_hit; }
79 void setDedxEsat(double dedx_esat) { m_dedx_esat = dedx_esat; }
80 void setDedxNoRun(double dedx_norun) { m_dedx_norun = dedx_norun; }
81 void setDedxMoment(double dedx_momentum){ m_dedx_momentum = dedx_momentum; }
82 // void setId(int id) { m_id = id; }
83 // void setPid(int pid) { m_pid = pid; }
84 // void setStat(int stat) { m_stat = stat; }
85 // void setNHits(int nhits) { m_nhits = nhits; }
86 // void setDedx(float dedx) { m_dedx = dedx; }
87 // void setDedxStd(float dedx_std) { m_dedx_std = dedx_std; }
88 // void setBitrunc(int bitrunc) { m_bitrunc = bitrunc; }
89
90 void setDedxExpect(double* dedx_exp) {
91 for(int i = 0; i < 5; i++)
92 m_dedx_exp[i] = dedx_exp[i] ;
93 }
94 void setSigmaDedx(double* sigma_dedx) {
95 for(int i = 0; i < 5; i++)
96 m_sigma_dedx[i] = sigma_dedx[i] ;
97 }
98 void setPidProb(double* pid_prob) {
99 for(int i = 0; i < 5; i++)
100 m_pid_prob[i] = pid_prob[i] ;
101 }
102 /* void setChi(double* chi) {
103 for(int i = 0; i < 5; i++)
104 m_chi[i] = chi[i] ;
105 }
106 */
107 void setMdcTrack(RecMdcTrack* trk) {m_mdcTrack = trk; }
108 void setMdcKalTrack(RecMdcKalTrack* trk) {m_mdcKalTrack = trk;}
109
110private:
111 DedxHitRefVec m_vecdedxhit;
112
113 double m_dedx_hit; //double trucation mean of hit-level calib
114 double m_dedx_esat; //double trucation mean of hit-level+electron saturation calib
115 double m_dedx_norun; //double trucation mean of no run gain calib
116 double m_dedx_momentum; //dE/dx calib used momentum
117 // int m_bitrunc; //bitrunction rate
118 // int m_id;
119 // int m_pid; // partile id results
120 // int m_stat; // status flag
121 // int m_nhits; // number of hits used in dE/dx recon
122 // float m_dedx; // measured value of dE/dx
123 // float m_dedx_std; // normalized dE/dx;
124 double m_dedx_exp[5]; // expected value of dE/dx for 5 particle hypotheses
125 double m_sigma_dedx[5]; // sigma value of dE/dx for 5 particle hypotheses
126 double m_pid_prob[5]; // probability for each of the 5 particle hypotheses
127 // double m_chi[5]; // chi of dE/dx for each of 5 particle hypotheses
128 SmartRef<RecMdcTrack> m_mdcTrack; // reference to the track
129 SmartRef<RecMdcKalTrack> m_mdcKalTrack;
130};
131
132typedef ObjectVector<RecMdcDedx> RecMdcDedxCol;
133
134#endif
135
SmartRefVector< RecMdcDedxHit > DedxHitRefVec
SmartRefVector< RecMdcDedxHit > DedxHitRefVec
const CLID & CLID_RecMdcDedx
Definition: EventModel.cxx:304
ObjectVector< RecMdcDedx > RecMdcDedxCol
void setVecDedxHits(const DedxHitRefVec &vecdedxhit)
RecMdcDedx(const DstMdcDedx &dedxtrk)
RecMdcDedx & operator=(const RecMdcDedx &)
RecMdcDedx(const RecMdcDedx &dedxtrk)
RecMdcDedx & operator=(const DstMdcDedx &)