11 #include "boost/foreach.hpp"
14 : theClustersLabel(iConfig.getParameter<edm::InputTag>(
"Clusters")),
17 produces <std::vector<unsigned> > (
Prefix +
"number" );
18 produces <std::vector<unsigned> > (
Prefix +
"width" );
19 produces <std::vector<float> > (
Prefix +
"variance" );
20 produces <std::vector<float> > (
Prefix +
"barystrip" );
21 produces <std::vector<float> > (
Prefix +
"middlestrip" );
22 produces <std::vector<unsigned> > (
Prefix +
"charge" );
23 produces <std::vector<float> > (
Prefix +
"noise" );
24 produces <std::vector<float> > (
Prefix +
"ston" );
25 produces <std::vector<unsigned> > (
Prefix +
"seedstrip" );
26 produces <std::vector<unsigned> > (
Prefix +
"seedindex" );
27 produces <std::vector<unsigned> > (
Prefix +
"seedcharge" );
28 produces <std::vector<float> > (
Prefix +
"seednoise" );
29 produces <std::vector<float> > (
Prefix +
"seedgain" );
30 produces <std::vector<unsigned> > (
Prefix +
"qualityisbad" );
32 produces <std::vector<float> > (
Prefix +
"rawchargeC" );
33 produces <std::vector<float> > (
Prefix +
"rawchargeL" );
34 produces <std::vector<float> > (
Prefix +
"rawchargeR" );
35 produces <std::vector<float> > (
Prefix +
"rawchargeLL" );
36 produces <std::vector<float> > (
Prefix +
"rawchargeRR" );
37 produces <std::vector<float> > (
Prefix +
"eta" );
38 produces <std::vector<float> > (
Prefix +
"foldedeta" );
39 produces <std::vector<float> > (
Prefix +
"etaX" );
40 produces <std::vector<float> > (
Prefix +
"etaasymm" );
41 produces <std::vector<float> > (
Prefix +
"outsideasymm");
42 produces <std::vector<float> > (
Prefix +
"neweta");
43 produces <std::vector<float> > (
Prefix +
"newetaerr");
45 produces <std::vector<unsigned> > (
Prefix +
"detid" );
46 produces <std::vector<int> > (
Prefix +
"subdetid" );
47 produces <std::vector<int> > (
Prefix +
"module" );
48 produces <std::vector<int> > (
Prefix +
"side" );
49 produces <std::vector<int> > (
Prefix +
"layerwheel" );
50 produces <std::vector<int> > (
Prefix +
"stringringrod" );
51 produces <std::vector<int> > (
Prefix +
"petal" );
52 produces <std::vector<int> > (
Prefix +
"stereo" );
63 std::auto_ptr<std::vector<unsigned> > number (
new std::vector<unsigned>(7,0) );
64 std::auto_ptr<std::vector<unsigned> >
width (
new std::vector<unsigned>() );
65 std::auto_ptr<std::vector<float> > variance (
new std::vector<float>() );
66 std::auto_ptr<std::vector<float> > barystrip (
new std::vector<float>() );
67 std::auto_ptr<std::vector<float> > middlestrip (
new std::vector<float>() );
68 std::auto_ptr<std::vector<unsigned> >
charge (
new std::vector<unsigned>() );
69 std::auto_ptr<std::vector<float> > noise (
new std::vector<float>() );
70 std::auto_ptr<std::vector<float> > ston (
new std::vector<float>() );
71 std::auto_ptr<std::vector<unsigned> > seedstrip (
new std::vector<unsigned>() );
72 std::auto_ptr<std::vector<unsigned> > seedindex (
new std::vector<unsigned>() );
73 std::auto_ptr<std::vector<unsigned> > seedcharge (
new std::vector<unsigned>() );
74 std::auto_ptr<std::vector<float> > seednoise (
new std::vector<float>() );
75 std::auto_ptr<std::vector<float> > seedgain (
new std::vector<float>() );
76 std::auto_ptr<std::vector<unsigned> > qualityisbad (
new std::vector<unsigned>() );
78 std::auto_ptr<std::vector<float> > rawchargeC (
new std::vector<float>() );
79 std::auto_ptr<std::vector<float> > rawchargeL (
new std::vector<float>() );
80 std::auto_ptr<std::vector<float> > rawchargeR (
new std::vector<float>() );
81 std::auto_ptr<std::vector<float> > rawchargeLL (
new std::vector<float>() );
82 std::auto_ptr<std::vector<float> > rawchargeRR (
new std::vector<float>() );
83 std::auto_ptr<std::vector<float> > etaX (
new std::vector<float>() );
84 std::auto_ptr<std::vector<float> >
eta (
new std::vector<float>() );
85 std::auto_ptr<std::vector<float> > foldedeta (
new std::vector<float>() );
86 std::auto_ptr<std::vector<float> > etaasymm (
new std::vector<float>() );
87 std::auto_ptr<std::vector<float> > outsideasymm (
new std::vector<float>() );
88 std::auto_ptr<std::vector<float> > neweta (
new std::vector<float>() );
89 std::auto_ptr<std::vector<float> > newetaerr (
new std::vector<float>() );
91 std::auto_ptr<std::vector<unsigned> >
detid (
new std::vector<unsigned>() );
92 std::auto_ptr<std::vector<int> > subdetid (
new std::vector<int>() );
93 std::auto_ptr<std::vector<int> > side (
new std::vector<int>() );
94 std::auto_ptr<std::vector<int> >
module (
new std::vector<int>() );
95 std::auto_ptr<std::vector<int> > layerwheel (
new std::vector<int>() );
96 std::auto_ptr<std::vector<int> > stringringrod (
new std::vector<int>() );
97 std::auto_ptr<std::vector<int> > petal (
new std::vector<int>() );
98 std::auto_ptr<std::vector<int> > stereo (
new std::vector<int>());
104 iEvent.
getByLabel(
"siStripProcessedRawDigis",
"", rawProcessedDigis);
107 for(;itClusters!=clusters->end();++itClusters){
108 uint32_t
id = itClusters->
id();
117 width->push_back( cluster->amplitudes().size() );
118 barystrip->push_back( cluster->barycenter() );
119 variance->push_back( info.
variance() );
121 charge->push_back( info.
charge() );
124 seedstrip->push_back( info.
maxStrip() );
125 seedindex->push_back( info.
maxIndex() );
126 seedcharge->push_back( info.
maxCharge() );
131 rawchargeC->push_back( digis.
max );
132 rawchargeL->push_back( digis.
left );
133 rawchargeR->push_back( digis.
right );
134 rawchargeLL->push_back( digis.
Lleft );
135 rawchargeRR->push_back( digis.
Rright );
136 etaX->push_back( digis.
etaX() );
137 eta->push_back( digis.
eta() );
138 etaasymm->push_back( digis.
etaasymm() );
143 detid->push_back(
id );
144 subdetid->push_back( moduleV.
subdetid );
145 side->push_back( moduleV.
side );
146 module->push_back( moduleV.
module );
149 petal->push_back( moduleV.
petal );
150 stereo->push_back( moduleV.
stereo );
156 iEvent.
put( variance,
Prefix +
"variance" );
157 iEvent.
put( barystrip,
Prefix +
"barystrip" );
158 iEvent.
put( middlestrip,
Prefix +
"middlestrip" );
162 iEvent.
put( seedstrip,
Prefix +
"seedstrip" );
163 iEvent.
put( seedindex,
Prefix +
"seedindex" );
164 iEvent.
put( seedcharge,
Prefix +
"seedcharge" );
165 iEvent.
put( seednoise,
Prefix +
"seednoise" );
166 iEvent.
put( seedgain,
Prefix +
"seedgain" );
167 iEvent.
put( qualityisbad,
Prefix +
"qualityisbad" );
169 iEvent.
put( rawchargeC,
Prefix +
"rawchargeC" );
170 iEvent.
put( rawchargeL,
Prefix +
"rawchargeL" );
171 iEvent.
put( rawchargeR,
Prefix +
"rawchargeR" );
172 iEvent.
put( rawchargeLL,
Prefix +
"rawchargeLL" );
173 iEvent.
put( rawchargeRR,
Prefix +
"rawchargeRR" );
176 iEvent.
put( foldedeta,
Prefix +
"foldedeta" );
177 iEvent.
put( etaasymm,
Prefix +
"etaasymm" );
178 iEvent.
put( outsideasymm,
Prefix +
"outsideasymm" );
180 iEvent.
put( newetaerr,
Prefix +
"newetaerr" );
183 iEvent.
put( subdetid,
Prefix +
"subdetid" );
186 iEvent.
put( layerwheel,
Prefix +
"layerwheel" );
187 iEvent.
put( stringringrod,
Prefix +
"stringringrod" );
207 if( digiframe != rawProcessedDigis.
end()) {
211 right = unsigned(info.
maxStrip()+1) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+1).
adc() : 0 ;
212 Rright = unsigned(info.
maxStrip()+2) < digiframe->data.
size() ? digiframe->data.at(info.
maxStrip()+2).
adc() : 0 ;
228 layerwheel = tTopo->
tibLayer(detid);
236 layerwheel = tTopo->
tidWheel(detid);
237 stringringrod = tTopo->
tidRing(detid);
244 layerwheel = tTopo->
tobLayer(detid);
245 stringringrod = tTopo->
tobRod(detid);
252 layerwheel = tTopo->
tecWheel(detid);
253 stringringrod = tTopo->
tecRing(detid);
int adc(sample_type sample)
get the ADC sample (12 bits)
uint8_t maxCharge() const
float outsideasymm() const
edm::InputTag theClustersLabel
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
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
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
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
const T & max(const T &a, const T &b)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
unsigned int tidModule(const DetId &id) const
bool tobIsZMinusSide(const DetId &id) const
NearDigis(const SiStripClusterInfo &)
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.
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
T const * product() const
unsigned int tobModule(const DetId &id) const
const std::vector< uint8_t > & stripCharges() const
const_iterator end(bool update=true) const
unsigned int tecPetalNumber(const DetId &id) const
unsigned int tobRod(const DetId &id) const
const_iterator begin(bool update=true) const
collection_type::const_iterator const_iterator
unsigned int tecWheel(const DetId &id) const
Power< A, B >::type pow(const A &a, const B &b)
unsigned int tobLayer(const DetId &id) const
std::vector< float > stripNoisesRescaledByGain() const