Logo ROOT  
Reference Guide
TGeoPatternFinder.h
Go to the documentation of this file.
1 // @(#)root/geom:$Id$
2 // Author: Andrei Gheata 30/10/01
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGeoPatternFinder
13 #define ROOT_TGeoPatternFinder
14 
15 #include "TObject.h"
16 
17 #include <mutex>
18 #include <vector>
19 
20 #include "TGeoVolume.h"
21 
22 class TGeoMatrix;
23 
24 /////////////////////////////////////////////////////////////////////////////////
25 // //
26 // TGeoPatternFinder - base finder class for patterns. A pattern is specifying //
27 // a division type //
28 // //
29 /////////////////////////////////////////////////////////////////////////////////
30 
31 class TGeoPatternFinder : public TObject
32 {
33 public:
34  struct ThreadData_t
35  {
36  TGeoMatrix *fMatrix; //! generic matrix
37  Int_t fCurrent; //! current division element
38  Int_t fNextIndex; //! index of next node
39 
40  ThreadData_t();
41  ~ThreadData_t();
42  private:
43  ThreadData_t(const ThreadData_t&) = delete;
44  ThreadData_t& operator=(const ThreadData_t&) = delete;
45  };
46  ThreadData_t& GetThreadData() const;
47  void ClearThreadData() const;
48  void CreateThreadData(Int_t nthreads);
49 
50 protected :
54  };
55  Double_t fStep; // division step length
56  Double_t fStart; // starting point on divided axis
57  Double_t fEnd; // ending point
58  Int_t fNdivisions; // number of divisions
59  Int_t fDivIndex; // index of first div. node
60  TGeoVolume *fVolume; // volume to which applies
61 
62  mutable std::vector<ThreadData_t*> fThreadData; //! Vector of thread private transient data
63  mutable Int_t fThreadSize; //! Size of the thread vector
64  mutable std::mutex fMutex; //! Mutex for thread data
65 
66 protected:
69 
70 public:
71  // constructors
74  // destructor
75  virtual ~TGeoPatternFinder();
76  // methods
77  virtual TGeoMatrix* CreateMatrix() const = 0;
78  virtual void cd(Int_t /*idiv*/) {}
79  virtual TGeoNode *CdNext();
80  virtual TGeoNode *FindNode(Double_t * /*point*/, const Double_t * /*dir*/=0) {return 0;}
81  virtual Int_t GetByteCount() const {return 36;}
82  Int_t GetCurrent();// {return fCurrent;}
84  virtual Int_t GetDivAxis() {return 1;}
85  virtual TGeoMatrix *GetMatrix();// {return fMatrix;}
86  Int_t GetNdiv() const {return fNdivisions;}
87  Int_t GetNext() const;// {return fNextIndex;}
89  Double_t GetStart() const {return fStart;}
90  Double_t GetStep() const {return fStep;}
91  Double_t GetEnd() const {return fEnd;}
92  TGeoVolume *GetVolume() const {return fVolume;}
93  virtual Bool_t IsOnBoundary(const Double_t * /*point*/) const {return kFALSE;}
96  virtual
99  void SetDivIndex(Int_t index) {fDivIndex = index;}
100  void SetNext(Int_t index);// {fNextIndex = index;}
101  void SetRange(Double_t start, Double_t step, Int_t ndivisions);
103  void SetVolume(TGeoVolume *vol) {fVolume = vol;}
104  virtual void UpdateMatrix(Int_t , TGeoHMatrix &) const {}
105 
106  ClassDef(TGeoPatternFinder, 4) // patterns to divide volumes
107 };
108 
109 ////////////////////////////////////////////////////////////////////////////
110 // //
111 // TGeoPatternX - a X axis divison pattern //
112 // //
113 ////////////////////////////////////////////////////////////////////////////
114 
115 class TGeoTranslation;
116 
118 {
119 public:
120  // constructors
121  TGeoPatternX();
122  TGeoPatternX(TGeoVolume *vol, Int_t ndivisions);
123  TGeoPatternX(TGeoVolume *vol, Int_t ndivisions, Double_t step);
124  TGeoPatternX(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
125  TGeoPatternX(const TGeoPatternX &pf);
127 
128  // destructor
129  virtual ~TGeoPatternX();
130  // methods
131  virtual TGeoMatrix* CreateMatrix() const;
132  virtual void cd(Int_t idiv);
133  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
134  virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext);
135  virtual Int_t GetDivAxis() {return 1;}
136  virtual Bool_t IsOnBoundary(const Double_t *point) const;
137  virtual
139  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
140  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
141 
142  ClassDef(TGeoPatternX, 1) // X division pattern
143 };
144 
145 ////////////////////////////////////////////////////////////////////////////
146 // //
147 // TGeoPatternY - a Y axis divison pattern //
148 // //
149 ////////////////////////////////////////////////////////////////////////////
150 
152 {
153 public:
154  // constructors
155  TGeoPatternY();
156  TGeoPatternY(TGeoVolume *vol, Int_t ndivisions);
157  TGeoPatternY(TGeoVolume *vol, Int_t ndivisions, Double_t step);
158  TGeoPatternY(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
159  TGeoPatternY(const TGeoPatternY &pf);
161  // destructor
162  virtual ~TGeoPatternY();
163  // methods
164  virtual TGeoMatrix* CreateMatrix() const;
165  virtual void cd(Int_t idiv);
166  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
167  virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext);
168  virtual Int_t GetDivAxis() {return 2;}
169  virtual Bool_t IsOnBoundary(const Double_t *point) const;
170  virtual
172  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
173  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
174 
175  ClassDef(TGeoPatternY, 1) // Y division pattern
176 };
177 
178 ////////////////////////////////////////////////////////////////////////////
179 // //
180 // TGeoPatternZ - a Z axis divison pattern //
181 // //
182 ////////////////////////////////////////////////////////////////////////////
183 
185 {
186 public:
187  // constructors
188  TGeoPatternZ();
189  TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions);
190  TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions, Double_t step);
191  TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
192  TGeoPatternZ(const TGeoPatternZ &pf);
194  // destructor
195  virtual ~TGeoPatternZ();
196  // methods
197  virtual TGeoMatrix* CreateMatrix() const;
198  virtual void cd(Int_t idiv);
199  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
200  virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext);
201  virtual Int_t GetDivAxis() {return 3;}
202  virtual Bool_t IsOnBoundary(const Double_t *point) const;
203  virtual
205  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
206  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
207 
208  ClassDef(TGeoPatternZ, 1) // Z division pattern
209 };
210 
211 ////////////////////////////////////////////////////////////////////////////
212 // //
213 // TGeoPatternParaX - a X axis divison pattern for PARA shapes //
214 // //
215 ////////////////////////////////////////////////////////////////////////////
216 
218 {
219 public:
220  // constructors
222  TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions);
223  TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions, Double_t step);
224  TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
227 
228  // destructor
229  virtual ~TGeoPatternParaX();
230  // methods
231  virtual TGeoMatrix* CreateMatrix() const;
232  virtual void cd(Int_t idiv);
233  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
234  virtual Int_t GetDivAxis() {return 1;}
235  virtual Bool_t IsOnBoundary(const Double_t *point) const;
236  virtual
238  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
239  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
240 
241  ClassDef(TGeoPatternParaX, 1) // Para X division pattern
242 };
243 
244 ////////////////////////////////////////////////////////////////////////////
245 // //
246 // TGeoPatternParaY - a Y axis divison pattern for PARA shapes //
247 // //
248 ////////////////////////////////////////////////////////////////////////////
249 
251 {
252 private :
253 // data members
254  Double_t fTxy = 0.; // tangent of alpha
255 public:
256  // constructors
258  TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions);
259  TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions, Double_t step);
260  TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
263 
264  // destructor
265  virtual ~TGeoPatternParaY();
266  // methods
267  virtual TGeoMatrix* CreateMatrix() const;
268  virtual void cd(Int_t idiv);
269  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
270  virtual Int_t GetDivAxis() {return 2;}
271  virtual Bool_t IsOnBoundary(const Double_t *point) const;
272  virtual
274  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
275  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
276 
277  ClassDef(TGeoPatternParaY, 1) // Para Y division pattern
278 };
279 
280 ////////////////////////////////////////////////////////////////////////////
281 // //
282 // TGeoPatternParaZ - a Z axis divison pattern for PARA shapes //
283 // //
284 ////////////////////////////////////////////////////////////////////////////
285 
287 {
288 private :
289 // data members
290  Double_t fTxz = 0.; // tangent of alpha xz
291  Double_t fTyz = 0.; // tangent of alpha yz
292 public:
293  // constructors
295  TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions);
296  TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions, Double_t step);
297  TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
300 
301  // destructor
302  virtual ~TGeoPatternParaZ();
303  // methods
304  virtual TGeoMatrix* CreateMatrix() const;
305  virtual void cd(Int_t idiv);
306  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
307  virtual Int_t GetDivAxis() {return 3;}
308  virtual Bool_t IsOnBoundary(const Double_t *point) const;
309  virtual
311  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
312  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
313 
314  ClassDef(TGeoPatternParaZ, 1) // Para Z division pattern
315 };
316 
317 ////////////////////////////////////////////////////////////////////////////
318 // //
319 // TGeoPatternTrapZ - a Z axis divison pattern for TRAP or GTRA shapes //
320 // //
321 ////////////////////////////////////////////////////////////////////////////
322 
324 {
325 private :
326 // data members
327  Double_t fTxz = 0.; // tangent of alpha xz
328  Double_t fTyz = 0.; // tangent of alpha yz
329 public:
330  // constructors
332  TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions);
333  TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions, Double_t step);
334  TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
337 
338  // destructor
339  virtual ~TGeoPatternTrapZ();
340  // methods
341  virtual TGeoMatrix* CreateMatrix() const;
342  Double_t GetTxz() const {return fTxz;}
343  Double_t GetTyz() const {return fTyz;}
344  virtual void cd(Int_t idiv);
345  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
346  virtual Int_t GetDivAxis() {return 3;}
347  virtual Bool_t IsOnBoundary(const Double_t *point) const;
348  virtual
350  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
351  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
352 
353  ClassDef(TGeoPatternTrapZ, 1) // Trap od Gtra Z division pattern
354 };
355 
356 
357 ////////////////////////////////////////////////////////////////////////////
358 // //
359 // TGeoPatternCylR - a cylindrical R divison pattern //
360 // //
361 ////////////////////////////////////////////////////////////////////////////
362 
364 {
365 public:
366  // constructors
367  TGeoPatternCylR();
368  TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions);
369  TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions, Double_t step);
370  TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
371  TGeoPatternCylR(const TGeoPatternCylR &pf);
373  // destructor
374  virtual ~TGeoPatternCylR();
375  // methods
376  virtual TGeoMatrix* CreateMatrix() const;
377  virtual void cd(Int_t idiv);
378  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
379  virtual Int_t GetDivAxis() {return 1;}
380  virtual Bool_t IsOnBoundary(const Double_t *point) const;
381  virtual
383  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
384  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
385 
386  ClassDef(TGeoPatternCylR, 1) // Cylindrical R division pattern
387 };
388 
389 ////////////////////////////////////////////////////////////////////////////
390 // //
391 // TGeoPatternCylPhi - a cylindrical phi divison pattern //
392 // //
393 ////////////////////////////////////////////////////////////////////////////
394 
396 {
397 private :
398 // data members
399  Double_t *fSinCos = nullptr; //![2*fNdivisions] table of sines/cosines
400 
401 protected:
405  {if(this!=&pfc) {TGeoPatternFinder::operator=(pfc); fSinCos=pfc.fSinCos; CreateThreadData(1);}
406  return *this;}
407 
408 public:
409  // constructors
411  TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions);
412  TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions, Double_t step);
413  TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
414  // destructor
415  virtual ~TGeoPatternCylPhi();
416  // methods
417  virtual TGeoMatrix* CreateMatrix() const;
418  virtual void cd(Int_t idiv);
419  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
420  virtual Int_t GetDivAxis() {return 2;}
421  virtual Bool_t IsOnBoundary(const Double_t *point) const;
422  virtual
424  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
425  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
426 
427  ClassDef(TGeoPatternCylPhi, 1) // Cylindrical phi division pattern
428 };
429 
430 ////////////////////////////////////////////////////////////////////////////
431 // //
432 // TGeoPatternSphR - a spherical R divison pattern //
433 // //
434 ////////////////////////////////////////////////////////////////////////////
435 
437 {
438 public:
439  // constructors
440  TGeoPatternSphR();
441  TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions);
442  TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions, Double_t step);
443  TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
444  TGeoPatternSphR(const TGeoPatternSphR &pf);
446  // destructor
447  virtual ~TGeoPatternSphR();
448  // methods
449  virtual TGeoMatrix* CreateMatrix() const;
450  virtual void cd(Int_t idiv);
451  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
452  virtual Int_t GetDivAxis() {return 1;}
453  virtual
455  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
456  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
457 
458  ClassDef(TGeoPatternSphR, 1) // spherical R division pattern
459 };
460 
461 ////////////////////////////////////////////////////////////////////////////
462 // //
463 // TGeoPatternSphTheta - a spherical theta divison pattern //
464 // //
465 ////////////////////////////////////////////////////////////////////////////
466 
468 {
469 public:
470  // constructors
472  TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions);
473  TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions, Double_t step);
474  TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
477  // destructor
478  virtual ~TGeoPatternSphTheta();
479  // methods
480  virtual TGeoMatrix* CreateMatrix() const;
481  virtual void cd(Int_t idiv);
482  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
483  virtual Int_t GetDivAxis() {return 3;}
484  virtual
486  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
487  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
488 
489  ClassDef(TGeoPatternSphTheta, 1) // spherical theta division pattern
490 };
491 
492 ////////////////////////////////////////////////////////////////////////////
493 // //
494 // TGeoPatternSphPhi - a spherical phi divison pattern //
495 // //
496 ////////////////////////////////////////////////////////////////////////////
497 
499 {
500 private:
501  Double_t *fSinCos = nullptr; //! Sincos table
502 
503 protected:
504  TGeoPatternSphPhi(const TGeoPatternSphPhi& pfc) = delete;
505  TGeoPatternSphPhi& operator=(const TGeoPatternSphPhi& pfc) = delete;
507 public:
508  // constructors
510  TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions);
511  TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions, Double_t step);
512  TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end);
513  // destructor
514  virtual ~TGeoPatternSphPhi();
515  // methods
516  virtual TGeoMatrix* CreateMatrix() const;
517  virtual void cd(Int_t idiv);
518  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
519  virtual Int_t GetDivAxis() {return 2;}
520  virtual Bool_t IsOnBoundary(const Double_t *point) const;
521  virtual
523  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
524  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
525 
526  ClassDef(TGeoPatternSphPhi, 1) // Spherical phi division pattern
527 };
528 
529 ////////////////////////////////////////////////////////////////////////////
530 // //
531 // TGeoPatternHoneycomb - a divison pattern specialized for honeycombs //
532 // //
533 ////////////////////////////////////////////////////////////////////////////
534 
536 {
537 private :
538 // data members
539  Int_t fNrows; // number of rows
540  Int_t fAxisOnRows; // axis along each row
541  Int_t *fNdivisions; // [fNrows] number of divisions for each row
542  Double_t *fStart; // [fNrows] starting points for each row
543 
544 protected:
547 
548 public:
549  // constructors
552  // destructor
553  virtual ~TGeoPatternHoneycomb();
554  // methods
556  virtual TGeoMatrix* CreateMatrix() const;
557  virtual void cd(Int_t idiv);
558  virtual TGeoNode *FindNode(Double_t *point, const Double_t *dir=0);
559  virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const;
560 
561  ClassDef(TGeoPatternHoneycomb, 1) // pattern for honeycomb divisions
562 };
563 
564 #endif
TGeoPatternParaX::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
get the node division containing the query point
Definition: TGeoPatternFinder.cxx:899
TGeoPatternFinder::GetEnd
Double_t GetEnd() const
Definition: TGeoPatternFinder.h:91
TGeoPatternSphPhi::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:2236
TGeoPatternTrapZ::GetTyz
Double_t GetTyz() const
Definition: TGeoPatternFinder.h:343
TGeoPatternCylPhi::fSinCos
Double_t * fSinCos
Definition: TGeoPatternFinder.h:399
TGeoPatternParaZ::fTxz
Double_t fTxz
Definition: TGeoPatternFinder.h:290
TGeoPatternFinder::CdNext
virtual TGeoNode * CdNext()
Make next node (if any) current.
Definition: TGeoPatternFinder.cxx:212
TGeoPatternTrapZ::operator=
TGeoPatternTrapZ & operator=(const TGeoPatternTrapZ &)
assignment operator
Definition: TGeoPatternFinder.cxx:1404
TGeoPatternHoneycomb::operator=
TGeoPatternHoneycomb & operator=(const TGeoPatternHoneycomb &)
assignment operator
Definition: TGeoPatternFinder.cxx:2312
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TGeoPatternFinder::ClearThreadData
void ClearThreadData() const
Definition: TGeoPatternFinder.cxx:81
TGeoPatternSphR::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1945
TObject::TestBit
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
TGeoPatternCylPhi::~TGeoPatternCylPhi
virtual ~TGeoPatternCylPhi()
Destructor.
Definition: TGeoPatternFinder.cxx:1735
TGeoPatternFinder::CreateThreadData
void CreateThreadData(Int_t nthreads)
Create thread data for n threads max.
Definition: TGeoPatternFinder.cxx:97
TGeoPatternFinder::GetByteCount
virtual Int_t GetByteCount() const
Definition: TGeoPatternFinder.h:81
TGeoPatternFinder::GetNdiv
Int_t GetNdiv() const
Definition: TGeoPatternFinder.h:86
TGeoPatternCylPhi::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:420
TGeoPatternFinder::fThreadData
std::vector< ThreadData_t * > fThreadData
Definition: TGeoPatternFinder.h:62
TGeoPatternFinder::GetNodeOffset
TGeoNode * GetNodeOffset(Int_t idiv)
Definition: TGeoPatternFinder.h:88
TGeoPatternCylPhi::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:1752
TGeoPatternFinder::operator=
TGeoPatternFinder & operator=(const TGeoPatternFinder &)
assignment operator
Definition: TGeoPatternFinder.cxx:155
TGeoPatternParaZ::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1282
TGeoPatternCylPhi::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1742
TGeoPatternParaY::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1103
TGeoPatternSphPhi
Definition: TGeoPatternFinder.h:498
TGeoPatternSphPhi::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:2261
TGeoPatternParaX::operator=
TGeoPatternParaX & operator=(const TGeoPatternParaX &)
assignment operator
Definition: TGeoPatternFinder.cxx:855
TGeoPatternCylR::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1601
TGeoPatternCylPhi
Definition: TGeoPatternFinder.h:395
TGeoPatternTrapZ::TGeoPatternTrapZ
TGeoPatternTrapZ()
Default constructor.
Definition: TGeoPatternFinder.cxx:1336
TGeoPatternZ::TGeoPatternZ
TGeoPatternZ()
Default constructor.
Definition: TGeoPatternFinder.cxx:618
TGeoPatternTrapZ::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:346
TGeoPatternTrapZ::~TGeoPatternTrapZ
virtual ~TGeoPatternTrapZ()
Destructor.
Definition: TGeoPatternFinder.cxx:1418
TGeoPatternParaZ::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:1249
TGeoPatternFinder::fStart
Double_t fStart
Definition: TGeoPatternFinder.h:56
TGeoPatternSphTheta::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:2054
TGeoPatternParaX::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:948
TGeoPatternParaX::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:883
TGeoPatternFinder::ThreadData_t::operator=
ThreadData_t & operator=(const ThreadData_t &)=delete
TGeoPatternX::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:322
TGeoPatternParaZ::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1293
TGeoPatternParaY
Definition: TGeoPatternFinder.h:250
TGeoPatternSphTheta::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:2071
TGeoPatternSphTheta
Definition: TGeoPatternFinder.h:467
TGeoPatternParaX::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:873
Int_t
int Int_t
Definition: RtypesCore.h:45
TGeoVolume.h
TGeoPatternCylR::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:379
TGeoPatternParaX::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:939
TGeoPatternFinder::SetVolume
void SetVolume(TGeoVolume *vol)
Definition: TGeoPatternFinder.h:103
TGeoPatternParaY::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:1064
TGeoPatternZ::operator=
TGeoPatternZ & operator=(const TGeoPatternZ &)
assignment operator
Definition: TGeoPatternFinder.cxx:670
TGeoPatternFinder::fThreadSize
Int_t fThreadSize
Vector of thread private transient data.
Definition: TGeoPatternFinder.h:63
TGeoPatternParaX::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:234
TGeoPatternZ::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:201
TGeoPatternFinder::GetVolume
TGeoVolume * GetVolume() const
Definition: TGeoPatternFinder.h:92
TGeoPatternFinder::fVolume
TGeoVolume * fVolume
Definition: TGeoPatternFinder.h:60
TGeoPatternParaX::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:966
TGeoPatternZ::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:716
TGeoPatternFinder::fEnd
Double_t fEnd
Definition: TGeoPatternFinder.h:57
TGeoPatternY::FindNextBoundary
virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
Compute distance to next division layer returning the index of next section.
Definition: TGeoPatternFinder.cxx:572
TGeoPatternFinder::GetThreadData
ThreadData_t & GetThreadData() const
Definition: TGeoPatternFinder.cxx:73
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
TGeoPatternTrapZ::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1424
TGeoTranslation
Definition: TGeoMatrix.h:121
TGeoPatternSphPhi::~TGeoPatternSphPhi
virtual ~TGeoPatternSphPhi()
Destructor.
Definition: TGeoPatternFinder.cxx:2152
TGeoPatternX
Definition: TGeoPatternFinder.h:117
TGeoNode
Definition: TGeoNode.h:39
TGeoPatternParaY::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:270
TGeoPatternFinder
Definition: TGeoPatternFinder.h:31
bool
TGeoPatternSphTheta::~TGeoPatternSphTheta
virtual ~TGeoPatternSphTheta()
Destructor.
Definition: TGeoPatternFinder.cxx:2040
TGeoPatternTrapZ::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1508
TGeoPatternX::TGeoPatternX
TGeoPatternX()
Default constructor.
Definition: TGeoPatternFinder.cxx:238
TGeoPatternCylR::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1633
TGeoPatternParaY::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1123
TGeoPatternParaY::operator=
TGeoPatternParaY & operator=(const TGeoPatternParaY &)
assignment operator
Definition: TGeoPatternFinder.cxx:1034
TGeoPatternFinder::ThreadData_t
Definition: TGeoPatternFinder.h:34
TGeoPatternFinder::GetCurrent
Int_t GetCurrent()
Return current index.
Definition: TGeoPatternFinder.cxx:180
TGeoPatternFinder::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)=0
TGeoPatternZ::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:698
TGeoPatternFinder::SetRange
void SetRange(Double_t start, Double_t step, Int_t ndivisions)
Set division range. Use this method only when dividing an assembly.
Definition: TGeoPatternFinder.cxx:223
TGeoPatternParaZ::fTyz
Double_t fTyz
Definition: TGeoPatternFinder.h:291
TGeoPatternFinder::EGeoPatternFlags
EGeoPatternFlags
Definition: TGeoPatternFinder.h:51
TGeoPatternSphPhi::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:519
TGeoPatternFinder::kPatternSpacedOut
@ kPatternSpacedOut
Definition: TGeoPatternFinder.h:53
TGeoPatternFinder::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *) const
Definition: TGeoPatternFinder.h:93
TGeoPatternHoneycomb::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:2341
TGeoPatternX::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:403
TGeoPatternX::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:312
TGeoPatternY::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:593
TGeoPatternParaZ
Definition: TGeoPatternFinder.h:286
TGeoPatternY::~TGeoPatternY
virtual ~TGeoPatternY()
Destructor.
Definition: TGeoPatternFinder.cxx:495
TGeoPatternTrapZ::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:1437
TGeoPatternZ::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:790
TGeoPatternHoneycomb::TGeoPatternHoneycomb
TGeoPatternHoneycomb()
Default constructor.
Definition: TGeoPatternFinder.cxx:2275
TGeoPatternSphPhi::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:2184
TGeoPatternSphPhi::fSinCos
Double_t * fSinCos
Definition: TGeoPatternFinder.h:501
TGeoPatternSphR::~TGeoPatternSphR
virtual ~TGeoPatternSphR()
Destructor.
Definition: TGeoPatternFinder.cxx:1923
Option_t
const typedef char Option_t
Definition: RtypesCore.h:66
TGeoPatternHoneycomb::MakeCopy
TGeoPatternFinder * MakeCopy(Bool_t)
Definition: TGeoPatternFinder.h:555
TGeoPatternSphTheta::TGeoPatternSphTheta
TGeoPatternSphTheta()
Default constructor.
Definition: TGeoPatternFinder.cxx:1984
TGeoHMatrix
Definition: TGeoMatrix.h:420
TGeoPatternParaZ::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1236
TGeoPatternCylPhi::TGeoPatternCylPhi
TGeoPatternCylPhi(const TGeoPatternCylPhi &pfc)
[2*fNdivisions] table of sines/cosines
Definition: TGeoPatternFinder.h:402
TGeoPatternX::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:414
TObject::SetBit
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:696
TGeoPatternY::TGeoPatternY
TGeoPatternY()
Default constructor.
Definition: TGeoPatternFinder.cxx:428
TGeoPatternY::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:512
TGeoPatternParaY::~TGeoPatternParaY
virtual ~TGeoPatternParaY()
Destructor.
Definition: TGeoPatternFinder.cxx:1046
TGeoPatternParaZ::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1320
TGeoPatternSphTheta::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:2089
TGeoPatternY::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:530
TGeoPatternY::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:168
TGeoPatternSphPhi::TGeoPatternSphPhi
TGeoPatternSphPhi()
Default constructor.
Definition: TGeoPatternFinder.cxx:2101
TGeoPatternCylR::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1653
TGeoPatternParaX::~TGeoPatternParaX
virtual ~TGeoPatternParaX()
Destructor.
Definition: TGeoPatternFinder.cxx:867
TGeoPatternFinder::GetStep
Double_t GetStep() const
Definition: TGeoPatternFinder.h:90
TGeoPatternFinder::ThreadData_t::fNextIndex
Int_t fNextIndex
current division element
Definition: TGeoPatternFinder.h:38
TGeoPatternSphPhi::operator=
TGeoPatternSphPhi & operator=(const TGeoPatternSphPhi &pfc)=delete
TGeoPatternSphR::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:452
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
TGeoPatternCylPhi::operator=
TGeoPatternCylPhi & operator=(const TGeoPatternCylPhi &pfc)
Definition: TGeoPatternFinder.h:404
TGeoPatternCylR::~TGeoPatternCylR
virtual ~TGeoPatternCylR()
Destructor.
Definition: TGeoPatternFinder.cxx:1581
TGeoPatternFinder::fMutex
std::mutex fMutex
Size of the thread vector.
Definition: TGeoPatternFinder.h:64
TGeoPatternParaX::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:928
TGeoPatternX::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:349
TGeoPatternFinder::TGeoPatternFinder
TGeoPatternFinder()
Default constructor.
Definition: TGeoPatternFinder.cxx:113
TGeoPatternX::~TGeoPatternX
virtual ~TGeoPatternX()
Destructor.
Definition: TGeoPatternFinder.cxx:305
TGeoPatternFinder::GetDivIndex
Int_t GetDivIndex()
Definition: TGeoPatternFinder.h:83
TGeoPatternCylPhi::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1806
TGeoPatternSphPhi::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:2173
TGeoPatternZ::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:688
BIT
#define BIT(n)
Definition: Rtypes.h:85
TGeoPatternCylPhi::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1834
TGeoPatternHoneycomb::fNrows
Int_t fNrows
Definition: TGeoPatternFinder.h:539
TGeoPatternZ::~TGeoPatternZ
virtual ~TGeoPatternZ()
Destructor.
Definition: TGeoPatternFinder.cxx:682
TGeoPatternFinder::SetDivIndex
void SetDivIndex(Int_t index)
Definition: TGeoPatternFinder.h:99
TGeoPatternHoneycomb::fStart
Double_t * fStart
Definition: TGeoPatternFinder.h:542
TGeoPatternFinder::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const =0
TGeoPatternFinder::fDivIndex
Int_t fDivIndex
Definition: TGeoPatternFinder.h:59
TGeoPatternTrapZ::fTyz
Double_t fTyz
Definition: TGeoPatternFinder.h:328
TGeoPatternSphTheta::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:2080
TGeoPatternParaZ::operator=
TGeoPatternParaZ & operator=(const TGeoPatternParaZ &)
assignment operator
Definition: TGeoPatternFinder.cxx:1217
TGeoPatternSphTheta::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:483
TGeoPatternFinder::fNdivisions
Int_t fNdivisions
Definition: TGeoPatternFinder.h:58
TGeoPatternCylPhi::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1795
TGeoPatternFinder::IsReflected
Bool_t IsReflected() const
Definition: TGeoPatternFinder.h:94
TGeoPatternFinder::kPatternReflected
@ kPatternReflected
Definition: TGeoPatternFinder.h:52
TGeoPatternY::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
Find the cell corresponding to point and next cell along dir (if asked)
Definition: TGeoPatternFinder.cxx:551
TGeoPatternParaZ::~TGeoPatternParaZ
virtual ~TGeoPatternParaZ()
Destructor.
Definition: TGeoPatternFinder.cxx:1229
TGeoPatternFinder::~TGeoPatternFinder
virtual ~TGeoPatternFinder()
Destructor.
Definition: TGeoPatternFinder.cxx:172
TGeoPatternTrapZ::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
get the node division containing the query point
Definition: TGeoPatternFinder.cxx:1449
TGeoPatternFinder::SetSpacedOut
void SetSpacedOut(Bool_t flag)
Definition: TGeoPatternFinder.h:102
TGeoPatternHoneycomb
Definition: TGeoPatternFinder.h:535
TGeoPatternSphPhi::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:2244
TGeoPatternFinder::UpdateMatrix
virtual void UpdateMatrix(Int_t, TGeoHMatrix &) const
Definition: TGeoPatternFinder.h:104
TGeoPatternHoneycomb::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:2349
TGeoPatternCylPhi::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1852
TGeoPatternSphR::TGeoPatternSphR
TGeoPatternSphR()
Default constructor.
Definition: TGeoPatternFinder.cxx:1865
TGeoPatternFinder::ThreadData_t::~ThreadData_t
~ThreadData_t()
Destructor.
Definition: TGeoPatternFinder.cxx:66
TGeoPatternTrapZ::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1481
TGeoPatternFinder::cd
virtual void cd(Int_t)
Definition: TGeoPatternFinder.h:78
TGeoPatternFinder::GetStart
Double_t GetStart() const
Definition: TGeoPatternFinder.h:89
TGeoPatternX::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:135
TGeoPatternParaX::TGeoPatternParaX
TGeoPatternParaX()
Default constructor.
Definition: TGeoPatternFinder.cxx:803
Double_t
double Double_t
Definition: RtypesCore.h:59
TGeoMatrix
Definition: TGeoMatrix.h:40
TGeoPatternTrapZ::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:1470
TGeoPatternFinder::IsSpacedOut
Bool_t IsSpacedOut() const
Definition: TGeoPatternFinder.h:95
TGeoPatternParaY::TGeoPatternParaY
TGeoPatternParaY()
Default constructor.
Definition: TGeoPatternFinder.cxx:979
TGeoPatternParaY::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1114
TObject.h
TGeoPatternSphR
Definition: TGeoPatternFinder.h:436
TGeoPatternParaZ::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1302
TGeoPatternCylR
Definition: TGeoPatternFinder.h:363
TGeoPatternY::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:502
TGeoPatternTrapZ
Definition: TGeoPatternFinder.h:323
TGeoPatternCylPhi::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:1768
TGeoPatternSphPhi::CreateSinCos
Double_t * CreateSinCos()
Create the sincos table if it does not exist.
Definition: TGeoPatternFinder.cxx:2160
TGeoPatternY::operator=
TGeoPatternY & operator=(const TGeoPatternY &)
assignment operator
Definition: TGeoPatternFinder.cxx:483
TGeoPatternParaZ::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:307
TGeoVolume::GetNode
TGeoNode * GetNode(const char *name) const
get the pointer to a daughter node
Definition: TGeoVolume.cxx:2059
TGeoPatternZ
Definition: TGeoPatternFinder.h:184
TGeoPatternSphR::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1929
TGeoPatternFinder::GetMatrix
virtual TGeoMatrix * GetMatrix()
Return current matrix.
Definition: TGeoPatternFinder.cxx:188
TGeoPatternZ::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:779
TGeoPatternTrapZ::GetTxz
Double_t GetTxz() const
Definition: TGeoPatternFinder.h:342
TObject
Definition: TObject.h:37
TGeoPatternSphR::operator=
TGeoPatternSphR & operator=(const TGeoPatternSphR &)
assignment operator
Definition: TGeoPatternFinder.cxx:1911
TGeoPatternSphR::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1963
TGeoPatternHoneycomb::fAxisOnRows
Int_t fAxisOnRows
Definition: TGeoPatternFinder.h:540
TGeoPatternZ::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
Find the cell corresponding to point and next cell along dir (if asked)
Definition: TGeoPatternFinder.cxx:737
TGeoPatternZ::FindNextBoundary
virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
Compute distance to next division layer returning the index of next section.
Definition: TGeoPatternFinder.cxx:758
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TGeoPatternCylR::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:1610
TGeoPatternSphR::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:1937
TGeoPatternSphR::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1972
TGeoPatternFinder::ThreadData_t::fMatrix
TGeoMatrix * fMatrix
Definition: TGeoPatternFinder.h:36
TGeoPatternX::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
Find the cell corresponding to point and next cell along dir (if asked)
Definition: TGeoPatternFinder.cxx:361
TGeoPatternSphTheta::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:2046
TGeoPatternCylR::operator=
TGeoPatternCylR & operator=(const TGeoPatternCylR &)
assignment operator
Definition: TGeoPatternFinder.cxx:1569
TGeoPatternFinder::GetDivAxis
virtual Int_t GetDivAxis()
Definition: TGeoPatternFinder.h:84
TGeoPatternCylR::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:1588
TGeoPatternCylR::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1644
TGeoPatternTrapZ::fTxz
Double_t fTxz
Definition: TGeoPatternFinder.h:327
TGeoPatternParaX
Definition: TGeoPatternFinder.h:217
TGeoPatternParaZ::TGeoPatternParaZ
TGeoPatternParaZ()
Default constructor.
Definition: TGeoPatternFinder.cxx:1156
TGeoPatternZ::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:725
TGeoPatternSphPhi::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
find the node containing the query point
Definition: TGeoPatternFinder.cxx:2199
TGeoPatternParaY::fTxy
Double_t fTxy
Definition: TGeoPatternFinder.h:254
TGeoPatternCylR::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1662
TGeoPatternFinder::SetNext
void SetNext(Int_t index)
Set index of next division.
Definition: TGeoPatternFinder.cxx:204
TGeoPatternSphTheta::operator=
TGeoPatternSphTheta & operator=(const TGeoPatternSphTheta &)
assignment operator
Definition: TGeoPatternFinder.cxx:2029
TGeoPatternTrapZ::CreateMatrix
virtual TGeoMatrix * CreateMatrix() const
Return new matrix of type used by this finder.
Definition: TGeoPatternFinder.cxx:1490
TGeoPatternHoneycomb::~TGeoPatternHoneycomb
virtual ~TGeoPatternHoneycomb()
destructor
Definition: TGeoPatternFinder.cxx:2327
TGeoPatternSphTheta::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:2062
TGeoPatternFinder::Reflect
void Reflect(Bool_t flag=kTRUE)
Definition: TGeoPatternFinder.h:98
TGeoPatternParaY::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:1052
TGeoPatternParaZ::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
get the node division containing the query point
Definition: TGeoPatternFinder.cxx:1261
TGeoPatternFinder::ThreadData_t::ThreadData_t
ThreadData_t()
index of next node
Definition: TGeoPatternFinder.cxx:58
TGeoPatternFinder::fStep
Double_t fStep
Definition: TGeoPatternFinder.h:55
TGeoPatternCylPhi::TGeoPatternCylPhi
TGeoPatternCylPhi()
Default constructor.
Definition: TGeoPatternFinder.cxx:1674
TGeoPatternHoneycomb::fNdivisions
Int_t * fNdivisions
Definition: TGeoPatternFinder.h:541
TGeoPatternParaY::FindNode
virtual TGeoNode * FindNode(Double_t *point, const Double_t *dir=0)
get the node division containing the query point
Definition: TGeoPatternFinder.cxx:1078
TGeoPatternParaY::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:1141
TGeoPatternFinder::ThreadData_t::fCurrent
Int_t fCurrent
generic matrix
Definition: TGeoPatternFinder.h:37
TGeoPatternX::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:340
TGeoPatternFinder::GetNext
Int_t GetNext() const
Get index of next division.
Definition: TGeoPatternFinder.cxx:196
TGeoVolume
Definition: TGeoVolume.h:44
TGeoPatternHoneycomb::cd
virtual void cd(Int_t idiv)
Update current division index and global matrix to point to a given slice.
Definition: TGeoPatternFinder.cxx:2333
TGeoPatternX::FindNextBoundary
virtual Double_t FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
Compute distance to next division layer returning the index of next section.
Definition: TGeoPatternFinder.cxx:382
TGeoPatternCylR::TGeoPatternCylR
TGeoPatternCylR()
Default constructor.
Definition: TGeoPatternFinder.cxx:1524
TGeoPatternY::IsOnBoundary
virtual Bool_t IsOnBoundary(const Double_t *point) const
Checks if the current point is on division boundary.
Definition: TGeoPatternFinder.cxx:539
TGeoPatternFinder::FindNode
virtual TGeoNode * FindNode(Double_t *, const Double_t *=0)
Definition: TGeoPatternFinder.h:80
TGeoPatternSphR::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:1954
TGeoPatternX::operator=
TGeoPatternX & operator=(const TGeoPatternX &)
assignment operator
Definition: TGeoPatternFinder.cxx:293
TGeoPatternY::SavePrimitive
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
Definition: TGeoPatternFinder.cxx:604
int
TGeoPatternY
Definition: TGeoPatternFinder.h:151
TGeoPatternHoneycomb::UpdateMatrix
virtual void UpdateMatrix(Int_t idiv, TGeoHMatrix &matrix) const
Fills external matrix with the local one corresponding to the given division index.
Definition: TGeoPatternFinder.cxx:2358
TGeoPatternSphPhi::MakeCopy
virtual TGeoPatternFinder * MakeCopy(Bool_t reflect=kFALSE)
Make a copy of this finder. Reflect by Z if required.
Definition: TGeoPatternFinder.cxx:2225