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