Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
EventFilter
RawDataCollector
src
RawDataCollectorModule.cc
Go to the documentation of this file.
1
6
#include "
EventFilter/RawDataCollector/interface/RawDataCollectorModule.h
"
7
#include <
DataFormats/FEDRawData/interface/FEDRawDataCollection.h
>
8
#include <
DataFormats/FEDRawData/interface/FEDRawData.h
>
9
#include <
DataFormats/FEDRawData/interface/FEDNumbering.h
>
10
11
#include <
DataFormats/Common/interface/Handle.h
>
12
#include <
FWCore/Framework/interface/Event.h
>
13
#include "
DataFormats/Provenance/interface/ProcessHistory.h
"
14
#include "
FWCore/Framework/interface/ESHandle.h
"
15
#include "
FWCore/Framework/interface/EventSetup.h
"
16
17
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
18
19
#include <iostream>
20
21
using namespace
edm;
22
23
RawDataCollectorModule::RawDataCollectorModule
(
const
edm::ParameterSet
&
pset
) {
24
25
useCurrentProcessOnly_ = pset.
getParameter
<
bool
>(
"currentProcessOnly"
) ;
26
27
produces<FEDRawDataCollection>();
28
}
29
30
RawDataCollectorModule::~RawDataCollectorModule
(){
31
32
}
33
34
35
void
RawDataCollectorModule::produce
(
Event
&
e
,
const
EventSetup
&
c
){
36
38
std::vector< Handle<FEDRawDataCollection> > rawData;
39
e.
getManyByType
(rawData);
40
41
std::auto_ptr<FEDRawDataCollection> producedData(
new
FEDRawDataCollection
);
42
43
for
(
unsigned
int
i
=0;
i
< rawData.size(); ++
i
) {
44
45
const
FEDRawDataCollection
*rdc=rawData[
i
].product();
46
47
if
( useCurrentProcessOnly_ &&
48
( rawData[
i
].provenance()->processName() != e.
processHistory
().
rbegin
()->processName() ) )
49
continue ;
// skip all raw collections not produced by the current process
50
51
for
(
int
j
=0;
j
<
FEDNumbering::MAXFEDID
; ++
j
) {
52
const
FEDRawData
& fedData = rdc->
FEDData
(
j
);
53
size_t
size
=fedData.
size
();
54
55
if
( size > 0 ) {
56
// this fed has data -- lets copy it
57
FEDRawData
& fedDataProd = producedData->FEDData(
j
);
58
if
( fedDataProd.
size
() != 0 ) {
59
std::cout
<<
" More than one FEDRawDataCollection with data in FED "
;
60
std::cout
<<
j
<<
" Skipping the 2nd\n"
;
61
continue
;
62
}
63
fedDataProd.
resize
(size);
64
unsigned
char
*dataProd=fedDataProd.
data
();
65
const
unsigned
char
*
data
=fedData.
data
();
66
for
(
unsigned
int
k
=0;
k
<
size
; ++
k
) {
67
dataProd[
k
]=data[
k
];
68
}
69
}
70
}
71
}
72
73
// Insert the new product in the event
74
e.
put
(producedData);
75
76
}
77
78
79
80
81
edm::ProcessHistory::rbegin
const_reverse_iterator rbegin() const
Definition:
ProcessHistory.h:49
ExpressReco_HICollisions_FallBack.e
tuple e
Definition:
ExpressReco_HICollisions_FallBack.py:1068
edm::Event::getManyByType
void getManyByType(std::vector< Handle< PROD > > &results) const
Definition:
Event.h:414
RawDataCollectorModule::RawDataCollectorModule
RawDataCollectorModule(const edm::ParameterSet &pset)
Constructor.
Definition:
RawDataCollectorModule.cc:23
RawDataCollectorModule.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
i
int i
Definition:
DBlmapReader.cc:9
MessageLogger.h
ProcessHistory.h
Event.h
EventSetup.h
FEDNumbering::MAXFEDID
Definition:
FEDNumbering.h:36
FEDRawDataCollection.h
Handle.h
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition:
FEDRawData.h:47
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition:
FEDRawDataCollection.cc:30
FEDRawData::resize
void resize(size_t newsize)
Definition:
FEDRawData.cc:33
edm::Event::put
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition:
Event.h:84
FEDRawData
Definition:
FEDRawData.h:20
ESHandle.h
j
int j
Definition:
DBlmapReader.cc:9
edm::EventSetup
Definition:
EventSetup.h:44
CrabTask.pset
tuple pset
Definition:
CrabTask.py:85
gen::k
int k[5][pyjets_maxn]
Definition:
Pythia6Hadronizer.cc:86
edm::Event::processHistory
ProcessHistory const & processHistory() const
Definition:
Event.cc:189
trackerHits.c
tuple c
Definition:
trackerHits.py:26
FEDRawDataCollection
Definition:
FEDRawDataCollection.h:21
FEDRawData.h
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition:
FEDRawData.cc:29
RawDataCollectorModule::produce
void produce(edm::Event &e, const edm::EventSetup &c)
Definition:
RawDataCollectorModule.cc:35
edm::ParameterSet
Definition:
ParameterSet.h:31
gather_cfg.cout
tuple cout
Definition:
gather_cfg.py:41
RawDataCollectorModule::~RawDataCollectorModule
virtual ~RawDataCollectorModule()
Destructor.
Definition:
RawDataCollectorModule.cc:30
runTheMatrix.data
data
Definition:
runTheMatrix.py:756
edm::Event
Definition:
Event.h:49
findQualityFiles.size
tuple size
Write out results.
Definition:
findQualityFiles.py:322
FEDNumbering.h
Generated for CMSSW Reference Manual by
1.8.5