1 |
#ifndef SHALLOW_DIGIS_PRODUCER
|
2 |
#define SHALLOW_DIGIS_PRODUCER
|
3 |
|
4 |
#include "FWCore/Framework/interface/EDProducer.h"
|
5 |
#include "FWCore/Framework/interface/Frameworkfwd.h"
|
6 |
#include "FWCore/Framework/interface/ESHandle.h"
|
7 |
class SiStripNoises;
|
8 |
|
9 |
class ShallowDigisProducer : public edm::EDProducer {
|
10 |
|
11 |
public:
|
12 |
|
13 |
explicit ShallowDigisProducer(const edm::ParameterSet&);
|
14 |
|
15 |
private:
|
16 |
struct products {
|
17 |
std::auto_ptr<std::vector<unsigned> > id;
|
18 |
std::auto_ptr<std::vector<unsigned> > subdet;
|
19 |
std::auto_ptr<std::vector<unsigned> > strip;
|
20 |
std::auto_ptr<std::vector<unsigned> > adc;
|
21 |
std::auto_ptr<std::vector<float> > noise;
|
22 |
products()
|
23 |
: id(new std::vector<unsigned>()),
|
24 |
subdet(new std::vector<unsigned>()),
|
25 |
strip(new std::vector<unsigned>()),
|
26 |
adc(new std::vector<unsigned>()),
|
27 |
noise(new std::vector<float>()) {}
|
28 |
};
|
29 |
std::vector<edm::InputTag> inputTags;
|
30 |
edm::ESHandle<SiStripNoises> noiseHandle;
|
31 |
|
32 |
void produce(edm::Event&, const edm::EventSetup&);
|
33 |
template<class T> bool findInput(edm::Handle<T>&, const edm::Event&);
|
34 |
template<class T> void recordDigis(const T &, products&);
|
35 |
void insert(products&, edm::Event&);
|
36 |
|
37 |
};
|
38 |
|
39 |
#endif
|