89 {
90 MsgStream log(
msgSvc(), name());
91 log << MSG::INFO << "in execute()" << endreq;
92
93
94 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
95 if(!eventHeader)
96 {
97 cout<<" eventHeader "<<endl;
98 return StatusCode::FAILURE;
99 }
100
101 int run=eventHeader->runNumber();
102 int event=eventHeader->eventNumber();
103
104
106 if(!evtRecEvent ) {
107 cout<<" evtRecEvent "<<endl;
108 return StatusCode::FAILURE;
109 }
110
111
112 log << MSG::DEBUG <<"ncharg, nneu, tottks = "
113 << evtRecEvent->totalCharged() << " , "
114 << evtRecEvent->totalNeutral() << " , "
115 << evtRecEvent->totalTracks() <<endreq;
117 if(!evtRecTrkCol){
118 cout<<" evtRecTrkCol "<<endl;
119 return StatusCode::FAILURE;
120 }
121
122 if(evtRecEvent->totalTracks()!=evtRecTrkCol->size()) return StatusCode::SUCCESS;
123
124
126 if ( ! evtRecDTagCol ) {
127 log << MSG::FATAL << "Could not find EvtRecDTagCol" << endreq;
128 return StatusCode::FAILURE;
129 }
130
131
132
133
134 if(evtRecDTagCol->size()==0){
135
136 return StatusCode::SUCCESS;
137 }
138
139 if(m_tightskim){
140
141 vector<EvtRecDTagCol::size_type> tagid;
142 tagid.clear();
143 EvtRecDTagCol::iterator iter_begin=evtRecDTagCol->begin();
144 for( EvtRecDTagCol::iterator
iter=iter_begin;
iter<evtRecDTagCol->end(); ++
iter){
145 if( (*iter)->type()!=1){
146 tagid.push_back(
iter-iter_begin);
147 }
148 }
149
150 for(EvtRecDTagCol::size_type i=0; i<tagid.size(); ++i){
151 evtRecDTagCol->erase(iter_begin+tagid[i]-i);
152 }
153
154 if(evtRecDTagCol->size()==0){
155 return StatusCode::SUCCESS;
156 }
157
158 }
159
160
161
162
163
164
165
166 if(m_ifwritedst) m_subalg1->execute();
167 if(m_ifwriterec) m_subalg2->execute();
168
169
170 return StatusCode::SUCCESS;
171
172}
_EXTERN_ std::string EvtRecEvent
_EXTERN_ std::string EvtRecDTagCol
_EXTERN_ std::string EvtRecTrackCol