Logo ROOT  
Reference Guide
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 virtual ~iterplugin() {}
14 // Process current node
15 virtual void ProcessNode();
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 ClassDef(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
#define ClassDef(name, id)
Definition: Rtypes.h:335
@ kGreen
Definition: Rtypes.h:66
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition: TString.cxx:2468
const TGeoIterator * fIterator
Definition: TGeoNode.h:223
Int_t GetLevel() const
Definition: TGeoNode.h:276
void GetPath(TString &path) const
Returns the path for the current node.
Definition: TGeoNode.cxx:1110
TGeoNode * GetNode(Int_t level) const
Returns current node at a given level.
Definition: TGeoNode.cxx:1099
TGeoVolume * GetVolume() const
Definition: TGeoNode.h:97
TGeoVolume, TGeoVolumeMulti, TGeoVolumeAssembly are the volume classes.
Definition: TGeoVolume.h:49
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Basic string class.
Definition: TString.h:136
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Definition: TString.h:625
virtual void ProcessNode()
Definition: iterplugin.cxx:24
Int_t fColor
Definition: iterplugin.cxx:18
Int_t fReplica
Definition: iterplugin.cxx:19
virtual ~iterplugin()
Definition: iterplugin.cxx:13
void Select(Int_t replica, Int_t color)
Definition: iterplugin.cxx:16