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 #include "TEveCompound.h"
21 
22 // User include files
26 
30 
33 #include "FWPFLegoCandidate.h"
34 
35 //-----------------------------------------------------------------------------
36 // FWPFBlockProxyBuilder
37 //-----------------------------------------------------------------------------
39 {
40  public:
41  enum BuilderType { BASE=0, ECAL=1, HCAL=2 };
42 
43  // ---------------- Constructor(s)/Destructor ----------------------
46 
48 
49  protected:
50  // --------------------- Member Functions --------------------------
51  float calculateEt( const TEveVector &cluster, float e );
52  void setupTrackElement( const reco::PFBlockElement&, TEveElement&, const FWViewContext*, FWViewType::EType );
53  void setupClusterElement( const reco::PFBlockElement&, TEveElement&, const FWViewContext*,
54  FWViewType::EType, float r );
55  void clusterSharedBuild( const reco::PFCluster&, TEveElement&, const FWViewContext* );
56 
57  virtual bool havePerViewProduct( FWViewType::EType ) const { return true; }
58  virtual bool haveSingleProduct() const { return false; } // different view types
59  virtual void buildViewType( const reco::PFBlock&, unsigned int, TEveElement&, FWViewType::EType, const FWViewContext* );
60  virtual void scaleProduct( TEveElementList *parent, FWViewType::EType, const FWViewContext *vc );
61  virtual void cleanLocal() { m_clusters.clear(); }
62 
63  // ----------------------- Data Members ----------------------------
65  std::vector<ScalableLines> m_clusters;
66 
67  private:
70 };
71 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
72 
73 
74 //-----------------------------------------------------------------------------
75 // FWPFBlockEcalProxyBuilder
76 //-----------------------------------------------------------------------------
78 {
79  public:
82 
84 
85  private:
88 };
89 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
90 
91 
92 //-----------------------------------------------------------------------------
93 // FWPFBlockHcalProxyBuilder
94 //-----------------------------------------------------------------------------
96 {
97  public:
100 
102 
103  private:
106 };
107 #endif
108 //=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_
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:42
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)
float calculateEt(const TEveVector &cluster, float e)
const FWPFBlockProxyBuilder & operator=(const FWPFBlockProxyBuilder &)
const FWPFBlockHcalProxyBuilder & operator=(const FWPFBlockHcalProxyBuilder &)
const FWPFBlockEcalProxyBuilder & operator=(const FWPFBlockEcalProxyBuilder &)
Block of elements.
Definition: PFBlock.h:30