CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalEvent Class Reference

#include <MdcCalEvent.h>

Public Member Functions

 MdcCalEvent ()
 
 ~MdcCalEvent ()
 
void setParam (MdcCalParams &param)
 
void setGeomSvc (IMdcGeomSvc *mdcGeomSvc)
 
void setUtilSvc (IMdcUtilitySvc *mdcUtilitySvc)
 
StatusCode setRecEvent ()
 
StatusCode setKalEvent ()
 
int getNRawHitTQ () const
 
int getEsFlag () const
 
bool getEsCutFlag () const
 
int getNesCutFlag () const
 
double getTes () const
 
int getNTrk () const
 
MdcCalRecTrkgetRecTrk (int index) const
 
void setEvtNoOnline (int evtNo)
 
int getEvtNoOnline () const
 
void setEvtNoOffline (int evtNo)
 
int getEvtNoOffline () const
 
void clear ()
 

Detailed Description

Definition at line 15 of file MdcCalEvent.h.

Constructor & Destructor Documentation

◆ MdcCalEvent()

MdcCalEvent::MdcCalEvent ( )

Definition at line 36 of file MdcCalEvent.cxx.

36 {
37}

◆ ~MdcCalEvent()

MdcCalEvent::~MdcCalEvent ( )

Definition at line 39 of file MdcCalEvent.cxx.

39 {
40}

Member Function Documentation

◆ clear()

void MdcCalEvent::clear ( )

Definition at line 188 of file MdcCalEvent.cxx.

188 {
189 unsigned int i;
190 for(i=0; i<m_rectrk.size(); i++){
191 delete m_rectrk[i];
192 }
193 m_rectrk.clear();
194}

◆ getEsCutFlag()

bool MdcCalEvent::getEsCutFlag ( ) const
inline

Definition at line 29 of file MdcCalEvent.h.

29{ return m_esCutFg; }

◆ getEsFlag()

int MdcCalEvent::getEsFlag ( ) const
inline

Definition at line 28 of file MdcCalEvent.h.

28{ return m_esFlag; }

◆ getEvtNoOffline()

int MdcCalEvent::getEvtNoOffline ( ) const
inline

Definition at line 40 of file MdcCalEvent.h.

40{ return m_nEvtOffline; }

◆ getEvtNoOnline()

int MdcCalEvent::getEvtNoOnline ( ) const
inline

Definition at line 37 of file MdcCalEvent.h.

37{ return m_nEvtOnline; }

◆ getNesCutFlag()

int MdcCalEvent::getNesCutFlag ( ) const
inline

Definition at line 30 of file MdcCalEvent.h.

30{ return m_nEsCutFg; }

◆ getNRawHitTQ()

int MdcCalEvent::getNRawHitTQ ( ) const
inline

Definition at line 27 of file MdcCalEvent.h.

27{ return m_nhitTQ; }

◆ getNTrk()

int MdcCalEvent::getNTrk ( ) const
inline

Definition at line 33 of file MdcCalEvent.h.

33{ return m_rectrk.size(); }

◆ getRecTrk()

MdcCalRecTrk * MdcCalEvent::getRecTrk ( int index) const
inline

Definition at line 34 of file MdcCalEvent.h.

34{ return m_rectrk[index]; }

◆ getTes()

double MdcCalEvent::getTes ( ) const
inline

Definition at line 31 of file MdcCalEvent.h.

31{ return m_tes; }

◆ setEvtNoOffline()

void MdcCalEvent::setEvtNoOffline ( int evtNo)
inline

Definition at line 39 of file MdcCalEvent.h.

39{ m_nEvtOffline = evtNo; }

Referenced by MdcCalibAlg::execute().

◆ setEvtNoOnline()

void MdcCalEvent::setEvtNoOnline ( int evtNo)
inline

Definition at line 36 of file MdcCalEvent.h.

36{ m_nEvtOnline = evtNo; }

Referenced by MdcCalibAlg::execute().

◆ setGeomSvc()

void MdcCalEvent::setGeomSvc ( IMdcGeomSvc * mdcGeomSvc)
inline

Definition at line 21 of file MdcCalEvent.h.

21{ m_mdcGeomSvc = mdcGeomSvc; }

Referenced by setKalEvent(), and setRecEvent().

◆ setKalEvent()

StatusCode MdcCalEvent::setKalEvent ( )

Definition at line 115 of file MdcCalEvent.cxx.

115 {
116 IMessageSvc *msgSvc;
117 Gaudi::svcLocator()->service("MessageSvc", msgSvc);
118 MsgStream log(msgSvc, "MdcCalEvent");
119 log << MSG::INFO << "MdcCalEvent::setKalEvent" << endreq;
120
121 IDataProviderSvc* eventSvc = NULL;
122 Gaudi::svcLocator()->service("EventDataSvc", eventSvc);
123
124 // retrieve Mdc digi
125 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc,"/Event/Digi/MdcDigiCol");
126 if (!mdcDigiCol) {
127 log << MSG::FATAL << "Could not find event" << endreq;
128 }
129
130 MdcDigiCol::iterator iter = mdcDigiCol->begin();
131 m_nhitTQ = 0;
132 for(; iter != mdcDigiCol->end(); iter++) {
133 MdcDigi *aDigi = (*iter);
134 unsigned fgOverFlow = (aDigi) -> getOverflow();
135 if ( ((fgOverFlow & 3) !=0 ) || ((fgOverFlow & 12) != 0) ||
136 (aDigi->getTimeChannel() == 0x7FFFFFFF) ||
137 (aDigi->getChargeChannel() == 0x7FFFFFFF) ) continue;
138 m_nhitTQ++;
139 }
140
141 // get EsTimeCol
142 SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc,"/Event/Recon/RecEsTimeCol");
143 if( (!aevtimeCol) || (aevtimeCol->size()==0) ){
144 m_tes = -9999.0;
145 m_esFlag = -1;
146 }else{
147 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
148 for(; iter_evt!=aevtimeCol->end(); iter_evt++){
149 m_tes = (*iter_evt)->getTest();
150 m_esFlag = (*iter_evt)->getStat();
151 }
152 }
153 m_esCutFg = false;
154 m_nEsCutFg = -1;
155 bool flagTes = false;
156 for(int iEs=0; iEs<m_param.nEsFlag; iEs++){
157 if(m_esFlag == m_param.esFlag[iEs]){
158 flagTes = true;
159 m_nEsCutFg = iEs;
160 break;
161 }
162 }
163 if( flagTes && (m_tes > m_param.tesMin) && (m_tes < m_param.tesMax) ) m_esCutFg = true;
164
165 SmartDataPtr<RecMdcKalTrackCol> kaltrkCol(eventSvc,"/Event/Recon/RecMdcKalTrackCol");
166 if (!kaltrkCol) {
167 log << MSG::FATAL << "Could not find RecMdcKalTrackCol" << endreq;
168 return StatusCode::FAILURE;
169 }
170
171 int i = 0;
172 MdcCalRecTrk* rectrk;
173 RecMdcKalTrackCol::iterator iter_trk = kaltrkCol->begin();
174 for(; iter_trk != kaltrkCol->end(); iter_trk++) {
175 rectrk = new MdcCalRecTrk(m_param.particle);
176 rectrk -> setGeomSvc(m_mdcGeomSvc);
177 rectrk -> setUtilSvc(m_mdcUtilitySvc);
178 rectrk -> setKalTrk(iter_trk);
179 m_rectrk.push_back(rectrk);
180
181 i++;
182 }
183 log << MSG::INFO << "KalTrack ntrk = " << i << endreq;
184
185 return StatusCode::SUCCESS;
186}
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
IMessageSvc * msgSvc()
void setGeomSvc(IMdcGeomSvc *mdcGeomSvc)
Definition MdcCalEvent.h:21
void setUtilSvc(IMdcUtilitySvc *mdcUtilitySvc)
Definition MdcCalEvent.h:22
int esFlag[50]
unsigned int getChargeChannel() const
Definition RawData.cxx:45
unsigned int getTimeChannel() const
Definition RawData.cxx:40

◆ setParam()

void MdcCalEvent::setParam ( MdcCalParams & param)
inline

Definition at line 20 of file MdcCalEvent.h.

20{ m_param = param; }

◆ setRecEvent()

StatusCode MdcCalEvent::setRecEvent ( )

Definition at line 42 of file MdcCalEvent.cxx.

42 {
43 IMessageSvc *msgSvc;
44 Gaudi::svcLocator()->service("MessageSvc", msgSvc);
45 MsgStream log(msgSvc, "MdcCalEvent");
46 log << MSG::INFO << "MdcCalEvent::setRecEvent" << endreq;
47
48 IDataProviderSvc* eventSvc = NULL;
49 Gaudi::svcLocator()->service("EventDataSvc", eventSvc);
50
51 // retrieve Mdc digi
52 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc,"/Event/Digi/MdcDigiCol");
53 if (!mdcDigiCol) {
54 log << MSG::FATAL << "Could not find event" << endreq;
55 }
56
57 MdcDigiCol::iterator iter = mdcDigiCol->begin();
58 m_nhitTQ = 0;
59 for(; iter != mdcDigiCol->end(); iter++) {
60 MdcDigi *aDigi = (*iter);
61 unsigned fgOverFlow = (aDigi) -> getOverflow();
62 if ( ((fgOverFlow & 3) !=0 ) || ((fgOverFlow & 12) != 0) ||
63 (aDigi->getTimeChannel() == 0x7FFFFFFF) ||
64 (aDigi->getChargeChannel() == 0x7FFFFFFF) ) continue;
65 m_nhitTQ++;
66 }
67
68 // get EsTimeCol
69 SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc,"/Event/Recon/RecEsTimeCol");
70 if( (!aevtimeCol) || (aevtimeCol->size()==0) ){
71 m_tes = -9999.0;
72 m_esFlag = -1;
73 }else{
74 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
75 for(; iter_evt!=aevtimeCol->end(); iter_evt++){
76 m_tes = (*iter_evt)->getTest();
77 m_esFlag = (*iter_evt)->getStat();
78 }
79 }
80 m_esCutFg = false;
81 m_nEsCutFg = -1;
82 bool flagTes = false;
83 for(int iEs=0; iEs<m_param.nEsFlag; iEs++){
84 if(m_esFlag == m_param.esFlag[iEs]){
85 flagTes = true;
86 m_nEsCutFg = iEs;
87 break;
88 }
89 }
90 if( flagTes && (m_tes > m_param.tesMin) && (m_tes < m_param.tesMax) ) m_esCutFg = true;
91
92 SmartDataPtr<RecMdcTrackCol> newtrkCol(eventSvc, "/Event/Recon/RecMdcTrackCol");
93 if(!newtrkCol){
94 log << MSG::ERROR << "Could not find RecMdcTrackCol" << endreq;
95 return ( StatusCode::FAILURE );
96 }
97
98 int i = 0;
99 MdcCalRecTrk* rectrk;
100 RecMdcTrackCol::iterator it_trk = newtrkCol->begin();
101 for(; it_trk != newtrkCol->end(); it_trk++){
102 rectrk = new MdcCalRecTrk(m_param.particle);
103 rectrk -> setGeomSvc(m_mdcGeomSvc);
104 rectrk -> setUtilSvc(m_mdcUtilitySvc);
105 rectrk -> setRecTrk(it_trk);
106 m_rectrk.push_back(rectrk);
107
108 i++;
109 }
110// log << MSG::WARNING << "RecTrack ntrk = " << i << endreq;
111
112 return StatusCode::SUCCESS;
113}

◆ setUtilSvc()

void MdcCalEvent::setUtilSvc ( IMdcUtilitySvc * mdcUtilitySvc)
inline

Definition at line 22 of file MdcCalEvent.h.

22{ m_mdcUtilitySvc = mdcUtilitySvc; }

Referenced by setKalEvent(), and setRecEvent().


The documentation for this class was generated from the following files: