Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:51

0001 #ifndef _FWPFCLUSTERRPZPROXYBUILDER_H_
0002 #define _FWPFCLUSTERRPZPROXYBUILDER_H_
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:     ParticleFlow
0007 // Class  :     FWPFClusterRPZProxyBuilder, FWPFEcalClusterRPZProxyBuilder, FWPFHcalClusterRPZProxyBuilder
0008 //
0009 // Implementation:
0010 //     <Notes on implementation>
0011 //
0012 // Original Author:  Simon Harris
0013 //
0014 
0015 // User include files
0016 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
0017 #include "Fireworks/Core/interface/FWSimpleProxyBuilderTemplate.h"
0018 #include "Fireworks/ParticleFlow/interface/FWPFGeom.h"
0019 #include "Fireworks/ParticleFlow/interface/FWPFClusterRPZUtils.h"
0020 
0021 //-----------------------------------------------------------------------------
0022 // FWPFClusterRPZProxyBuilder
0023 //-----------------------------------------------------------------------------
0024 
0025 class FWPFClusterRPZProxyBuilder : public FWSimpleProxyBuilderTemplate<reco::PFCluster> {
0026 public:
0027   // ---------------- Constructor(s)/Destructor ----------------------
0028   FWPFClusterRPZProxyBuilder();
0029   ~FWPFClusterRPZProxyBuilder() override;
0030 
0031   // --------------------- Member Functions --------------------------
0032   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::build;
0033   void build(const reco::PFCluster &iData,
0034              unsigned int iIndex,
0035              TEveElement &oItemHolder,
0036              const FWViewContext *vc) override;
0037   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::scaleProduct;
0038   void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) override;
0039   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::havePerViewProduct;
0040   bool havePerViewProduct(FWViewType::EType) const override { return true; }
0041   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::cleanLocal;
0042   void cleanLocal() override { m_clusters.clear(); }
0043 
0044   REGISTER_PROXYBUILDER_METHODS();
0045 
0046 protected:
0047   // ----------------------- Data Members ----------------------------
0048   std::vector<ScalableLines> m_clusters;
0049   FWPFClusterRPZUtils *m_clusterUtils;
0050 
0051   // --------------------- Member Functions --------------------------
0052   virtual void sharedBuild(const reco::PFCluster &cluster,
0053                            unsigned int iIndex,
0054                            TEveElement &oItemHolder,
0055                            const FWViewContext *vc,
0056                            float radius);
0057 
0058 public:
0059   FWPFClusterRPZProxyBuilder(const FWPFClusterRPZProxyBuilder &) = delete;                   // Disable default
0060   const FWPFClusterRPZProxyBuilder &operator=(const FWPFClusterRPZProxyBuilder &) = delete;  // Disable default
0061 };
0062 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
0063 
0064 //-----------------------------------------------------------------------------
0065 // FWPFEcalClusterRPZProxyBuilder
0066 //-----------------------------------------------------------------------------
0067 
0068 class FWPFEcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder {
0069 public:
0070   // ---------------- Constructor(s)/Destructor ----------------------
0071   FWPFEcalClusterRPZProxyBuilder() {}
0072   ~FWPFEcalClusterRPZProxyBuilder() override {}
0073 
0074   // --------------------- Member Functions --------------------------
0075   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::build;
0076   void build(const reco::PFCluster &iData,
0077              unsigned int iIndex,
0078              TEveElement &oItemHolder,
0079              const FWViewContext *vc) override;
0080 
0081   REGISTER_PROXYBUILDER_METHODS();
0082 
0083   FWPFEcalClusterRPZProxyBuilder(const FWPFEcalClusterRPZProxyBuilder &) = delete;
0084   const FWPFEcalClusterRPZProxyBuilder &operator=(const FWPFEcalClusterRPZProxyBuilder &) = delete;
0085 };
0086 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
0087 
0088 //-----------------------------------------------------------------------------
0089 // FWPFHcalClusterRPZProxyBuilder
0090 //-----------------------------------------------------------------------------
0091 
0092 class FWPFHcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder {
0093 public:
0094   // ---------------- Constructor(s)/Destructor ----------------------
0095   FWPFHcalClusterRPZProxyBuilder() {}
0096   ~FWPFHcalClusterRPZProxyBuilder() override {}
0097 
0098   // --------------------- Member Functions --------------------------
0099   using FWSimpleProxyBuilderTemplate<reco::PFCluster>::build;
0100   void build(const reco::PFCluster &iData,
0101              unsigned int iIndex,
0102              TEveElement &oItemHolder,
0103              const FWViewContext *vc) override;
0104 
0105   REGISTER_PROXYBUILDER_METHODS();
0106 
0107   FWPFHcalClusterRPZProxyBuilder(const FWPFHcalClusterRPZProxyBuilder &) = delete;
0108   const FWPFHcalClusterRPZProxyBuilder &operator=(const FWPFHcalClusterRPZProxyBuilder &) = delete;
0109 };
0110 #endif
0111 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_