CMS 3D CMS Logo

FWPFBlockProxyBuilder.h
Go to the documentation of this file.
1 #ifndef _FWPFBLOCKPROXYBUILDER_H_
2 #define _FWPFBLOCKPROXYBUILDER_H_
3 
4 // -*- C++ -*-
5 //
6 // Package: ParticleFlow
7 // Class : FWPFBlockProxyBuilder
8 //
9 // Implementation:
10 // <Notes on implementation>
11 //
12 // Original Author: Simon Harris
13 // Created: 14/02/2011
14 //
15 
16 // System include files
17 #include <cmath>
18 #include "TEveScalableStraightLineSet.h"
19 
20 // User include files
24 
28 
31 
32 //-----------------------------------------------------------------------------
33 // FWPFBlockProxyBuilder
34 //-----------------------------------------------------------------------------
35 class FWPFBlockProxyBuilder : public FWSimpleProxyBuilderTemplate<reco::PFBlock> {
36 public:
37  enum BuilderType { BASE = 0, ECAL = 1, HCAL = 2 };
38 
39  // ---------------- Constructor(s)/Destructor ----------------------
41  ~FWPFBlockProxyBuilder() override {}
42 
44 
45 protected:
46  // --------------------- Member Functions --------------------------
47  void setupTrackElement(const reco::PFBlockElement&, TEveElement&, const FWViewContext*, FWViewType::EType);
48  void setupClusterElement(const reco::PFBlockElement&, TEveElement&, const FWViewContext*, FWViewType::EType, float r);
49  void clusterSharedBuild(const reco::PFCluster&, TEveElement&, const FWViewContext*);
50 
52  bool havePerViewProduct(FWViewType::EType) const override { return true; }
53 
55  bool haveSingleProduct() const override { return false; } // different view types
56 
58  void scaleProduct(TEveElementList* parent, FWViewType::EType, const FWViewContext* vc) override;
59 
61  void cleanLocal() override { m_clusters.clear(); }
62 
64  void buildViewType(const reco::PFBlock&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext*) override;
65 
66  // ----------------------- Data Members ----------------------------
68  std::vector<ScalableLines> m_clusters;
69 
70 private:
73 };
74 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
75 
76 //-----------------------------------------------------------------------------
77 // FWPFBlockEcalProxyBuilder
78 //-----------------------------------------------------------------------------
80 public:
83 
85 
86 private:
89 };
90 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
91 
92 //-----------------------------------------------------------------------------
93 // FWPFBlockHcalProxyBuilder
94 //-----------------------------------------------------------------------------
96 public:
99 
101 
102 private:
105 };
106 #endif
107 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
FWPFBlockProxyBuilder::setupClusterElement
void setupClusterElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType, float r)
Definition: FWPFBlockProxyBuilder.cc:98
FWPFTrackUtils.h
FWPFBlockHcalProxyBuilder
Definition: FWPFBlockProxyBuilder.h:95
FWProxyBuilderBase::havePerViewProduct
virtual bool havePerViewProduct(FWViewType::EType) const
Definition: FWProxyBuilderBase.h:89
FWPFBlockProxyBuilder::scaleProduct
void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc) override
Definition: FWPFBlockProxyBuilder.cc:5
FWSimpleProxyBuilderTemplate.h
FWViewType::EType
EType
Definition: FWViewType.h:31
reco::PFBlock
Block of elements.
Definition: PFBlock.h:26
FWPFBlockHcalProxyBuilder::~FWPFBlockHcalProxyBuilder
~FWPFBlockHcalProxyBuilder() override
Definition: FWPFBlockProxyBuilder.h:98
FWPFBlockEcalProxyBuilder
Definition: FWPFBlockProxyBuilder.h:79
REGISTER_PROXYBUILDER_METHODS
#define REGISTER_PROXYBUILDER_METHODS()
Definition: register_dataproxybuilder_macro.h:28
FWPFBlockEcalProxyBuilder::~FWPFBlockEcalProxyBuilder
~FWPFBlockEcalProxyBuilder() override
Definition: FWPFBlockProxyBuilder.h:82
FWPFBlockProxyBuilder::BASE
Definition: FWPFBlockProxyBuilder.h:37
FWPFBlockProxyBuilder::clusterSharedBuild
void clusterSharedBuild(const reco::PFCluster &, TEveElement &, const FWViewContext *)
FWPFBlockProxyBuilder::haveSingleProduct
bool haveSingleProduct() const override
Definition: FWPFBlockProxyBuilder.h:55
FWPFBlockProxyBuilder::~FWPFBlockProxyBuilder
~FWPFBlockProxyBuilder() override
Definition: FWPFBlockProxyBuilder.h:41
FWPFBlockProxyBuilder::ECAL
Definition: FWPFBlockProxyBuilder.h:37
FWPFClusterRPZUtils.h
FWPFBlockProxyBuilder::m_clusters
std::vector< ScalableLines > m_clusters
Definition: FWPFBlockProxyBuilder.h:68
PFCluster.h
FWPFBlockProxyBuilder
Definition: FWPFBlockProxyBuilder.h:35
HCAL
Definition: HCAL.py:1
FWProxyBuilderBase::scaleProduct
virtual void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
Definition: FWProxyBuilderBase.h:113
FWPFBlockEcalProxyBuilder::FWPFBlockEcalProxyBuilder
FWPFBlockEcalProxyBuilder()
Definition: FWPFBlockProxyBuilder.h:81
FWPFBlockProxyBuilder::e_builderType
BuilderType e_builderType
Definition: FWPFBlockProxyBuilder.h:67
FWPFBlockHcalProxyBuilder::operator=
const FWPFBlockHcalProxyBuilder & operator=(const FWPFBlockHcalProxyBuilder &)=delete
FWPFBlockEcalProxyBuilder::operator=
const FWPFBlockEcalProxyBuilder & operator=(const FWPFBlockEcalProxyBuilder &)=delete
FWPFBlockProxyBuilder::FWPFBlockProxyBuilder
FWPFBlockProxyBuilder()
Definition: FWPFBlockProxyBuilder.h:40
FWPFBlockProxyBuilder::setupTrackElement
void setupTrackElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType)
Definition: FWPFBlockProxyBuilder.cc:35
PFClusterFwd.h
FWPFBlockHcalProxyBuilder::FWPFBlockHcalProxyBuilder
FWPFBlockHcalProxyBuilder()
Definition: FWPFBlockProxyBuilder.h:97
FWPFBlockProxyBuilder::buildViewType
void buildViewType(const reco::PFBlock &, unsigned int, TEveElement &, FWViewType::EType, const FWViewContext *) override
Definition: FWPFBlockProxyBuilder.cc:141
FWEventItem.h
reco::PFBlockElement
Abstract base class for a PFBlock element (track, cluster...)
Definition: PFBlockElement.h:26
FWViewContext
Definition: FWViewContext.h:32
alignCSCRings.r
r
Definition: alignCSCRings.py:93
PFBlock.h
FWProxyBuilderBase::cleanLocal
virtual void cleanLocal()
Definition: FWProxyBuilderBase.cc:324
FWPFBlockProxyBuilder::HCAL
Definition: FWPFBlockProxyBuilder.h:37
FWPFBlockProxyBuilder::havePerViewProduct
bool havePerViewProduct(FWViewType::EType) const override
Definition: FWPFBlockProxyBuilder.h:52
reco::PFCluster
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:42
FWPFBlockProxyBuilder::cleanLocal
void cleanLocal() override
Definition: FWPFBlockProxyBuilder.h:61
FWProxyBuilderBase::haveSingleProduct
virtual bool haveSingleProduct() const
Definition: FWProxyBuilderBase.h:88
FWSimpleProxyBuilderTemplate
Definition: FWSimpleProxyBuilderTemplate.h:30
FWPFBlockProxyBuilder::operator=
const FWPFBlockProxyBuilder & operator=(const FWPFBlockProxyBuilder &)
FWPFBlockProxyBuilder::BuilderType
BuilderType
Definition: FWPFBlockProxyBuilder.h:37
class-composition.parent
parent
Definition: class-composition.py:88
Context.h