RecoLocalTracker
SiStripClusterizer
plugins
SiStripClusterizer.cc
Go to the documentation of this file.
1
#include "
RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.h
"
2
#include "
DataFormats/SiStripCluster/interface/SiStripCluster.h
"
3
#include "
RecoLocalTracker/SiStripClusterizer/interface/StripClusterizerAlgorithmFactory.h
"
4
#include "
FWCore/Framework/interface/Event.h
"
5
#include "
FWCore/Utilities/interface/transform.h
"
6
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
7
8
SiStripClusterizer::SiStripClusterizer
(
const
edm::ParameterSet
& conf)
9
:
inputTags
(conf.getParameter<
std
::
vector
<
edm
::
InputTag
>>(
"DigiProducersList"
)),
10
algorithm
(
StripClusterizerAlgorithmFactory
::
create
(consumesCollector(),
11
conf.getParameter<
edm
::
ParameterSet
>(
"Clusterizer"
))) {
12
produces<edmNew::DetSetVector<SiStripCluster>>();
13
inputTokens
=
edm::vector_transform
(
14
inputTags
, [
this
](
edm::InputTag
const
&
tag
) {
return
consumes<edm::DetSetVector<SiStripDigi>>(
tag
); });
15
}
16
17
void
SiStripClusterizer::produce
(
edm::Event
&
event
,
const
edm::EventSetup
& es) {
18
auto
output
= std::make_unique<edmNew::DetSetVector<SiStripCluster>>();
19
output
->reserve(10000, 4 * 10000);
20
21
edm::Handle<edm::DetSetVector<SiStripDigi>
> inputOld;
22
// edm::Handle< edmNew::DetSetVector<SiStripDigi> > inputNew;
23
24
algorithm
->initialize(es);
25
26
for
(
auto
const
&
token
:
inputTokens
) {
27
if
(
findInput
(
token
, inputOld,
event
))
28
algorithm
->clusterize(*inputOld, *
output
);
29
// else if( findInput( tag, inputNew, event) ) algorithm->clusterize(*inputNew, *output);
30
else
31
edm::LogError
(
"Input Not Found"
) <<
"[SiStripClusterizer::produce] "
;
// << tag;
32
}
33
34
LogDebug
(
"Output"
) <<
output
->dataSize() <<
" clusters from "
<<
output
->size() <<
" modules"
;
35
output
->shrink_to_fit();
36
event
.put(
std::move
(
output
));
37
}
38
39
template
<
class
T>
40
inline
bool
SiStripClusterizer::findInput
(
const
edm::EDGetTokenT<T>
&
tag
,
edm::Handle<T>
&
handle
,
const
edm::Event
&
e
) {
41
e
.getByToken(
tag
,
handle
);
42
return
handle
.isValid();
43
}
MessageLogger.h
convertSQLitetoXML_cfg.output
output
Definition:
convertSQLitetoXML_cfg.py:72
patZpeak.handle
handle
Definition:
patZpeak.py:23
edm::EDGetTokenT
Definition:
EDGetToken.h:33
edm
HLT enums.
Definition:
AlignableModifier.h:19
SiStripClusterizer::algorithm
std::unique_ptr< StripClusterizerAlgorithm > algorithm
Definition:
SiStripClusterizer.h:22
HLT_FULL_cff.InputTag
InputTag
Definition:
HLT_FULL_cff.py:89281
SiStripClusterizer.h
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition:
beamerCreator.py:44
SiStripClusterizer::inputTags
const std::vector< edm::InputTag > inputTags
Definition:
SiStripClusterizer.h:21
edm::Handle
Definition:
AssociativeIterator.h:50
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition:
GlobalPosition_Frontier_DevDB_cff.py:11
HLTMuonOfflineAnalyzer_cfi.inputTags
inputTags
All input tags are specified in this pset for convenience.
Definition:
HLTMuonOfflineAnalyzer_cfi.py:82
edm::vector_transform
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition:
transform.h:11
SiStripClusterizer::findInput
bool findInput(const edm::EDGetTokenT< T > &, edm::Handle< T > &, const edm::Event &)
Definition:
SiStripClusterizer.cc:40
LogDebug
#define LogDebug(id)
Definition:
MessageLogger.h:233
edm::ParameterSet
Definition:
ParameterSet.h:47
SiStripClusterizer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition:
SiStripClusterizer.cc:17
SiStripCluster.h
Event.h
ParameterSet
Definition:
Functions.h:16
SiStripClusterizer::inputTokens
token_v inputTokens
Definition:
SiStripClusterizer.h:25
qcdUeDQM_cfi.algorithm
algorithm
Definition:
qcdUeDQM_cfi.py:32
trackerHitRTTI::vector
Definition:
trackerHitRTTI.h:21
edm::EventSetup
Definition:
EventSetup.h:58
edm::LogError
Log< level::Error, false > LogError
Definition:
MessageLogger.h:123
eostools.move
def move(src, dest)
Definition:
eostools.py:511
std
Definition:
JetResolutionObject.h:76
transform.h
StripClusterizerAlgorithmFactory
Definition:
StripClusterizerAlgorithmFactory.h:12
SiStripClusterizer::SiStripClusterizer
SiStripClusterizer(const edm::ParameterSet &conf)
Definition:
SiStripClusterizer.cc:8
event
Definition:
event.py:1
edm::Event
Definition:
Event.h:73
edm::InputTag
Definition:
InputTag.h:15
StripClusterizerAlgorithmFactory.h
MillePedeFileConverter_cfg.e
e
Definition:
MillePedeFileConverter_cfg.py:37
unpackBuffers-CaloStage2.token
token
Definition:
unpackBuffers-CaloStage2.py:316
Generated for CMSSW Reference Manual by
1.8.16