This a basic exception type expected to be thrown by developer-written code. We recommend that you use it directly. It can also be used as a base class if needed.
Each Exception is identified by a category string. This category is a short word or phrase (no spaces) that described the problem that was encountered. These category identifiers can be concatenated if exceptions are caught and rethrown and the entire list can be accessed using the history() call.
Example: try { func(); } catch (cms::Exception& e) { throw cms::Exception("DataCorrupt","encountered while unpacking",e); }
Information can be added to the Exception using the stream insertion operator (as one uses cout). We recommend using it in the following manner:
Example: if ((rc=func()) < 0) { throw cms::Exception("DataCorrupt") << "I died with rc = " << rc << std::endl; }
Derived types are expected to fix the category, either by 1) passing a string literal to the base class constructor, or 2) ensuring the developer gives a category name.
Example: class InfiniteLoop : public Exception { InfiniteLoop(const std::string& msg) : Exception("InfiniteLoop",msg) { } };
The output from what() has a simple format that makes it easy to locate the reason for and context of the error and separate it from the user-supplied free-format text. The output from what() contains all the category and context information in a nested hierarchical format.
The following 'example' shows one possible output. Please note that, in this early version, the format is still changing; what you actually obtain should be similar to, but not necessarily identical with, the following:
Example: ---- InfiniteLoop BEGIN -- who: moduletype=PixelUnpacker modulelabel=unpackthing -- where: event=122234553.1233123456 runsegment=3 store=446 I am really sad about this ---- DataCorrupt BEGIN Unpacking of pixel detector region 14 failed to get valid cell ID ---- DataCorrupt END -- action: skip event ---- InfiniteLoop BEGIN
Fixed format Framework supplied context information will be specially tagged. See the framework error section of the roadmap for details on the format and tags of framework supplied information.
TODO: Update the example to match the final formatting, when that formatting has settled down.
A very fast propagator that can go only from the trigger layers of the muon system to the tracker bounds. Uses precomputed parametrizations.
The COMMON BLOCK used by FastMuonPropagator.
Finds the layers that a FreeTrajectoryState which is outside of the tracker volume crosses first. In the forward and barrel-forward regions there may be several such layers.
SiPixelClusterProducer.cc --------------------------------------------------------------- Description: see SiPixelClusterProducer.h Author: P. Maksimovic (porting from original ORCA version) History: Oct 14, 2005, initial version Get rid of the noiseVector. d.k. 28/3/06 Implementation of the DetSetVector container. V.Chiochia, May 06 SiPixelClusterCollection typedef of DetSetVector V.Chiochia, June 06 Introduce the DetSet local container (cache) for speed. d.k. 05/07
---------------------------------------------------------------
void cms::Adler32 | ( | char const * | data, |
size_t | len, | ||
uint32_t & | a, | ||
uint32_t & | b | ||
) |
Definition at line 11 of file Adler32Calculator.cc.
References a, compareJSON::const, runTheMatrix::data, and MOD_ADLER.
Referenced by Adler32(), stor::FileHandler::checkAdler32(), edm::StreamDQMDeserializer::deserializeDQMEvent(), edm::StreamerInputSource::deserializeEvent(), edm::StreamerInputSource::deserializeRegistry(), FRDEventFileWriter::doOutputEvent(), FRDEventFileWriter::doOutputEventFragment(), edm::StreamDQMSerializer::serializeDQMEvent(), edm::StreamSerializer::serializeEvent(), edm::StreamSerializer::serializeRegistry(), and OutputFile::write().
{ /* data: Pointer to the data to be summed; len is in bytes */ #define MOD_ADLER 65521 unsigned char const* ptr = static_cast<unsigned char const*>(static_cast<void const*>(data)); while (len > 0) { size_t tlen = (len > 5552 ? 5552 : len); len -= tlen; do { a += *ptr++; b += a; } while (--tlen); a %= MOD_ADLER; b %= MOD_ADLER; } #undef MOD_ADLER }
uint32_t cms::Adler32 | ( | char const * | data, |
size_t | len | ||
) |
edm::ProductID cms::clusterProduct | ( | const TrackingRecHit * | hit | ) |
Definition at line 46 of file SimpleTrackListMerger.cc.
References SiStripRecHit2D::cluster(), cond::rpcobgas::detid, Exception, TrackingRecHit::geographicalId(), edm::ProductID::id(), SiStripMatchedRecHit2D::monoHit(), ProjectedSiStripRecHit2D::originalHit(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, and DetId::subdetId().
Referenced by cms::SimpleTrackListMerger::produce().
{ edm::ProductID pID; //cast it into the proper class and find productID DetId detid = hit->geographicalId(); uint32_t subdet = detid.subdetId(); if ((subdet == PixelSubdetector::PixelBarrel) || (subdet == PixelSubdetector::PixelEndcap)) { pID=reinterpret_cast<const SiPixelRecHit *>(hit)->cluster().id(); } else { const std::type_info &type = typeid(*hit); if (type == typeid(SiStripRecHit2D)) { pID=reinterpret_cast<const SiStripRecHit2D *>(hit)->cluster().id(); } else if (type == typeid(SiStripRecHit1D)) { pID=reinterpret_cast<const SiStripRecHit1D *>(hit)->cluster().id(); } else if (type == typeid(SiStripMatchedRecHit2D)) { const SiStripMatchedRecHit2D *mhit = reinterpret_cast<const SiStripMatchedRecHit2D *>(hit); pID=mhit->monoHit()->cluster().id(); } else if (type == typeid(ProjectedSiStripRecHit2D)) { const ProjectedSiStripRecHit2D *phit = reinterpret_cast<const ProjectedSiStripRecHit2D *>(hit); pID=(&phit->originalHit())->cluster().id(); } else throw cms::Exception("Unknown RecHit Type") << "RecHit of type " << type.name() << " not supported. (use c++filt to demangle the name)"; } return pID;}
bool cms::operator!= | ( | MD5Result const & | a, |
MD5Result const & | b | ||
) | [inline] |
bool cms::operator< | ( | MD5Result const & | a, |
MD5Result const & | b | ||
) |
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type const& cms::operator<< | ( | E const & | e, |
std::ostream &(*)(std::ostream &) | f | ||
) | [inline] |
Definition at line 256 of file Exception.h.
References f.
{ E& ref = const_cast<E&>(e); f(ref.ost_); return e; }
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type& cms::operator<< | ( | E & | e, |
std::ostream &(*)(std::ostream &) | f | ||
) | [inline] |
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type& cms::operator<< | ( | E & | e, |
T const & | stuff | ||
) | [inline] |
Definition at line 228 of file Exception.h.
{
e.ost_ << stuff;
return e;
}
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type const& cms::operator<< | ( | E const & | e, |
T const & | stuff | ||
) | [inline] |
Definition at line 237 of file Exception.h.
{ E& ref = const_cast<E&>(e); ref.ost_ << stuff; return e; }
std::ostream& cms::operator<< | ( | std::ostream & | os, |
MD5Result const & | r | ||
) | [inline] |
Definition at line 46 of file Digest.h.
References cms::MD5Result::toString().
{ os << r.toString(); return os; }
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type const& cms::operator<< | ( | E const & | e, |
std::ios_base &(*)(std::ios_base &) | f | ||
) | [inline] |
Definition at line 276 of file Exception.h.
References f.
{ E& ref = const_cast<E&>(e); f(ref.ost_); return e; }
std::ostream& cms::operator<< | ( | std::ostream & | ost, |
Exception const & | e | ||
) | [inline] |
Definition at line 217 of file Exception.h.
References cms::Exception::explainSelf().
{
ost << e.explainSelf();
return ost;
}
detail::Desired<E, detail::is_derived_or_same<Exception,E>::value>::type& cms::operator<< | ( | E & | e, |
std::ios_base &(*)(std::ios_base &) | f | ||
) | [inline] |
bool cms::operator== | ( | MD5Result const & | a, |
MD5Result const & | b | ||
) |
void cms::set_to_default | ( | MD5Result & | val | ) |
Definition at line 44 of file Digest.cc.
References cms::MD5Result::bytes.
Referenced by cms::MD5Result::fromHexifiedString(), and cms::MD5Result::MD5Result().
{ val.bytes[0] = 0xd4; val.bytes[1] = 0x1d; val.bytes[2] = 0x8c; val.bytes[3] = 0xd9; val.bytes[4] = 0x8f; val.bytes[5] = 0x00; val.bytes[6] = 0xb2; val.bytes[7] = 0x04; val.bytes[8] = 0xe9; val.bytes[9] = 0x80; val.bytes[10] = 0x09; val.bytes[11] = 0x98; val.bytes[12] = 0xec; val.bytes[13] = 0xf8; val.bytes[14] = 0x42; val.bytes[15] = 0x7e; }
const char* cms::s_hexValues = "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" [static] |
Definition at line 69 of file Digest.cc.
Referenced by cms::MD5Result::toString().