15 #include <boost/bind.hpp> 18 #include "TGLViewer.h" 19 #include "TGLScenePad.h" 20 #include "TEveManager.h" 21 #include "TEveElement.h" 22 #include "TEveScene.h" 23 #include "TEveProjections.h" 24 #include "TEveProjectionAxes.h" 26 #include "TEveProjectionManager.h" 54 m_showPixelBarrel(this,
"Show Pixel Barrel",
false ),
55 m_showPixelEndcap(this,
"Show Pixel Endcap",
false),
56 m_showTrackerBarrel(this,
"Show Tracker Barrel",
false ),
57 m_showTrackerEndcap(this,
"Show Tracker Endcap",
false),
58 m_showRpcEndcap(this,
"Show RPC Endcap",
false ),
59 m_showGEM(this,
"Show GEM",
false ),
60 m_showME0(this,
"Show ME0",
false ),
62 m_shiftOrigin(this,
"Shift origin to beam-spot",
false),
63 m_fishEyeDistortion(this,
"Distortion",0., 0., 100.),
66 m_caloDistortion(this,
"Calo compression",1.0,0.01,10.),
67 m_muonDistortion(this,
"Muon compression",0.2,0.01,10.),
68 m_showProjectionAxes(this,
"Show projection axis",
false),
69 m_projectionAxesLabelSize(this,
"Projection axis label size", 0.015, 0.001, 0.2),
70 m_compressMuon(this,
"Compress detectors",
false),
74 TEveProjection::EPType_e projType = (
id ==
FWViewType::kRhoZ) ? TEveProjection::kPT_RhoZ : TEveProjection::kPT_RPhi;
76 m_projMgr =
new TEveProjectionManager(projType);
83 #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE 89 m_projMgr->GetProjection()->AddPreScaleEntry(0, 300, 0.2);
92 m_projMgr->GetProjection()->AddPreScaleEntry(1, 310, 1.0);
93 m_projMgr->GetProjection()->AddPreScaleEntry(0, 370, 0.2);
94 m_projMgr->GetProjection()->AddPreScaleEntry(1, 580, 0.2);
99 viewerGL()->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
100 if ( TGLOrthoCamera* camera = dynamic_cast<TGLOrthoCamera*>( &(
viewerGL()->CurrentCamera()) ) ) {
101 camera->SetZoomMax(1e6);
103 geoScene()->GetGLScene()->SetSelectable(kFALSE);
143 return static_cast<TEveCaloViz*
>(
m_calo);
159 TEveCalo3D* calo3d =
new TEveCalo3D(data);
164 m_calo->SetBarrelRadius(177);
169 m_calo->SetAutoRange(
false);
170 m_calo->SetScaleAbs(
true);
187 float c[3] = {0,0,0};
191 TEveVector center(c[0], c[1], c[2] );
192 m_projMgr->GetProjection()->SetCenter(center);
195 TGLCamera& cam =
viewerGL()->CurrentCamera();
196 cam.SetExternalCenter(
true);
199 double r = center.Mag();
200 cam.SetCenterVec(center.fZ,
TMath::Sign(r, center.fY), 0);
204 cam.SetCenterVec(c[0], c[1], c[2] );
230 #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE 232 TEveProjection*
p =
m_projMgr->GetProjection();
245 #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE 247 m_projMgr->GetProjection()->SetCenter(center);
251 float* pc =
m_projMgr->GetProjection()->GetProjectedCenter();
252 viewerGL()->CurrentCamera().SetExternalCenter(
true);
253 viewerGL()->CurrentCamera().SetCenterVec(pc[0], pc[1], pc[2]);
254 viewerGL()->SetDrawCameraCenter(
true);
265 #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE 267 TEveVector center(b.
x0(), b.
y0(), b.
z0());
268 m_projMgr->GetProjection()->SetCenter(center);
279 TEveProjection*
p =
m_projMgr->GetProjection();
309 m_projMgr->GetProjection()->SetUsePreScale(flag);
318 float oldLayer =
m_projMgr->GetCurrentDepth();
321 std::shared_ptr<TEveProjectionManager> sentry(
m_projMgr,
322 boost::bind(&TEveProjectionManager::SetCurrentDepth,
324 m_projMgr->ImportElements(iChildren,iProjectedParent);
332 TGLOrthoCamera* camera =
dynamic_cast<TGLOrthoCamera*
>( &(
viewerGL()->CurrentCamera()) );
341 TGLOrthoCamera* camera =
dynamic_cast<TGLOrthoCamera*
>( &(
viewerGL()->CurrentCamera()) );
361 m_calo->SetEta(-eta_range,eta_range);
370 if (!
m_calo->GetData()->Empty())
372 m_calo->AssertCellIdCache();
374 TEveCaloData::CellData_t cellData;
375 typedef std::vector<TEveCaloData::vCellId_t*> vBinCells_t;
376 typedef std::vector<TEveCaloData::vCellId_t*>::iterator vBinCells_i;
378 vBinCells_t cellLists =
m_calo->GetBinLists();
379 for (vBinCells_i it = cellLists.begin(); it != cellLists.end(); it++)
381 TEveCaloData::vCellId_t* binCells = *it;
384 TEveCaloData::vCellId_i
a = binCells->end();
386 for (TEveCaloData::vCellId_i
k = binCells->begin();
k !=
a; ++
k)
388 m_calo->GetData()->GetCellData((*
k), cellData);
389 sumEt += cellData.Value(
true);
390 sumE += cellData.Value(
false);
431 #ifdef TEVEPROJECTIONS_DISPLACE_ORIGIN_MODE 442 f->AddFrame(
new TGLabel(f,
"FishEye:"));
447 f->AddFrame(
new TGLabel(f,
"PreScales:"));
static float caloTransEta()
void doShiftOriginToBeamSpot()
void addToOrthoCamera(TGLOrthoCamera *, FWConfiguration &) const
void doFishEyeDistortion()
FWBoolParameter m_shiftOrigin
void setupEventCenter() override
FWBoolParameter m_showProjectionAxes
FWRPZView(TEveWindowSlot *iParent, FWViewType::EType)
FWBoolParameter m_showME0
FWDoubleParameter m_projectionAxesLabelSize
const FWGeometry * getGeom() const
void voteMaxEtAndEnergy(float Et, float energy) const
ViewerParameterGUI & requestTab(const char *)
void getEventCenter(float *inC) const
void voteCaloMaxVal() override
unsigned int version() const
void setFrom(const FWConfiguration &) override
virtual void setupEventCenter()
void setContext(const fireworks::Context &) override
virtual void setupEnergyScale()
TEveProjectionAxes * m_axes
TGLViewer * viewerGL() const
sigc::signal< void, T > changed_
FWParameters::Bool FWBoolParameter
const fireworks::Context * m_context
const VersionInfo & versionInfo() const
FWBoolParameter * m_showHF
TEveProjectionManager * m_projMgr
FWDoubleParameter m_fishEyeR
FWBoolParameter m_showRpcEndcap
void initStdGeoElements(const FWViewType::EType id)
bool haveExtraDet(const char *) const
FWBeamSpot * getBeamSpot() const
FWBoolParameter m_showTrackerBarrel
void showProjectionAxes()
static float caloR1(bool offset=true)
TEveCaloDataHist * getCaloData() const
void showPixelEndcap(bool)
void eventBegin() override
FWBoolParameter m_compressMuon
FWRPZViewGeometry * m_geometryList
void shiftOrigin(TEveVector ¢er)
const std::string & value(unsigned int iIndex=0) const
const fireworks::Context & context()
void showPixelBarrel(bool)
void setFrom(const FWConfiguration &) override
TEveCaloViz * getEveCalo() const override
void doPreScaleDistortion()
FWBoolParameter * m_showEndcaps
FWBoolParameter m_showGEM
static const float s_distortFInv
void showTrackerBarrel(bool)
FWDoubleParameter m_fishEyeDistortion
void importElements(TEveElement *iProjectableChild, float layer, TEveElement *iProjectedParent=nullptr)
ViewerParameterGUI & addParam(const FWParameterBase *)
CmsShowCommon * commonPrefs() const
FWBoolParameter m_showTrackerEndcap
TGCompositeFrame * getTabContainer()
void addTo(FWConfiguration &) const override
char data[epos_bytes_allocation]
static double caloMaxEta()
FWDoubleParameter m_muonDistortion
void addTo(FWConfiguration &) const override
FWBoolParameter m_showPixelEndcap
FWDoubleParameter m_caloDistortion
void showTrackerEndcap(bool)
const FWConfiguration * valueForKey(const std::string &iKey) const
FWBoolParameter m_showPixelBarrel
void setFromOrthoCamera(TGLOrthoCamera *, const FWConfiguration &)
void populateController(ViewerParameterGUI &) const override
static const float s_distortF
void projectionAxesLabelSize()
virtual void setContext(const fireworks::Context &x)
void populateController(ViewerParameterGUI &) const override
FWViewType::EType typeId() const