FEDRA emulsion software from the OPERA Collaboration
EdbDisplay.h
Go to the documentation of this file.
1#ifndef ROOT_EdbDisplay
2#define ROOT_EdbDisplay
5
11
12#include "TGNumberEntry.h"
13#include "EdbDisplayBase.h"
14#include "EdbPVRec.h"
15#include "EdbVertex.h"
16#include "EdbBrick.h"
17
18class EdbSegG;
19//class EdbBrickP;
20
23
24 private:
25
27
29
30 TArrayI *eColors;
31 TArrayF *eDZs;
32
33 TGNumberEntry *fNumericEntries[3];
34
35 public:
36
37 Int_t eFromPlate;
38 Int_t eToPlate;
39
40 //EdbBrickP *eB; // brick object with the plates geometry inside
42 TObjArray *eArrSegP;
43 TObjArray *eArrTr;
44 TObjArray *eArrV;
45 TObjArray *eArrSegPSave;
46 TObjArray *eArrTrSave;
47 TObjArray *eArrVSave;
55 TPolyMarker3D *eSegPM;
56 Bool_t eWait_Answer;
57 Int_t eIndVert;
60 Double_t eRadMax;
61 Double_t eDpat;
62 Double_t eImpMax;
63 Double_t eP;
64 Double_t eM;
65 Double_t eTImpMax;
66 Double_t eTProbMin;
67 Double_t eSegWmin;
68
69 TObjArray *eArrSegG;
70
71 public:
72
75
76 EdbDisplay(const char *title,
77 Float_t x0, Float_t x1,
78 Float_t y0, Float_t y1,
79 Float_t z0, Float_t z1,
80 TCanvas *Canvas = 0) :
81 EdbDisplayBase(title, x0, x1, y0, y1, z0, z1, Canvas) {Set0();}
82
83 EdbDisplay(const char *title, EdbLayer &la, TCanvas *Canvas = 0) :
84 EdbDisplayBase(title, la.Xmin(), la.Xmax(), la.Ymin(), la.Ymax(),
85 la.Zmin(), la.Zmax(), Canvas)
86 {Set0();}
87
88 static EdbDisplay *EdbDisplayExist(const char *title);
89 void Delete();
90 void Set0();
91 void GuessRange( float margZmin=3000,float margZmax=1000,float margR=300 );
92 void SetVerRec(EdbVertexRec *evr) { eVerRec = evr; };
93
94 void Refresh();
95 void SetArrSegG(TObjArray *arrg) {eArrSegG = arrg;}
96 void SetArrSegP(TObjArray *arr);
97 void SetArrTr(TObjArray *arr);
99
100 EdbVertexRec *VerRec() const {return eVerRec;}
101 //void PatternDraw(EdbPattern &pat);
102 void TrackDraw(EdbTrackP *tr, Color_t kColor=kWhite);
103 EdbSegG *SegLine(const EdbSegP *seg);
104
105 void DrawRef(float start[3], float end[3]);
106 void SelectVertexTracks(TObjArray *vtx);
107 void SetArrV(TObjArray *arrv);
108 void VertexDraw(EdbVertex *v);
110 void CancelModifiedVTX();
111 void DeleteModifiedVTX();
112 void AcceptModifiedVTX();
113 void DialogModifiedVTX();
115 void UndoModifiedVTX();
117 void DrawAllObjects();
118 void DrawVTXTracks(char *type, EdbVertex *v = 0);
119 void RemoveTrackFromTable( int ivt = 0 );
128 void ClearSegmentEnv();
129 void DrawSegmentExtrapolationLine(const EdbSegP &s, float zmin, float zmax);
130
131 ClassDef(EdbDisplay,1) //FEDRA Event Display
132};
134class EdbVertexG : public TPolyMarker3D {
135 private:
136
139
140 public:
141 EdbVertexG():TPolyMarker3D(1) {eV=0; eD=0;}
142 EdbVertexG(EdbDisplay *D):TPolyMarker3D(1) {eV=0; eD=D;}
143 virtual ~EdbVertexG(){}
144
145 void SetVertex(EdbVertex *v) {eV=v;}
146
147 virtual void DumpVertex(); // *MENU*
148 virtual void InspectVertex(); // *MENU*
149 virtual void SetAsWorking(); // *MENU*
150 virtual void DeleteVertex(); // *MENU*
151 virtual void RemoveKink(); // *MENU*
152 virtual void TestVertex(); // *MENU*
153 virtual const char * GetTitle() const;
154 virtual const char * GetName() const;
155 virtual char * GetObjectInfo(int px, int py) const;
156
157 ClassDef(EdbVertexG,1) //Vertex
158};
159
161class EdbTrackG : public TPolyMarker3D {
162 private:
163
166
167 public:
168 EdbTrackG() {eTr=0; eD=0;}
170 EdbTrackG(Int_t nhits, EdbDisplay *D):TPolyMarker3D(nhits) {eTr=0; eD=D;}
171 virtual ~EdbTrackG(){}
172
174
175 virtual void DumpTrack(); // *MENU*
176 virtual void InspectTrack(); // *MENU*
177 virtual void SetAsWorkingVertex(); // *MENU*
178 virtual void RemoveTrackFromVertex(); // *MENU*
179 virtual void AddTrackToVertex(); // *MENU*
180 virtual void FixNewTrack(); // *MENU*
181 virtual void DeleteTrack(); // *MENU*
182 virtual void UndoNewTrack(); // *MENU*
183 virtual void UndoSplit(); // *MENU*
184 virtual void UndoRemoveKink(); // *MENU*
185 virtual void AddToNewTrack(); // *MENU*
186 virtual void AddToNewTrackAndFit();// *MENU*
187 virtual void InfoTrackVert(); // *MENU*
188 virtual void EstimateMomentum(); // *MENU*
189 virtual const char * GetTitle() const;
190 virtual const char * GetName() const;
191 virtual char * GetObjectInfo(int px, int py) const;
192
193 ClassDef(EdbTrackG,1) //Track
194};
195
197class EdbSegG : public TPolyLine3D {
198 private:
199
200 const EdbSegP *eSeg;
202
203 public:
204 EdbSegG() {eSeg=0; eD=0;}
205 EdbSegG(EdbSegP &s);
207 EdbSegG(Int_t nhits):TPolyLine3D(nhits) {eSeg=0; eD=0;}
208 EdbSegG(Int_t nhits, EdbDisplay *D):TPolyLine3D(nhits) {eSeg=0; eD=D;}
209 virtual ~EdbSegG(){}
210
211 void SetSeg(const EdbSegP *s) {eSeg=s;}
212 float X() { return GetP()[0]; }
213 float Y() { return GetP()[1]; }
214 float Z() { return GetP()[2]; }
215
216 virtual void DumpSegment(); // *MENU*
217 virtual void InspectSegment(); // *MENU*
218 virtual void AddAsTrackToVertex(); // *MENU*
219 virtual void AddToNewTrack(); // *MENU*
220 virtual void AddToNewTrackAndFit();// *MENU*
221 virtual void RemoveFromTrack(); // *MENU*
222 virtual void SplitTrack(); // *MENU*
223 virtual void SetAsWorking(); // *MENU*
224 virtual void InfoSegVert(); // *MENU*
225 virtual void InfoSegSeg(); // *MENU*
226 virtual const char * GetTitle() const;
227 virtual const char * GetName() const;
228 virtual char * GetObjectInfo(int px, int py) const;
229
230 ClassDef(EdbSegG,1) //Segment
231};
232
233
234#endif /* ROOT_EdbDisplay */
brick z0
Definition: RecDispMC.C:106
TObjArray * arrv
Definition: RecDispMC.C:130
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
basic class for FEDRA Event Display
Definition: EdbDisplayBase.h:73
FEDRA Event Display.
Definition: EdbDisplay.h:22
Double_t eM
track mass (creation from segment, propagation)
Definition: EdbDisplay.h:64
TObjArray * eArrTrSave
saved array of tracks to be drawn
Definition: EdbDisplay.h:46
void SetDrawVertex(int opt)
Definition: EdbDisplay.h:109
TObjArray * eArrV
array of vertices to be drawn
Definition: EdbDisplay.h:44
void AcceptModifiedTrackParams()
Definition: EdbDisplay.cxx:4018
Int_t eToPlate
Definition: EdbDisplay.h:38
void SetArrSegP(TObjArray *arr)
Definition: EdbDisplay.cxx:390
EdbVertexRec * VerRec() const
Definition: EdbDisplay.h:100
EdbTrackP * eTrack1
working intermediate track (track splitting)
Definition: EdbDisplay.h:53
void SetArrTr(TObjArray *arr)
Definition: EdbDisplay.cxx:431
Double_t eSegWmin
Minimal segment W for neighbouring selection.
Definition: EdbDisplay.h:67
void DrawSegmentExtrapolationLine(const EdbSegP &s, float zmin, float zmax)
Definition: EdbDisplay.cxx:737
void RemoveTrackFromTable(int ivt=0)
Definition: EdbDisplay.cxx:2667
void DrawVTXTracks(char *type, EdbVertex *v=0)
Definition: EdbDisplay.cxx:4084
EdbDisplay()
Definition: EdbDisplay.h:73
EdbSegG * SegLine(const EdbSegP *seg)
Definition: EdbDisplay.cxx:889
Double_t eTProbMin
Minimal probability for interactive add track.
Definition: EdbDisplay.h:66
void Delete()
Definition: EdbDisplay.cxx:371
~EdbDisplay()
Definition: EdbDisplay.cxx:241
void Refresh()
Definition: EdbDisplay.cxx:552
EdbVertex * ePrevious
saved previous vertex modifications
Definition: EdbDisplay.h:50
EdbVertexRec * eVerRec
Definition: EdbDisplay.h:41
void CancelDialogModifiedTrackParams()
Definition: EdbDisplay.cxx:4036
void DialogNeighborParameters()
Definition: EdbDisplay.cxx:3843
void UndoModifiedVTX()
Definition: EdbDisplay.cxx:3373
Int_t eIndVertSave
Index of selected vertex in ArrV (seved)
Definition: EdbDisplay.h:58
void VertexDraw(EdbVertex *v)
Definition: EdbDisplay.cxx:641
void SetArrV(TObjArray *arrv)
Definition: EdbDisplay.cxx:501
void TrackDraw(EdbTrackP *tr, Color_t kColor=kWhite)
Definition: EdbDisplay.cxx:755
void CancelModifiedVTX()
Definition: EdbDisplay.cxx:3221
Int_t eIndVert
Index of selected vertex in ArrV.
Definition: EdbDisplay.h:57
void DrawAllObjects()
Definition: EdbDisplay.cxx:3806
EdbDisplay(const char *title, EdbLayer &la, TCanvas *Canvas=0)
Definition: EdbDisplay.h:83
EdbDisplay(const char *title, Float_t x0, Float_t x1, Float_t y0, Float_t y1, Float_t z0, Float_t z1, TCanvas *Canvas=0)
Definition: EdbDisplay.h:76
void CloseDialogModifiedTrackParams()
Definition: EdbDisplay.cxx:4030
TList eCreatedTracks
list of tracks, created during vertex operations
Definition: EdbDisplay.h:59
TObjArray * eArrSegP
array of segments to be drawn
Definition: EdbDisplay.h:42
void Set0()
Definition: EdbDisplay.cxx:190
TArrayI * eColors
Definition: EdbDisplay.h:30
EdbSegP * eSegment
working segment (for segment neighborhood)
Definition: EdbDisplay.h:51
TObjArray * eArrTr
array of tracks to be drawn
Definition: EdbDisplay.h:43
void ClearSegmentEnv()
Definition: EdbDisplay.cxx:4215
Double_t eImpMax
Maximal impact for neighborhood.
Definition: EdbDisplay.h:62
TGNumberEntry * fNumericEntries[3]
Definition: EdbDisplay.h:33
EdbVertex * eVertex
current selected vertex
Definition: EdbDisplay.h:49
Double_t eDpat
+/- patterns for neighborhood
Definition: EdbDisplay.h:61
Int_t eDrawVertex
vertex drawing option
Definition: EdbDisplay.h:28
void DrawRef(float start[3], float end[3])
Definition: EdbDisplay.cxx:620
TObjArray * eArrSegG
additional array of segments for the presentation purpose only
Definition: EdbDisplay.h:69
void SetDrawTracks(int opt)
Definition: EdbDisplay.h:98
void DialogTrackParameters()
Definition: EdbDisplay.cxx:3920
void SetVerRec(EdbVertexRec *evr)
Definition: EdbDisplay.h:92
static EdbDisplay * EdbDisplayExist(const char *title)
Definition: EdbDisplay.cxx:233
void CancelDialogModifiedParams()
Definition: EdbDisplay.cxx:4010
Int_t eDrawTracks
tracks drawing option
Definition: EdbDisplay.h:26
Double_t eTImpMax
Maximal impact for interactive add track.
Definition: EdbDisplay.h:65
Bool_t eWait_Answer
set TRUE when answer received
Definition: EdbDisplay.h:56
Int_t eFromPlate
plates range (for colors normalization)
Definition: EdbDisplay.h:37
void DrawVertexEnvironment()
Definition: EdbDisplay.cxx:3723
void SelectVertexTracks(TObjArray *vtx)
Definition: EdbDisplay.cxx:4198
TObjArray * eArrSegPSave
saved array of segments to be drawn
Definition: EdbDisplay.h:45
void AcceptModifiedVTX()
Definition: EdbDisplay.cxx:3490
void GuessRange(float margZmin=3000, float margZmax=1000, float margR=300)
Definition: EdbDisplay.cxx:261
void SetArrSegG(TObjArray *arrg)
Definition: EdbDisplay.h:95
TPolyMarker3D * eSegPM
green mark for segment selected as working
Definition: EdbDisplay.h:55
void AcceptModifiedParams()
Definition: EdbDisplay.cxx:3990
Double_t eRadMax
Maximal Radius for neighborhood.
Definition: EdbDisplay.h:60
Double_t eP
track momentum (creation from segment, propagation)
Definition: EdbDisplay.h:63
void CloseDialogModifiedParams()
Definition: EdbDisplay.cxx:4004
EdbTrackP * eTrack2
working intermediate track (track splitting)
Definition: EdbDisplay.h:54
EdbTrackP * eTrack
working intermediate track (track creation)
Definition: EdbDisplay.h:52
EdbVertex * eWorking
working vertex
Definition: EdbDisplay.h:48
void CloseDialogModifiedVTX()
Definition: EdbDisplay.cxx:4077
void DeleteModifiedVTX()
Definition: EdbDisplay.cxx:3300
TObjArray * eArrVSave
saved array of vertices to be drawn
Definition: EdbDisplay.h:47
void DialogModifiedVTX()
Definition: EdbDisplay.cxx:4044
TArrayF * eDZs
Definition: EdbDisplay.h:31
Definition: EdbLayer.h:39
Segment.
Definition: EdbDisplay.h:197
virtual void AddToNewTrackAndFit()
Definition: EdbDisplay.cxx:1154
virtual const char * GetName() const
Definition: EdbDisplay.cxx:173
virtual void InfoSegVert()
Definition: EdbDisplay.cxx:1425
EdbSegG(Int_t nhits, EdbDisplay *D)
Definition: EdbDisplay.h:208
virtual void AddAsTrackToVertex()
Definition: EdbDisplay.cxx:916
virtual void InfoSegSeg()
Definition: EdbDisplay.cxx:1548
float X()
Definition: EdbDisplay.h:212
void SetSeg(const EdbSegP *s)
Definition: EdbDisplay.h:211
EdbSegG()
Definition: EdbDisplay.h:204
virtual void InspectSegment()
Definition: EdbDisplay.cxx:158
EdbSegG(Int_t nhits)
Definition: EdbDisplay.h:207
virtual void SplitTrack()
Definition: EdbDisplay.cxx:1247
const EdbSegP * eSeg
Definition: EdbDisplay.h:200
virtual void SetAsWorking()
Definition: EdbDisplay.cxx:1361
float Y()
Definition: EdbDisplay.h:213
EdbSegG(EdbDisplay *D)
Definition: EdbDisplay.h:206
virtual void AddToNewTrack()
Definition: EdbDisplay.cxx:1131
virtual ~EdbSegG()
Definition: EdbDisplay.h:209
virtual const char * GetTitle() const
Definition: EdbDisplay.cxx:164
virtual char * GetObjectInfo(int px, int py) const
Definition: EdbDisplay.cxx:180
virtual void DumpSegment()
Definition: EdbDisplay.cxx:152
EdbDisplay * eD
Definition: EdbDisplay.h:201
float Z()
Definition: EdbDisplay.h:214
virtual void RemoveFromTrack()
Definition: EdbDisplay.cxx:1184
Definition: EdbSegP.h:21
Track.
Definition: EdbDisplay.h:161
virtual void DumpTrack()
Definition: EdbDisplay.cxx:74
virtual void UndoNewTrack()
Definition: EdbDisplay.cxx:2043
EdbTrackG(Int_t nhits, EdbDisplay *D)
Definition: EdbDisplay.h:170
virtual void FixNewTrack()
Definition: EdbDisplay.cxx:2193
virtual void AddToNewTrackAndFit()
Definition: EdbDisplay.cxx:2447
void SetTrack(EdbTrackP *tr)
Definition: EdbDisplay.h:173
virtual void AddToNewTrack()
Definition: EdbDisplay.cxx:2397
virtual const char * GetTitle() const
Definition: EdbDisplay.cxx:95
EdbDisplay * eD
Definition: EdbDisplay.h:165
virtual ~EdbTrackG()
Definition: EdbDisplay.h:171
virtual void DeleteTrack()
Definition: EdbDisplay.cxx:2360
virtual const char * GetName() const
Definition: EdbDisplay.cxx:104
virtual void UndoRemoveKink()
Definition: EdbDisplay.cxx:2246
virtual void RemoveTrackFromVertex()
Definition: EdbDisplay.cxx:2502
virtual void AddTrackToVertex()
Definition: EdbDisplay.cxx:2838
virtual void UndoSplit()
Definition: EdbDisplay.cxx:2112
virtual void SetAsWorkingVertex()
Definition: EdbDisplay.cxx:1767
virtual void InfoTrackVert()
Definition: EdbDisplay.cxx:3095
virtual void EstimateMomentum()
Definition: EdbDisplay.cxx:86
EdbTrackG(EdbDisplay *D)
Definition: EdbDisplay.h:169
EdbTrackP * eTr
Definition: EdbDisplay.h:164
virtual char * GetObjectInfo(int px, int py) const
Definition: EdbDisplay.cxx:111
virtual void InspectTrack()
Definition: EdbDisplay.cxx:80
EdbTrackG()
Definition: EdbDisplay.h:168
Definition: EdbPattern.h:113
Vertex.
Definition: EdbDisplay.h:134
EdbVertex * eV
Definition: EdbDisplay.h:137
virtual void RemoveKink()
Definition: EdbDisplay.cxx:1931
EdbDisplay * eD
Definition: EdbDisplay.h:138
virtual void DeleteVertex()
Definition: EdbDisplay.cxx:1891
EdbVertexG()
Definition: EdbDisplay.h:141
virtual char * GetObjectInfo(int px, int py) const
Definition: EdbDisplay.cxx:63
virtual void TestVertex()
Definition: EdbDisplay.cxx:1683
virtual const char * GetTitle() const
Definition: EdbDisplay.cxx:45
virtual void DumpVertex()
Definition: EdbDisplay.cxx:33
EdbVertexG(EdbDisplay *D)
Definition: EdbDisplay.h:142
virtual void InspectVertex()
Definition: EdbDisplay.cxx:39
virtual const char * GetName() const
Definition: EdbDisplay.cxx:56
virtual ~EdbVertexG()
Definition: EdbDisplay.h:143
virtual void SetAsWorking()
Definition: EdbDisplay.cxx:1696
void SetVertex(EdbVertex *v)
Definition: EdbDisplay.h:145
Definition: EdbVertex.h:194
Definition: EdbVertex.h:69
s
Definition: check_shower.C:55
const char * opt
Definition: mc2raw.cxx:42
new TCanvas()
Int_t type
Definition: testBGReduction_By_ANN.C:15