KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVIDGridEditor.h
1
3
4#ifndef __KVIDGridEditor_H
5#define __KVIDGridEditor_H
6
7#include "TCanvas.h"
8#include "TPaveLabel.h"
9#include "TPaveText.h"
10#include "TStyle.h"
11#include "TH2F.h"
12#include "TF1.h"
13#include "TF2.h"
14#include "TROOT.h"
15#include "TView.h"
16#include "TKey.h"
17#include "TSpectrum.h"
18
19#include "TMethod.h"
20#include "TContextMenu.h"
21#include "TGMsgBox.h"
22#include "TGFileDialog.h"
23
24#include "KVIDGridEditorCanvas.h"
25#include "KVBase.h"
26#include "KVHashList.h"
27#include "KVIDGraph.h"
28#include "KVIDGridManager.h"
29#include "KVIDZALine.h"
30#include "KVIDZAGrid.h"
31#include "KVIDentifier.h"
32#include "KVDropDownDialog.h"
33#include "KVVirtualIDFitter.h"
34#include "TMethod.h"
35#include "TContextMenu.h"
36#include "TGMsgBox.h"
37#include "KVInputDialog.h"
38#include "KVHistoManipulator.h"
39
40#include "KVSpiderIdentificator.h"
41#include "KVZALineFinder.h"
42
43#define FACTOR -1.
44
58class KVIDGridEditor : public KVBase {
61
62public:
69
70protected:
71
78
85
91
93
98
100
104
110
112
120
122
126
131
134
135protected:
136
137 Double_t GetX0();
138 Double_t GetY0();
141
142 Bool_t HandleKey(Int_t px, Int_t py);
143 void MoveHor(Int_t sign, Double_t speed = 1, Bool_t update = true);
144 void MoveVert(Int_t sign, Double_t speed = 1, Bool_t update = true);
145
146 void ZoomOnMouse();
147 void AddMethod(const char* theMethod);
148 void SelectTrans(TPaveLabel* label);
149
150 void SetDefault(); //
151 void init(); //
152 void AddTransformation(TString label); //construction de l'interface
153 void AddAction(TString label); //graphique et initialisation
154 void AddGridOption(TString label, KVHashList* thelist); //
155 void ConstructModulator(); //
156
157 void TranslateX(Int_t Sign);
158 void TranslateY(Int_t Sign);
159 void RotateZ(Int_t Sign);
160 void ScaleX(Int_t Sign);
161 void ScaleY(Int_t Sign);
162 void ScaleXY(Int_t Sign);
163 void ScaleCurvature(Int_t Sign);
164
165 void DynamicZoom(Int_t Sign, Int_t px = 0, Int_t py = 0, Double_t speed = .5); //zoom molette
166 void Unzoom(); //unzoom histo (accessible via l'interface : I)
167 void ZoomSelected(); //zoom 'gnuplot'
168
169 void SetLogz(); //echelle log sur Oz
170 void SetLogy(); //echelle log sur Oy
171 void SetLogx(); //echelle log sur Ox
172 void Undo(); //annule toute les operation sur la grille courante (I)
173
174 void SetPivot(Double_t xx0, Double_t yy0); // set pivot position (double click on the histo)
175 void SetPiedestal(Double_t ppdx, Double_t ppdy); // set piedestal position (shift click on the histo)
176
177 void SetEditable(TPaveLabel* label);
178 void SelectLines(const Char_t* label);
179
180 void NewLine(); //'Line'
181 void NewCut(); //'Cut'
182 void NewInfo(); //'Info'
183 void FitGrid(); //'Fit' avec fonctionnelle de T.G
184 void TestGrid(); //'Test' linearisation de l'histo avec la grille courante
185
186 void DeleteObject(KVIDentifier* obj); //'Delete'
187
188 void UpdateViewer(); //rafraichit l'interface
189 void DrawAtt(Bool_t piv); //affiche les bouton sur le canvas
190 void ResetColor(KVIDentifier* Ident); //redonne la couleur d'origine a une ligne
191 void ResetColor(KVList* IdentList); //redonne la couleur d'origine a une liste de ligne
192
193 void SuggestMoreAction(); //'More', modifier cette methode pour ajouter des fonctionnalites !!!
194 void ChooseSelectedColor(); //'More' -> SetSelectedColor change la couleur des lignes selectionnes
195 void OpenRootFile(); //pas implemente
196
197 void DispatchOrder(TPaveLabel* label); //methode qui distribue les ordres quand on clic sur un bouton
198 void ChangeStep(const char* title, Int_t dstep = 1);
199 const char* WhoIsSelected(); //methode qui regarde quelle transformation est selectionnee
200
201 TString ListOfHistogramInMemory(); //revoie la liste des histo dans gFile
202 TString PreselectHistogram(TString ListOfName, Int_t ipert = 0); //revoie le nom de l' histo qui as le mm nom que la grille (si existe)
203 TH2* FindInCanvases(const Char_t* name);
204 void RecurseFileStructureFindHistos(TString& hist_names, TDirectory* the_directory);
205
206 void ChangeZoomRatio(Int_t sign, Double_t speed = .5);
207public:
208
211 ROOT_COPY_ASSIGN_OP(KVIDGridEditor)
212 virtual ~KVIDGridEditor();
213 void Copy(TObject&) const;
214
215 void StartViewer(); //ouvre l'interface graphique, utilise quand double clic sur une grille dans le gIDGridManagerGUI
216 void Clear(const Option_t* opt = ""); //nettoi l'interface ('all' enleve la grille et l'histo)
217 void Close(); //ferme l'interface graphique
218 Bool_t IsClosed(); //true si l'interface est fermee
219 void CanvasWasClosed(); // called when GUI is used to close the canvas
220 void ForceUpdate(); //rafraichit toute l'interface de force
221 void SaveCurrentGrid(); //'More' -> SaveCurrentGrid ouvre une boite de dialogue pour sauver la grille
222
223 void AutoFit(); //'More' -> AutoFit try to autofit the selected lines
224
225 void SetPointStyle(int pstyle);
227 {
228 return fPointStyle;
229 }
230 void SetPointSize(double psize);
232 {
233 return fPointSize;
234 }
235
236 void SetHisto(TH2* hh); //donne l'histo a l'editeur
237 void SetGrid(KVIDGraph* gg, Bool_t histo = true); //donne la grille a l'editeur
238 void SetGrid(TString GridName); //donne la grille a l'editeur par son nom
239
241 {
242 return TheGrid;
243 }
245 {
246 return TheHisto;
247 }
248
250 {
251 return fCanvas;
252 }
253
254 void SelectLabel(); //methode ajouter a la liste des auto-exec du canvas : gere les bouton
255 void MakeTransformation(); //methode ajouter a la liste des auto-exec du canvas : gere le reste
256
258 {
259 SelectedColor = color;
260 }
261 void SelectLinesByZ(const Char_t* ListOfZ); //'More' -> 'SelectLinesByZ'
262 void SetDebug(Bool_t debug)
263 {
264 fDebug = debug;
265 }
267 {
269 }
270 void MakeScaleX(Double_t scaleFactor);
271 void MakeScaleY(Double_t scaleFactor);
272
274 {
275 return fSpiderZp;
276 }
278 {
279 return fSpiderFactor;
280 }
281
282 void SetSpiderOption(const char* opt = "DRLF")
283 {
284 fSpiderOption = opt;
285 }
287 void FindZALines();
288 void ChangeMasses(const Char_t* Zl, Int_t dA);
289 void ChangeCharges(const Char_t* Zl, Int_t dZ);
290
292 {
293 fAx = fAy = 1;
294 fBx = fBy = 0;
295 }
296 void PrintScalingRecap();
297
298 ClassDef(KVIDGridEditor, 1) // outil de modification de grille.
299};
300
302R__EXTERN KVIDGridEditor* gIDGridEditor;
303
304#endif
int Int_t
#define R__EXTERN
bool Bool_t
char Char_t
double Double_t
const char Option_t
#define ClassDef(name, id)
Base class for KaliVeda framework.
Definition KVBase.h:142
Extended version of ROOT THashList.
Definition KVHashList.h:29
Base class for particle identification in a 2D map.
Definition KVIDGraph.h:32
Extended version of KVCanvas used by KVIDGridEditor.
Identification grid editor GUI ,.
Bool_t drawmode
true si mode draw (line, cut)
void SelectLinesByZ(const Char_t *ListOfZ)
Int_t imod
utilise pour le placement des boutons
void DrawAtt(Bool_t piv)
void AddTransformation(TString label)
void DynamicZoom(Int_t Sign, Int_t px=0, Int_t py=0, Double_t speed=.5)
Zoom in or out of histogram with mouse wheel.
void Copy(TObject &) const
void SelectLines(const Char_t *label)
void RotateZ(Int_t Sign)
KVIDGridEditor()
Default constructor.
void ScaleY(Int_t Sign)
TF2 * frx
rotation
double GetPointSize()
KVHashList * lplabel5
contient la liste des TPaveLabel pour moduler les pas (vert)
KVHashList * lplabel4
contient la liste des TPaveLabel pour editer la grille (rouge)
void SetGrid(KVIDGraph *gg, Bool_t histo=true)
void SetPiedestal(Double_t ppdx, Double_t ppdy)
piedestal used during SpiderIdentification
Bool_t moved
utilise pour les differents zooms
KVString fListOfMethods
void MoveHor(Int_t sign, Double_t speed=1, Bool_t update=true)
TVirtualPad * fPad
Bool_t aoemode
true si mode age of empire
void RecurseFileStructureFindHistos(TString &hist_names, TDirectory *the_directory)
TString ListOfHistogramInMemory()
void SetSpiderOption(const char *opt="DRLF")
void ChangeZoomRatio(Int_t sign, Double_t speed=.5)
TString PreselectHistogram(TString ListOfName, Int_t ipert=0)
void TranslateX(Int_t Sign)
Double_t oldy
utilises pour les differents zooms
void ScaleX(Int_t Sign)
KVIDGraph * GetGrid()
void ScaleCurvature(Int_t Sign)
void ChangeCharges(const Char_t *Zl, Int_t dZ)
void MakeScaleX(Double_t scaleFactor)
void SetDebug(Bool_t debug)
const char * WhoIsSelected()
void ChangeStep(const char *title, Int_t dstep=1)
void AddGridOption(TString label, KVHashList *thelist)
TH2 * FindInCanvases(const Char_t *name)
void SetPointStyle(int pstyle)
void StartViewer()
Close();.
void DispatchOrder(TPaveLabel *label)
void ScaleXY(Int_t Sign)
virtual ~KVIDGridEditor()
Destructor.
TF1 * fsy
scaling
void TranslateY(Int_t Sign)
void MakeScaleY(Double_t scaleFactor)
KVList * ListOfLines
liste des lignes selectionnees
TF1 * fs
scaling
void SetSelectedColor(Int_t color)
TH2 * TheHisto
pointeur sur l'histogramme
void SelectTrans(TPaveLabel *label)
void ResetColor(KVIDentifier *Ident)
void Clear(const Option_t *opt="")
KVIDGridEditorCanvas * fCanvas
void AddMethod(const char *theMethod)
KVIDGraph * TheGrid
pointeur sur la grille courante
Bool_t HandleKey(Int_t px, Int_t py)
Handle keys.
TPaveText * fKeyShow
KVHashList * lplabel2
contient la liste des TPaveLabel pour les actions (rouge)
void SetHisto(TH2 *hh)
KVString fDefaultMethod
KVHashList * lplabel3
contient la liste des TPaveLabel pour les selections de lignes (vert)
void MoveVert(Int_t sign, Double_t speed=1, Bool_t update=true)
TF1 * ft
translation
void SetPointSize(double psize)
void ChangeMasses(const Char_t *Zl, Int_t dA)
Int_t SelectedColor
couleur des lignes selectionnees
Bool_t venermode
true si mode select
TF2 * fry
rotation
TPaveLabel * modulator
Bool_t ownhisto
true si histo par defaut
void SetPivot(Double_t xx0, Double_t yy0)
void SetEditable(TPaveLabel *label)
Bool_t selectmode
true si mode vener
Double_t fBy
scaling recap for current grid
Double_t ymax
utilises pour les differents zooms
Double_t GetSpiderFactor()
TGraph * fPiedestal
KVHashList * lplabel
contient la liste des TPaveLabel pour les transformations (rouge)
Double_t x0
coordonne x du pivot
void DeleteObject(KVIDentifier *obj)
Double_t fSpiderFactor
Double_t y0
coordonne y du pivot
Bool_t dlmode
true si mode delete
TCanvas * GetEditorCanvas()
void AddAction(TString label)
Base class for graphical cuts used in particle identification.
Extended TList class which owns its objects by default.
Definition KVList.h:28
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition KVString.h:73