CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
CastorDigiToRaw Class Reference

#include <CastorDigiToRaw.h>

Inheritance diagram for CastorDigiToRaw:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 CastorDigiToRaw (const edm::ParameterSet &ps)
 
virtual void produce (edm::Event &e, const edm::EventSetup &c)
 
virtual ~CastorDigiToRaw ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

edm::InputTag calibTag_
 
edm::InputTag castorTag_
 
CastorCtdcPacker ctdcpacker_
 
CastorPacker packer_
 
edm::InputTag trigTag_
 
bool usingctdc_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

CastorDigiToRaw is the EDProducer subclass which runs the Castor Unpack algorithm.

Author
Alan Campbell
Version
1st Version April 18, 2008

Definition at line 26 of file CastorDigiToRaw.h.

Constructor & Destructor Documentation

CastorDigiToRaw::CastorDigiToRaw ( const edm::ParameterSet ps)
explicit

Definition at line 15 of file CastorDigiToRaw.cc.

15  :
16  castorTag_(conf.getUntrackedParameter("CASTOR",edm::InputTag())),
17  calibTag_(conf.getUntrackedParameter("CALIB",edm::InputTag())),
18  trigTag_(conf.getUntrackedParameter("TRIG",edm::InputTag())),
19  usingctdc_(conf.getUntrackedParameter<bool>("CastorCtdc",false))
20 
21 {
22  produces<FEDRawDataCollection>();
23 }
edm::InputTag castorTag_
tuple conf
Definition: dbtoconf.py:185
edm::InputTag trigTag_
edm::InputTag calibTag_
CastorDigiToRaw::~CastorDigiToRaw ( )
virtual

Definition at line 26 of file CastorDigiToRaw.cc.

26 { }

Member Function Documentation

void CastorDigiToRaw::produce ( edm::Event e,
const edm::EventSetup c 
)
virtual

Implements edm::EDProducer.

Definition at line 29 of file CastorDigiToRaw.cc.

References CastorCollections::castorCont, castorTag_, ctdcpacker_, edm::EventID::event(), edm::EventSetup::get(), edm::Event::getByLabel(), edm::EventBase::id(), edm::InputTag::label(), FEDNumbering::MAXCASTORFEDID, FEDNumbering::MINCASTORFEDID, CastorPacker::pack(), CastorCtdcPacker::pack(), packer_, edm::Handle< T >::product(), edm::Event::put(), usingctdc_, and cms::Exception::what().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

30 {
31  CastorCollections colls;
32 
33  // Step A: Get Inputs
35  if (!castorTag_.label().empty()) {
36  e.getByLabel(castorTag_,castor);
37  colls.castorCont=castor.product();
38  }
39  // get the mapping
41  es.get<CastorDbRecord>().get( pSetup );
42  const CastorElectronicsMap* readoutMap=pSetup->getCastorMapping();
43  // Step B: Create empty output
44  std::auto_ptr<FEDRawDataCollection> raw=std::auto_ptr<FEDRawDataCollection>(new FEDRawDataCollection());
45 
46  const int ifed_first=FEDNumbering::MINCASTORFEDID; //690
47  const int ifed_last=FEDNumbering::MAXCASTORFEDID; //693
48 
49  int orbitN=e.id().event();
50  int bcnN=2000;
51 
52  // Step C: pack all requested FEDs
53  for (int ifed=ifed_first; ifed<=ifed_last; ++ifed) {
54  FEDRawData& fed = raw->FEDData(ifed);
55  try {
56  if ( usingctdc_ ) {
57  ctdcpacker_.pack(ifed,ifed-ifed_first, e.id().event(),
58  orbitN, bcnN, colls, *readoutMap, fed);
59  } else {
60  packer_.pack(ifed,ifed-ifed_first, e.id().event(),
61  orbitN, bcnN, colls, *readoutMap, fed); }
62  } catch (cms::Exception& e) {
63  edm::LogWarning("Unpacking error") << e.what();
64  } catch (...) {
65  edm::LogWarning("Unpacking exception");
66  }
67  }
68 
69  e.put(raw);
70 }
virtual char const * what() const
Definition: Exception.cc:141
EventNumber_t event() const
Definition: EventID.h:44
CastorCtdcPacker ctdcpacker_
edm::InputTag castorTag_
const CastorDigiCollection * castorCont
void pack(int fedid, int dccnumber, int nl1a, int orbitn, int bcn, const CastorCollections &inputs, const CastorElectronicsMap &emap, FEDRawData &output)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
void pack(int fedid, int dccnumber, int nl1a, int orbitn, int bcn, const CastorCollections &inputs, const CastorElectronicsMap &emap, FEDRawData &output)
Definition: CastorPacker.cc:36
T const * product() const
Definition: Handle.h:74
std::string const & label() const
Definition: InputTag.h:25
edm::EventID id() const
Definition: EventBase.h:56
CastorPacker packer_

Member Data Documentation

edm::InputTag CastorDigiToRaw::calibTag_
private

Definition at line 36 of file CastorDigiToRaw.h.

edm::InputTag CastorDigiToRaw::castorTag_
private

Definition at line 36 of file CastorDigiToRaw.h.

Referenced by produce().

CastorCtdcPacker CastorDigiToRaw::ctdcpacker_
private

Definition at line 35 of file CastorDigiToRaw.h.

Referenced by produce().

CastorPacker CastorDigiToRaw::packer_
private

Definition at line 34 of file CastorDigiToRaw.h.

Referenced by produce().

edm::InputTag CastorDigiToRaw::trigTag_
private

Definition at line 36 of file CastorDigiToRaw.h.

bool CastorDigiToRaw::usingctdc_
private

Definition at line 37 of file CastorDigiToRaw.h.

Referenced by produce().