Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
calorimeters.C
Go to the documentation of this file.
1/// \file
2/// \ingroup tutorial_eve_7
3///
4/// \macro_code
5///
7#include <ROOT/REveScene.hxx>
8#include <ROOT/REveViewer.hxx>
10#include <ROOT/REveCaloData.hxx>
11#include <ROOT/REveCalo.hxx>
12#include <ROOT/REveJetCone.hxx>
13#include <ROOT/REveGeoShape.hxx>
14
15#include "TFile.h"
16#include "TGeoTube.h"
17
18const char *histFile = "http://root.cern/files/cms_calo_hist.root";
19
20const Double_t kR_min = 128;
21const Double_t kR_max = 129;
22const Double_t kZ_d = 268.39;
23
24using namespace ROOT::Experimental;
25
27{
29
30 auto geomScene = eveMng->SpawnNewScene(Form("%s Geometry", pname), pname);
31 auto eventScene = eveMng->SpawnNewScene(Form("%s Event Data", pname), pname);
32
33 auto mng = new REveProjectionManager();
34 mng->SetProjection(t);
35
36 // project Calo3D
37 REveCalo2D *calo2d = (REveCalo2D *)mng->ImportElements(calo3d, eventScene);
38
39 // project reference geometry
41
42 auto view = eveMng->SpawnNewViewer("RPhi View", "");
43 view->SetCameraType(REveViewer::kCameraOrthoXOY);
44 view->AddScene(geomScene);
45 view->AddScene(eventScene);
46}
47
48void add_jet(REveElement *parent, const char *name, Float_t eta, Float_t phi, Float_t deta, Float_t dphi)
49{
50 auto jet = new REveJetCone(name, name);
51 jet->SetMainTransparency(60);
52 jet->SetLineColor(kRed);
53 jet->SetCylinder(kR_min - 10, kZ_d - 10);
54 jet->AddEllipticCone(eta, phi, deta, dphi);
55 jet->SetPickable(kTRUE);
56 jet->SetHighlightFrame(kFALSE);
57 parent->AddElement(jet);
58}
59
61{
62 auto eveMng = REveManager::Create();
63
65 auto hf = TFile::Open(histFile, "CACHEREAD");
66 auto ecalHist = (TH2F *)hf->Get("ecalLego");
67 auto hcalHist = (TH2F *)hf->Get("hcalLego");
68 auto data = new REveCaloDataHist();
69 data->AddHistogram(ecalHist);
70 data->RefSliceInfo(0).Setup("ECAL", 0.f, kBlue);
71 data->AddHistogram(hcalHist);
72 data->RefSliceInfo(1).Setup("HCAL", 0.1, kRed);
74
75 auto b1 = new REveGeoShape("Barrel 1");
76 b1->SetShape(new TGeoTube(kR_min, kR_max, kZ_d));
77 b1->SetMainColor(kCyan);
78 b1->SetMainTransparency(90);
79 b1->SetNSegments(80);
81
82 auto calo3d = new REveCalo3D(data);
83 calo3d->SetBarrelRadius(kR_max + 1);
84 calo3d->SetEndCapPos(kZ_d + 1);
85 calo3d->SetMaxTowerH(300);
87
88 add_jet(calo3d, "JetCone Lojz", 1.4, 1.0, 0.4, 0.2);
89 add_jet(calo3d, "JetCone Mici", -2.0, -2.1, 0.2, 0.4);
90
91 makeCalo2D(calo3d, "RPhi", REveProjection::kPT_RPhi);
92 makeCalo2D(calo3d, "RhoZ", REveProjection::kPT_RhoZ);
93
94 eveMng->Show();
95}
float Float_t
Definition RtypesCore.h:57
constexpr Bool_t kFALSE
Definition RtypesCore.h:94
constexpr Bool_t kTRUE
Definition RtypesCore.h:93
@ kRed
Definition Rtypes.h:66
@ kCyan
Definition Rtypes.h:66
@ kBlue
Definition Rtypes.h:66
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
char name[80]
Definition TGX11.cxx:110
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2489
virtual void AddElement(REveElement *el)
Add el to the list of children.
REveElement * FirstChild() const
Returns the first child element or 0 if the list is empty.
REveScene * GetEventScene() const
REveScene * GetGlobalScene() const
REveScene * SpawnNewScene(const char *name, const char *title="")
Create a new scene.
REveViewer * SpawnNewViewer(const char *name, const char *title="")
Create a new GL viewer.
void Show(const RWebDisplayArgs &args="")
Show eve manager in specified browser.
REveProjectionManager Manager class for steering of projections and managing projected objects.
void SetCameraType(ECameraType t)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
Definition TFile.cxx:4131
static Bool_t SetCacheFileDir(std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
Sets the directory where to locally stage/cache remote files.
Definition TFile.cxx:4674
Cylindrical tube class.
Definition TGeoTube.h:17
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:307
ROOT::Experimental::REveManager * eveMng
const char * histFile
void add_jet(REveElement *parent, const char *name, Float_t eta, Float_t phi, Float_t deta, Float_t dphi)
const Double_t kR_max
void makeCalo2D(REveCalo3D *calo3d, const char *pname, REveProjection::EPType_e t)
const Double_t kZ_d
void calorimeters()
const Double_t kR_min
R__EXTERN REveManager * gEve