CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/src/CalibTracker/SiStripCommon/interface/ShallowClustersProducer.h

Go to the documentation of this file.
00001 #ifndef SHALLOW_CLUSTERS_PRODUCER
00002 #define SHALLOW_CLUSTERS_PRODUCER
00003 
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/Framework/interface/Frameworkfwd.h"
00006 #include "FWCore/Utilities/interface/InputTag.h"
00007 #include "DataFormats/Common/interface/DetSetVector.h"
00008 class SiStripClusterInfo;
00009 class SiStripProcessedRawDigi;
00010 
00011 class ShallowClustersProducer : public edm::EDProducer {
00012   
00013  public:
00014 
00015   explicit ShallowClustersProducer(const edm::ParameterSet&);
00016 
00017  private:
00018 
00019   edm::InputTag theClustersLabel;
00020   std::string Prefix;
00021   void produce( edm::Event &, const edm::EventSetup & );
00022 
00023   struct moduleVars {
00024     moduleVars(uint32_t);
00025     int subdetid, side, layerwheel, stringringrod, petal, stereo;
00026     uint32_t module;
00027   };
00028 
00029   struct NearDigis { 
00030     NearDigis(const SiStripClusterInfo&);
00031     NearDigis(const SiStripClusterInfo&, const edm::DetSetVector<SiStripProcessedRawDigi>&);
00032     float max, left, right, first, last, Lleft, Rright; 
00033     float etaX() const {return (left+right)/max/2.;}
00034     float eta()  const {return right>left ? max/(max+right) : left/(left+max);}
00035     float etaasymm() const {return right>left ? (right-max)/(right+max) : (max-left)/(max+left);}
00036     float outsideasymm() const {return (last-first)/(last+first);}
00037   };
00038 
00039 };
00040 
00041 #endif