CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Unpacker.cc
Go to the documentation of this file.
1 #include <cmath>
2 
5 
7 
9 
10 namespace l1t {
11  const UnpackerFactory UnpackerFactory::instance_;
12 
13  void
14  getBXRange(int nbx, int& first, int& last)
15  {
16  last = std::floor(nbx / 2.);
17  first = std::min(0, -last + (1 - nbx % 2));
18  }
19 
20  std::shared_ptr<Unpacker>
22  {
23  auto unpacker = std::shared_ptr<Unpacker>(UnpackerFactoryT::get()->create("l1t::" + name));
24 
25  if (unpacker.get() == 0) {
26  throw edm::Exception(edm::errors::Configuration, "NoSourceModule")
27  << "Cannot find an unpacker named " << name;
28  }
29 
30  return unpacker;
31  }
32 }
void getBXRange(int nbx, int &first, int &last)
Definition: Unpacker.cc:14
std::shared_ptr< Unpacker > make(const std::string &) const
Definition: Unpacker.cc:21
T min(T a, T b)
Definition: MathUtil.h:58
#define EDM_REGISTER_PLUGINFACTORY(_factory_, _category_)
Definition: PluginFactory.h:90
static const UnpackerFactory instance_
Definition: Unpacker.h:26
T get(const Candidate &c)
Definition: component.h:55