CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/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 class TrackerTopology;
00011 
00012 class ShallowClustersProducer : public edm::EDProducer {
00013   
00014  public:
00015 
00016   explicit ShallowClustersProducer(const edm::ParameterSet&);
00017 
00018  private:
00019 
00020   edm::InputTag theClustersLabel;
00021   std::string Prefix;
00022   void produce( edm::Event &, const edm::EventSetup & );
00023 
00024   struct moduleVars {
00025     moduleVars(uint32_t, const TrackerTopology*);
00026     int subdetid, side, layerwheel, stringringrod, petal, stereo;
00027     uint32_t module;
00028   };
00029 
00030   struct NearDigis { 
00031     NearDigis(const SiStripClusterInfo&);
00032     NearDigis(const SiStripClusterInfo&, const edm::DetSetVector<SiStripProcessedRawDigi>&);
00033     float max, left, right, first, last, Lleft, Rright; 
00034     float etaX() const {return (left+right)/max/2.;}
00035     float eta()  const {return right>left ? max/(max+right) : left/(left+max);}
00036     float etaasymm() const {return right>left ? (right-max)/(right+max) : (max-left)/(max+left);}
00037     float outsideasymm() const {return (last-first)/(last+first);}
00038   };
00039 
00040 };
00041 
00042 #endif