test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
17 // System include files
18 #include <math.h>
19 #include "TEveScalableStraightLineSet.h"
20 
21 // User include files
25 
29 
32 
33 
34 //-----------------------------------------------------------------------------
35 // FWPFBlockProxyBuilder
36 //-----------------------------------------------------------------------------
38 {
39  public:
40  enum BuilderType { BASE=0, ECAL=1, HCAL=2 };
41 
42  // ---------------- Constructor(s)/Destructor ----------------------
45 
47 
48  protected:
49  // --------------------- Member Functions --------------------------
50  void setupTrackElement( const reco::PFBlockElement&, TEveElement&, const FWViewContext*, FWViewType::EType );
51  void setupClusterElement( const reco::PFBlockElement&, TEveElement&, const FWViewContext*,
52  FWViewType::EType, float r );
53  void clusterSharedBuild( const reco::PFCluster&, TEveElement&, const FWViewContext* );
54 
56  virtual bool havePerViewProduct( FWViewType::EType ) const { return true; }
57 
59  virtual bool haveSingleProduct() const { return false; } // different view types
60 
62  virtual void scaleProduct( TEveElementList *parent, FWViewType::EType, const FWViewContext *vc );
63 
65  virtual void cleanLocal() { m_clusters.clear(); }
66 
68  virtual void buildViewType( const reco::PFBlock&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext* );
69 
70 
71  // ----------------------- Data Members ----------------------------
73  std::vector<ScalableLines> m_clusters;
74 
75  private:
78 };
79 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
80 
81 
82 //-----------------------------------------------------------------------------
83 // FWPFBlockEcalProxyBuilder
84 //-----------------------------------------------------------------------------
86 {
87  public:
90 
92 
93  private:
96 };
97 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
98 
99 
100 //-----------------------------------------------------------------------------
101 // FWPFBlockHcalProxyBuilder
102 //-----------------------------------------------------------------------------
104 {
105  public:
108 
110 
111  private:
114 };
115 #endif
116 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
Abstract base class for a PFBlock element (track, cluster...)
virtual void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
#define REGISTER_PROXYBUILDER_METHODS()
void setupTrackElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType)
virtual bool havePerViewProduct(FWViewType::EType) const
void setupClusterElement(const reco::PFBlockElement &, TEveElement &, const FWViewContext *, FWViewType::EType, float r)
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:47
virtual bool havePerViewProduct(FWViewType::EType) const
std::vector< ScalableLines > m_clusters
virtual void cleanLocal()
virtual void buildViewType(const reco::PFBlock &, unsigned int, TEveElement &, FWViewType::EType, const FWViewContext *)
void clusterSharedBuild(const reco::PFCluster &, TEveElement &, const FWViewContext *)
virtual bool haveSingleProduct() const
virtual bool haveSingleProduct() const
virtual void scaleProduct(TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
const FWPFBlockProxyBuilder & operator=(const FWPFBlockProxyBuilder &)
const FWPFBlockHcalProxyBuilder & operator=(const FWPFBlockHcalProxyBuilder &)
const FWPFBlockEcalProxyBuilder & operator=(const FWPFBlockEcalProxyBuilder &)
Block of elements.
Definition: PFBlock.h:30