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::EDConsumerBase 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 ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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
 
- 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::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

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:390
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:81
std::string const & label() const
Definition: InputTag.h:42
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().