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 Member Functions | Private Attributes
ErrorStreamSource Class Reference
Inheritance diagram for ErrorStreamSource:
edm::ProducerSourceFromFiles edm::ProducerSourceBase edm::FromFiles edm::InputSource edm::ProductRegistryHelper

Public Member Functions

 ErrorStreamSource (edm::ParameterSet const &pset, edm::InputSourceDescription const &desc)
 
virtual ~ErrorStreamSource ()
 
- Public Member Functions inherited from edm::ProducerSourceFromFiles
virtual bool noFiles () const override
 
 ProducerSourceFromFiles (ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
 
virtual ~ProducerSourceFromFiles ()
 
- Public Member Functions inherited from edm::ProducerSourceBase
EventNumber_t event () const
 
unsigned int eventCreationDelay () const
 
EventID const & eventID () const
 
LuminosityBlockNumber_t luminosityBlock () const
 
unsigned int numberEventsInLumi () const
 
unsigned int numberEventsInRun () const
 
unsigned int numberEventsInThisLumi () const
 
unsigned int numberEventsInThisRun () const
 
TimeValue_t presentTime () const
 
 ProducerSourceBase (ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
 
RunNumber_t run () const
 
unsigned int timeBetweenEvents () const
 
virtual ~ProducerSourceBase ()
 
- Public Member Functions inherited from edm::InputSource
boost::shared_ptr
< ActivityRegistry
actReg () const
 Accessor for Activity Registry. More...
 
boost::shared_ptr
< BranchIDListHelper
branchIDListHelper () const
 Accessor for branchIDListHelper. More...
 
void closeFile (FileBlock *, bool cleaningUpAfterException)
 close current file More...
 
void doBeginJob ()
 Called by framework at beginning of job. More...
 
void doBeginLumi (LuminosityBlockPrincipal &lbp, ProcessContext const *)
 Called by framework at beginning of lumi block. More...
 
void doBeginRun (RunPrincipal &rp, ProcessContext const *)
 Called by framework at beginning of run. More...
 
void doEndJob ()
 Called by framework at end of job. More...
 
void doEndLumi (LuminosityBlockPrincipal &lbp, bool cleaningUpAfterException, ProcessContext const *)
 Called by framework at end of lumi block. More...
 
void doEndRun (RunPrincipal &rp, bool cleaningUpAfterException, ProcessContext const *)
 Called by framework at end of run. More...
 
void doPostForkReacquireResources (boost::shared_ptr< multicore::MessageReceiverForSource >)
 
void doPreForkReleaseResources ()
 Called by the framework before forking the process. More...
 
ProcessingController::ForwardState forwardState () const
 
bool goToEvent (EventID const &eventID)
 
 InputSource (ParameterSet const &, InputSourceDescription const &)
 Constructor. More...
 
 InputSource (InputSource const &)=delete
 
void issueReports (EventID const &eventID)
 issue an event report More...
 
LuminosityBlockNumber_t luminosityBlock () const
 Accessor for current luminosity block number. More...
 
boost::shared_ptr
< LuminosityBlockAuxiliary
luminosityBlockAuxiliary () const
 Called by the framework to merge or insert lumi in principal cache. More...
 
int maxEvents () const
 
int maxLuminosityBlocks () const
 
ModuleDescription const & moduleDescription () const
 Accessor for 'module' description. More...
 
ItemType nextItemType ()
 Advances the source to the next item. More...
 
InputSourceoperator= (InputSource const &)=delete
 
bool primary () const
 Accessor for primary input source flag. More...
 
ProcessConfiguration const & processConfiguration () const
 Accessor for Process Configuration. More...
 
std::string const & processGUID () const
 Accessor for global process identifier. More...
 
ProcessHistoryRegistry const & processHistoryRegistry () const
 Const accessor for process history registry. More...
 
ProcessHistoryRegistryprocessHistoryRegistryForUpdate ()
 Non-const accessor for process history registry. More...
 
ProcessingMode processingMode () const
 RunsLumisAndEvents (default), RunsAndLumis, or Runs. More...
 
boost::shared_ptr
< ProductRegistry const > 
productRegistry () const
 Accessor for product registry. More...
 
bool randomAccess () const
 
void readAndMergeLumi (LuminosityBlockPrincipal &lbp)
 Read next luminosity block (same as a prior lumi) More...
 
void readAndMergeRun (RunPrincipal &rp)
 Read next run (same as a prior run) More...
 
void readEvent (EventPrincipal &ep, StreamContext &)
 Read next event. More...
 
bool readEvent (EventPrincipal &ep, EventID const &, StreamContext &)
 Read a specific event. More...
 
std::unique_ptr< FileBlockreadFile ()
 Read next file. More...
 
void readLuminosityBlock (LuminosityBlockPrincipal &lumiPrincipal, HistoryAppender &historyAppender)
 Read next luminosity block (new lumi) More...
 
boost::shared_ptr
< LuminosityBlockAuxiliary
readLuminosityBlockAuxiliary ()
 Read next luminosity block Auxilary. More...
 
void readRun (RunPrincipal &runPrincipal, HistoryAppender &historyAppender)
 Read next run (new run) More...
 
boost::shared_ptr< RunAuxiliaryreadRunAuxiliary ()
 Read next run Auxiliary. More...
 
ProcessHistoryID const & reducedProcessHistoryID () const
 
void registerProducts ()
 Register any produced products. More...
 
int remainingEvents () const
 
int remainingLuminosityBlocks () const
 
void repeat ()
 Reset the remaining number of events/lumis to the maximum number. More...
 
ProcessingController::ReverseState reverseState () const
 
void rewind ()
 Begin again at the first event. More...
 
RunNumber_t run () const
 Accessor for current run number. More...
 
boost::shared_ptr< RunAuxiliaryrunAuxiliary () const
 Called by the framework to merge or insert run in principal cache. More...
 
void setLuminosityBlockNumber_t (LuminosityBlockNumber_t lb)
 Set the luminosity block ID. More...
 
void setRunNumber (RunNumber_t r)
 Set the run number. More...
 
void skipEvents (int offset)
 
bool skipForForking ()
 
Timestamp const & timestamp () const
 Accessor for the current time, as seen by the input source. More...
 
virtual ~InputSource ()
 Destructor. More...
 

Private Member Functions

void beginLuminosityBlock (edm::LuminosityBlock &lb)
 
void beginRun (edm::Run &r)
 
void endLuminosityBlock (edm::LuminosityBlock &lb)
 
void endRun (edm::Run &r)
 
bool openFile (const std::string &fileName)
 
virtual void produce (edm::Event &e)
 
virtual bool setRunAndEventInfo (edm::EventID &id, edm::TimeValue_t &theTime)
 

Private Attributes

std::ifstream fin_
 
std::vector< std::string >
::const_iterator 
itFileName_
 
std::auto_ptr
< FEDRawDataCollection
result_
 

Additional Inherited Members

- Public Types inherited from edm::InputSource
enum  ItemType {
  IsInvalid, IsStop, IsFile, IsRun,
  IsLumi, IsEvent, IsRepeat, IsSynchronize
}
 
enum  ProcessingMode { Runs, RunsAndLumis, RunsLumisAndEvents }
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::ProducerSourceFromFiles
static void fillDescription (ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::ProducerSourceBase
static void fillDescription (ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::InputSource
static const std::string & baseType ()
 
static void fillDescription (ParameterSetDescription &desc)
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::InputSource
void decreaseRemainingEventsBy (int iSkipped)
 
bool eventCached () const
 
boost::shared_ptr
< LuminosityBlockPrincipal >
const 
luminosityBlockPrincipal () const
 
bool newLumi () const
 
bool newRun () const
 
ProcessHistoryRegistryprocessHistoryRegistryUpdate () const
 
ProductRegistryproductRegistryUpdate () const
 
void reset () const
 
void resetEventCached ()
 
void resetLuminosityBlockAuxiliary (bool isNewLumi=true) const
 
void resetNewLumi ()
 
void resetNewRun ()
 
void resetRunAuxiliary (bool isNewRun=true) const
 
boost::shared_ptr
< RunPrincipal > const 
runPrincipal () const
 
void setEventCached ()
 Called by the framework to merge or ached() const {return eventCached_;}. More...
 
void setLuminosityBlockAuxiliary (LuminosityBlockAuxiliary *lbp)
 
void setNewLumi ()
 
void setNewRun ()
 
void setRunAuxiliary (RunAuxiliary *rp)
 
void setTimestamp (Timestamp const &theTime)
 To set the current time, as seen by the input source. More...
 
ItemType state () const
 

Detailed Description

Definition at line 40 of file ErrorStreamSource.cc.

Constructor & Destructor Documentation

ErrorStreamSource::ErrorStreamSource ( edm::ParameterSet const &  pset,
edm::InputSourceDescription const &  desc 
)

Definition at line 73 of file ErrorStreamSource.cc.

References edm::FromFiles::fileNames(), itFileName_, and openFile().

75  : ProducerSourceFromFiles(pset,desc,true)
76 {
77  itFileName_=fileNames().begin();
79  produces<FEDRawDataCollection>();
80 }
std::vector< std::string >::const_iterator itFileName_
ProducerSourceFromFiles(ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
std::vector< std::string > const & fileNames() const
Definition: FromFiles.h:22
bool openFile(const std::string &fileName)
ErrorStreamSource::~ErrorStreamSource ( )
virtual

Definition at line 84 of file ErrorStreamSource.cc.

85 {
86 
87 }

Member Function Documentation

void ErrorStreamSource::beginLuminosityBlock ( edm::LuminosityBlock lb)
inlineprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 55 of file ErrorStreamSource.cc.

55 {;}
void ErrorStreamSource::beginRun ( edm::Run r)
inlineprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 53 of file ErrorStreamSource.cc.

53 {;}
void ErrorStreamSource::endLuminosityBlock ( edm::LuminosityBlock lb)
inlineprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 56 of file ErrorStreamSource.cc.

56 {;}
void ErrorStreamSource::endRun ( edm::Run r)
inlineprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 54 of file ErrorStreamSource.cc.

54 {;}
bool ErrorStreamSource::openFile ( const std::string &  fileName)
private

Definition at line 174 of file ErrorStreamSource.cc.

References fin_, recoMuon::in, prof2calltree::prefix, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by Vispa.Main.Application.Application::_readCommandLineAttributes(), Vispa.Main.Application.Application::doubleClickOnFile(), ErrorStreamSource(), Vispa.Main.Application.Application::openFileDialog(), Vispa.Main.Application.Application::openRecentFileSlot(), and setRunAndEventInfo().

175 {
176  fin_.close();
177  fin_.clear();
178  size_t pos = fileName.find(':');
179  if (pos!=std::string::npos) {
180  std::string prefix = fileName.substr(0,pos);
181  if (prefix!="file") return false;
182  pos++;
183  }
184  else pos=0;
185 
186  fin_.open(fileName.substr(pos).c_str(),std::ios::in|std::ios::binary);
187  return fin_.is_open();
188 }
void ErrorStreamSource::produce ( edm::Event e)
privatevirtual

Implements edm::ProducerSourceBase.

Definition at line 169 of file ErrorStreamSource.cc.

References edm::Event::put(), and result_.

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

169  {
170  e.put(result_);
171 }
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
std::auto_ptr< FEDRawDataCollection > result_
bool ErrorStreamSource::setRunAndEventInfo ( edm::EventID id,
edm::TimeValue_t theTime 
)
privatevirtual

Implements edm::ProducerSourceBase.

Definition at line 95 of file ErrorStreamSource.cc.

References FEDRawData::data(), end, edm::ProducerSourceBase::event(), fedt_struct::eventsize, evf::evtn::evm_board_setformat(), FED_EVSZ_EXTRACT, FED_SOID_EXTRACT, edm::FromFiles::fileNames(), fin_, evf::evtn::getgpshigh(), evf::evtn::getgpslow(), errorstreamsource::gtpEvmId_, i, itFileName_, openFile(), FEDRawData::resize(), result_, convertSQLiteXML::runNumber, fedh_struct::sourceid, ntuplemaker::status, cond::rpcobgas::time, and BeamSplash_cfg::version.

96 {
97  uint32_t version(1);
98  uint32_t runNumber(0);
99  uint32_t lumiNumber(1);
100  uint32_t evtNumber(0);
101  bool status;
102  status = fin_.read((char*)&runNumber,sizeof(uint32_t));
103  if (runNumber < 32) {
104  version = runNumber;
105  status = fin_.read((char*)&runNumber,sizeof(uint32_t));
106  }
107  if (version >= 2) {
108  status = fin_.read((char*)&lumiNumber,sizeof(uint32_t));
109  }
110  status = fin_.read((char*)&evtNumber,sizeof(uint32_t));
111 
112  if (!status) {
113  itFileName_++; if (itFileName_==fileNames().end()) { fin_.close(); return false; }
115  status = fin_.read((char*)&runNumber,sizeof(uint32_t));
116  if (runNumber < 32) {
117  version = runNumber;
118  status = fin_.read((char*)&runNumber,sizeof(uint32_t));
119  }
120  if (version >= 2) {
121  status = fin_.read((char*)&lumiNumber,sizeof(uint32_t));
122  }
123  status = fin_.read((char*)&evtNumber,sizeof(uint32_t));
124  if (!status) { fin_.close(); return false; }
125  }
126 
127  runNumber = (runNumber==0) ? 1 : runNumber;
128 
129  id = edm::EventID(runNumber, lumiNumber, evtNumber);
130 
131 //______________________________________________________________________________
132  unsigned int totalEventSize = 0;
133 
134  result_.reset(new FEDRawDataCollection());
135 
136  uint32_t fedSize[1024];
137  fin_.read((char*)fedSize,1024*sizeof(uint32_t));
138  for (unsigned int i=0;i<1024;i++) {
139  totalEventSize += fedSize[i];
140  }
141  unsigned int gtpevmsize = fedSize[errorstreamsource::gtpEvmId_];
142  if(gtpevmsize>0)
143  evf::evtn::evm_board_setformat(gtpevmsize);
144  char *event = new char[totalEventSize];
145  fin_.read(event,totalEventSize);
146  while(totalEventSize>0) {
147  totalEventSize -= 8;
148  fedt_t *fedt = (fedt_t*)(event+totalEventSize);
149  unsigned int fedsize = FED_EVSZ_EXTRACT(fedt->eventsize);
150  fedsize *= 8; // fed size in bytes
151  totalEventSize -= (fedsize - 8);
152  fedh_t *fedh = (fedh_t *)(event+totalEventSize);
153  unsigned int soid = FED_SOID_EXTRACT(fedh->sourceid);
155  unsigned int gpsl = evf::evtn::getgpslow((unsigned char*)fedh);
156  unsigned int gpsh = evf::evtn::getgpshigh((unsigned char*)fedh);
157  edm::TimeValue_t time = gpsh;
158  time = (time << 32) + gpsl;
159  theTime = time;
160  }
161  FEDRawData& fedData=result_->FEDData(soid);
162  fedData.resize(fedsize);
163  memcpy(fedData.data(),event+totalEventSize,fedsize);
164  }
165  delete[] event;
166  return true;
167 }
int i
Definition: DBlmapReader.cc:9
unsigned int getgpshigh(const unsigned char *)
std::vector< std::string >::const_iterator itFileName_
unsigned int sourceid
Definition: fed_header.h:32
std::vector< std::string > const & fileNames() const
Definition: FromFiles.h:22
bool openFile(const std::string &fileName)
void evm_board_setformat(size_t size)
void resize(size_t newsize)
Definition: FEDRawData.cc:32
#define FED_EVSZ_EXTRACT(a)
Definition: fed_trailer.h:36
#define end
Definition: vmac.h:37
unsigned long long TimeValue_t
Definition: Timestamp.h:28
unsigned int eventsize
Definition: fed_trailer.h:33
EventNumber_t event() const
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
constexpr unsigned int gtpEvmId_
tuple status
Definition: ntuplemaker.py:245
std::auto_ptr< FEDRawDataCollection > result_
unsigned int getgpslow(const unsigned char *)
#define FED_SOID_EXTRACT(a)
Definition: fed_header.h:53

Member Data Documentation

std::ifstream ErrorStreamSource::fin_
private

Definition at line 64 of file ErrorStreamSource.cc.

Referenced by openFile(), and setRunAndEventInfo().

std::vector<std::string>::const_iterator ErrorStreamSource::itFileName_
private

Definition at line 63 of file ErrorStreamSource.cc.

Referenced by ErrorStreamSource(), and setRunAndEventInfo().

std::auto_ptr<FEDRawDataCollection> ErrorStreamSource::result_
private

Definition at line 65 of file ErrorStreamSource.cc.

Referenced by produce(), and setRunAndEventInfo().