44MultiView* gMultiView =
nullptr;
55 TDirectory *fDirectory;
57 TObjArray *fEvDirKeys;
67 TEveTrackList *fTrackList;
68 TEvePointSet *fITSClusters;
69 TEvePointSet *fTPCClusters;
70 TEvePointSet *fTRDClusters;
71 TEvePointSet *fTOFClusters;
74 TVSDReader(
const char* file_name) :
75 fFile(nullptr), fDirectory(nullptr), fEvDirKeys(nullptr),
78 fMaxEv(-1), fCurEv(-1),
81 fITSClusters(nullptr), fTPCClusters(nullptr), fTRDClusters(nullptr), fTOFClusters(nullptr)
86 Error(
"VSD_Reader",
"Can not open file '%s' ... terminating.",
91 fEvDirKeys =
new TObjArray;
92 TPMERegexp name_re(
"Event\\d+");
104 Error(
"VSD_Reader",
"No events to show ... terminating.");
111 virtual ~TVSDReader()
145 fDirectory =
nullptr;
154 GotoEvent(fCurEv + 1);
159 GotoEvent(fCurEv - 1);
164 if (ev < 0 || ev >= fMaxEv)
166 Warning(
"GotoEvent",
"Invalid event id %d.", ev);
175 fDirectory = (TDirectory*) ((TKey*) fEvDirKeys->
At(fCurEv))->ReadObj();
182 LoadClusters(fITSClusters,
"ITS", 0);
183 LoadClusters(fTPCClusters,
"TPC", 1);
184 LoadClusters(fTRDClusters,
"TRD", 2);
185 LoadClusters(fTOFClusters,
"TOF", 3);
193 gMultiView->DestroyEventRPhi();
194 gMultiView->ImportEventRPhi(top);
196 gMultiView->DestroyEventRhoZ();
197 gMultiView->ImportEventRhoZ(top);
209 void LoadClusters(TEvePointSet*& ps,
const TString& det_name,
Int_t det_id)
212 ps =
new TEvePointSet(det_name);
221 TEvePointSelector ss(fVSD->
fTreeC, ps,
"fV.fX:fV.fY:fV.fZ",
236 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
237 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
238 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
239 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
259 if (fTrackList ==
nullptr) {
260 fTrackList =
new TEveTrackList(
"ESD Tracks");
278 for (
Int_t n = 0;
n < nTracks; ++
n) {
281 TEveTrack* track =
new TEveTrack(&fVSD->
fR, trkProp);
296TVSDReader* gVSDReader =
nullptr;
303void alice_vsd(
const char* vsd_file_name=
304 "http://mtadel.home.cern.ch/mtadel/root/AliVSD.root")
319 gVSDReader =
new TVSDReader(vsd_file_name);
327 TFile::Open(
"http://mtadel.home.cern.ch/mtadel/root/alice_mini_geom.root",
335 gEve->AddGlobalElement(gentle_geom);
342 gMultiView =
new MultiView;
345 gMultiView->SetDepth(-10);
346 gMultiView->ImportGeomRPhi(gentle_geom);
347 gMultiView->ImportGeomRhoZ(gentle_geom);
348 gMultiView->SetDepth(0);
354 gEve->GetViewers()->SwitchColorSet();
357 gEve->GetBrowser()->GetTabRight()->SetTab(1);
363 gVSDReader->GotoEvent(0);
374 auto browser =
gEve->GetBrowser();
378 frmMain->SetWindowName(
"XX GUI");
388 b->Connect(
"Clicked()",
"TVSDReader", gVSDReader,
"PrevEvent()");
392 b->Connect(
"Clicked()",
"TVSDReader", gVSDReader,
"NextEvent()");
394 frmMain->AddFrame(hf);
396 frmMain->MapSubwindows();
398 frmMain->MapWindow();
400 browser->StopEmbedding();
401 browser->SetTabTitle(
"Event Control", 0);
Multi-view (3d, rphi, rhoz) service class using EVE Window Manager.
#define ClassDef(name, id)
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
R__EXTERN TEveManager * gEve
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
R__EXTERN TSystem * gSystem
TList * GetListOfKeys() const override
virtual void AddElement(TEveElement *el)
Add el to the list of children.
virtual void SetMainColor(Color_t color)
Set main color of the element.
void IncDenyDestroy()
Increases the deny-destroy count of the element.
virtual void DestroyElements()
Destroy all children of this element.
Base class for event management and navigation.
Wrapper for TGeoShape with absolute positioning and color attributes allowing display of extracted TG...
static TEveGeoShape * ImportShapeExtract(TEveGeoShapeExtract *gse, TEveElement *parent=nullptr)
Import a shape extract 'gse' under element 'parent'.
void AddElement(TEveElement *element, TEveElement *parent=nullptr)
Add an element.
TEveViewerList * GetViewers() const
static TEveManager * Create(Bool_t map_window=kTRUE, Option_t *opt="FIV")
If global TEveManager* gEve is not set initialize it.
void Redraw3D(Bool_t resetCameras=kFALSE, Bool_t dropLogicals=kFALSE)
TEveEventManager * GetCurrentEvent() const
virtual void SetTitle(const char *t)
void Reset(Int_t n_points=0, Int_t n_int_ids=0)
Drop all data and set-up the data structures to recive new data.
void SetMarkerStyle(Style_t mstyle=1) override
Set marker style, propagate to projecteds.
void SetMarkerSize(Size_t msize=1) override
Set marker size, propagate to projecteds.
void SetMarkerStyle(Style_t s) override
Set marker style for the list and the elements.
void SetMarkerColor(Color_t c) override
Set marker color for the list and the elements.
void SetMainColor(Color_t c) override
Set main (line) color for the list and the elements.
void SetMarkerSize(Size_t s) override
Set marker size for the list and the elements.
void MakeTracks(Bool_t recurse=kTRUE)
Regenerate the visual representations of tracks.
TEveTrackPropagator * GetPropagator()
void SetMagField(Double_t bX, Double_t bY, Double_t bZ)
Set constant magnetic field and rebuild tracks.
void SetAttLineAttMarker(TEveTrackList *tl)
Set line and marker attributes from TEveTrackList.
virtual void SetStdTitle()
Set standard track title based on most data-member values.
static void DisableTObjectStreamersForVSDStruct()
Disable TObject streamers for those VSD structs that inherit from TObject directly.
virtual void SetBranchAddresses()
Set branche addresses of internal trees.
virtual void DeleteTrees()
Delete internal trees.
virtual void SetDirectory(TDirectory *dir)
Set directory in which the trees are (or will be) created.
virtual void LoadTrees()
Load internal trees from directory.
void DeleteAnnotations()
Delete annotations from all viewers.
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.
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.
void Close(Option_t *option="") override
Close a file.
A composite frame that layout their children in horizontal way.
Defines top level windows that interact with the system Window Manager.
virtual TObjLink * FirstLink() const
Int_t GetEntriesFast() const
TObject * At(Int_t idx) const override
void Add(TObject *obj) override
TObject * GetObject() const
virtual const char * GetName() const
Returns name of object.
virtual Int_t Size() const
virtual void SetName(const char *name)
Change (i.e.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
virtual void Exit(int code, Bool_t mode=kTRUE)
Exit the application.
virtual Int_t GetEntry(Long64_t entry, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
virtual Long64_t GetEntries() const