CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/Fireworks/Calo/plugins/FWCaloTowerProxyBuilder.h

Go to the documentation of this file.
00001 #ifndef Fireworks_Calo_FWCaloTowerProxyBuilder_h
00002 #define Fireworks_Calo_FWCaloTowerProxyBuilder_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Calo
00006 // Class  :     FWCaloTowerProxyBuilderBase
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Wed Dec  3 11:28:08 EST 2008
00019 // $Id: FWCaloTowerProxyBuilder.h,v 1.16 2010/12/16 11:39:38 amraktad Exp $
00020 //
00021 
00022 #include "Rtypes.h"
00023 #include <string>
00024 
00025 #include "Fireworks/Calo/interface/FWCaloDataProxyBuilderBase.h"
00026 #include "Fireworks/Calo/src/FWFromTEveCaloDataSelector.h"
00027 #include "DataFormats/CaloTowers/interface/CaloTower.h"
00028 #include "DataFormats/CaloTowers/interface/CaloTowerFwd.h"
00029 
00030 
00031 class TH2F;
00032 //
00033 // base
00034 //
00035 
00036 class FWCaloTowerProxyBuilderBase : public FWCaloDataProxyBuilderBase {
00037 
00038 public:
00039    FWCaloTowerProxyBuilderBase();
00040    virtual ~FWCaloTowerProxyBuilderBase();
00041 
00042    // ---------- const member functions ---------------------
00043    virtual double getEt(const CaloTower&) const = 0;
00044 
00045    // ---------- static member functions --------------------
00046    // ---------- member functions ---------------------------
00047 
00048 protected:
00049    virtual void setCaloData(const fireworks::Context&);
00050    virtual void fillCaloData();
00051    bool assertCaloDataSlice();
00052 
00053    virtual void itemBeingDestroyed(const FWEventItem*);
00054 private:
00055    FWCaloTowerProxyBuilderBase(const FWCaloTowerProxyBuilderBase&); // stop default
00056    const FWCaloTowerProxyBuilderBase& operator=(const FWCaloTowerProxyBuilderBase&); // stop default
00057    virtual void build(const FWEventItem* iItem,
00058                       TEveElementList* product, const FWViewContext*);
00059 
00060    // ---------- member data --------------------------------
00061    const CaloTowerCollection* m_towers;
00062    TH2F* m_hist;
00063 };
00064 
00065 //
00066 // Ecal
00067 //
00068 
00069 class FWECalCaloTowerProxyBuilder : public FWCaloTowerProxyBuilderBase {
00070 public:
00071    FWECalCaloTowerProxyBuilder() {
00072    }
00073    virtual ~FWECalCaloTowerProxyBuilder() {
00074    }
00075 
00076    // ---------- const member functions ---------------------
00077 
00078    virtual double getEt(const CaloTower& iTower) const {
00079       return iTower.emEt();
00080    }
00081 
00082    REGISTER_PROXYBUILDER_METHODS();
00083 private:
00084    FWECalCaloTowerProxyBuilder(const FWECalCaloTowerProxyBuilder&); // stop default
00085    const FWECalCaloTowerProxyBuilder& operator=(const FWECalCaloTowerProxyBuilder&); // stop default
00086 };
00087 
00088 
00089 //
00090 // Hcal
00091 //
00092 
00093 class FWHCalCaloTowerProxyBuilder : public FWCaloTowerProxyBuilderBase {
00094 public:
00095    FWHCalCaloTowerProxyBuilder() {
00096    }
00097    virtual ~FWHCalCaloTowerProxyBuilder(){
00098    }
00099 
00100    // ---------- const member functions ---------------------
00101 
00102    virtual double getEt(const CaloTower& iTower) const {
00103       return iTower.hadEt();
00104    }
00105 
00106    REGISTER_PROXYBUILDER_METHODS();
00107 private:
00108    FWHCalCaloTowerProxyBuilder(const FWHCalCaloTowerProxyBuilder&); // stop default
00109 
00110    const FWHCalCaloTowerProxyBuilder& operator=(const FWHCalCaloTowerProxyBuilder&); // stop default
00111 };
00112 
00113 //
00114 // HCal Outer
00115 //
00116 
00117 class FWHOCaloTowerProxyBuilder : public FWCaloTowerProxyBuilderBase {
00118 public:
00119    FWHOCaloTowerProxyBuilder() {
00120    }
00121    virtual ~FWHOCaloTowerProxyBuilder(){
00122    }
00123    
00124    // ---------- const member functions ---------------------
00125    
00126    virtual double getEt(const CaloTower& iTower) const {
00127       return iTower.outerEt();
00128    }
00129    
00130    REGISTER_PROXYBUILDER_METHODS();
00131    
00132 private:
00133    FWHOCaloTowerProxyBuilder(const FWHOCaloTowerProxyBuilder&); // stop default   
00134    const FWHOCaloTowerProxyBuilder& operator=(const FWHOCaloTowerProxyBuilder&); // stop default
00135 };
00136 
00137 
00138 #endif