13 #include "boost/foreach.hpp"
16 : theClustersLabel(iConfig.getParameter<edm::InputTag>(
"Clusters")),
17 Prefix(iConfig.getParameter<std::string>(
"Prefix") )
19 produces <std::vector<unsigned> > (
Prefix +
"number" );
20 produces <std::vector<unsigned> > (
Prefix +
"width" );
21 produces <std::vector<float> > (
Prefix +
"variance" );
22 produces <std::vector<float> > (
Prefix +
"barystrip" );
23 produces <std::vector<float> > (
Prefix +
"middlestrip" );
24 produces <std::vector<unsigned> > (
Prefix +
"charge" );
25 produces <std::vector<float> > (
Prefix +
"noise" );
26 produces <std::vector<float> > (
Prefix +
"ston" );
27 produces <std::vector<unsigned> > (
Prefix +
"seedstrip" );
28 produces <std::vector<unsigned> > (
Prefix +
"seedindex" );
29 produces <std::vector<unsigned> > (
Prefix +
"seedcharge" );
30 produces <std::vector<float> > (
Prefix +
"seednoise" );
31 produces <std::vector<float> > (
Prefix +
"seedgain" );
32 produces <std::vector<unsigned> > (
Prefix +
"qualityisbad" );
34 produces <std::vector<float> > (
Prefix +
"rawchargeC" );
35 produces <std::vector<float> > (
Prefix +
"rawchargeL" );
36 produces <std::vector<float> > (
Prefix +
"rawchargeR" );
37 produces <std::vector<float> > (
Prefix +
"rawchargeLL" );
38 produces <std::vector<float> > (
Prefix +
"rawchargeRR" );
39 produces <std::vector<float> > (
Prefix +
"eta" );
40 produces <std::vector<float> > (
Prefix +
"foldedeta" );
41 produces <std::vector<float> > (
Prefix +
"etaX" );
42 produces <std::vector<float> > (
Prefix +
"etaasymm" );
43 produces <std::vector<float> > (
Prefix +
"outsideasymm");
44 produces <std::vector<float> > (
Prefix +
"neweta");
45 produces <std::vector<float> > (
Prefix +
"newetaerr");
47 produces <std::vector<unsigned> > (
Prefix +
"detid" );
48 produces <std::vector<int> > (
Prefix +
"subdetid" );
49 produces <std::vector<int> > (
Prefix +
"module" );
50 produces <std::vector<int> > (
Prefix +
"side" );
51 produces <std::vector<int> > (
Prefix +
"layerwheel" );
52 produces <std::vector<int> > (
Prefix +
"stringringrod" );
53 produces <std::vector<int> > (
Prefix +
"petal" );
54 produces <std::vector<int> > (
Prefix +
"stereo" );
60 std::auto_ptr<std::vector<unsigned> > number (
new std::vector<unsigned>(7,0) );
61 std::auto_ptr<std::vector<unsigned> >
width (
new std::vector<unsigned>() );
62 std::auto_ptr<std::vector<float> > variance (
new std::vector<float>() );
63 std::auto_ptr<std::vector<float> > barystrip (
new std::vector<float>() );
64 std::auto_ptr<std::vector<float> > middlestrip (
new std::vector<float>() );
65 std::auto_ptr<std::vector<unsigned> >
charge (
new std::vector<unsigned>() );
66 std::auto_ptr<std::vector<float> > noise (
new std::vector<float>() );
67 std::auto_ptr<std::vector<float> > ston (
new std::vector<float>() );
68 std::auto_ptr<std::vector<unsigned> > seedstrip (
new std::vector<unsigned>() );
69 std::auto_ptr<std::vector<unsigned> > seedindex (
new std::vector<unsigned>() );
70 std::auto_ptr<std::vector<unsigned> > seedcharge (
new std::vector<unsigned>() );
71 std::auto_ptr<std::vector<float> > seednoise (
new std::vector<float>() );
72 std::auto_ptr<std::vector<float> > seedgain (
new std::vector<float>() );
73 std::auto_ptr<std::vector<unsigned> > qualityisbad (
new std::vector<unsigned>() );
75 std::auto_ptr<std::vector<float> > rawchargeC (
new std::vector<float>() );
76 std::auto_ptr<std::vector<float> > rawchargeL (
new std::vector<float>() );
77 std::auto_ptr<std::vector<float> > rawchargeR (
new std::vector<float>() );
78 std::auto_ptr<std::vector<float> > rawchargeLL (
new std::vector<float>() );
79 std::auto_ptr<std::vector<float> > rawchargeRR (
new std::vector<float>() );
80 std::auto_ptr<std::vector<float> > etaX (
new std::vector<float>() );
81 std::auto_ptr<std::vector<float> >
eta (
new std::vector<float>() );
82 std::auto_ptr<std::vector<float> > foldedeta (
new std::vector<float>() );
83 std::auto_ptr<std::vector<float> > etaasymm (
new std::vector<float>() );
84 std::auto_ptr<std::vector<float> > outsideasymm (
new std::vector<float>() );
85 std::auto_ptr<std::vector<float> > neweta (
new std::vector<float>() );
86 std::auto_ptr<std::vector<float> > newetaerr (
new std::vector<float>() );
88 std::auto_ptr<std::vector<unsigned> >
detid (
new std::vector<unsigned>() );
89 std::auto_ptr<std::vector<int> > subdetid (
new std::vector<int>() );
90 std::auto_ptr<std::vector<int> > side (
new std::vector<int>() );
91 std::auto_ptr<std::vector<int> >
module (
new std::vector<int>() );
92 std::auto_ptr<std::vector<int> > layerwheel (
new std::vector<int>() );
93 std::auto_ptr<std::vector<int> > stringringrod (
new std::vector<int>() );
94 std::auto_ptr<std::vector<int> > petal (
new std::vector<int>() );
95 std::auto_ptr<std::vector<int> > stereo (
new std::vector<int>());
101 iEvent.
getByLabel(
"siStripProcessedRawDigis",
"", rawProcessedDigis);
104 for(;itClusters!=clusters->end();++itClusters){
105 uint32_t
id = itClusters->
id();
114 width->push_back( cluster->amplitudes().size() );
115 barystrip->push_back( cluster->barycenter() );
116 variance->push_back( info.
variance() );
118 charge->push_back( info.
charge() );
121 seedstrip->push_back( info.
maxStrip() );
122 seedindex->push_back( info.
maxIndex() );
123 seedcharge->push_back( info.
maxCharge() );
128 rawchargeC->push_back( digis.
max );
129 rawchargeL->push_back( digis.
left );
130 rawchargeR->push_back( digis.
right );
131 rawchargeLL->push_back( digis.
Lleft );
132 rawchargeRR->push_back( digis.
Rright );
133 etaX->push_back( digis.
etaX() );
134 eta->push_back( digis.
eta() );
135 etaasymm->push_back( digis.
etaasymm() );
140 detid->push_back(
id );
141 subdetid->push_back( moduleV.
subdetid );
142 side->push_back( moduleV.
side );
143 module->push_back( moduleV.
module );
146 petal->push_back( moduleV.
petal );
147 stereo->push_back( moduleV.
stereo );
153 iEvent.
put( variance,
Prefix +
"variance" );
154 iEvent.
put( barystrip,
Prefix +
"barystrip" );
155 iEvent.
put( middlestrip,
Prefix +
"middlestrip" );
159 iEvent.
put( seedstrip,
Prefix +
"seedstrip" );
160 iEvent.
put( seedindex,
Prefix +
"seedindex" );
161 iEvent.
put( seedcharge,
Prefix +
"seedcharge" );
162 iEvent.
put( seednoise,
Prefix +
"seednoise" );
163 iEvent.
put( seedgain,
Prefix +
"seedgain" );
164 iEvent.
put( qualityisbad,
Prefix +
"qualityisbad" );
166 iEvent.
put( rawchargeC,
Prefix +
"rawchargeC" );
167 iEvent.
put( rawchargeL,
Prefix +
"rawchargeL" );
168 iEvent.
put( rawchargeR,
Prefix +
"rawchargeR" );
169 iEvent.
put( rawchargeLL,
Prefix +
"rawchargeLL" );
170 iEvent.
put( rawchargeRR,
Prefix +
"rawchargeRR" );
173 iEvent.
put( foldedeta,
Prefix +
"foldedeta" );
174 iEvent.
put( etaasymm,
Prefix +
"etaasymm" );
175 iEvent.
put( outsideasymm,
Prefix +
"outsideasymm" );
177 iEvent.
put( newetaerr,
Prefix +
"newetaerr" );
180 iEvent.
put( subdetid,
Prefix +
"subdetid" );
183 iEvent.
put( layerwheel,
Prefix +
"layerwheel" );
184 iEvent.
put( stringringrod,
Prefix +
"stringringrod" );
204 if( digiframe != rawProcessedDigis.
end()) {
208 right = unsigned(info.
maxStrip()+1) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+1).
adc() : 0 ;
209 Rright = unsigned(info.
maxStrip()+2) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+2).
adc() : 0 ;
225 layerwheel = tib.
layer();
233 layerwheel = tid.
wheel();
241 layerwheel = tob.
layer();
249 layerwheel = tec.
wheel();
int adc(sample_type sample)
get the ADC sample (12 bits)
uint8_t maxCharge() const
bool isZMinusSide() const
float outsideasymm() const
unsigned int rodNumber() const
edm::InputTag theClustersLabel
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator begin() const
unsigned int petalNumber() const
uint16_t firstStrip() const
unsigned int stringNumber() const
iterator find(det_id_type id)
unsigned int layer() const
layer id
std::vector< float > stripGains() const
bool IsAnythingBad() const
float noiseRescaledByGain() const
ShallowClustersProducer(const edm::ParameterSet &)
unsigned int ringNumber() const
data_type const * const_iterator
uint16_t maxIndex() const
id_type id(size_t cell) const
unsigned int module() const
det id
float signalOverNoise() const
bool isZMinusSide() const
bool isZMinusSide() const
const T & max(const T &a, const T &b)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
NearDigis(const SiStripClusterInfo &)
const_iterator end() const
void produce(edm::Event &, const edm::EventSetup &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
iterator end()
Return the off-the-end iterator.
size_type size() const
Return the number of contained DetSets.
Detector identifier class for the strip tracker.
SubDetector subDetector() const
bool isZMinusSide() const
uint16_t maxStrip() const
unsigned int module() const
detector id
unsigned int wheel() const
wheel id
unsigned int layer() const
layer id
unsigned int ringNumber() const
const std::vector< uint8_t > & stripCharges() const
unsigned int module() const
detector id
collection_type::const_iterator const_iterator
unsigned int moduleNumber() const
Power< A, B >::type pow(const A &a, const B &b)
unsigned int wheel() const
wheel id
std::vector< float > stripNoisesRescaledByGain() const