CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/src/CalibFormats/CaloTPG/interface/CaloTPGTranscoder.h

Go to the documentation of this file.
00001 #ifndef CALIBFORMATS_CALOTPG_CALOTPGTRANSCODER_H
00002 #define CALIBFORMATS_CALOTPG_CALOTPGTRANSCODER_H 1
00003 
00004 #include <boost/shared_ptr.hpp>
00005 #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h"
00006 #include "DataFormats/EcalDetId/interface/EcalTrigTowerDetId.h"
00007 #include "DataFormats/HcalDigi/interface/HcalTriggerPrimitiveSample.h"
00008 #include "DataFormats/EcalDigi/interface/EcalTriggerPrimitiveSample.h"
00009 
00010 class HcalTPGCompressor;
00011 class EcalTPGCompressor;
00012 
00013 namespace edm {
00014   class EventSetup; 
00015 }
00016 
00026 class CaloTPGTranscoder {
00027 public:
00028   CaloTPGTranscoder();
00029   virtual ~CaloTPGTranscoder(); 
00030 
00031   enum Mode { All=0, RCT=1, HcalTPG=2, EcalTPG=3 };
00033   virtual void setup(const edm::EventSetup& es, Mode mode=All) const;
00035   virtual void releaseSetup() const;
00037   virtual HcalTriggerPrimitiveSample hcalCompress(const HcalTrigTowerDetId& id, unsigned int sample, bool fineGrain) const = 0;
00039   virtual EcalTriggerPrimitiveSample ecalCompress(const EcalTrigTowerDetId& id, unsigned int sample, bool fineGrain) const = 0;
00041   virtual void rctEGammaUncompress(const HcalTrigTowerDetId& hid, const HcalTriggerPrimitiveSample& hc,
00042                                    const EcalTrigTowerDetId& eid, const EcalTriggerPrimitiveSample& ec, 
00043                                    unsigned int& et, bool& egVeto, bool& activity) const = 0;
00045   virtual void rctJetUncompress(const HcalTrigTowerDetId& hid, const HcalTriggerPrimitiveSample& hc,
00046                                    const EcalTrigTowerDetId& eid, const EcalTriggerPrimitiveSample& ec, 
00047                                    unsigned int& et) const = 0;
00048 
00049   virtual double hcaletValue(const int& ieta, const int& compET) const = 0;  
00050   virtual double hcaletValue(const int& ieta, const int& iphi, const int& compressedValue) const = 0;
00051   virtual double hcaletValue(const HcalTrigTowerDetId& hid, const HcalTriggerPrimitiveSample& hc) const = 0; 
00052   boost::shared_ptr<HcalTPGCompressor> getHcalCompressor() const { return hccompress_; }
00053   boost::shared_ptr<EcalTPGCompressor> getEcalCompressor() const { return eccompress_; }
00054 private:
00055   boost::shared_ptr<HcalTPGCompressor> hccompress_;
00056   boost::shared_ptr<EcalTPGCompressor> eccompress_;
00057 };
00058 
00059 #endif