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 
55  virtual bool havePerViewProduct( FWViewType::EType ) const { return true; }
56  virtual bool haveSingleProduct() const { return false; } // different view types
57  virtual void buildViewType( const reco::PFBlock&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext* );
58  virtual void scaleProduct( TEveElementList *parent, FWViewType::EType, const FWViewContext *vc );
59  virtual void cleanLocal() { m_clusters.clear(); }
60 
61  // ----------------------- Data Members ----------------------------
63  std::vector<ScalableLines> m_clusters;
64 
65  private:
68 };
69 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
70 
71 
72 //-----------------------------------------------------------------------------
73 // FWPFBlockEcalProxyBuilder
74 //-----------------------------------------------------------------------------
76 {
77  public:
80 
82 
83  private:
86 };
87 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
88 
89 
90 //-----------------------------------------------------------------------------
91 // FWPFBlockHcalProxyBuilder
92 //-----------------------------------------------------------------------------
94 {
95  public:
98 
100 
101  private:
104 };
105 #endif
106 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
Abstract base class for a PFBlock element (track, cluster...)
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)
list parent
Definition: dbtoconf.py:74
Particle flow cluster, see clustering algorithm in PFClusterAlgo.
Definition: PFCluster.h:43
std::vector< ScalableLines > m_clusters
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 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