BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcAliEvent.cxx
Go to the documentation of this file.
2
3#include "GaudiKernel/Bootstrap.h"
4#include "GaudiKernel/IDataProviderSvc.h"
5#include "GaudiKernel/IMessageSvc.h"
6#include "GaudiKernel/ISvcLocator.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/PropertyMgr.h"
9#include "GaudiKernel/SmartDataPtr.h"
10#include "GaudiKernel/StatusCode.h"
11
12#include "BesTimerSvc/BesTimerSvc.h"
13#include "BesTimerSvc/IBesTimerSvc.h"
14
15#include "EventModel/Event.h"
16#include "RawEvent/RawDataUtil.h"
17
18#include "MdcCalibFunSvc/IMdcCalibFunSvc.h"
19#include "MdcCalibFunSvc/MdcCalibFunSvc.h"
20
21#include "EvTimeEvent/RecEsTime.h"
22#include "MdcRecEvent/RecMdcHit.h"
23#include "MdcRecEvent/RecMdcKalTrack.h"
24#include "MdcRecEvent/RecMdcTrack.h"
25#include "ReconEvent/ReconEvent.h"
26
27#include "Identifier/Identifier.h"
28#include "Identifier/MdcID.h"
29
30#include <iostream>
31#include <math.h>
32
33using namespace Event;
34
36 IMessageSvc* msgSvc;
37 Gaudi::svcLocator()->service( "MessageSvc", msgSvc );
38 MsgStream log( msgSvc, "MdcAliEvent" );
39 log << MSG::INFO << "MdcAliEvent::setRecEvent" << endmsg;
40
41 IDataProviderSvc* eventSvc = NULL;
42 Gaudi::svcLocator()->service( "EventDataSvc", eventSvc );
43
44 // get EsTimeCol
45 SmartDataPtr<RecEsTimeCol> aevtimeCol( eventSvc, "/Event/Recon/RecEsTimeCol" );
46 if ( !aevtimeCol || ( aevtimeCol->size() == 0 ) )
47 {
48 m_tes = -9999.0;
49 m_esFlag = -1;
50 }
51 else
52 {
53 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
54 for ( ; iter_evt != aevtimeCol->end(); iter_evt++ )
55 {
56 m_tes = ( *iter_evt )->getTest();
57 m_esFlag = ( *iter_evt )->getStat();
58 }
59 }
60
61 m_esCutFg = false;
62 bool flagTes = false;
63 for ( int iEs = 0; iEs < m_param.nEsFlag; iEs++ )
64 {
65 if ( m_esFlag == m_param.esFlag[iEs] )
66 {
67 flagTes = true;
68 break;
69 }
70 }
71 if ( flagTes && ( m_tes > m_param.tesMin ) && ( m_tes < m_param.tesMax ) ) m_esCutFg = true;
72
73 SmartDataPtr<RecMdcTrackCol> newtrkCol( eventSvc, "/Event/Recon/RecMdcTrackCol" );
74 if ( !newtrkCol )
75 {
76 log << MSG::ERROR << "Could not find RecMdcTrackCol" << endmsg;
77 return ( StatusCode::FAILURE );
78 }
79
80 int i = 0;
81 MdcAliRecTrk* rectrk;
82 RecMdcTrackCol::iterator it_trk = newtrkCol->begin();
83 for ( ; it_trk != newtrkCol->end(); it_trk++ )
84 {
85 rectrk = new MdcAliRecTrk();
86 rectrk->setRecTrk( it_trk );
87 m_rectrk.push_back( rectrk );
88
89 i++;
90 }
91
92 return StatusCode::SUCCESS;
93}
94
96 IMessageSvc* msgSvc;
97 Gaudi::svcLocator()->service( "MessageSvc", msgSvc );
98 MsgStream log( msgSvc, "MdcAliEvent" );
99 log << MSG::INFO << "MdcAliEvent::setKalEvent" << endmsg;
100
101 IDataProviderSvc* eventSvc = NULL;
102 Gaudi::svcLocator()->service( "EventDataSvc", eventSvc );
103
104 // get EsTimeCol
105 SmartDataPtr<RecEsTimeCol> aevtimeCol( eventSvc, "/Event/Recon/RecEsTimeCol" );
106 if ( !aevtimeCol || ( aevtimeCol->size() == 0 ) )
107 {
108 m_tes = -9999.0;
109 m_esFlag = -1;
110 }
111 else
112 {
113 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
114 for ( ; iter_evt != aevtimeCol->end(); iter_evt++ )
115 {
116 m_tes = ( *iter_evt )->getTest();
117 m_esFlag = ( *iter_evt )->getStat();
118 }
119 }
120
121 m_esCutFg = false;
122 bool flagTes = false;
123 for ( int iEs = 0; iEs < m_param.nEsFlag; iEs++ )
124 {
125 if ( m_esFlag == m_param.esFlag[iEs] )
126 {
127 flagTes = true;
128 break;
129 }
130 }
131 if ( flagTes && ( m_tes > m_param.tesMin ) && ( m_tes < m_param.tesMax ) ) m_esCutFg = true;
132
133 SmartDataPtr<RecMdcKalTrackCol> kaltrkCol( eventSvc, "/Event/Recon/RecMdcKalTrackCol" );
134 if ( !kaltrkCol )
135 {
136 log << MSG::FATAL << "Could not find RecMdcKalTrackCol" << endmsg;
137 return StatusCode::FAILURE;
138 }
139
140 int i = 0;
141 MdcAliRecTrk* rectrk;
142 RecMdcKalTrackCol::iterator iter_trk = kaltrkCol->begin();
143 for ( ; iter_trk != kaltrkCol->end(); iter_trk++ )
144 {
145 rectrk = new MdcAliRecTrk();
146 rectrk->setKalTrk( iter_trk );
147 m_rectrk.push_back( rectrk );
148
149 i++;
150 }
151 log << MSG::INFO << "KalTrack ntrk = " << i << endmsg;
152
153 return StatusCode::SUCCESS;
154}
155
157 unsigned int i;
158 for ( i = 0; i < m_rectrk.size(); i++ ) { delete m_rectrk[i]; }
159 m_rectrk.clear();
160}
IMessageSvc * msgSvc()
StatusCode setKalEvent()
StatusCode setRecEvent()
void setKalTrk(RecMdcKalTrackCol::iterator it_trk)
void setRecTrk(RecMdcTrackCol::iterator it_trk)