CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/Fireworks/ParticleFlow/plugins/FWPFClusterRPZProxyBuilder.h

Go to the documentation of this file.
00001 #ifndef _FWPFCLUSTERRPZPROXYBUILDER_H_
00002 #define _FWPFCLUSTERRPZPROXYBUILDER_H_
00003 
00004 // -*- C++ -*-
00005 //
00006 // Package:     ParticleFlow
00007 // Class  :     FWPFClusterRPZProxyBuilder, FWPFEcalClusterRPZProxyBuilder, FWPFHcalClusterRPZProxyBuilder
00008 // 
00009 // Implementation:
00010 //     <Notes on implementation>
00011 //
00012 // Original Author:  Simon Harris
00013 //
00014 
00015 // User include files
00016 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
00017 #include "Fireworks/Core/interface/FWSimpleProxyBuilderTemplate.h"
00018 #include "Fireworks/ParticleFlow/interface/FWPFGeom.h"
00019 #include "Fireworks/ParticleFlow/interface/FWPFClusterRPZUtils.h"
00020 
00021 //-----------------------------------------------------------------------------
00022 // FWPFClusterRPZProxyBuilder
00023 //-----------------------------------------------------------------------------
00024 
00025 class FWPFClusterRPZProxyBuilder : public FWSimpleProxyBuilderTemplate<reco::PFCluster>
00026 {
00027    public:
00028    // ---------------- Constructor(s)/Destructor ----------------------
00029       FWPFClusterRPZProxyBuilder();
00030       virtual ~FWPFClusterRPZProxyBuilder();
00031 
00032    // --------------------- Member Functions --------------------------
00033       virtual void build( const reco::PFCluster &iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *vc );
00034       virtual void scaleProduct( TEveElementList *parent, FWViewType::EType, const FWViewContext *vc );
00035       virtual bool havePerViewProduct( FWViewType::EType ) const { return true; }
00036       virtual void cleanLocal() { m_clusters.clear(); }
00037 
00038       REGISTER_PROXYBUILDER_METHODS();
00039 
00040    protected:
00041    // ----------------------- Data Members ----------------------------
00042       std::vector<ScalableLines> m_clusters;
00043       FWPFClusterRPZUtils        *m_clusterUtils;
00044 
00045    // --------------------- Member Functions --------------------------
00046       virtual void sharedBuild( const reco::PFCluster &cluster, unsigned int iIndex, TEveElement &oItemHolder, 
00047                                 const FWViewContext *vc, float radius );
00048 
00049    private:
00050       FWPFClusterRPZProxyBuilder( const FWPFClusterRPZProxyBuilder& );                    // Disable default
00051       const FWPFClusterRPZProxyBuilder& operator=( const FWPFClusterRPZProxyBuilder& );   // Disable default
00052 };
00053 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
00054 
00055 
00056 //-----------------------------------------------------------------------------
00057 // FWPFEcalClusterRPZProxyBuilder
00058 //-----------------------------------------------------------------------------
00059 
00060 class FWPFEcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder
00061 {
00062    public:
00063    // ---------------- Constructor(s)/Destructor ----------------------
00064       FWPFEcalClusterRPZProxyBuilder(){}
00065       virtual ~FWPFEcalClusterRPZProxyBuilder(){}
00066 
00067    // --------------------- Member Functions --------------------------
00068       virtual void build( const reco::PFCluster &iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *vc );
00069 
00070       REGISTER_PROXYBUILDER_METHODS();
00071 
00072    private:
00073       FWPFEcalClusterRPZProxyBuilder( const FWPFEcalClusterRPZProxyBuilder& );
00074       const FWPFEcalClusterRPZProxyBuilder& operator=( const FWPFEcalClusterRPZProxyBuilder& );
00075 };
00076 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
00077 
00078 
00079 //-----------------------------------------------------------------------------
00080 // FWPFHcalClusterRPZProxyBuilder
00081 //-----------------------------------------------------------------------------
00082 
00083 class FWPFHcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder
00084 {
00085    public:
00086    // ---------------- Constructor(s)/Destructor ----------------------
00087       FWPFHcalClusterRPZProxyBuilder(){}
00088       virtual ~FWPFHcalClusterRPZProxyBuilder(){}
00089 
00090    // --------------------- Member Functions --------------------------
00091       virtual void build( const reco::PFCluster &iData, unsigned int iIndex, TEveElement &oItemHolder, const FWViewContext *vc );
00092 
00093       REGISTER_PROXYBUILDER_METHODS();
00094 
00095    private:
00096       FWPFHcalClusterRPZProxyBuilder( const FWPFHcalClusterRPZProxyBuilder& );
00097       const FWPFHcalClusterRPZProxyBuilder& operator=( const FWPFHcalClusterRPZProxyBuilder& );
00098 };
00099 #endif
00100 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_