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 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:337
@ kGreen
Definition Rtypes.h:66
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Definition TString.cxx:2467
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.
TGeoNode * GetNode(Int_t level) const
Returns current node at a given level.
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:139
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Definition TString.h:636
virtual void ProcessNode()
Int_t fReplica
virtual ~iterplugin()
void Select(Int_t replica, Int_t color)