void EventView::slotUpdateCurrent() { Event event = DATAMODEL->eventForId(m_event.id()); if (event != m_event) setCurrentEvent(event); slotUpdateTotal(); }
void EventView::slotCurrentItemChanged(const QModelIndex &start, const QModelIndex &) { if (!start.isValid()) { m_event = Event(); m_actionDeleteEvent.setEnabled(false); m_actionEditEvent.setEnabled(false); } else { m_actionDeleteEvent.setEnabled(true); m_actionEditEvent.setEnabled(true); Event event = m_model->eventForIndex(start); Q_ASSERT(event.isValid()); // index is valid, so... setCurrentEvent(event); } slotConfigureUi(); }
void JSDOMWindowBase::willRemoveFromWindowShell() { setCurrentEvent(0); }
void JSDOMWindowBase::clearHelperObjectProperties() { setCurrentEvent(0); }
UnPackX::UnPackX(string fName,bool debug,void (*callback)(int valueType,void *value),int wantedValues) { memset(pulsesInPSCycle,0,14*4); // init variables runHeader=new _BOS_RCTR(); moduleHeader=new _BOS_MODH(); indexHeader=new _BOS_INDX(); eventHeader=new _BOS_EVEH(); firstEventHeader=new _BOS_EVEH(); infoHeader=new _BOS_INFO(); beamHeader=new _BOS_BEAM(); hivoHeader=new _BOS_HIVO(); _BOS_SLOW *slowHeader=new _BOS_SLOW(); u_int* indexItem; firstEvent=0xffffffff; lastEvent=0xffffffff; fileName=fName; cacheSize=0; nbrOfHVEvents=0; totalNumberOfProtons=0.0; nbrOfEventsWithProtonIntensity=0; nbrOfEventsWithoutProtonIntensity=0; memset(pulsesInPSCycle,0,14*4); memset(protonsInPSCycle,0,14*sizeof(double)); double lastBeamDate=0; double beamDateOffset=0; // to have the beam as time since midnight before start (if run crosses midnight) // beginn processing dataFile = new f_i(fileName); if (!dataFile) { if (debug) cout << "Cannot open file !"<<endl; fileName=""; bad=true; return; } //u_int fileSize = dataFile->size(); // in byte _BOS bosHeader; bool error=false; bad=false; while ((!error) && (bosHeader.readFromFile(dataFile))) { //if (debug) cout << "Found header " << bosHeader.getTitle() << endl; switch (bosHeader.getIntTitle()) { case Rctr : if (!runHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading runHeader"<<endl; error=true; } break; case Modh : if (!moduleHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading moduleHeader"<<endl; error=true; } else if (debug) moduleHeader->print(); break; case Eveh : if (!eventHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading eventHeader"<<endl; error=true; } else { if (wantedValues&vtEventHeader) callback(vtEventHeader,eventHeader); if ((debug) && ((eventHeader->getEventNumber()%10)==0)) cout << "Eventnumber " << eventHeader->getEventNumber() << endl; indexItem=new u_int[2+moduleHeader->numberOfStreams]; indexList.push_back(indexItem); lastEvent=eventHeader->getEventNumber(); if (firstEvent==0xffffffff) { firstEvent=lastEvent; firstEventHeader=eventHeader; } } break; case Indx : if (!indexHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading indexHeader"<<endl; error=true; lastEvent--; } else { memcpy(&indexItem[2],indexHeader->getList(),moduleHeader->numberOfStreams*4); //cout << "Index stream 0 = " << indexItem[2] << endl; } break; case Beam : if (!beamHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading beamHeader"<<endl; error=true; lastEvent--; } else { memcpy(indexItem,beamHeader->getList(),8); if ((beamHeader->getList()[0]!=0.0) && (beamHeader->getList()[0]<lastBeamDate)) { beamDateOffset+=60.0*60.0*24.0; // another nice day just started... if (debug) printf("Midnight crossing, offset now %f\n",beamDateOffset); } double beamDate=double(beamHeader->getList()[0])+beamDateOffset; u_int cycle=(u_int)((beamDate - 16.8*int(beamDate/16.8))/1.2); if ((cycle<14) && (beamHeader->getList()[1]>0)) { pulsesInPSCycle[cycle]++; protonsInPSCycle[cycle]+=beamHeader->getList()[1]; } if (beamHeader->getList()[0]!=0.0) lastBeamDate=beamHeader->getList()[0]; if ((debug) && (cycle>=14)) printf("Wrong cycle: %d !\n",cycle); if ((debug) && ((eventHeader->getEventNumber()%10)==0)) printf("Time: %16f Intensity %3.2e\n",beamDate,beamHeader->getList()[1]); if ((beamHeader->getList()[1]>1E10) && (beamHeader->getList()[1]<1E13)) { totalNumberOfProtons+=beamHeader->getList()[1]; nbrOfEventsWithProtonIntensity++; } else nbrOfEventsWithoutProtonIntensity++; if (wantedValues&vtBeamHeader) callback(vtBeamHeader,beamHeader); } break; case Info : if (debug) cout << "reading info" << endl; if (!infoHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading infoHeader"<<endl; error=true; } break; case Slow : if (debug) cout << "reading Slow" << endl; if (wantedValues&vtSlowHeader) { if (!slowHeader->readFromFile(&bosHeader,dataFile)) { cout << "Error reading slowHeader"<<endl; error=true; } else callback(vtSlowHeader,slowHeader); } // if wanted else dataFile->step(bosHeader.getLength()*4);break; break; case Hivo : if (nbrOfHVEvents<maxHVEvents) { hvEvent[nbrOfHVEvents]=eventHeader->getEventNumber(); hvFilePos[nbrOfHVEvents]=dataFile->fPos(); nbrOfHVEvents++; }; dataFile->step(bosHeader.getLength()*4);break; default : printf("unknown header after event %d filePos: %d. Skipping.\n",lastEvent,(int)dataFile->fPos()); char* name=bosHeader.getTitle(); printf("Name: '%s' rev: %d res: %d size %d\n",name,bosHeader.bos->revNumber,bosHeader.bos->reserved,bosHeader.getLength()*4); for (int i=0;i<4;i++) if (name[i]<32) error=true; if (bosHeader.bos->reserved!=0) error=true; // stopIt! dataFile->step(bosHeader.getLength()*4);break; } // switch } // while if (firstEvent==0xffffffff) bad=true; setCurrentEvent(firstEvent); /* -> now in EventDisplay printf("\n---Beam info--------------------------------------\n"); printf("Total number of protons: %3.2e\n",totalNumberOfProtons); printf("Events with p-intensity: %d\n",nbrOfEventsWithProtonIntensity); printf("Events without p-intensity: %d\n",nbrOfEventsWithoutProtonIntensity); for (u_int i=0;i<14;i++) printf("%6d pulses in the %2d. cycle\n",pulsesInPSCycle[i],i+1); printf("--------------------------------------------------\n\n"); */ delete slowHeader; }