Go to the documentation of this file.00001 #ifndef SiStripZeroSuppression_h
00002 #define SiStripZeroSuppression_h
00003 #include "FWCore/Framework/interface/EDProducer.h"
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005
00006 #include "FWCore/Framework/interface/Frameworkfwd.h"
00007 #include "FWCore/Utilities/interface/InputTag.h"
00008 #include "DataFormats/Common/interface/DetSet.h"
00009 #include "DataFormats/Common/interface/DetSetVector.h"
00010 #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingAlgorithms.h"
00011 #include "DataFormats/SiStripDigi/interface/SiStripProcessedRawDigi.h"
00012
00013 class SiStripDigi;
00014 class SiStripRawDigi;
00015
00016 class SiStripZeroSuppression : public edm::EDProducer
00017 {
00018
00019 public:
00020
00021 explicit SiStripZeroSuppression(const edm::ParameterSet&);
00022 virtual void produce(edm::Event& , const edm::EventSetup& );
00023
00024 private:
00025
00026 void processRaw(const edm::InputTag&, const edm::DetSetVector<SiStripRawDigi>&, std::vector<edm::DetSet<SiStripDigi> >&, std::vector<edm::DetSet<SiStripRawDigi> >& );
00027 void storeCMN(uint32_t, const std::vector< std::pair<short,float> >&);
00028 void storeBaseline(uint32_t, const std::vector< std::pair<short,float> >&, std::map< uint16_t, std::vector < int16_t> >&);
00029 void storeBaselinePoints(uint32_t, std::vector< std::map< uint16_t, int16_t> >&);
00030 void StandardZeroSuppression(edm::Event&);
00031 void CollectionMergedZeroSuppression(edm::Event&);
00032
00033 std::vector<edm::InputTag> inputTags;
00034 typedef std::vector<edm::InputTag>::const_iterator tag_iterator_t;
00035 std::vector< edm::DetSet<SiStripProcessedRawDigi> > output_apvcm;
00036 std::vector< edm::DetSet<SiStripProcessedRawDigi> > output_baseline;
00037 std::vector< edm::DetSet<SiStripDigi> > output_baseline_points;
00038 std::auto_ptr<SiStripRawProcessingAlgorithms> algorithms;
00039
00040
00041 bool storeCM;
00042 bool doAPVRestore;
00043 bool produceRawDigis;
00044 bool produceCalculatedBaseline;
00045 bool produceBaselinePoints;
00046 bool storeInZScollBadAPV;
00047 bool mergeCollections;
00048 bool fixCM;
00049 bool useCMMeanMap;
00050
00051 };
00052 #endif
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074