virtual double size(void) const{ // Compute bin size double size = ewidth().MeV() * ontime(); // Return bin size return size; }
/***********************************************************************//** * @brief Return size of event bin * * @return Size of event bin (sr MeV s) * * The size of the event bin (units: sr MeV s) is given by * \f[size = \Omega \times \Delta E \times \Delta T\f] * where * \f$\Omega\f$ is the size of the spatial bin in sr, * \f$\Delta E\f$ is the size of the energy bin in MeV, and * \f$\Delta T\f$ is the ontime of the observation in seconds. ***************************************************************************/ double GCOMEventBin::size(void) const { // Compute bin size double size = omega() * ewidth().MeV() * ontime(); // Return bin size return size; }
void EventList::insert(const Event& e) { int ontime = e.ontime(); if (!isEmpty() && last().ontime() > ontime) { for (auto i = begin(); i != end(); ++i) { if (i->ontime() > ontime) { QList<Event>::insert(i, e); return; } } } append(e); }
/***********************************************************************//** * @brief Print LAT observation information * * @param[in] chatter Chattiness (defaults to NORMAL). * @return String containing LAT observation information. ***************************************************************************/ std::string GLATObservation::print(const GChatter& chatter) const { // Initialise result string std::string result; // Continue only if chatter is not silent if (chatter != SILENT) { // Append header result.append("=== GLATObservation ==="); // Append information result.append("\n"+gammalib::parformat("Name")+name()); result.append("\n"+gammalib::parformat("Identifier")+id()); result.append("\n"+gammalib::parformat("Instrument")+instrument()); result.append("\n"+gammalib::parformat("Statistics")+statistics()); result.append("\n"+gammalib::parformat("Ontime")+gammalib::str(ontime())); result.append("\n"+gammalib::parformat("Livetime")+gammalib::str(livetime())); // Append response result.append("\n"+m_response.print(gammalib::reduce(chatter))); // Append livetime cube if (m_ltcube != NULL) { result.append("\n"+m_ltcube->print(gammalib::reduce(chatter))); } else { result.append("\n"+gammalib::parformat("LAT livetime cube")+"undefined"); } // EXPLICIT: Append events if (chatter >= EXPLICIT) { if (m_events != NULL) { result.append("\n"+m_events->print(gammalib::reduce(chatter))); } } } // endif: chatter was not silent // Return result return result; }
/***********************************************************************//** * @brief Print Good Time Intervals * * @param[in] chatter Chattiness (defaults to NORMAL). * @return String containing Good Time Interval information. ***************************************************************************/ std::string GGti::print(const GChatter& chatter) const { // Initialise result string std::string result; // Continue only if chatter is not silent if (chatter != SILENT) { // Append header result.append("=== GGti ==="); // Append GTI information result.append("\n"+gammalib::parformat("Number of intervals")); result.append(gammalib::str(size())); result.append("\n"+gammalib::parformat("Ontime")); result.append(gammalib::str(ontime())+" sec"); result.append("\n"+gammalib::parformat("Elapsed time")); result.append(gammalib::str(telapse())+" sec"); result.append("\n"+gammalib::parformat("Time range")); result.append(gammalib::str(tstart().convert(m_reference))); result.append(" - "); result.append(gammalib::str(tstop().convert(m_reference))); result.append(" "+reference().timeunit()); result.append(" ("+reference().timesys()+")"); result.append("\n"+gammalib::parformat("Reference MDJ")); result.append(gammalib::str(reference().mjdref())); // EXPLICIT: Append time reference information if (chatter >= EXPLICIT) { result.append("\n"+reference().print(chatter)); } } // endif: chatter was not silent // Return result return result; }
void Event::write(Xml& xml) const { switch(_type) { case ME_NOTE: xml.tagE(QString("note tick=\"%1\" channel=\"%2\" len=\"%3\" pitch=\"%4\" velo=\"%5\"") .arg(_ontime).arg(_channel).arg(_duration).arg(_a).arg(_b)); break; case ME_NOTEON: xml.tagE(QString("note-on tick=\"%1\" channel=\"%2\" pitch=\"%3\" velo=\"%4\"") .arg(_ontime).arg(_channel).arg(_a).arg(_b)); break; case ME_NOTEOFF: xml.tagE(QString("note-off tick=\"%1\" channel=\"%2\" pitch=\"%3\" velo=\"%4\"") .arg(_ontime).arg(_channel).arg(_a).arg(_b)); break; case ME_CONTROLLER: if (_a == CTRL_PROGRAM) { if ((_ontime == -1) && (_channel == 0)) { xml.tagE(QString("program value=\"%1\"").arg(_b)); } else { xml.tagE(QString("program tick=\"%1\" channel=\"%2\" value=\"%3\"") .arg(ontime()).arg(channel()).arg(_b)); } } else { if ((ontime() == -1) && (channel() == 0)) { xml.tagE(QString("controller ctrl=\"%1\" value=\"%2\"") .arg(_a).arg(_b)); } else { xml.tagE(QString("controller tick=\"%1\" channel=\"%2\" ctrl=\"%3\" value=\"%4\"") .arg(ontime()).arg(channel()).arg(_a).arg(_b)); } } break; case ME_SYSEX: xml.stag(QString("sysex tick=\"%1\" len=\"%2\"").arg(ontime()).arg(_len)); xml.dump(_len, _edata); xml.etag(); break; case ME_META: switch(metaType()) { case META_TRACK_NAME: xml.tag(QString("TrackName tick=\"%1\"").arg(ontime()), QString((char*)(edata()))); break; case META_LYRIC: xml.tag(QString("Lyric tick=\"%1\"").arg(ontime()), QString((char*)(edata()))); break; case META_KEY_SIGNATURE: { const char* keyTable[] = { "Ces", "Ges", "Des", "As", "Es", "Bes", "F", "C", "G", "D", "A", "E", "B", "Fis", "Cis" }; int key = (char)(_edata[0]) + 7; if (key < 0 || key > 14) { qDebug("bad key signature %d", key); key = 0; } QString sex(_edata[1] ? "Minor" : "Major"); QString keyName(keyTable[key]); xml.tag(QString("Key tick=\"%1\" key=\"%2\" sex=\"%3\"").arg(ontime()).arg(_edata[0]).arg(_edata[1]), QString("%1 %2").arg(keyName).arg(sex)); } break; case META_TIME_SIGNATURE: xml.tagE(QString("TimeSig tick=\"%1\" num=\"%2\" denom=\"%3\" metro=\"%4\" quarter=\"%5\"") .arg(ontime()) .arg(int(_edata[0])) .arg(int(_edata[1])) .arg(int(_edata[2])) .arg(int(_edata[3]))); break; case META_TEMPO: { unsigned tempo = _edata[2] + (_edata[1] << 8) + (_edata[0] << 16); xml.tagE(QString("Tempo tick=\"%1\" value=\"%2\"").arg(ontime()).arg(tempo)); } break; default: xml.stag(QString("Meta tick=\"%1\" type=\"%2\" len=\"%3\" name=\"%4\"") .arg(ontime()).arg(metaType()).arg(_len).arg(midiMetaName(metaType()))); xml.dump(_len, _edata); xml.etag(); break; } break; } }