Json::Value InputController::getRoot(std::string filename) { Json::Value root; Json::Reader reader; ifstream file; file.open(filename.c_str()); if(!file.is_open()) { Event_System::getSingleton().queueEvent(EventPtr(new MsgEvt("Input Controller","file " + filename + " cannot be opened for Json parsing"))); return Json::Value(); } file.seekg(0, file.end); int len = file.tellg(); file.seekg(0, file.beg); char *dat = new char[len]; file.read(dat, len); std::string fileStr(dat); file.close(); if(!reader.parse(fileStr, root)) { Event_System::getSingleton().queueEvent(EventPtr(new MsgEvt("Input Controller","JSON parser cannot parse the file: " + filename + "\n\treason:" + reader.getFormatedErrorMessages()))); return Json::Value(); } return root; }
EventPtr CEventLog::Get(const std::string& eventPtrIdentifier) const { if (eventPtrIdentifier.empty()) return EventPtr(); CSingleLock lock(m_critical); const auto& eventPtr = m_eventsMap.find(eventPtrIdentifier); if (eventPtr == m_eventsMap.end()) return EventPtr(); return eventPtr->second; }
void removeDevice(const InputDevicePtr &dev) { std::set<InputDevicePtr>::iterator iter = mAllDevices.find(dev); if (iter != mAllDevices.end()) { mAllDevices.erase(iter); } fire(EventPtr(new InputDeviceEvent(InputDeviceEvent::REMOVED, dev))); }
void Connection::onConnectCompleted(const asio::error_code& err) { UInt32 result = 1; if ( !err ) { result = 0; } EventRawConnected* e = new EventRawConnected; e->idx = GetUniqueId(); e->result = result; e->socketIndex = GetSessionId(); e->key = 0; m_net->Notify( EventPtr( e ) ); if ( !err ) { requestRecv(); } else { // 에러 날 경우 연결 종료도 통보함 onError( err ); } MU2LogSystem( 0, "Connection::Error> [Code: %d]", err.value()); }
void EventManager<T>::doUnsubscribe( SubscriptionId removeId, bool notifyListener) { typename RemoveMap::iterator iter = mRemoveById.find(removeId); if (iter == mRemoveById.end()) { SILOG(task,error,"!!! Unsubscribe for removeId " << removeId << " -- usually this is from a double-unsubscribe. "); } else { EventSubscriptionInfo &subInfo = (*iter).second; SILOG(task,debug,"**** Unsubscribe " << removeId); if (notifyListener) { (*subInfo.mIter).first(EventPtr()); } subInfo.mList->erase(subInfo.mIter); if (subInfo.secondaryMap) { SILOGNOCR(task,debug," with Secondary ID " << subInfo.secondaryId << std::endl << "\t"); typename SecondaryListenerMap::iterator deleteIter = subInfo.secondaryMap->find(subInfo.secondaryId); assert(!(deleteIter==subInfo.secondaryMap->end())); cleanUp(subInfo.secondaryMap, deleteIter); } mRemoveById.erase(iter); SubscriptionIdClass::free(removeId); SILOG(task,debug,""); } }
/** * @brief Video::convertToEvent * @param path * @return */ EventPtr Video::convertToEvent(std::string path){ cv::Mat shot; FramePtr frame; EventPtr event; unsigned int j=0; int framecount=0; double tmpPos = getFramePos(); setFramePos(0); emit startProgress(0, (uint) getLengthFrames()); while(getNextFrame(shot)){ emit progressChanged(j); if (event.isNull()){ event = EventPtr(new Event(this)); } // create new frame frame = FramePtr(new Frame(this, shot, path)); // add frame to event event->addFrame(frame); framecount ++; j++; } setFramePos(tmpPos); return event; }
bool CAddonDll::CheckAPIVersion(int type) { /* check the API version */ AddonVersion kodiMinVersion(kodi::addon::GetTypeMinVersion(type)); AddonVersion addonVersion(m_pDll->GetAddonTypeVersion(type)); /* Check the global usage from addon * if not used from addon becomes "0.0.0" returned */ if (type <= ADDON_GLOBAL_MAX && addonVersion == AddonVersion("0.0.0")) return true; /* If a instance (not global) version becomes checked must be the version * present. */ if (kodiMinVersion > addonVersion || addonVersion > AddonVersion(kodi::addon::GetTypeVersion(type))) { CLog::Log(LOGERROR, "Add-on '%s' is using an incompatible API version for type '%s'. Kodi API min version = '%s', add-on API version '%s'", Name().c_str(), kodi::addon::GetTypeName(type), kodiMinVersion.asString().c_str(), addonVersion.asString().c_str()); CEventLog &eventLog = CServiceBroker::GetEventLog(); eventLog.AddWithNotification(EventPtr(new CNotificationEvent(Name(), 24152, EventLevel::Error))); return false; } return true; }
/** Calls func *synchronously* for each device already known, then registers DeviceAdded and DeviceRemoved events. Note: SDL does not yet support adding or removing devices. */ Task::SubscriptionId registerDeviceListener(const EventListener &func) { for (std::set<InputDevicePtr>::iterator iter = mAllDevices.begin(); iter != mAllDevices.end(); ++iter) { func(EventPtr(new InputDeviceEvent(InputDeviceEvent::ADDED, (*iter)))); } return subscribeId(InputDeviceEvent::getEventId(), func); }
void Connection::onError(const asio::error_code& err) { MU2LogSystem( 0, "Connection::onError> %s", err.message().c_str() ); EventDisconnected* e = new EventDisconnected; e->idx = GetUniqueId(); e->socketIndex = GetSessionId(); e->sessionType = 0; m_net->Notify( EventPtr( e ) ); }
EventPtr EventQueue::Pop() { if(m_queue.size() != 0) { EventPtr& e = m_queue.front(); m_queue.pop(); return e; } return EventPtr(NULL); }
bool CPVREventlogJob::DoWork() { for (const auto &event : m_events) { if (event.m_bNotifyUser) CGUIDialogKaiToast::QueueNotification( event.m_bError ? CGUIDialogKaiToast::Error : CGUIDialogKaiToast::Info, event.m_label.c_str(), event.m_msg, 5000, true); // Write event log entry. CEventLog::GetInstance().Add( EventPtr(new CNotificationEvent(event.m_label, event.m_msg, event.m_icon, event.m_bError ? EventLevel::Error : EventLevel::Information))); } return true; }
void CRepositoryUpdater::OnJobComplete(unsigned int jobID, bool success, CJob* job) { CSingleLock lock(m_criticalSection); m_jobs.erase(std::find(m_jobs.begin(), m_jobs.end(), job)); if (m_jobs.empty()) { CLog::Log(LOGDEBUG, "CRepositoryUpdater: done."); m_doneEvent.Set(); VECADDONS updates = CAddonMgr::GetInstance().GetAvailableUpdates(); if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_NOTIFY) { if (!updates.empty()) { if (updates.size() == 1) CGUIDialogKaiToast::QueueNotification( updates[0]->Icon(), updates[0]->Name(), g_localizeStrings.Get(24068), TOAST_DISPLAY_TIME, false, TOAST_DISPLAY_TIME); else CGUIDialogKaiToast::QueueNotification( "", g_localizeStrings.Get(24001), g_localizeStrings.Get(24061), TOAST_DISPLAY_TIME, false, TOAST_DISPLAY_TIME); for (const auto &addon : updates) CEventLog::GetInstance().Add(EventPtr(new CAddonManagementEvent(addon, 24068))); } } if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_ON) { for (const auto& addon : updates) { if (!CAddonMgr::GetInstance().IsBlacklisted(addon->ID())) CAddonInstaller::GetInstance().InstallOrUpdate(addon->ID()); } } ScheduleUpdate(); m_events.Publish(RepositoryUpdated{}); } }
void CAddonCallbacksPVR::PVRRecording(void *addonData, const char *strName, const char *strFileName, bool bOnOff) { CPVRClient *client = GetPVRClient(addonData); if (!client || !strFileName) { CLog::Log(LOGERROR, "PVR - %s - invalid handler data", __FUNCTION__); return; } std::string strLine1 = StringUtils::Format(g_localizeStrings.Get(bOnOff ? 19197 : 19198).c_str(), client->Name().c_str()); std::string strLine2; if (strName) strLine2 = strName; else if (strFileName) strLine2 = strFileName; /* display a notification for 5 seconds */ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, strLine1, strLine2, 5000, false); CEventLog::GetInstance().Add(EventPtr(new CNotificationEvent(client->Name(), strLine1, client->Icon(), strLine2))); CLog::Log(LOGDEBUG, "PVR - %s - recording %s on client '%s'. name='%s' filename='%s'", __FUNCTION__, bOnOff ? "started" : "finished", client->Name().c_str(), strName, strFileName); }
void CRepositoryUpdater::OnJobComplete(unsigned int jobID, bool success, CJob* job) { CSingleLock lock(m_criticalSection); m_jobs.erase(std::find(m_jobs.begin(), m_jobs.end(), job)); if (m_jobs.empty()) { CLog::Log(LOGDEBUG, "CRepositoryUpdater: done."); m_doneEvent.Set(); if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_NOTIFY) { VECADDONS hasUpdate = CAddonMgr::GetInstance().GetOutdated(); if (!hasUpdate.empty()) { if (hasUpdate.size() == 1) CGUIDialogKaiToast::QueueNotification( hasUpdate[0]->Icon(), hasUpdate[0]->Name(), g_localizeStrings.Get(24068), TOAST_DISPLAY_TIME, false, TOAST_DISPLAY_TIME); else CGUIDialogKaiToast::QueueNotification( "", g_localizeStrings.Get(24001), g_localizeStrings.Get(24061), TOAST_DISPLAY_TIME, false, TOAST_DISPLAY_TIME); for (const auto &addon : hasUpdate) CEventLog::GetInstance().Add(EventPtr(new CAddonManagementEvent(addon, 24068))); } } if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_ON) CAddonInstaller::GetInstance().InstallUpdates(); ScheduleUpdate(); CGUIMessage msg(GUI_MSG_NOTIFY_ALL, 0, 0, GUI_MSG_UPDATE); g_windowManager.SendThreadMessage(msg); } }
void VMEndPollEvent::consumeBlockEvent() { EVENT_CONSUME_INFO(); concernedBlock->scheduleLocalEvent(EventPtr(new VMEndPollEvent(this))); return; }
/** * @brief Automatically splits the video into several events provided the * given parameters. * @param threshold * @param maxcount * @param mincount * @param history * @param varThreshold * @param bShadowDetection * @param path * @return */ std::deque<EventPtr> Video::autoDetectEvents(double threshold, double maxcount, double mincount, int history, int varThreshold, bool bShadowDetection, std::string path){ cv::Mat shot; FramePtr frame; SnapshotPtr snap; EventPtr event; std::deque<EventPtr> events; unsigned int j=0; int emptycount=0; int framecount=0; int value; int absoluteThreshold = threshold/100*resolution.width*resolution.height; int i; // Initialization of background subtraction bgSubInit(history, varThreshold, bShadowDetection); setFramePos(0); emit startProgress(0, (uint) getLengthFrames()); while(getNextFrame(shot)){ QCoreApplication::processEvents(); if (toCancel){ events.clear(); canceled(); return events; } bg->NewFrame(shot); bg->Denoise(); emit progressChanged(j); value = cv::countNonZero(bg->Foreground()); // Detected change if ( value > absoluteThreshold ){ if (event.isNull()){ event = EventPtr(new Event(this)); } // create new frame frame = FramePtr(new Frame(this, shot, path)); snap = SnapshotPtr(new Snapshot(frame, bg->Foreground(), path)); // add frame to event event->addFrame(frame); event->addSnapshot(snap); framecount ++; emptycount = 0; } // Did not detect change else if (!event.isNull()){ emptycount ++; // create new frame frame = FramePtr(new Frame(this, shot, path)); snap = SnapshotPtr(new Snapshot(frame, bg->Foreground(), path)); // add frame to event event->addFrame(frame); event->addSnapshot(snap); framecount ++; if(emptycount > maxcount){ if (framecount - emptycount > mincount){ // remove extra frames with no movement for (i = 0; i < maxcount; i++){ event->remLastFrame(); event->remLastSnapshot(); } events.push_back(event); } event.clear(); emptycount = 0; framecount = 0; } } j++; } // Check if Video ended in the middle of an Event. if (!event.isNull()){ if (framecount > mincount){ events.push_back(event); } else { event.clear(); } } return events; }
vector<EventPtr> SDLWindow::pollEvents() { SDL_Event sdlEvent; vector<EventPtr> events; int numEvents = 0; while (SDL_PollEvent(&sdlEvent)) { numEvents++; EventPtr pNewEvent; switch (sdlEvent.type) { case SDL_MOUSEMOTION: { pNewEvent = createMouseEvent(Event::CURSOR_MOTION, sdlEvent, MouseEvent::NO_BUTTON); CursorEventPtr pNewCursorEvent = boost::dynamic_pointer_cast<CursorEvent>(pNewEvent); if (!events.empty()) { CursorEventPtr pLastEvent = boost::dynamic_pointer_cast<CursorEvent>(events.back()); if (pLastEvent && *pNewCursorEvent == *pLastEvent) { pNewEvent = EventPtr(); } } } break; case SDL_MOUSEBUTTONDOWN: pNewEvent = createMouseButtonEvent(Event::CURSOR_DOWN, sdlEvent); break; case SDL_MOUSEBUTTONUP: pNewEvent = createMouseButtonEvent(Event::CURSOR_UP, sdlEvent); break; case SDL_JOYAXISMOTION: // pNewEvent = createAxisEvent(sdlEvent)); break; case SDL_JOYBUTTONDOWN: // pNewEvent = createButtonEvent(Event::BUTTON_DOWN, sdlEvent)); break; case SDL_JOYBUTTONUP: // pNewEvent = createButtonEvent(Event::BUTTON_UP, sdlEvent)); break; case SDL_KEYDOWN: pNewEvent = createKeyEvent(Event::KEY_DOWN, sdlEvent); break; case SDL_KEYUP: pNewEvent = createKeyEvent(Event::KEY_UP, sdlEvent); break; case SDL_QUIT: pNewEvent = EventPtr(new Event(Event::QUIT, Event::NONE)); break; case SDL_VIDEORESIZE: break; case SDL_SYSWMEVENT: { #if defined(HAVE_XI2_1) || defined(HAVE_XI2_2) SDL_SysWMmsg* pMsg = sdlEvent.syswm.msg; AVG_ASSERT(pMsg->subsystem == SDL_SYSWM_X11); if (m_pXIMTInputDevice) { m_pXIMTInputDevice->handleXIEvent(pMsg->event.xevent); } #endif } break; default: // Ignore unknown events. break; } if (pNewEvent) { events.push_back(pNewEvent); } } if (numEvents > 124) { AVG_TRACE(Logger::category::EVENTS, Logger::severity::WARNING, "SDL Event queue full, dropping events."); } return events; }
EventPtr Event::create() { return EventPtr(new Event); }
void addDevice(const InputDevicePtr &dev) { mAllDevices.insert(dev); fire(EventPtr(new InputDeviceEvent(InputDeviceEvent::ADDED, dev))); }
void CAddonCallbacksPVR::PVRConnectionStateChange(void* addonData, const char* strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage) { CPVRClient *client = GetPVRClient(addonData); if (!client || !strConnectionString) { CLog::Log(LOGERROR, "PVR - %s - invalid handler data", __FUNCTION__); return; } const PVR_CONNECTION_STATE prevState(client->GetConnectionState()); if (prevState == newState) return; CLog::Log(LOGDEBUG, "PVR - %s - state for connection '%s' on client '%s' changed from '%d' to '%d'", __FUNCTION__, strConnectionString, client->Name().c_str(), prevState, newState); client->SetConnectionState(newState); int iMsg(-1); bool bError(true); bool bNotify(true); switch (newState) { case PVR_CONNECTION_STATE_SERVER_UNREACHABLE: iMsg = 35505; // Server is unreachable break; case PVR_CONNECTION_STATE_SERVER_MISMATCH: iMsg = 35506; // Server does not respond properly break; case PVR_CONNECTION_STATE_VERSION_MISMATCH: iMsg = 35507; // Server version is not compatible break; case PVR_CONNECTION_STATE_ACCESS_DENIED: iMsg = 35508; // Access denied break; case PVR_CONNECTION_STATE_CONNECTED: iMsg = 36034; // Connection established bError = false; // No notification for the first successful connect. bNotify = (prevState != PVR_CONNECTION_STATE_UNKNOWN); break; case PVR_CONNECTION_STATE_DISCONNECTED: iMsg = 36030; // Connection lost break; default: CLog::Log(LOGERROR, "PVR - %s - unknown connection state", __FUNCTION__); return; } // Use addon-supplied message, if present std::string strMsg; if (strMessage && strlen(strMessage) > 0) strMsg = strMessage; else strMsg = g_localizeStrings.Get(iMsg); // Notify user. if (bNotify && !CSettings::GetInstance().GetBool(CSettings::SETTING_PVRMANAGER_HIDECONNECTIONLOSTWARNING)) CGUIDialogKaiToast::QueueNotification( bError ? CGUIDialogKaiToast::Error : CGUIDialogKaiToast::Info, client->Name().c_str(), strMsg, 5000, true); // Write event log entry. CEventLog::GetInstance().Add(EventPtr(new CNotificationEvent( client->Name(), strMsg, client->Icon(), bError ? EventLevel::Error : EventLevel::Information))); }
const EventPtr NTupleEventReader::getNextEvent() { currentEvent = EventPtr(new Event()); selectNextNtupleEvent(); // boost::shared_ptr<std::vector<int> > triggers(new std::vector<int>()); // boost::shared_ptr<std::vector<int> > triggerPrescales(new std::vector<int>()); // // assert(hltReader->size() == HLTriggers::NUMBER_OF_TRIGGERS); // for (unsigned int i = 0; i < hltReader->size(); i++) { // triggers->push_back(hltReader->getIntVariableAt(i)); // triggerPrescales->push_back(hltPrescaleReader->getIntVariableAt(i)); // } // while (triggers->size() < HLTriggers::NUMBER_OF_TRIGGERS) { // triggers->push_back(0); // triggerPrescales->push_back(0); // } currentEvent->setDataType(DataType::getDataType(getCurrentFile())); currentEvent->setFile(getCurrentFile()); // currentEvent->setHLTs(triggers); // currentEvent->setHLTPrescales(triggerPrescales); currentEvent->setVertices(vertexReader->getVertices()); if (NTupleEventReader::loadTracks) currentEvent->setTracks(trackReader->getTracks()); //fill leptons BEFORE jets for jet cleaning currentEvent->setElectrons(electronReader->getElectrons()); currentEvent->setMuons(muonReader->getMuons()); currentEvent->setJets(jetReader->getJets(currentEvent->isRealData())); if (currentEvent->isRealData()) { currentEvent->setPassesElectronChannelTrigger( passesElectronChannelTriggerReader->getVariable() ); currentEvent->setPassesMuonChannelTrigger( passesMuonChannelTriggerReader->getVariable() ); currentEvent->setPassesTkMuonChannelTrigger( passesTkMuonChannelTriggerReader->getVariable() ); currentEvent->setPassesElectronChannelQCDTrigger( passesElectronChannelTriggerReader->getVariable() ); currentEvent->setPassesMuonChannelQCDTrigger( passesMuonChannelTriggerReader->getVariable() ); } else if ( currentEvent->isReHLTMC() ) { // currentEvent->setPassesElectronChannelTrigger( passesElectronChannelMCTriggerReader->getVariable() ); // currentEvent->setPassesMuonChannelTrigger( passesMuonChannelMCTriggerReader->getVariable() ); // currentEvent->setPassesTkMuonChannelTrigger( passesTkMuonChannelMCTriggerReader->getVariable() ); currentEvent->setPassesElectronChannelTrigger( true ); currentEvent->setPassesMuonChannelTrigger( true ); currentEvent->setPassesTkMuonChannelTrigger( true ); currentEvent->setPassesElectronChannelQCDTrigger( true ); currentEvent->setPassesMuonChannelQCDTrigger( passesMuonChannelMCTriggerReader->getVariable() ); } else { currentEvent->setPassesElectronChannelTrigger( true ); currentEvent->setPassesMuonChannelTrigger( true ); currentEvent->setPassesTkMuonChannelTrigger( true ); currentEvent->setPassesElectronChannelQCDTrigger( true ); currentEvent->setPassesMuonChannelQCDTrigger( true ); } // Set info that depends on selection criteria e.g. cleaned jets // Must do this before setPassOfflineSelectionInfo, as this selects on the cleaned jets currentEvent->setElectronSelectionOutputInfo( selectionOutputReader_electron->getSelectionOutputInfo() ); currentEvent->setMuonSelectionOutputInfo( selectionOutputReader_muon->getSelectionOutputInfo() ); currentEvent->setElectronQCDNonisolatedSelectionOutputInfo( selectionOutputReader_electronQCDNonisolated->getSelectionOutputInfo() ); currentEvent->setElectronConversionSelectionOutputInfo( selectionOutputReader_electronQCDConversion->getSelectionOutputInfo() ); currentEvent->setMuonQCDNonisolatedSelection1p5to3OutputInfo( selectionOutputReader_muonQCDNonisolated1p5to3->getSelectionOutputInfo() ); currentEvent->setMuonQCDNonisolatedSelection3toInfOutputInfo( selectionOutputReader_muonQCDNonisolated3toInf->getSelectionOutputInfo() ); currentEvent->setPassOfflineSelectionInfo( *passesOfflineSelectionReader->getVariable() ); currentEvent->setPassGenSelectionInfo( *passesGenSelectionReader->getVariable() ); if (!currentEvent->isRealData()) { currentEvent->setTTGenInfo( ttGenInfoReader->getTTGenInfo()); // Have to do this after setting jets and TTGenInfo currentEvent->setJetTTBarPartons(); // std::cout << "Gen Particles etc." << std::endl; // currentEvent->setGenParticles(genParticleReader->getGenParticles()); currentEvent->setGenJets(genJetReader->getGenJets()); currentEvent->setPseudoTopParticles( pseudoTopReader->getPseudoTopParticles() ); // currentEvent->setGenNumberOfPileUpVertices(*PileupInfoReader->getVariable()); // currentEvent->setPDFWeights(*PDFWeightsReader->getVariable()); currentEvent->setTrueNumberOfPileUpVertices(*TruePileupInfoReader->getVariable()); // if (Globals::NTupleVersion >= 6) { // currentEvent->setPUWeightInTimeOnly(PUWeightInTimeOnly_->getVariable()); // currentEvent->setPUWeight3BX(PUWeight3BX_->getVariable()); // currentEvent->setPUWeightShiftUp(PUWeightShiftUp_->getVariable()); // currentEvent->setPUWeightShiftDown(PUWeightShiftDown_->getVariable()); // } currentEvent->setGeneratorWeight( generatorWeightReader_->getVariable() ); currentEvent->setGeneratorSystematicWeights( *systematicWeightsReader_->getVariable() ); currentEvent->setCentralLHEWeight( centralLHEWeightReader_->getVariable() ); } // Get and set the cleaned jets for this event // After knowing which selection criteria are satisfied if( currentEvent->PassesElectronSelectionNoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsReference ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsReference ) ); } else if ( currentEvent->PassesMuonSelectionNoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::MuonPlusJetsReference ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::MuonPlusJetsReference ) ); } else if ( currentEvent->PassesElectronQCDSelectionNoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsQCDNonIsolated ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsQCDNonIsolated ) ); } else if ( currentEvent->PassesElectronConversionSelectionNoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsQCDConversion ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsQCDConversion ) ); } else if ( currentEvent->PassesMuonQCDSelection1p5to3NoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated1p5to3 ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated1p5to3 ) ); } else if ( currentEvent->PassesMuonQCDSelection3toInfNoB() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated3toInf ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated3toInf ) ); } // Set bjet weight if ( !currentEvent->isRealData() ) { boost::scoped_ptr<BTagWeight> btagWeight(new BTagWeight()); // Normal 2 medium BTags selection // Which combination of b tags do you want? // L = Loose, Not implemented yet // M = Medium, // T = Tight, // Currently only same WP jets are supported double bweight = btagWeight->weight( currentEvent->CleanedJets(), 0, {"M", "M"} ); currentEvent->setBJetWeight( bweight ); bweight = btagWeight->weight( currentEvent->CleanedJets(), 1, {"M", "M"} ); currentEvent->setLightJetUpWeight( bweight ); bweight = btagWeight->weight( currentEvent->CleanedJets(), -1, {"M", "M"} ); currentEvent->setLightJetDownWeight( bweight ); bweight = btagWeight->weight( currentEvent->CleanedJets(), 2, {"M", "M"} ); currentEvent->setBJetUpWeight( bweight ); bweight = btagWeight->weight( currentEvent->CleanedJets(), -2, {"M", "M"} ); currentEvent->setBJetDownWeight( bweight ); // 2 tight BTags selection bweight = btagWeight->weight( currentEvent->CleanedJets(), 0, {"T", "T"} ); currentEvent->setTightBJetWeight( bweight ); // bweight = btagWeight->weight( currentEvent->CleanedJets(), 1, {"T", "T"} ); // currentEvent->setTightLightJetUpWeight( bweight ); // bweight = btagWeight->weight( currentEvent->CleanedJets(), -1, {"T", "T"} ); // currentEvent->setTightLightJetDownWeight( bweight ); // bweight = btagWeight->weight( currentEvent->CleanedJets(), 2, {"T", "T"} ); // currentEvent->setTightBJetUpWeight( bweight ); // bweight = btagWeight->weight( currentEvent->CleanedJets(), -2, {"T", "T"} ); // currentEvent->setTightBJetDownWeight( bweight ); } double sysShiftMetCorrectionX = 0; double sysShiftMetCorrectionY = 0; double type0MetCorrectionX = 0; double type0MetCorrectionY = 0; double type1MetCorrectionX = 0; double type1MetCorrectionY = 0; double totalMetCorrectionX = sysShiftMetCorrectionX + type0MetCorrectionX + type1MetCorrectionX; double totalMetCorrectionY = sysShiftMetCorrectionY + type0MetCorrectionY + type1MetCorrectionY; METCollection mets; mets.resize(METAlgorithm::NUMBER_OF_METALGORITHMS); for (unsigned int index = 0; index < METAlgorithm::NUMBER_OF_METALGORITHMS; ++index) { if (!MET::isAvailableInNTupleVersion(Globals::NTupleVersion, index)) continue; bool isMCOnlyMET = MET::isMCOnlyMETType(index); // if (isMCOnlyMET && currentEvent->isRealData()) if (isMCOnlyMET) continue; const METPointer met(metReaders.at(index)->getMET(totalMetCorrectionX, totalMetCorrectionY)); if (Globals::NTupleVersion >= 7){ met->setSumET(sumETReader_->getVariable()); currentEvent->setHCALLaserFilter(HCALLaserFilter->getVariable()); currentEvent->setECALDeadCellFilter(ECALDeadCellFilter->getVariable()); currentEvent->setTrackingFailureFilter(TrackingFailureFilter->getVariable()); currentEvent->setCSCTightBeamHaloFilter(!CSCTightHaloId->getVariable()); currentEvent->setHBHENoiseFilter(true);//we filter on this for the skim } if (Globals::NTupleVersion >= 9){ currentEvent->setECALDeadCellTPFilter(ECALDeadCellTPFilter->getVariable()); } if (Globals::NTupleVersion >= 10){ currentEvent->setEEBadSCFilter(EEBadSCFilter->getVariable()); currentEvent->setECALLaserCorrFilter(ECALLaserCorrFilter->getVariable()); currentEvent->setTrackingPOGFilters(TrackingPOGFilters->getVariable()); } mets.at(index) = met; } currentEvent->setMETs(mets); currentEvent->setRunNumber(runNumberReader->getVariable()); currentEvent->setEventNumber(eventNumberReader->getVariable()); currentEvent->setLocalEventNumber(currentEventEntry); currentEvent->setLumiBlock(lumiBlockReader->getVariable()); currentEvent->setBeamScrapingVeto(false); if (currentEvent->isRealData()) { currentEvent->setPassesMETFilters(passesMetFilterReader_->getVariable()); } return currentEvent; }
void VMSendMessageEvent::consumeBlockEvent() { EVENT_CONSUME_INFO(); concernedBlock->scheduleLocalEvent(EventPtr(new VMSendMessageEvent(this))); }
void VMStopEvent::consume() { EVENT_CONSUME_INFO(); //concernedBlock->scheduleLocalEvent(EventPtr(new VMStopEvent(this))); concernedBlock->blockCode->processLocalEvent(EventPtr(new VMStopEvent(this))); }
const EventPtr NTupleEventReader::getNextEvent() { currentEvent = EventPtr(new Event()); selectNextNtupleEvent(); // boost::shared_ptr<std::vector<int> > triggers(new std::vector<int>()); // boost::shared_ptr<std::vector<int> > triggerPrescales(new std::vector<int>()); // // assert(hltReader->size() == HLTriggers::NUMBER_OF_TRIGGERS); // for (unsigned int i = 0; i < hltReader->size(); i++) { // triggers->push_back(hltReader->getIntVariableAt(i)); // triggerPrescales->push_back(hltPrescaleReader->getIntVariableAt(i)); // } // while (triggers->size() < HLTriggers::NUMBER_OF_TRIGGERS) { // triggers->push_back(0); // triggerPrescales->push_back(0); // } currentEvent->setDataType(DataType::getDataType(getCurrentFile())); currentEvent->setFile(getCurrentFile()); // currentEvent->setHLTs(triggers); // currentEvent->setHLTPrescales(triggerPrescales); currentEvent->setVertices(vertexReader->getVertices()); if (NTupleEventReader::loadTracks) currentEvent->setTracks(trackReader->getTracks()); //fill leptons BEFORE jets for jet cleaning currentEvent->setElectrons(electronReader->getElectrons()); currentEvent->setMuons(muonReader->getMuons()); currentEvent->setJets(jetReader->getJets(currentEvent->isRealData())); currentEvent->setPassesElectronChannelTrigger( passesElectronChannelTriggerReader->getVariable() ); currentEvent->setPassesMuonChannelTrigger( passesMuonChannelTriggerReader->getVariable() ); // Set info that depends on selection criteria e.g. cleaned jets // Must do this before setPassOfflineSelectionInfo, as this selects on the cleaned jets currentEvent->setElectronSelectionOutputInfo( selectionOutputReader_electron->getSelectionOutputInfo() ); currentEvent->setMuonSelectionOutputInfo( selectionOutputReader_muon->getSelectionOutputInfo() ); currentEvent->setElectronQCDNonisolatedSelectionOutputInfo( selectionOutputReader_electronQCDNonisolated->getSelectionOutputInfo() ); currentEvent->setElectronConversionSelectionOutputInfo( selectionOutputReader_electronQCDConversion->getSelectionOutputInfo() ); currentEvent->setMuonQCDNonisolatedSelectionOutputInfo( selectionOutputReader_muonQCDNonisolated->getSelectionOutputInfo() ); currentEvent->setPassOfflineSelectionInfo( *passesOfflineSelectionReader->getVariable() ); currentEvent->setPassGenSelectionInfo( *passesGenSelectionReader->getVariable() ); currentEvent->setTTGenInfo( ttGenInfoReader->getTTGenInfo()); // Have to do this after setting jets and TTGenInfo currentEvent->setJetTTBarPartons(); if (!currentEvent->isRealData()) { // std::cout << "Gen Particles etc." << std::endl; // currentEvent->setGenParticles(genParticleReader->getGenParticles()); currentEvent->setGenJets(genJetReader->getGenJets()); currentEvent->setPseudoTopParticles( pseudoTopReader->getPseudoTopParticles() ); // currentEvent->setGenNumberOfPileUpVertices(*PileupInfoReader->getVariable()); // currentEvent->setPDFWeights(*PDFWeightsReader->getVariable()); // if (Globals::NTupleVersion >= 6) { // currentEvent->setTrueNumberOfPileUpVertices(*TruePileupInfoReader->getVariable()); // currentEvent->setPUWeightInTimeOnly(PUWeightInTimeOnly_->getVariable()); // currentEvent->setPUWeight3BX(PUWeight3BX_->getVariable()); // currentEvent->setPUWeightShiftUp(PUWeightShiftUp_->getVariable()); // currentEvent->setPUWeightShiftDown(PUWeightShiftDown_->getVariable()); // } } // Get and set the cleaned jets for this event // After knowing which selection criteria are satisfied if( currentEvent->PassesElectronSelection() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsReference ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsReference ) ); } else if ( currentEvent->PassesMuonSelection() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::MuonPlusJetsReference ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::MuonPlusJetsReference ) ); } else if ( currentEvent->PassesElectronQCDSelection() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsQCDNonIsolated ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsQCDNonIsolated ) ); } else if ( currentEvent->PassesElectronConversionSelection() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::ElectronPlusJetsQCDConversion ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::ElectronPlusJetsQCDConversion ) ); } else if ( currentEvent->PassesMuonQCDSelection() ) { currentEvent->setCleanedJets( currentEvent->getCleanedJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated ) ); currentEvent->setCleanedBJets( currentEvent->getCleanedBJets( SelectionCriteria::MuonPlusJetsQCDNonIsolated ) ); } double sysShiftMetCorrectionX = 0; double sysShiftMetCorrectionY = 0; double type0MetCorrectionX = 0; double type0MetCorrectionY = 0; double type1MetCorrectionX = 0; double type1MetCorrectionY = 0; // if (Globals::NTupleVersion > 8) { // if (Globals::applySysShiftMetCorrection) { // metCorrReaders.at(METCorrections::pfMetSysShiftCorrections)->readMETCorrections(); // sysShiftMetCorrectionX = metCorrReaders.at(METCorrections::pfMetSysShiftCorrections)->getXcorrection(); // sysShiftMetCorrectionY = metCorrReaders.at(METCorrections::pfMetSysShiftCorrections)->getYcorrection(); // } // if (Globals::applyType0MetCorrection) { // metCorrReaders.at(METCorrections::pfMetType0Corrections)->readMETCorrections(); // type0MetCorrectionX = metCorrReaders.at(METCorrections::pfMetType0Corrections)->getXcorrection(); // type0MetCorrectionY = metCorrReaders.at(METCorrections::pfMetType0Corrections)->getYcorrection(); // } // if (Globals::applyType1MetCorrection) { // metCorrReaders.at(METCorrections::pfMetType1Corrections)->readMETCorrections(); // type1MetCorrectionX = metCorrReaders.at(METCorrections::pfMetType1Corrections)->getXcorrection(); // type1MetCorrectionY = metCorrReaders.at(METCorrections::pfMetType1Corrections)->getYcorrection(); // } // } double totalMetCorrectionX = sysShiftMetCorrectionX + type0MetCorrectionX + type1MetCorrectionX; double totalMetCorrectionY = sysShiftMetCorrectionY + type0MetCorrectionY + type1MetCorrectionY; METCollection mets; mets.resize(METAlgorithm::NUMBER_OF_METALGORITHMS); for (unsigned int index = 0; index < METAlgorithm::NUMBER_OF_METALGORITHMS; ++index) { if (!MET::isAvailableInNTupleVersion(Globals::NTupleVersion, index)) continue; bool isMCOnlyMET = MET::isMCOnlyMETType(index); // if (isMCOnlyMET && currentEvent->isRealData()) if (isMCOnlyMET) continue; const METPointer met(metReaders.at(index)->getMET(totalMetCorrectionX, totalMetCorrectionY)); if (Globals::NTupleVersion >= 7){ met->setSumET(sumETReader_->getVariable()); currentEvent->setHCALLaserFilter(HCALLaserFilter->getVariable()); currentEvent->setECALDeadCellFilter(ECALDeadCellFilter->getVariable()); currentEvent->setTrackingFailureFilter(TrackingFailureFilter->getVariable()); currentEvent->setCSCTightBeamHaloFilter(!CSCTightHaloId->getVariable()); currentEvent->setHBHENoiseFilter(true);//we filter on this for the skim } if (Globals::NTupleVersion >= 9){ currentEvent->setECALDeadCellTPFilter(ECALDeadCellTPFilter->getVariable()); } if (Globals::NTupleVersion >= 10){ currentEvent->setEEBadSCFilter(EEBadSCFilter->getVariable()); currentEvent->setECALLaserCorrFilter(ECALLaserCorrFilter->getVariable()); currentEvent->setTrackingPOGFilters(TrackingPOGFilters->getVariable()); } mets.at(index) = met; } currentEvent->setMETs(mets); currentEvent->setRunNumber(runNumberReader->getVariable()); currentEvent->setEventNumber(eventNumberReader->getVariable()); currentEvent->setLocalEventNumber(currentEventEntry); currentEvent->setLumiBlock(lumiBlockReader->getVariable()); currentEvent->setBeamScrapingVeto(false); return currentEvent; }
void VMHandleDebugCommandEvent::consumeBlockEvent() { EVENT_CONSUME_INFO(); concernedBlock->scheduleLocalEvent(EventPtr(new VMHandleDebugCommandEvent(this))); }
void I18nItem::switchLanguage(const LANGUAGE theLanguage) { language_ = theLanguage; EventPtr myEvent = EventPtr(new I18nEvent(I18nEvent::ON_LANGUAGE_SWITCH, shared_from_this())); dispatchEvent(myEvent); }
void VMSetIdEvent::consume() { EVENT_CONSUME_INFO(); concernedBlock->scheduleLocalEvent(EventPtr(new VMSetIdEvent(this))); }
void EventDispatcher::wakeup() { // queue dummy event to get waitForEvents() to return queueEvent(EventPtr(new Event(0))); }