79 cout <<
"PndEventBuilderManager::AnalyzeAndExtractEvents(" << maxEventTimeAllowed <<
")" << endl;
83 FairRecoEventHeader* tempREH = NULL;
87 for ( Int_t ieb = 0 ; ieb < fEventBuilders.size() ; ieb++ ) {
88 for ( Int_t iev = 0 ; iev < fPossibleEvents[ieb].size() ; iev++ ) {
89 tempREH = (FairRecoEventHeader*)fPossibleEvents[ieb][iev].second;
91 cout <<
" fPossibleEvents[" << fEventBuilders[ieb]->GetName()
92 <<
"][" << iev <<
"] . " << fPossibleEvents[ieb][iev].first << endl;
93 if ( fPossibleEvents[ieb][iev].second->GetEventTime() < minEventTime ) {
94 minEventTime = fPossibleEvents[ieb][iev].second->GetEventTime();
95 minEventTErr = fPossibleEvents[ieb][iev].second->GetEventTimeError();
100 cout <<
" minEventTime is now " << minEventTime <<
" with error " << minEventTErr << endl;
103 if ( maxEventTimeAllowed > -0.5 && minEventTime > maxEventTimeAllowed-5 ) {
107 if ( minEventTime > 9.9e6 )
break;
115 for ( Int_t ieb = 0 ; ieb < fEventBuilders.size() ; ieb++ ) {
116 for ( Int_t iev = 0 ; iev < fPossibleEvents[ieb].size() ; iev++ ) {
117 tempREH = (FairRecoEventHeader*)fPossibleEvents[ieb][iev].second;
118 if (
TMath::Abs(tempREH->GetEventTime()-minEventTime) < minEventTErr+tempREH->GetEventTimeError() ) {
119 if ( tempREH->GetEventTimeError() < 1.e-6 ) {
120 cout <<
"ERROR ALMOST 0!!!! " << tempREH->GetEventTimeError() << endl;
124 sumTW += tempREH->GetEventTime()/tempREH->GetEventTimeError()/tempREH->GetEventTimeError();
125 sumW += 1./tempREH->GetEventTimeError()/tempREH->GetEventTimeError();
126 ident |= tempREH->GetIdentifier();
127 minEventTime = sumTW/sumW;
130 cout <<
" added event at " << tempREH->GetEventTime() <<
" +- " << tempREH->GetEventTimeError() << endl;
132 fPossibleEvents[ieb][iev] = fPossibleEvents[ieb][fPossibleEvents[ieb].size()-1];
133 fPossibleEvents[ieb].pop_back();
137 if ( nofOfEvents == 0 )
continue;
140 cout <<
" CREATED EVENT AT " << meanEventTime/nofOfEvents <<
" OUT OF " << nofOfEvents <<
" EVENTS" << endl;
141 cout <<
" WEIGHTED MEAN AT " << sumTW/sumW <<
" WITH ERROR OF " <<
TMath::Sqrt(1./sumW) << endl;
static T Sqrt(const T &x)
FairRecoEventHeader * fOutEvent