95 {
96
97 MsgStream log(
msgSvc(), name() );
98 log << MSG::INFO << "TofEnergyRec in execute()!!" << endmsg;
99
100 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(), "/Event/EventHeader" );
101 if ( !eventHeader )
102 {
103 log << MSG::FATAL << "TofEnergyRec could not find Event Header!" << endmsg;
104 return StatusCode::FAILURE;
105 }
106 int run = eventHeader->runNumber();
107 int event = eventHeader->eventNumber();
108 if ( m_eventNb != 0 && m_event % m_eventNb == 0 )
109 std::cout << "--------event: " << m_event << ", run= " << run << " event= " << event
110 << std::endl;
111 log << MSG::INFO << "run= " << run << " event= " << event << endmsg;
112 m_event++;
113
115 StatusCode sc = service(
"RawDataProviderSvc",
tofDigiSvc );
116 if ( sc != StatusCode::SUCCESS )
117 {
118 log << MSG::FATAL << "TofEnergyRec could not find RawDataProviderSvc!" << endmsg;
119 return StatusCode::SUCCESS;
120 }
121
122
123 DataObject* aReconEvent;
124 eventSvc()->findObject( "/Event/Recon", aReconEvent );
125 if ( aReconEvent == NULL )
126 {
127 log << MSG::INFO << "Register ReconEvent" << endmsg;
128
129 aReconEvent = new ReconEvent();
130 sc = eventSvc()->registerObject( "/Event/Recon", aReconEvent );
131 if ( sc != StatusCode::SUCCESS )
132 {
133 log << MSG::FATAL << "Could not register ReconEvent" << endmsg;
134 return StatusCode::FAILURE;
135 }
136 }
137
138
140 if ( !tofTrackCol )
141 {
142 log << MSG::INFO << "Register RecTofTrackCol!" << endmsg;
145 if ( sc != StatusCode::SUCCESS )
146 { log << MSG::FATAL << "Could not register RecTofTrackCol!" << endmsg; }
147 }
148
149
150 SmartDataPtr<RecEsTimeCol> estimeCol( eventSvc(), "/Event/Recon/RecEsTimeCol" );
151 if ( !estimeCol || ( estimeCol->size() == 0 ) )
152 {
153 log << MSG::WARNING << "TofRec Could not find RecEsTimeCol! Run = " << run
154 << " Event = " << event << endmsg;
155 return StatusCode::SUCCESS;
156 }
157 RecEsTimeCol::iterator iter_ESTime = estimeCol->begin();
158
159 double t0 = 0;
160 t0 = ( *iter_ESTime )->getTest();
161 int t0Stat = ( *iter_ESTime )->getStat();
162
163 std::vector<TofData*> tofDataVec;
165
166 m_tofShower->findShower( tofDataVec, tofTrackCol, t0 );
167
168 return StatusCode::SUCCESS;
169}
ObjectVector< RecTofTrack > RecTofTrackCol
IRawDataProviderSvc * tofDigiSvc
virtual TofDataVector & tofDataVectorTof(double estime=0)=0
_EXTERN_ std::string RecTofTrackCol