CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
FWJetProxyBuilder Class Reference
Inheritance diagram for FWJetProxyBuilder:
FWSimpleProxyBuilderTemplate< reco::Jet > FWSimpleProxyBuilder FWProxyBuilderBase

Public Member Functions

virtual void cleanLocal ()
 
 FWJetProxyBuilder ()
 
virtual bool havePerViewProduct (FWViewType::EType) const
 
virtual bool haveSingleProduct () const
 
 REGISTER_PROXYBUILDER_METHODS ()
 
virtual ~FWJetProxyBuilder ()
 
- Public Member Functions inherited from FWSimpleProxyBuilderTemplate< reco::Jet >
 FWSimpleProxyBuilderTemplate ()
 
- Public Member Functions inherited from FWSimpleProxyBuilder
 FWSimpleProxyBuilder (const std::type_info &iType)
 
virtual ~FWSimpleProxyBuilder ()
 
- Public Member Functions inherited from FWProxyBuilderBase
void build ()
 
virtual bool canHandle (const FWEventItem &)
 
const fireworks::Contextcontext () const
 
TEveElementList * createProduct (FWViewType::EType, const FWViewContext *)
 
 FWProxyBuilderBase ()
 
bool getHaveWindow () const
 
const FWEventItemitem () const
 
virtual void itemBeingDestroyed (const FWEventItem *)
 
void itemChanged (const FWEventItem *)
 
int layer () const
 
void modelChanges (const FWModelIds &)
 
void removePerViewProduct (FWViewType::EType, const FWViewContext *vc)
 
void scaleChanged (const FWViewContext *)
 
void setHaveWindow (bool iFlag)
 
virtual void setInteractionList (FWInteractionList *, const std::string &)
 
void setItem (const FWEventItem *iItem)
 
void setupAddElement (TEveElement *el, TEveElement *parent, bool set_color=true) const
 
void setupElement (TEveElement *el, bool color=true) const
 
virtual bool willHandleInteraction () const
 
virtual ~FWProxyBuilderBase ()
 

Protected Member Functions

virtual void buildViewType (const reco::Jet &iData, unsigned int iIndex, TEveElement &oItemHolder, FWViewType::EType type, const FWViewContext *)
 
virtual void localModelChanges (const FWModelId &iId, TEveElement *iCompound, FWViewType::EType viewType, const FWViewContext *vc)
 
virtual void scaleProduct (TEveElementList *parent, FWViewType::EType, const FWViewContext *vc)
 
- Protected Member Functions inherited from FWSimpleProxyBuilderTemplate< reco::Jet >
const reco::JetmodelData (int index)
 
- Protected Member Functions inherited from FWSimpleProxyBuilder
virtual void build (const FWEventItem *iItem, TEveElementList *product, const FWViewContext *)
 
virtual void buildViewType (const FWEventItem *iItem, TEveElementList *product, FWViewType::EType viewType, const FWViewContext *)
 
virtual void clean ()
 
- Protected Member Functions inherited from FWProxyBuilderBase
TEveCompound * createCompound (bool set_color=true, bool propagate_color_to_all_children=false) const
 
 FWProxyBuilderBase (const FWProxyBuilderBase &)
 
void increaseComponentTransparency (unsigned int index, TEveElement *holder, const std::string &name, Char_t transpOffset)
 
virtual void modelChanges (const FWModelIds &, Product *)
 
const FWProxyBuilderBaseoperator= (const FWProxyBuilderBase &)
 

Private Member Functions

 FWJetProxyBuilder (const FWJetProxyBuilder &)
 
const FWJetProxyBuilderoperator= (const FWJetProxyBuilder &)
 
TEveElementList * requestCommon ()
 

Private Attributes

TEveElementList * m_common
 
std::vector
< fireworks::scaleMarker
m_lines
 

Additional Inherited Members

- Static Public Member Functions inherited from FWSimpleProxyBuilder
static std::string typeOfBuilder ()
 Used by the plugin system to determine how the proxy uses the data from FWEventItem. More...
 
- Static Public Member Functions inherited from FWProxyBuilderBase
static bool representsSubPart ()
 
static std::string typeOfBuilder ()
 Used by the plugin system to determine how the proxy uses the data from FWEventItem. More...
 
- Protected Types inherited from FWProxyBuilderBase
typedef std::vector< Product * >
::iterator 
Product_it
 
- Protected Attributes inherited from FWSimpleProxyBuilder
FWSimpleProxyHelper m_helper
 
- Protected Attributes inherited from FWProxyBuilderBase
std::vector< Product * > m_products
 

Detailed Description

Definition at line 28 of file FWJetProxyBuilder.cc.

Constructor & Destructor Documentation

FWJetProxyBuilder::FWJetProxyBuilder ( )

Definition at line 60 of file FWJetProxyBuilder.cc.

References m_common.

60  :
61  m_common(0)
62 {
63  m_common = new TEveElementList( "common electron scene" );
64  m_common->IncDenyDestroy();
65 }
TEveElementList * m_common
FWJetProxyBuilder::~FWJetProxyBuilder ( )
virtual

Definition at line 67 of file FWJetProxyBuilder.cc.

References m_common.

68 {
69  m_common->DecDenyDestroy();
70 }
TEveElementList * m_common
FWJetProxyBuilder::FWJetProxyBuilder ( const FWJetProxyBuilder )
private

Member Function Documentation

void FWJetProxyBuilder::buildViewType ( const reco::Jet iData,
unsigned int  iIndex,
TEveElement &  oItemHolder,
FWViewType::EType  type,
const FWViewContext vc 
)
protectedvirtual

Reimplemented from FWSimpleProxyBuilderTemplate< reco::Jet >.

Definition at line 91 of file FWJetProxyBuilder.cc.

References fireworks::Context::caloR1(), fireworks::Context::caloZ1(), fireworks::Context::caloZ2(), FWDisplayProperties::color(), FWProxyBuilderBase::context(), funct::cos(), FWEventItem::defaultDisplayProperties(), reco::LeafCandidate::energy(), reco::LeafCandidate::et(), FWViewContext::getEnergyScale(), FWViewEnergyScale::getPlotEt(), FWViewEnergyScale::getScaleFactor3D(), FWViewType::isProjected(), FWProxyBuilderBase::item(), FWViewType::kRhoZ, m_lines, M_PI, siStripFEDMonitor_P5_cff::Min, phi, reco::LeafCandidate::phi(), csvReporter::r, requestCommon(), FWProxyBuilderBase::setupAddElement(), funct::sin(), findQualityFiles::size, funct::tan(), reco::LeafCandidate::theta(), theta(), FWDisplayProperties::transparency(), and fireworks::Context::voteMaxEtAndEnergy().

92 {
93  // add cone from shared pool
94  TEveElementList* cones = requestCommon();
95  TEveElement::List_i coneIt = cones->BeginChildren();
96  std::advance(coneIt, iIndex);
97 
99  setupAddElement( *coneIt, &oItemHolder );
100  (*coneIt)->SetMainTransparency(TMath::Min(100, 80 + dp.transparency() / 5));
101 
102  // scale markers in projected views
104  {
105  TEveScalableStraightLineSet* marker =new TEveScalableStraightLineSet("jet lineset");
106  float size = 1.f; // values are saved in scale
107  double theta = iData.theta();
108  double phi = iData.phi();
109 
110  if ( type == FWViewType::kRhoZ )
111  {
112  static const float_t offr = 4;
113  float r_ecal = context().caloR1() + offr;
114  float z_ecal = context().caloZ1() + offr/tan(context().caloTransAngle());
115 
116  double r(0);
117  if ( theta < context().caloTransAngle() || M_PI-theta < context().caloTransAngle())
118  {
119  z_ecal = context().caloZ2() + offr/tan(context().caloTransAngle());
120  r = z_ecal/fabs(cos(theta));
121  }
122  else
123  {
124  r = r_ecal/sin(theta);
125  }
126 
127  marker->SetScaleCenter( 0., (phi>0 ? r*fabs(sin(theta)) : -r*fabs(sin(theta))), r*cos(theta) );
128  marker->AddLine( 0., (phi>0 ? r*fabs(sin(theta)) : -r*fabs(sin(theta))), r*cos(theta),
129  0., (phi>0 ? (r+size)*fabs(sin(theta)) : -(r+size)*fabs(sin(theta))), (r+size)*cos(theta) );
130  }
131  else
132  {
133  float ecalR = context().caloR1() + 4;
134  marker->SetScaleCenter(ecalR*cos(phi), ecalR*sin(phi), 0);
135  marker->AddLine(ecalR*cos(phi), ecalR*sin(phi), 0, (ecalR+size)*cos(phi), (ecalR+size)*sin(phi), 0);
136  }
137 
138  marker->SetLineWidth(4);
139 
140  marker->SetLineColor(dp.color());
141 
142  FWViewEnergyScale* caloScale = vc->getEnergyScale();
143  marker->SetScale(caloScale->getScaleFactor3D()*(caloScale->getPlotEt() ? iData.et() : iData.energy()));
144  setupAddElement( marker, &oItemHolder );
145  m_lines.push_back(fireworks::scaleMarker(marker, iData.et(), iData.energy(), vc));
146 
147  context().voteMaxEtAndEnergy(iData.et(), iData.energy());
148  }
149 }
type
Definition: HCALResponse.h:22
const fireworks::Context & context() const
float getScaleFactor3D() const
const FWDisplayProperties & defaultDisplayProperties() const
Definition: FWEventItem.cc:451
virtual double et() const
transverse energy
std::vector< fireworks::scaleMarker > m_lines
void voteMaxEtAndEnergy(float Et, float energy) const
Definition: Context.cc:185
void setupAddElement(TEveElement *el, TEveElement *parent, bool set_color=true) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
FWViewEnergyScale * getEnergyScale() const
Geom::Theta< T > theta() const
static float caloZ2(bool offset=true)
Definition: Context.cc:225
const FWEventItem * item() const
Color_t color() const
static bool isProjected(int)
Definition: FWViewType.cc:128
virtual double energy() const
energy
Char_t transparency() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
static float caloR1(bool offset=true)
Definition: Context.cc:210
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
virtual double theta() const
momentum polar angle
#define M_PI
Definition: BFit3D.cc:3
static float caloZ1(bool offset=true)
Definition: Context.cc:220
TEveElementList * requestCommon()
virtual double phi() const
momentum azimuthal angle
tuple size
Write out results.
bool getPlotEt() const
Definition: DDAxes.h:10
void FWJetProxyBuilder::cleanLocal ( )
virtual

Reimplemented from FWProxyBuilderBase.

Definition at line 159 of file FWJetProxyBuilder.cc.

References m_common, and m_lines.

160 {
161  m_lines.clear();
162  m_common->DestroyElements();
163 }
std::vector< fireworks::scaleMarker > m_lines
TEveElementList * m_common
virtual bool FWJetProxyBuilder::havePerViewProduct ( FWViewType::EType  ) const
inlinevirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 34 of file FWJetProxyBuilder.cc.

34 { return true; }
virtual bool FWJetProxyBuilder::haveSingleProduct ( void  ) const
inlinevirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 35 of file FWJetProxyBuilder.cc.

35 { return false; } // different view types
void FWJetProxyBuilder::localModelChanges ( const FWModelId iId,
TEveElement *  iCompound,
FWViewType::EType  viewType,
const FWViewContext vc 
)
protectedvirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 152 of file FWJetProxyBuilder.cc.

References FWProxyBuilderBase::increaseComponentTransparency(), and FWModelId::index().

154 {
155  increaseComponentTransparency(iId.index(), iCompound, "TEveJetCone", 80);
156 }
int index() const
Definition: FWModelId.h:50
void increaseComponentTransparency(unsigned int index, TEveElement *holder, const std::string &name, Char_t transpOffset)
const FWJetProxyBuilder& FWJetProxyBuilder::operator= ( const FWJetProxyBuilder )
private
FWJetProxyBuilder::REGISTER_PROXYBUILDER_METHODS ( )
TEveElementList * FWJetProxyBuilder::requestCommon ( )
private

Definition at line 73 of file FWJetProxyBuilder.cc.

References FWProxyBuilderBase::context(), funct::false, i, FWProxyBuilderBase::item(), m_common, fireworks::makeEveJetCone(), FWSimpleProxyBuilderTemplate< reco::Jet >::modelData(), and FWEventItem::size().

Referenced by buildViewType().

74 {
75  if( m_common->HasChildren() == false )
76  {
77  for (int i = 0; i < static_cast<int>(item()->size()); ++i)
78  {
79  TEveJetCone* cone = fireworks::makeEveJetCone(modelData(i), context());
80 
81  m_common->AddElement(cone);
82  cone->SetFillColor(item()->defaultDisplayProperties().color());
83  cone->SetLineColor(item()->defaultDisplayProperties().color());
84 
85  }
86  }
87  return m_common;
88 }
const fireworks::Context & context() const
int i
Definition: DBlmapReader.cc:9
const FWEventItem * item() const
TEveElementList * m_common
size_t size() const
Definition: FWEventItem.cc:548
TEveJetCone * makeEveJetCone(const reco::Jet &iData, const fireworks::Context &context)
void FWJetProxyBuilder::scaleProduct ( TEveElementList *  parent,
FWViewType::EType  type,
const FWViewContext vc 
)
protectedvirtual

Reimplemented from FWProxyBuilderBase.

Definition at line 166 of file FWJetProxyBuilder.cc.

References FWViewContext::getEnergyScale(), FWViewEnergyScale::getPlotEt(), FWViewEnergyScale::getScaleFactor3D(), i, m_lines, and relativeConstraints::value.

167 {
168  typedef std::vector<fireworks::scaleMarker> Lines_t;
169  for (Lines_t::iterator i = m_lines.begin(); i!= m_lines.end(); ++ i)
170  {
171  if (vc == (*i).m_vc)
172  {
173  float value = vc->getEnergyScale()->getPlotEt() ? (*i).m_et : (*i).m_energy;
174  (*i).m_ls->SetScale(vc->getEnergyScale()->getScaleFactor3D() *value);
175  TEveProjected* proj = *(*i).m_ls->BeginProjecteds();
176  proj->UpdateProjection();
177  }
178  }
179 }
float getScaleFactor3D() const
int i
Definition: DBlmapReader.cc:9
std::vector< fireworks::scaleMarker > m_lines
FWViewEnergyScale * getEnergyScale() const
bool getPlotEt() const

Member Data Documentation

TEveElementList* FWJetProxyBuilder::m_common
private
std::vector<fireworks::scaleMarker> FWJetProxyBuilder::m_lines
private

Definition at line 56 of file FWJetProxyBuilder.cc.

Referenced by buildViewType(), cleanLocal(), and scaleProduct().