11 #include "boost/foreach.hpp" 14 : Prefix(iConfig.getParameter<
std::
string>(
"Prefix") )
16 produces <std::vector<unsigned> > (
Prefix +
"number" );
17 produces <std::vector<unsigned> > (
Prefix +
"width" );
18 produces <std::vector<float> > (
Prefix +
"variance" );
19 produces <std::vector<float> > (
Prefix +
"barystrip" );
20 produces <std::vector<float> > (
Prefix +
"middlestrip" );
21 produces <std::vector<unsigned> > (
Prefix +
"charge" );
22 produces <std::vector<float> > (
Prefix +
"noise" );
23 produces <std::vector<float> > (
Prefix +
"ston" );
24 produces <std::vector<unsigned> > (
Prefix +
"seedstrip" );
25 produces <std::vector<unsigned> > (
Prefix +
"seedindex" );
26 produces <std::vector<unsigned> > (
Prefix +
"seedcharge" );
27 produces <std::vector<float> > (
Prefix +
"seednoise" );
28 produces <std::vector<float> > (
Prefix +
"seedgain" );
29 produces <std::vector<unsigned> > (
Prefix +
"qualityisbad" );
31 produces <std::vector<float> > (
Prefix +
"rawchargeC" );
32 produces <std::vector<float> > (
Prefix +
"rawchargeL" );
33 produces <std::vector<float> > (
Prefix +
"rawchargeR" );
34 produces <std::vector<float> > (
Prefix +
"rawchargeLL" );
35 produces <std::vector<float> > (
Prefix +
"rawchargeRR" );
36 produces <std::vector<float> > (
Prefix +
"eta" );
37 produces <std::vector<float> > (
Prefix +
"foldedeta" );
38 produces <std::vector<float> > (
Prefix +
"etaX" );
39 produces <std::vector<float> > (
Prefix +
"etaasymm" );
40 produces <std::vector<float> > (
Prefix +
"outsideasymm");
41 produces <std::vector<float> > (
Prefix +
"neweta");
42 produces <std::vector<float> > (
Prefix +
"newetaerr");
44 produces <std::vector<unsigned> > (
Prefix +
"detid" );
45 produces <std::vector<int> > (
Prefix +
"subdetid" );
46 produces <std::vector<int> > (
Prefix +
"module" );
47 produces <std::vector<int> > (
Prefix +
"side" );
48 produces <std::vector<int> > (
Prefix +
"layerwheel" );
49 produces <std::vector<int> > (
Prefix +
"stringringrod" );
50 produces <std::vector<int> > (
Prefix +
"petal" );
51 produces <std::vector<int> > (
Prefix +
"stereo" );
64 auto number = std::make_unique<std::vector<unsigned>>(7,0);
65 auto width = std::make_unique<std::vector<unsigned>>();
66 auto variance = std::make_unique<std::vector<float>>();
67 auto barystrip = std::make_unique<std::vector<float>>();
68 auto middlestrip = std::make_unique<std::vector<float>>();
69 auto charge = std::make_unique<std::vector<unsigned>>();
70 auto noise = std::make_unique<std::vector<float>>();
71 auto ston = std::make_unique<std::vector<float>>();
72 auto seedstrip = std::make_unique<std::vector<unsigned>>();
73 auto seedindex = std::make_unique<std::vector<unsigned>>();
74 auto seedcharge = std::make_unique<std::vector<unsigned>>();
75 auto seednoise = std::make_unique<std::vector<float>>();
76 auto seedgain = std::make_unique<std::vector<float>>();
77 auto qualityisbad = std::make_unique<std::vector<unsigned>>();
79 auto rawchargeC = std::make_unique<std::vector<float>>();
80 auto rawchargeL = std::make_unique<std::vector<float>>();
81 auto rawchargeR = std::make_unique<std::vector<float>>();
82 auto rawchargeLL = std::make_unique<std::vector<float>>();
83 auto rawchargeRR = std::make_unique<std::vector<float>>();
84 auto etaX = std::make_unique<std::vector<float>>();
85 auto eta = std::make_unique<std::vector<float>>();
86 auto foldedeta = std::make_unique<std::vector<float>>();
87 auto etaasymm = std::make_unique<std::vector<float>>();
88 auto outsideasymm = std::make_unique<std::vector<float>>();
89 auto neweta = std::make_unique<std::vector<float>>();
90 auto newetaerr = std::make_unique<std::vector<float>>();
92 auto detid = std::make_unique<std::vector<unsigned>>();
93 auto subdetid = std::make_unique<std::vector<int>>();
94 auto side = std::make_unique<std::vector<int>>();
95 auto module = std::make_unique<std::vector<int>>();
96 auto layerwheel = std::make_unique<std::vector<int>>();
97 auto stringringrod = std::make_unique<std::vector<int>>();
98 auto petal = std::make_unique<std::vector<int>>();
99 auto stereo = std::make_unique<std::vector<int>>();
110 for(;itClusters!=clusters->
end();++itClusters){
111 uint32_t
id = itClusters->
id();
120 width->push_back( cluster->amplitudes().size() );
121 barystrip->push_back( cluster->barycenter() );
122 variance->push_back( info.
variance() );
124 charge->push_back( info.
charge() );
127 seedstrip->push_back( info.
maxStrip() );
128 seedindex->push_back( info.
maxIndex() );
129 seedcharge->push_back( info.
maxCharge() );
134 rawchargeC->push_back( digis.
max );
135 rawchargeL->push_back( digis.
left );
136 rawchargeR->push_back( digis.
right );
137 rawchargeLL->push_back( digis.
Lleft );
138 rawchargeRR->push_back( digis.
Rright );
139 etaX->push_back( digis.
etaX() );
140 eta->push_back( digis.
eta() );
141 etaasymm->push_back( digis.
etaasymm() );
146 detid->push_back(
id );
147 subdetid->push_back( moduleV.
subdetid );
148 side->push_back( moduleV.
side );
149 module->push_back( moduleV.
module );
152 petal->push_back( moduleV.
petal );
153 stereo->push_back( moduleV.
stereo );
210 if( digiframe != rawProcessedDigis.
end()) {
214 right = unsigned(info.
maxStrip()+1) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+1).
adc() : 0 ;
215 Rright = unsigned(info.
maxStrip()+2) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+2).
adc() : 0 ;
231 layerwheel = tTopo->
tibLayer(detid);
239 layerwheel = tTopo->
tidWheel(detid);
240 stringringrod = tTopo->
tidRing(detid);
247 layerwheel = tTopo->
tobLayer(detid);
248 stringringrod = tTopo->
tobRod(detid);
255 layerwheel = tTopo->
tecWheel(detid);
256 stringringrod = tTopo->
tecRing(detid);
int adc(sample_type sample)
get the ADC sample (12 bits)
uint8_t maxCharge() const
float outsideasymm() const
T getParameter(std::string const &) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
uint16_t firstStrip() const
iterator find(det_id_type id)
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
unsigned int tidRing(const DetId &id) const
std::vector< float > stripGains() const
bool IsAnythingBad() const
bool tobIsStereo(const DetId &id) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
float noiseRescaledByGain() const
unsigned int tecRing(const DetId &id) const
ring id
ShallowClustersProducer(const edm::ParameterSet &)
unsigned int tidWheel(const DetId &id) const
data_type const * const_iterator
uint16_t maxIndex() const
auto stripCharges() const -> decltype(cluster() ->amplitudes())
id_type id(size_t cell) const
moduleVars(uint32_t, const TrackerTopology *)
bool tecIsZMinusSide(const DetId &id) const
bool tidIsStereo(const DetId &id) const
bool tidIsZMinusSide(const DetId &id) const
bool tecIsStereo(const DetId &id) const
float signalOverNoise() const
bool tibIsZMinusSide(const DetId &id) const
unsigned int tidModule(const DetId &id) const
bool tobIsZMinusSide(const DetId &id) const
NearDigis(const SiStripClusterInfo &)
void produce(edm::Event &, const edm::EventSetup &)
iterator end()
Return the off-the-end iterator.
size_type size() const
Return the number of contained DetSets.
unsigned int tibModule(const DetId &id) const
unsigned int tecModule(const DetId &id) const
Detector identifier class for the strip tracker.
SubDetector subDetector() const
uint16_t maxStrip() const
bool tibIsStereo(const DetId &id) const
unsigned int tobModule(const DetId &id) const
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > theClustersToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripProcessedRawDigi > > theDigisToken_
unsigned int tecPetalNumber(const DetId &id) const
unsigned int tobRod(const DetId &id) const
collection_type::const_iterator const_iterator
unsigned int tecWheel(const DetId &id) const
T const * product() const
Power< A, B >::type pow(const A &a, const B &b)
const_iterator begin(bool update=false) const
unsigned int tobLayer(const DetId &id) const
std::vector< float > stripNoisesRescaledByGain() const