Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
iterplugin.cxx
Go to the documentation of this file.
1#include "TROOT.h"
2#include "TGeoNode.h"
3#include "TGeoVolume.h"
4#include "TGeoManager.h"
6
7////////////////////////////////////////////////////////////////////////////////
8
10{
11public:
13 ~iterplugin() override {}
14 // Process current node
15 void ProcessNode() override;
16 void Select(Int_t replica, Int_t color) {fReplica=replica; fColor=color;}
17
18 Int_t fColor; // Current color
19 Int_t fReplica; // replica number (1 to 4)
20
21 ClassDefOverride(iterplugin, 0) // A simple user iterator plugin that changes volume color
22};
23
25{
26 if (!fIterator) return;
27 TString path;
28 fIterator->GetPath(path);
29 if (!path.Contains(Form("REPLICA_%d",fReplica))) return;
30 Int_t level = fIterator->GetLevel();
31 TGeoVolume *vol = fIterator->GetNode(level)->GetVolume();
32 vol->SetLineColor(fColor);
33}
34
@ kGreen
Definition Rtypes.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2489
const TGeoIterator * fIterator
Definition TGeoNode.h:226
Int_t GetLevel() const
Definition TGeoNode.h:294
void GetPath(TString &path) const
Returns the path for the current node.
TGeoNode * GetNode(Int_t level) const
Returns current node at a given level.
TGeoVolume * GetVolume() const
Definition TGeoNode.h:99
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition TGeoVolume.h:43
void SetLineColor(Color_t lcolor) override
Set the line color.
Basic string class.
Definition TString.h:139
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Definition TString.h:632
~iterplugin() override
void ProcessNode() override
Int_t fReplica
void Select(Int_t replica, Int_t color)