File indexing completed on 2024-04-06 12:11:51
0001 #ifndef _FWPFCLUSTERRPZPROXYBUILDER_H_
0002 #define _FWPFCLUSTERRPZPROXYBUILDER_H_
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
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
0023
0024
0025 class FWPFClusterRPZProxyBuilder : public FWSimpleProxyBuilderTemplate<reco::PFCluster> {
0026 public:
0027
0028 FWPFClusterRPZProxyBuilder();
0029 ~FWPFClusterRPZProxyBuilder() override;
0030
0031
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
0048 std::vector<ScalableLines> m_clusters;
0049 FWPFClusterRPZUtils *m_clusterUtils;
0050
0051
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;
0060 const FWPFClusterRPZProxyBuilder &operator=(const FWPFClusterRPZProxyBuilder &) = delete;
0061 };
0062
0063
0064
0065
0066
0067
0068 class FWPFEcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder {
0069 public:
0070
0071 FWPFEcalClusterRPZProxyBuilder() {}
0072 ~FWPFEcalClusterRPZProxyBuilder() override {}
0073
0074
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
0090
0091
0092 class FWPFHcalClusterRPZProxyBuilder : public FWPFClusterRPZProxyBuilder {
0093 public:
0094
0095 FWPFHcalClusterRPZProxyBuilder() {}
0096 ~FWPFHcalClusterRPZProxyBuilder() override {}
0097
0098
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