BOSS 8.0.0
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 35 of file MdcCalEvent.cxx.

35{}

◆ ~MdcCalEvent()

MdcCalEvent::~MdcCalEvent ( )

Definition at line 37 of file MdcCalEvent.cxx.

37{}

Member Function Documentation

◆ clear()

void MdcCalEvent::clear ( )

Definition at line 207 of file MdcCalEvent.cxx.

207 {
208 unsigned int i;
209 for ( i = 0; i < m_rectrk.size(); i++ ) { delete m_rectrk[i]; }
210 m_rectrk.clear();
211}

◆ 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]; }

Referenced by MdcCalib::fillHist().

◆ 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; }

◆ setEvtNoOnline()

void MdcCalEvent::setEvtNoOnline ( int evtNo)
inline

Definition at line 36 of file MdcCalEvent.h.

36{ m_nEvtOnline = evtNo; }

◆ setGeomSvc()

void MdcCalEvent::setGeomSvc ( IMdcGeomSvc * mdcGeomSvc)
inline

Definition at line 21 of file MdcCalEvent.h.

21{ m_mdcGeomSvc = mdcGeomSvc; }

◆ setKalEvent()

StatusCode MdcCalEvent::setKalEvent ( )

Definition at line 126 of file MdcCalEvent.cxx.

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

◆ 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 39 of file MdcCalEvent.cxx.

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

◆ setUtilSvc()

void MdcCalEvent::setUtilSvc ( IMdcUtilitySvc * mdcUtilitySvc)
inline

Definition at line 22 of file MdcCalEvent.h.

22{ m_mdcUtilitySvc = mdcUtilitySvc; }

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