GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GLSPlayer.h
Go to the documentation of this file.
1 #ifndef Gw_GLSPlayer
2 #define Gw_GLSPlayer
3 
4 #ifndef Gw_CorrelatedSpace
5 #include "CorrelatedSpace.h"
6 #endif
7 
8 #ifndef ROOT_TString
9 #include "TString.h"
10 #endif
11 
12 #ifndef Gw_BaseLSPlayer
13 #include "BaseLSPlayer.h"
14 #endif
15 
16 #ifndef Gw_NuclearLevel
17 #include "NuclearLevel.h"
18 #endif
19 
20 #ifndef Gw_GammaLink
21 #include "GammaLink.h"
22 #endif
23 
24 #ifndef Gw_Measure
25 #include "Measure.h"
26 #endif
27 
28 namespace Gw {
29 
30  class LevelScheme;
31  class CSManager;
53  class GLSPlayer : public BaseLSPlayer {
54 
55  public:
56  GLSPlayer(LevelScheme* levelScheme);
57  virtual ~ GLSPlayer();
58 
60  virtual void Draw(Option_t *opt = "");
61 
63  virtual void RegisterCS(const Char_t* fileName, const Char_t* name = CorrelatedSpace::GetDefaultName() ); //*MENU={Hierarchy="CS/Register"}* *ARGS={name=>fCSDefaultName}*
64 
66  virtual void ShowGate(Option_t* opt = "gate"); //*MENU={Hierarchy="CS/ShowGate"}*
67 
69  virtual Int_t CollectGate(Option_t* opt = "reset"); //*MENU={Hierarchy="CS/CollectGate"}*
70 
72  virtual void DrawProj(Option_t* opt = ""); //*MENU={Hierarchy="CS/DrawProj"}*
73 
75  virtual void DrawProjTot(Option_t* opt = ""); //*MENU={Hierarchy="CS/DrawProjTot"}*
76 
78  virtual void Project(Option_t* axis = "x"); //*MENU={Hierarchy="CS/Project"}*
79 
81  virtual void DoProject(Option_t* axis = "x", Option_t* gateName = "Gate",
82  Option_t* optFilter = "reset", Option_t* optDraw = ""); //*MENU={Hierarchy="CS/DoProject"}*
83 
84 
86  virtual void Select(); //*MENU={Hierarchy="LS/Select"}*
87 
89  virtual void DeSelect(); //*MENU={Hierarchy="LS/DeSelect"}*
90 
92  virtual void AddLink(Float_t strength = 100, Float_t errStrength = 1,
93  Float_t energy = 300, Float_t errEnergy = 1,
94  const Char_t* mult = "E2" ); // *MENU={Hierarchy="LS/AddLink"}*
95 
97  virtual TString SetPathtoSaveLS(const char * newpath )
98  {
99  TString current = fPathtoSaveLS;
100  fPathtoSaveLS = newpath;
101 
102  return current;
103  }
105  virtual const char *GetPathtoSaveLS() const
106  {
107  return fPathtoSaveLS.Data();
108  }
110 
115  virtual void WriteLS(const char* nameLS, const char *path, Int_t write = TObject::kOverwrite); //*MENU={Hierarchy="LS/Write"}* *ARGS={nameLS=>fLSName,path=>fPathtoSaveLS}*
116 
118  virtual void AddFirstLevel(Float_t energy = 300, Float_t errEnergy = 1, const Char_t* jp = "0+", Option_t* opt = "left"); // *MENU={Hierarchy="LS/AddFirstLevel"}*
119 
121  virtual void AddLevel(Float_t energy = 300, Float_t errEnergy = 1, const Char_t* dJp = "0/1+"); // *MENU={Hierarchy="LS/AddLevel"}*
122 
124  virtual void AddGroundLevel(Int_t z = 66, Int_t a = 152, Option_t* opt = "0/1+", Float_t energy = 0, Float_t errEnergy = 1); //*MENU={Hierarchy="LS/AddGroundLevel"}*
125 
127  virtual void AddArrow(Option_t* opt = "|>"); // *MENU={Hierarchy="LS/AddArrow"}*
128 
130  virtual void AddText(const Char_t* msg); // *MENU={Hierarchy="LS/AddText"}*
131 
133  virtual void MakeCascade(const Char_t* label = "New"); //*MENU={Hierarchy="Cascade/MakeCascade"}*
134 
136  virtual void DoJ1(Option_t* opt = "AP") const; //*MENU={Hierarchy="Cascade/DoJ1"}*
137 
139  virtual void DoJ2(Option_t* opt = "AP") const; //*MENU={Hierarchy="Cascade/DoJ2"}*
140 
142  virtual void SetCascadeColorPalette(Color_t def, Color_t selected); //*MENU={Hierarchy="Cascade/SetColorPalette"}* *ARGS={def=>fCascadeDefColor,selected=>fCascadeSelColor}
143 
145  virtual void AlignCascade(); //*MENU={Hierarchy="Cascade/Align"}*
146 
148  virtual void AddLinkToCascade(); //*MENU={Hierarchy="Cascade/AddLink"}*
149 
151  virtual void MoveCascade(Float_t mv = 200, Bool_t lastLevel = true); //*MENU={Hierarchy="Cascade/Move"}*
152 
153 
155  virtual void AlignLinks(); //*MENU={Hierarchy="Link/Align"}*
156 
158  virtual void SetLinkDefaultColor(Color_t col); //*MENU={Hierarchy="Link/SetLinkDefaultColor"}* *ARGS={col>fLinkColor}
159 
161  virtual void SetLinkMove(Bool_t move) { move ? Link::EnableMove() : Link::DisableMove();} //*MENU={Hierarchy="Link/SetMovable"}* *TOGGLE* *GETTER=IsLinkMovable
162  virtual Bool_t IsLinkMovable() { return Link::IsMovable(); }
163 
165  virtual void SetLinkVisLabel(const char* s = "000"); //*MENU={Hierarchy="Link/SetVisLabel"}*
166 
168  virtual void SetLinkLabelsSize(Float_t size); //*MENU={Hierarchy="Link/SetLabelSize"}*
169 
171  virtual void SetLinkLabelsColor(Color_t color); //*MENU={Hierarchy="Link/SetLabelColor"}*
172 
174  virtual void DeleteLink(); //*MENU={Hierarchy="Link/Delete"}*
175 
176 
178  virtual void SetLevelColorPalette(Color_t plus, Color_t minus,
179  Color_t unknown, Color_t selected); //*MENU={Hierarchy="Level/SetColorPalette"}* *ARGS={plus=>fLevelPlusColor,minus=>fLevelMinusColor,unknown=>fLevelUnknownColor,selected=>fLevelSelColor}
180 
182  virtual void SetLevelStylePalette(Color_t known, Color_t tentative); //*MENU={Hierarchy="Level/SetStylePalette"}* *ARGS={known=>fLevelKnownStyle,tentative=>fLevelTentStyle}
183 
185  virtual void SetLevelMove(Bool_t move) { move ? Level::EnableMove() : Level::DisableMove();} //*MENU={Hierarchy="Level/SetMovable"}* *TOGGLE* *GETTER=IsLevelMovable
186  virtual Bool_t IsLevelMovable() { return Level::IsMovable(); }
187 
189  virtual void SetLevelVisLabel(const char* s = "0000"); //*MENU={Hierarchy="Level/SetVisLabel"}*
190 
192  virtual void SetLevelLabelsSize(Float_t size); //*MENU={Hierarchy="Level/SetLabelSize"}*
193 
195  virtual void SetLevelLabelsColor(Color_t color); //*MENU={Hierarchy="Level/SetLabelColor"}*
196 
198  virtual void AlignLevels(); //*MENU={Hierarchy="Level/Align"}*
199 
201  virtual void DeleteLevel(); //*MENU={Hierarchy="Level/Delete"}*
202 
203 
205  virtual void PopupDoProject();
206 
208  virtual void PopupAddLink();
209 
211  virtual void PopupAddLevel();
212 
214  virtual void PopupAddFirstLevel();
215 
217  virtual void PopupAddGroundLevel();
218 
220  virtual void PopupWriteLS();
221 
223  virtual void PopupAddArrow();
224 
226  virtual void PopupAddText();
227 
229  virtual void AddLinkOnTop(Measure<Float_t> strength, Measure<Float_t> energy);
230 
232  virtual void InsertLink(Measure<Float_t> strength);
233 
236 
239 
244 
247 
248  Color_t GetLinkColor() { return Link::GetDefaultColor(); }
249 
250  const char* GetLSName() { return fLevelScheme->GetName(); }
251 
253 
254  protected:
255 
257  virtual void AddLinkBetween(Float_t strength = 10, Float_t energy = 300,
258  Float_t errStrength = 1, Float_t errEnergy = 1);
259 
261  virtual void AddLinkOnTop(Float_t strength = 10, Float_t energy = 300,
262  Float_t errStrength = 1, Float_t errEnergy = 1,
263  const Char_t* mult = "E1");
264 
266  virtual void InsertLink(Float_t strength = 10, Float_t errStrength = 1, const Char_t* mult = "E1");
267 
269  virtual void UpdateDrawingOptions();
270 
272  virtual Bool_t CheckPolarity(GammaLink& link);
273 
274  private:
275  Color_t fCascadeDefColor;
276  Color_t fCascadeSelColor;
277 
278  Style_t fLevelKnownStyle;
279  Style_t fLevelTentStyle;
280 
281  Color_t fLevelPlusColor;
282  Color_t fLevelMinusColor;
283  Color_t fLevelUnknownColor;
284  Color_t fLevelSelColor;
285 
286  Float_t fLevelLabelsSize;
287  Color_t fLevelLabelsColor;
288 
289  Color_t fLinkColor;
290 
291  private:
292  CSManager* fCSManager; // Correlated space manager
293 
294  TString fLSName; // level scheme name
295  TString fPathtoSaveLS;
296 
297  Char_t* fCSDefaultName; // default CS name
298 
299  ClassDef( GLSPlayer, 2); // some standard/graphical approach
300  };
301 
302 } // end namespace
303 #endif
A level Scheme.
Definition: LevelScheme.h:82
virtual void AddGroundLevel(Int_t z=66, Int_t a=152, Option_t *opt="0/1+", Float_t energy=0, Float_t errEnergy=1)
Add ground state level.
Definition: GLSPlayer.cpp:205
virtual void SetLevelMove(Bool_t move)
Disable/Enable move of levels.
Definition: GLSPlayer.h:185
virtual void PopupAddArrow()
Popup AddArrow menu.
Definition: GLSPlayer.cpp:621
virtual void AlignLinks()
Align selected links on level posistions in X.
Definition: GLSPlayer.cpp:1442
virtual void Project(Option_t *axis="x")
Project with CSManger.
Definition: GLSPlayer.cpp:1737
virtual const char * GetPathtoSaveLS() const
get where are saved levelscheme
Definition: GLSPlayer.h:105
virtual void AddLink(Float_t strength=100, Float_t errStrength=1, Float_t energy=300, Float_t errEnergy=1, const Char_t *mult="E2")
Add link with selected link/level.
Definition: GLSPlayer.cpp:660
virtual void SetCascadeColorPalette(Color_t def, Color_t selected)
set color palette for level
Definition: GLSPlayer.cpp:1797
virtual void AddArrow(Option_t *opt="|>")
Add arrows to the LS between two selected levels.
Definition: GLSPlayer.cpp:675
virtual void AddLinkBetween(Float_t strength=10, Float_t energy=300, Float_t errStrength=1, Float_t errEnergy=1)
Add gamma link on the top of any selected link (under progress)
Definition: GLSPlayer.cpp:762
virtual void DoProject(Option_t *axis="x", Option_t *gateName="Gate", Option_t *optFilter="reset", Option_t *optDraw="")
Make gate, project and drawing.
Definition: GLSPlayer.cpp:1755
Color_t GetCascadeDefColor()
Definition: GLSPlayer.h:234
virtual void AlignCascade()
Align selected cascade's levels/links respect to the first selected in X.
Definition: GLSPlayer.cpp:1506
const char * GetLSName()
Definition: GLSPlayer.h:250
virtual EDefaultStyle GetDefaultStyle()
return default style
Definition: Level.h:237
virtual void InsertLink(Measure< Float_t > strength)
insert a gamma link between two seleted levels
Definition: GLSPlayer.cpp:997
virtual void MakeCascade(const Char_t *label="New")
Make Cascade from selected links.
Definition: GLSPlayer.cpp:1384
Float_t GetLevelLabelsColor()
Definition: GLSPlayer.h:246
Color_t GetCascadeSelColor()
Definition: GLSPlayer.h:235
virtual TString SetPathtoSaveLS(const char *newpath)
set where this should save the level scheme
Definition: GLSPlayer.h:97
virtual void AddLinkToCascade()
Add existing link to cascade.
Definition: GLSPlayer.cpp:449
virtual Bool_t IsLinkMovable()
Definition: GLSPlayer.h:162
virtual EDefaultColor GetDefaultColor()
return default color
Definition: Level.h:240
header file for a NuclearLevel
virtual void SetLinkLabelsColor(Color_t color)
Set label color for levels.
Definition: GLSPlayer.cpp:349
virtual Bool_t IsLevelMovable()
Definition: GLSPlayer.h:186
virtual void DeSelect()
Deselect all objects.
Definition: GLSPlayer.cpp:502
Float_t GetLevelLabelsSize()
Definition: GLSPlayer.h:245
Color_t GetLevelSelColor()
Definition: GLSPlayer.h:243
virtual void SetLevelStylePalette(Color_t known, Color_t tentative)
set style palette for level
Definition: GLSPlayer.cpp:1781
CSManager correlated spaces manager.
Definition: CSManager.h:53
virtual const char * GetName() const
Definition: LevelScheme.h:300
virtual void AddFirstLevel(Float_t energy=300, Float_t errEnergy=1, const Char_t *jp="0+", Option_t *opt="left")
Add first level to a new cascade beside the current cascade.
Definition: GLSPlayer.cpp:1211
virtual void DrawProj(Option_t *opt="")
Draw projection.
Definition: GLSPlayer.cpp:1743
Color_t GetLevelUnknownColor()
Definition: GLSPlayer.h:242
virtual void PopupWriteLS()
Popup write LS menu.
Definition: GLSPlayer.cpp:647
Most of the methods relies on graphical approach for level scheme.
Definition: GLSPlayer.h:53
virtual void MoveCascade(Float_t mv=200, Bool_t lastLevel=true)
Move all levels/link (extra line) from a casacde (excluded last level if lastLevel = false) ...
Definition: GLSPlayer.cpp:1081
template that defines a general Measure
virtual void SetLevelLabelsColor(Color_t color)
Set label color for levels.
Definition: GLSPlayer.cpp:320
virtual void Select()
Select all objects.
Definition: GLSPlayer.cpp:474
virtual void PopupAddGroundLevel()
Popup AddGroundLevel menu.
Definition: GLSPlayer.cpp:608
const char * GetCSDefaultName()
Definition: GLSPlayer.h:252
virtual Bool_t CheckPolarity(GammaLink &link)
Check multi-polarity.
Definition: GLSPlayer.cpp:941
virtual void SetLinkMove(Bool_t move)
Disable/Enable move of links.
Definition: GLSPlayer.h:161
virtual void PopupAddText()
Popup AddText menu.
Definition: GLSPlayer.cpp:634
virtual Int_t CollectGate(Option_t *opt="reset")
Collect gate on a histogram and add them to filter.
Definition: GLSPlayer.cpp:1765
virtual void SetLevelVisLabel(const char *s="0000")
Set vis label for levels.
Definition: GLSPlayer.cpp:301
virtual void AddText(const Char_t *msg)
Add text to the LS at last mouse position.
Definition: GLSPlayer.cpp:747
virtual void SetLinkDefaultColor(Color_t col)
set color palette for link
Definition: GLSPlayer.cpp:1790
virtual void ShowGate(Option_t *opt="gate")
Show gate on spectrum.
Definition: GLSPlayer.cpp:1681
Color_t GetLevelKnownStyle()
Definition: GLSPlayer.h:237
Color_t GetLinkColor()
Definition: GLSPlayer.h:248
virtual void SetLinkVisLabel(const char *s="000")
Set vis label for levels.
Definition: GLSPlayer.cpp:330
virtual void Draw(Option_t *opt="")
To draw this level scheme.
Definition: GLSPlayer.cpp:151
virtual void SetLevelColorPalette(Color_t plus, Color_t minus, Color_t unknown, Color_t selected)
set color palette for level
Definition: GLSPlayer.cpp:1771
static Float_t GetDefaultLabelSize()
Definition: Level.h:63
header file for all type of CorrelatedSpace
virtual ~GLSPlayer()
Definition: GLSPlayer.cpp:144
virtual void PopupAddLevel()
Popup AddLevel menu.
Definition: GLSPlayer.cpp:582
Color_t GetLevelTentStyle()
Definition: GLSPlayer.h:238
virtual void DrawProjTot(Option_t *opt="")
Draw projection total.
Definition: GLSPlayer.cpp:1749
virtual void SetLevelLabelsSize(Float_t size)
Set label size for levels.
Definition: GLSPlayer.cpp:310
virtual void WriteLS(const char *nameLS, const char *path, Int_t write=TObject::kOverwrite)
Save level scheme.
Definition: GLSPlayer.cpp:359
virtual void PopupDoProject()
Popup DoProject menu.
Definition: GLSPlayer.cpp:556
virtual EDefaultColor GetDefaultColor()
return default color
Definition: Cascade.h:166
virtual void AddLevel(Float_t energy=300, Float_t errEnergy=1, const Char_t *dJp="0/1+")
Add new level to the current cascade.
Definition: GLSPlayer.cpp:1148
Color_t GetLevelPlusColor()
Definition: GLSPlayer.h:240
static Bool_t IsMovable()
Definition: Level.h:72
virtual void AlignLevels()
Align selected levels respect to the first selected in X (does not affect the associated links) ...
Definition: GLSPlayer.cpp:1472
virtual void UpdateDrawingOptions()
update drawing options color/style
Definition: GLSPlayer.cpp:1806
virtual void DeleteLevel()
Delete current level.
Definition: GLSPlayer.cpp:423
static void EnableMove()
Definition: Level.h:70
virtual void SetLinkLabelsSize(Float_t size)
Set label size for levels.
Definition: GLSPlayer.cpp:339
virtual void DoJ1(Option_t *opt="AP") const
Do J1.
Definition: GLSPlayer.cpp:1557
static const Char_t * GetDefaultName()
Get default name for CS.
virtual void RegisterCS(const Char_t *fileName, const Char_t *name=CorrelatedSpace::GetDefaultName())
Register correlated space.
Definition: GLSPlayer.cpp:536
virtual void AddLinkOnTop(Measure< Float_t > strength, Measure< Float_t > energy)
Add gamma link on the top of a band by selected a link or a link.
Definition: GLSPlayer.cpp:756
virtual void DoJ2(Option_t *opt="AP") const
Do J2.
Definition: GLSPlayer.cpp:1619
virtual void PopupAddLink()
Popup AddLink menu.
Definition: GLSPlayer.cpp:569
LevelScheme * fLevelScheme
Definition: BaseLSPlayer.h:291
const Int_t size
Definition: BenchIO.C:24
Color_t GetLevelMinusColor()
Definition: GLSPlayer.h:241
virtual void DeleteLink()
Delete current link.
Definition: GLSPlayer.cpp:389
static Color_t GetDefaultLabelColor()
Definition: Level.h:64
BaseLSPlayer to work on level scheme.
Definition: BaseLSPlayer.h:106
static void DisableMove()
Definition: Level.h:71
virtual void PopupAddFirstLevel()
Popup AddFirstLevel menu.
Definition: GLSPlayer.cpp:595
GLSPlayer(LevelScheme *levelScheme)
Definition: GLSPlayer.cpp:130