#include "Riostream.h"
#include "TObject.h"
#include "TGeoMatrix.h"
#include "TGeoPara.h"
#include "TGeoArb8.h"
#include "TGeoNode.h"
#include "TGeoManager.h"
#include "TMath.h"
#include "TGeoPatternFinder.h"
ClassImp(TGeoPatternFinder)
ClassImp(TGeoPatternX)
ClassImp(TGeoPatternY)
ClassImp(TGeoPatternZ)
ClassImp(TGeoPatternParaX)
ClassImp(TGeoPatternParaY)
ClassImp(TGeoPatternParaZ)
ClassImp(TGeoPatternTrapZ)
ClassImp(TGeoPatternCylR)
ClassImp(TGeoPatternCylPhi)
ClassImp(TGeoPatternSphR)
ClassImp(TGeoPatternSphTheta)
ClassImp(TGeoPatternSphPhi)
ClassImp(TGeoPatternHoneycomb)
TGeoPatternFinder::TGeoPatternFinder()
{
fMatrix = 0;
fCurrent = -1;
fNdivisions = 0;
fDivIndex = 0;
fStep = 0;
fStart = 0;
fEnd = 0;
fVolume = 0;
fNextIndex = -1;
}
TGeoPatternFinder::TGeoPatternFinder(TGeoVolume *vol, Int_t ndiv)
{
fVolume = vol;
fMatrix = 0;
fCurrent = -1;
fNdivisions = ndiv;
fDivIndex = 0;
fStep = 0;
fStart = 0;
fEnd = 0;
fNextIndex = -1;
}
TGeoPatternFinder::TGeoPatternFinder(const TGeoPatternFinder& pf) :
TObject(pf),
fStep(pf.fStep),
fStart(pf.fStart),
fEnd(pf.fEnd),
fCurrent(pf.fCurrent),
fNdivisions(pf.fNdivisions),
fDivIndex(pf.fDivIndex),
fMatrix(pf.fMatrix),
fVolume(pf.fVolume),
fNextIndex(pf.fNextIndex)
{
}
TGeoPatternFinder& TGeoPatternFinder::operator=(const TGeoPatternFinder& pf)
{
if(this!=&pf) {
TObject::operator=(pf);
fStep=pf.fStep;
fStart=pf.fStart;
fEnd=pf.fEnd;
fCurrent=pf.fCurrent;
fNdivisions=pf.fNdivisions;
fDivIndex=pf.fDivIndex;
fMatrix=pf.fMatrix;
fVolume=pf.fVolume;
fNextIndex = pf.fNextIndex;
}
return *this;
}
TGeoPatternFinder::~TGeoPatternFinder()
{
}
TGeoNode *TGeoPatternFinder::CdNext()
{
if (fNextIndex < 0) return NULL;
cd(fNextIndex);
return GetNodeOffset(fCurrent);
}
TGeoPatternFinder *TGeoPatternFinder::MakeCopy(Bool_t)
{
return NULL;
}
TGeoPatternX::TGeoPatternX()
{
}
TGeoPatternX::TGeoPatternX(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dx = ((TGeoBBox*)vol->GetShape())->GetDX();
fStart = -dx;
fEnd = dx;
fStep = 2*dx/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternX::TGeoPatternX(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dx = ((TGeoBBox*)vol->GetShape())->GetDX();
fStart = -dx;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternX::TGeoPatternX(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
void TGeoPatternX::cd(Int_t idiv)
{
fCurrent=idiv;
fMatrix->SetDx(fStart+idiv*fStep+0.5*fStep);
}
TGeoPatternX::~TGeoPatternX()
{
}
Bool_t TGeoPatternX::IsOnBoundary(const Double_t *point) const
{
Double_t seg = (point[0]-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternX::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Int_t ind = (Int_t)(1.+(point[0]-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
if (dir[0]>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
Double_t TGeoPatternX::FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
{
indnext = -1;
Double_t dist = TGeoShape::Big();
if (TMath::Abs(dir[0])<TGeoShape::Tolerance()) return dist;
if (fCurrent<0) {
Error("FindNextBoundary", "Must call FindNode first");
return dist;
}
Int_t inc = (dir[0]>0)?1:0;
dist = (fStep*(fCurrent+inc)-point[0])/dir[0];
if (dist<0.) Error("FindNextBoundary", "Negative distance d=%g",dist);
if (!inc) inc = -1;
indnext = fCurrent+inc;
return dist;
}
TGeoPatternFinder *TGeoPatternX::MakeCopy(Bool_t reflect)
{
TGeoPatternX *finder = new TGeoPatternX(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternX::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 1;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternY::TGeoPatternY()
{
}
TGeoPatternY::TGeoPatternY(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dy = ((TGeoBBox*)vol->GetShape())->GetDY();
fStart = -dy;
fEnd = dy;
fStep = 2*dy/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternY::TGeoPatternY(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dy = ((TGeoBBox*)vol->GetShape())->GetDY();
fStart = -dy;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternY::TGeoPatternY(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternY::~TGeoPatternY()
{
}
void TGeoPatternY::cd(Int_t idiv)
{
fCurrent=idiv;
fMatrix->SetDy(fStart+idiv*fStep+0.5*fStep);
}
Bool_t TGeoPatternY::IsOnBoundary(const Double_t *point) const
{
Double_t seg = (point[1]-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternY::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Int_t ind = (Int_t)(1.+(point[1]-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
if (dir[1]>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
Double_t TGeoPatternY::FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
{
indnext = -1;
Double_t dist = TGeoShape::Big();
if (TMath::Abs(dir[1])<TGeoShape::Tolerance()) return dist;
if (fCurrent<0) {
Error("FindNextBoundary", "Must call FindNode first");
return dist;
}
Int_t inc = (dir[1]>0)?1:0;
dist = (fStep*(fCurrent+inc)-point[1])/dir[1];
if (dist<0.) Error("FindNextBoundary", "Negative distance d=%g",dist);
if (!inc) inc = -1;
indnext = fCurrent+inc;
return dist;
}
TGeoPatternFinder *TGeoPatternY::MakeCopy(Bool_t reflect)
{
TGeoPatternY *finder = new TGeoPatternY(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternY::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 2;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternZ::TGeoPatternZ()
{
}
TGeoPatternZ::TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dz = ((TGeoBBox*)vol->GetShape())->GetDZ();
fStart = -dz;
fEnd = dz;
fStep = 2*dz/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternZ::TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dz = ((TGeoBBox*)vol->GetShape())->GetDZ();
fStart = -dz;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternZ::TGeoPatternZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternZ::~TGeoPatternZ()
{
}
void TGeoPatternZ::cd(Int_t idiv)
{
fCurrent=idiv;
fMatrix->SetDz(((IsReflected())?-1.:1.)*(fStart+idiv*fStep+0.5*fStep));
}
Bool_t TGeoPatternZ::IsOnBoundary(const Double_t *point) const
{
Double_t seg = (point[2]-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternZ::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Int_t ind = (Int_t)(1.+(point[2]-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
if (dir[2]>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
Double_t TGeoPatternZ::FindNextBoundary(Double_t *point, Double_t *dir, Int_t &indnext)
{
indnext = -1;
Double_t dist = TGeoShape::Big();
if (TMath::Abs(dir[2])<TGeoShape::Tolerance()) return dist;
if (fCurrent<0) {
Error("FindNextBoundary", "Must call FindNode first");
return dist;
}
Int_t inc = (dir[2]>0)?1:0;
dist = (fStep*(fCurrent+inc)-point[2])/dir[2];
if (dist<0.) Error("FindNextBoundary", "Negative distance d=%g",dist);
if (!inc) inc = -1;
indnext = fCurrent+inc;
return dist;
}
TGeoPatternFinder *TGeoPatternZ::MakeCopy(Bool_t reflect)
{
TGeoPatternZ *finder = new TGeoPatternZ(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternZ::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 3;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternParaX::TGeoPatternParaX()
{
}
TGeoPatternParaX::TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dx = ((TGeoPara*)vol->GetShape())->GetX();
fStart = -dx;
fEnd = dx;
fStep = 2*dx/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaX::TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t dx = ((TGeoPara*)vol->GetShape())->GetX();
fStart = -dx;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaX::TGeoPatternParaX(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaX::~TGeoPatternParaX()
{
}
void TGeoPatternParaX::cd(Int_t idiv)
{
fCurrent=idiv;
fMatrix->SetDx(fStart+idiv*fStep+0.5*fStep);
}
Bool_t TGeoPatternParaX::IsOnBoundary(const Double_t *point) const
{
Double_t txy = ((TGeoPara*)fVolume->GetShape())->GetTxy();
Double_t txz = ((TGeoPara*)fVolume->GetShape())->GetTxz();
Double_t tyz = ((TGeoPara*)fVolume->GetShape())->GetTyz();
Double_t xt = point[0]-txz*point[2]-txy*(point[1]-tyz*point[2]);
Double_t seg = (xt-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternParaX::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Double_t txy = ((TGeoPara*)fVolume->GetShape())->GetTxy();
Double_t txz = ((TGeoPara*)fVolume->GetShape())->GetTxz();
Double_t tyz = ((TGeoPara*)fVolume->GetShape())->GetTyz();
Double_t xt = point[0]-txz*point[2]-txy*(point[1]-tyz*point[2]);
Int_t ind = (Int_t)(1.+(xt-fStart)/fStep)-1;
if (dir) {
Double_t ttsq = txy*txy + (txz-txy*tyz)*(txz-txy*tyz);
Double_t divdirx = 1./TMath::Sqrt(1.+ttsq);
Double_t divdiry = -txy*divdirx;
Double_t divdirz = -(txz-txy*tyz)*divdirx;
Double_t dot = dir[0]*divdirx + dir[1]*divdiry + dir[2]*divdirz;
fNextIndex = ind;
if (dot>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternParaX::MakeCopy(Bool_t reflect)
{
TGeoPatternParaX *finder = new TGeoPatternParaX(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternParaX::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 1;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternParaY::TGeoPatternParaY()
{
fTxy = 0;
}
TGeoPatternParaY::TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
fTxy = ((TGeoPara*)vol->GetShape())->GetTxy();
Double_t dy = ((TGeoPara*)vol->GetShape())->GetY();
fStart = -dy;
fEnd = dy;
fStep = 2*dy/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaY::TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fTxy = ((TGeoPara*)vol->GetShape())->GetTxy();
Double_t dy = ((TGeoPara*)vol->GetShape())->GetY();
fStart = -dy;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaY::TGeoPatternParaY(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fTxy = ((TGeoPara*)vol->GetShape())->GetTxy();
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaY::~TGeoPatternParaY()
{
}
void TGeoPatternParaY::cd(Int_t idiv)
{
fCurrent = idiv;
Double_t dy = fStart+idiv*fStep+0.5*fStep;
fMatrix->SetDx(fTxy*dy);
fMatrix->SetDy(dy);
}
Bool_t TGeoPatternParaY::IsOnBoundary(const Double_t *point) const
{
Double_t tyz = ((TGeoPara*)fVolume->GetShape())->GetTyz();
Double_t yt = point[1]-tyz*point[2];
Double_t seg = (yt-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternParaY::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Double_t tyz = ((TGeoPara*)fVolume->GetShape())->GetTyz();
Double_t yt = point[1]-tyz*point[2];
Int_t ind = (Int_t)(1.+(yt-fStart)/fStep) - 1;
if (dir) {
Double_t divdiry = 1./TMath::Sqrt(1.+tyz*tyz);
Double_t divdirz = -tyz*divdiry;
Double_t dot = dir[1]*divdiry + dir[2]*divdirz;
fNextIndex = ind;
if (dot>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternParaY::MakeCopy(Bool_t reflect)
{
TGeoPatternParaY *finder = new TGeoPatternParaY(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternParaY::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 2;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternParaZ::TGeoPatternParaZ()
{
fTxz = 0;
fTyz = 0;
}
TGeoPatternParaZ::TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
fTxz = ((TGeoPara*)vol->GetShape())->GetTxz();
fTyz = ((TGeoPara*)vol->GetShape())->GetTyz();
Double_t dz = ((TGeoPara*)vol->GetShape())->GetZ();
fStart = -dz;
fEnd = dz;
fStep = 2*dz/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaZ::TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fTxz = ((TGeoPara*)vol->GetShape())->GetTxz();
fTyz = ((TGeoPara*)vol->GetShape())->GetTyz();
Double_t dz = ((TGeoPara*)vol->GetShape())->GetZ();
fStart = -dz;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaZ::TGeoPatternParaZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fTxz = ((TGeoPara*)vol->GetShape())->GetTxz();
fTyz = ((TGeoPara*)vol->GetShape())->GetTyz();
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternParaZ::~TGeoPatternParaZ()
{
}
void TGeoPatternParaZ::cd(Int_t idiv)
{
fCurrent = idiv;
Double_t dz = fStart+idiv*fStep+0.5*fStep;
fMatrix->SetDx(fTxz*dz);
fMatrix->SetDy(fTyz*dz);
fMatrix->SetDz((IsReflected())?-dz:dz);
}
Bool_t TGeoPatternParaZ::IsOnBoundary(const Double_t *point) const
{
Double_t seg = (point[2]-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternParaZ::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Double_t zt = point[2];
Int_t ind = (Int_t)(1.+(zt-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
if (dir[2]>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternParaZ::MakeCopy(Bool_t reflect)
{
TGeoPatternParaZ *finder = new TGeoPatternParaZ(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternParaZ::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 3;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternTrapZ::TGeoPatternTrapZ()
{
fTxz = 0;
fTyz = 0;
}
TGeoPatternTrapZ::TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t theta = ((TGeoTrap*)vol->GetShape())->GetTheta();
Double_t phi = ((TGeoTrap*)vol->GetShape())->GetPhi();
fTxz = TMath::Tan(theta*TMath::DegToRad())*TMath::Cos(phi*TMath::DegToRad());
fTyz = TMath::Tan(theta*TMath::DegToRad())*TMath::Sin(phi*TMath::DegToRad());
Double_t dz = ((TGeoArb8*)vol->GetShape())->GetDz();
fStart = -dz;
fEnd = dz;
fStep = 2*dz/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternTrapZ::TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t theta = ((TGeoTrap*)vol->GetShape())->GetTheta();
Double_t phi = ((TGeoTrap*)vol->GetShape())->GetPhi();
fTxz = TMath::Tan(theta*TMath::DegToRad())*TMath::Cos(phi*TMath::DegToRad());
fTyz = TMath::Tan(theta*TMath::DegToRad())*TMath::Sin(phi*TMath::DegToRad());
Double_t dz = ((TGeoArb8*)vol->GetShape())->GetDz();
fStart = -dz;
fEnd = fStart + ndivisions*step;
fStep = step;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternTrapZ::TGeoPatternTrapZ(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
Double_t theta = ((TGeoTrap*)vol->GetShape())->GetTheta();
Double_t phi = ((TGeoTrap*)vol->GetShape())->GetPhi();
fTxz = TMath::Tan(theta*TMath::DegToRad())*TMath::Cos(phi*TMath::DegToRad());
fTyz = TMath::Tan(theta*TMath::DegToRad())*TMath::Sin(phi*TMath::DegToRad());
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = new TGeoTranslation(0,0,0);
fMatrix->RegisterYourself();
}
TGeoPatternTrapZ::~TGeoPatternTrapZ()
{
}
void TGeoPatternTrapZ::cd(Int_t idiv)
{
fCurrent = idiv;
Double_t dz = fStart+idiv*fStep+0.5*fStep;
fMatrix->SetDx(fTxz*dz);
fMatrix->SetDy(fTyz*dz);
fMatrix->SetDz((IsReflected())?-dz:dz);
}
Bool_t TGeoPatternTrapZ::IsOnBoundary(const Double_t *point) const
{
Double_t seg = (point[2]-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternTrapZ::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Double_t zt = point[2];
Int_t ind = (Int_t)(1. + (zt-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
if (dir[2]>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternTrapZ::MakeCopy(Bool_t reflect)
{
TGeoPatternTrapZ *finder = new TGeoPatternTrapZ(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternTrapZ::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 3;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternCylR::TGeoPatternCylR()
{
fMatrix = 0;
}
TGeoPatternCylR::TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
fMatrix = gGeoIdentity;
}
TGeoPatternCylR::TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fStep = step;
fMatrix = gGeoIdentity;
}
TGeoPatternCylR::TGeoPatternCylR(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
fMatrix = gGeoIdentity;
}
TGeoPatternCylR::~TGeoPatternCylR()
{
}
Bool_t TGeoPatternCylR::IsOnBoundary(const Double_t *point) const
{
Double_t r = TMath::Sqrt(point[0]*point[0]+point[1]*point[1]);
Double_t seg = (r-fStart)/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternCylR::FindNode(Double_t *point, const Double_t *dir)
{
if (!fMatrix) fMatrix = gGeoIdentity;
TGeoNode *node = 0;
Double_t r = TMath::Sqrt(point[0]*point[0]+point[1]*point[1]);
Int_t ind = (Int_t)(1. + (r-fStart)/fStep) - 1;
if (dir) {
fNextIndex = ind;
Double_t dot = point[0]*dir[0] + point[1]*dir[1];
if (dot>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternCylR::MakeCopy(Bool_t reflect)
{
TGeoPatternCylR *finder = new TGeoPatternCylR(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternCylR::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 1;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternCylPhi::TGeoPatternCylPhi()
{
fSinCos = 0;
}
TGeoPatternCylPhi::TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = 0;
fEnd = 0;
fStep = 0;
fMatrix = 0;
fSinCos = 0;
}
TGeoPatternCylPhi::TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fStep = step;
fSinCos = 0;
}
TGeoPatternCylPhi::TGeoPatternCylPhi(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
if (fStart<0) fStart+=360;
fEnd = end;
if (fEnd<0) fEnd+=360;
if ((end-start)<0)
fStep = (end-start+360)/ndivisions;
else
fStep = (end-start)/ndivisions;
fMatrix = new TGeoRotation();
fMatrix->RegisterYourself();
fSinCos = new Double_t[2*ndivisions];
for (Int_t idiv = 0; idiv<ndivisions; idiv++) {
fSinCos[2*idiv] = TMath::Sin(TMath::DegToRad()*(start+0.5*fStep+idiv*fStep));
fSinCos[2*idiv+1] = TMath::Cos(TMath::DegToRad()*(start+0.5*fStep+idiv*fStep));
}
}
TGeoPatternCylPhi::~TGeoPatternCylPhi()
{
if (fSinCos) delete [] fSinCos;
}
void TGeoPatternCylPhi::cd(Int_t idiv)
{
fCurrent = idiv;
if (!fSinCos) {
fSinCos = new Double_t[2*fNdivisions];
for (Int_t i = 0; i<fNdivisions; i++) {
fSinCos[2*i] = TMath::Sin(TMath::DegToRad()*(fStart+0.5*fStep+i*fStep));
fSinCos[2*i+1] = TMath::Cos(TMath::DegToRad()*(fStart+0.5*fStep+i*fStep));
}
}
((TGeoRotation*)fMatrix)->FastRotZ(&fSinCos[2*idiv]);
}
Bool_t TGeoPatternCylPhi::IsOnBoundary(const Double_t *point) const
{
Double_t phi = TMath::ATan2(point[1], point[0])*TMath::RadToDeg();
if (phi<0) phi += 360;
Double_t ddp = phi - fStart;
if (ddp<0) ddp+=360;
Double_t seg = ddp/fStep;
Double_t diff = seg - Int_t(seg);
if (diff>0.5) diff = 1.-diff;
if (diff<1e-8) return kTRUE;
return kFALSE;
}
TGeoNode *TGeoPatternCylPhi::FindNode(Double_t *point, const Double_t *dir)
{
TGeoNode *node = 0;
Double_t phi = TMath::ATan2(point[1], point[0])*TMath::RadToDeg();
if (phi<0) phi += 360;
Double_t ddp = phi - fStart;
if (ddp<0) ddp+=360;
Int_t ind = (Int_t)(1. + ddp/fStep) - 1;
if (dir) {
fNextIndex = ind;
Double_t dot = point[0]*dir[1]-point[1]*dir[0];
if (dot>0) fNextIndex++;
else fNextIndex--;
if ((fNextIndex<0) || (fNextIndex>=fNdivisions)) fNextIndex = -1;
}
if ((ind<0) || (ind>=fNdivisions)) return node;
node = GetNodeOffset(ind);
cd(ind);
return node;
}
TGeoPatternFinder *TGeoPatternCylPhi::MakeCopy(Bool_t reflect)
{
TGeoPatternCylPhi *finder = new TGeoPatternCylPhi(*this);
if (!reflect) return finder;
Reflect();
TGeoRotation *rot = new TGeoRotation(*fMatrix);
rot->ReflectZ(kTRUE);
rot->ReflectZ(kFALSE);
rot->RegisterYourself();
fMatrix = rot;
return finder;
}
void TGeoPatternCylPhi::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 2;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternSphR::TGeoPatternSphR()
{
}
TGeoPatternSphR::TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
}
TGeoPatternSphR::TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fStep = step;
}
TGeoPatternSphR::TGeoPatternSphR(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
}
TGeoPatternSphR::~TGeoPatternSphR()
{
}
TGeoNode *TGeoPatternSphR::FindNode(Double_t * , const Double_t * )
{
return 0;
}
TGeoPatternFinder *TGeoPatternSphR::MakeCopy(Bool_t reflect)
{
TGeoPatternSphR *finder = new TGeoPatternSphR(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternSphR::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 1;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternSphTheta::TGeoPatternSphTheta()
{
}
TGeoPatternSphTheta::TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
}
TGeoPatternSphTheta::TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fStep = step;
}
TGeoPatternSphTheta::TGeoPatternSphTheta(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
}
TGeoPatternSphTheta::~TGeoPatternSphTheta()
{
}
TGeoNode *TGeoPatternSphTheta::FindNode(Double_t * , const Double_t * )
{
return 0;
}
TGeoPatternFinder *TGeoPatternSphTheta::MakeCopy(Bool_t reflect)
{
TGeoPatternSphTheta *finder = new TGeoPatternSphTheta(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternSphTheta::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 2;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternSphPhi::TGeoPatternSphPhi()
{
}
TGeoPatternSphPhi::TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions)
:TGeoPatternFinder(vol, ndivisions)
{
}
TGeoPatternSphPhi::TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions, Double_t step)
:TGeoPatternFinder(vol, ndivisions)
{
fStep = step;
}
TGeoPatternSphPhi::TGeoPatternSphPhi(TGeoVolume *vol, Int_t ndivisions, Double_t start, Double_t end)
:TGeoPatternFinder(vol, ndivisions)
{
fStart = start;
fEnd = end;
fStep = (end - start)/ndivisions;
}
TGeoPatternSphPhi::~TGeoPatternSphPhi()
{
}
TGeoNode *TGeoPatternSphPhi::FindNode(Double_t * , const Double_t * )
{
return 0;
}
TGeoPatternFinder *TGeoPatternSphPhi::MakeCopy(Bool_t reflect)
{
TGeoPatternSphPhi *finder = new TGeoPatternSphPhi(*this);
if (!reflect) return finder;
Reflect();
TGeoCombiTrans *combi = new TGeoCombiTrans(*fMatrix);
combi->ReflectZ(kTRUE);
combi->ReflectZ(kFALSE);
combi->RegisterYourself();
fMatrix = combi;
return finder;
}
void TGeoPatternSphPhi::SavePrimitive(ostream &out, Option_t * )
{
Int_t iaxis = 3;
out << iaxis << ", " << fNdivisions << ", " << fStart << ", " << fStep;
}
TGeoPatternHoneycomb::TGeoPatternHoneycomb()
{
fNrows = 0;
fAxisOnRows = 0;
fNdivisions = 0;
fStart = 0;
}
TGeoPatternHoneycomb::TGeoPatternHoneycomb(TGeoVolume *vol, Int_t nrows)
:TGeoPatternFinder(vol, nrows)
{
fNrows = nrows;
fAxisOnRows = 0;
fNdivisions = 0;
fStart = 0;
}
TGeoPatternHoneycomb::TGeoPatternHoneycomb(const TGeoPatternHoneycomb& pfh) :
TGeoPatternFinder(pfh),
fNrows(pfh.fNrows),
fAxisOnRows(pfh.fAxisOnRows),
fNdivisions(pfh.fNdivisions),
fStart(pfh.fStart)
{
}
TGeoPatternHoneycomb& TGeoPatternHoneycomb::operator=(const TGeoPatternHoneycomb& pfh)
{
if(this!=&pfh) {
TGeoPatternFinder::operator=(pfh);
fNrows=pfh.fNrows;
fAxisOnRows=pfh.fAxisOnRows;
fNdivisions=pfh.fNdivisions;
fStart=pfh.fStart;
}
return *this;
}
TGeoPatternHoneycomb::~TGeoPatternHoneycomb()
{
}
TGeoNode *TGeoPatternHoneycomb::FindNode(Double_t * , const Double_t * )
{
return 0;
}
TGeoPatternFinder.cxx:100 TGeoPatternFinder.cxx:101 TGeoPatternFinder.cxx:102 TGeoPatternFinder.cxx:103 TGeoPatternFinder.cxx:104 TGeoPatternFinder.cxx:105 TGeoPatternFinder.cxx:106 TGeoPatternFinder.cxx:107 TGeoPatternFinder.cxx:108 TGeoPatternFinder.cxx:109 TGeoPatternFinder.cxx:110 TGeoPatternFinder.cxx:111 TGeoPatternFinder.cxx:112 TGeoPatternFinder.cxx:113 TGeoPatternFinder.cxx:114 TGeoPatternFinder.cxx:115 TGeoPatternFinder.cxx:116 TGeoPatternFinder.cxx:117 TGeoPatternFinder.cxx:118 TGeoPatternFinder.cxx:119 TGeoPatternFinder.cxx:120 TGeoPatternFinder.cxx:121 TGeoPatternFinder.cxx:122 TGeoPatternFinder.cxx:123 TGeoPatternFinder.cxx:124 TGeoPatternFinder.cxx:125 TGeoPatternFinder.cxx:126 TGeoPatternFinder.cxx:127 TGeoPatternFinder.cxx:128 TGeoPatternFinder.cxx:129 TGeoPatternFinder.cxx:130 TGeoPatternFinder.cxx:131 TGeoPatternFinder.cxx:132 TGeoPatternFinder.cxx:133 TGeoPatternFinder.cxx:134 TGeoPatternFinder.cxx:135 TGeoPatternFinder.cxx:136 TGeoPatternFinder.cxx:137 TGeoPatternFinder.cxx:138 TGeoPatternFinder.cxx:139 TGeoPatternFinder.cxx:140 TGeoPatternFinder.cxx:141 TGeoPatternFinder.cxx:142 TGeoPatternFinder.cxx:143 TGeoPatternFinder.cxx:144 TGeoPatternFinder.cxx:145 TGeoPatternFinder.cxx:146 TGeoPatternFinder.cxx:147 TGeoPatternFinder.cxx:148 TGeoPatternFinder.cxx:149 TGeoPatternFinder.cxx:150 TGeoPatternFinder.cxx:151 TGeoPatternFinder.cxx:152 TGeoPatternFinder.cxx:153 TGeoPatternFinder.cxx:154 TGeoPatternFinder.cxx:155 TGeoPatternFinder.cxx:156 TGeoPatternFinder.cxx:157 TGeoPatternFinder.cxx:158 TGeoPatternFinder.cxx:159 TGeoPatternFinder.cxx:160 TGeoPatternFinder.cxx:161 TGeoPatternFinder.cxx:162 TGeoPatternFinder.cxx:163 TGeoPatternFinder.cxx:164 TGeoPatternFinder.cxx:165 TGeoPatternFinder.cxx:166 TGeoPatternFinder.cxx:167 TGeoPatternFinder.cxx:168 TGeoPatternFinder.cxx:169 TGeoPatternFinder.cxx:170 TGeoPatternFinder.cxx:171 TGeoPatternFinder.cxx:172 TGeoPatternFinder.cxx:173 TGeoPatternFinder.cxx:174 TGeoPatternFinder.cxx:175 TGeoPatternFinder.cxx:176 TGeoPatternFinder.cxx:177 TGeoPatternFinder.cxx:178 TGeoPatternFinder.cxx:179 TGeoPatternFinder.cxx:180 TGeoPatternFinder.cxx:181 TGeoPatternFinder.cxx:182 TGeoPatternFinder.cxx:183 TGeoPatternFinder.cxx:184 TGeoPatternFinder.cxx:185 TGeoPatternFinder.cxx:186 TGeoPatternFinder.cxx:187 TGeoPatternFinder.cxx:188 TGeoPatternFinder.cxx:189 TGeoPatternFinder.cxx:190 TGeoPatternFinder.cxx:191 TGeoPatternFinder.cxx:192 TGeoPatternFinder.cxx:193 TGeoPatternFinder.cxx:194 TGeoPatternFinder.cxx:195 TGeoPatternFinder.cxx:196 TGeoPatternFinder.cxx:197 TGeoPatternFinder.cxx:198 TGeoPatternFinder.cxx:199 TGeoPatternFinder.cxx:200 TGeoPatternFinder.cxx:201 TGeoPatternFinder.cxx:202 TGeoPatternFinder.cxx:203 TGeoPatternFinder.cxx:204 TGeoPatternFinder.cxx:205 TGeoPatternFinder.cxx:206 TGeoPatternFinder.cxx:207 TGeoPatternFinder.cxx:208 TGeoPatternFinder.cxx:209 TGeoPatternFinder.cxx:210 TGeoPatternFinder.cxx:211 TGeoPatternFinder.cxx:212 TGeoPatternFinder.cxx:213 TGeoPatternFinder.cxx:214 TGeoPatternFinder.cxx:215 TGeoPatternFinder.cxx:216 TGeoPatternFinder.cxx:217 TGeoPatternFinder.cxx:218 TGeoPatternFinder.cxx:219 TGeoPatternFinder.cxx:220 TGeoPatternFinder.cxx:221 TGeoPatternFinder.cxx:222 TGeoPatternFinder.cxx:223 TGeoPatternFinder.cxx:224 TGeoPatternFinder.cxx:225 TGeoPatternFinder.cxx:226 TGeoPatternFinder.cxx:227 TGeoPatternFinder.cxx:228 TGeoPatternFinder.cxx:229 TGeoPatternFinder.cxx:230 TGeoPatternFinder.cxx:231 TGeoPatternFinder.cxx:232 TGeoPatternFinder.cxx:233 TGeoPatternFinder.cxx:234 TGeoPatternFinder.cxx:235 TGeoPatternFinder.cxx:236 TGeoPatternFinder.cxx:237 TGeoPatternFinder.cxx:238 TGeoPatternFinder.cxx:239 TGeoPatternFinder.cxx:240 TGeoPatternFinder.cxx:241 TGeoPatternFinder.cxx:242 TGeoPatternFinder.cxx:243 TGeoPatternFinder.cxx:244 TGeoPatternFinder.cxx:245 TGeoPatternFinder.cxx:246 TGeoPatternFinder.cxx:247 TGeoPatternFinder.cxx:248 TGeoPatternFinder.cxx:249 TGeoPatternFinder.cxx:250 TGeoPatternFinder.cxx:251 TGeoPatternFinder.cxx:252 TGeoPatternFinder.cxx:253 TGeoPatternFinder.cxx:254 TGeoPatternFinder.cxx:255 TGeoPatternFinder.cxx:256 TGeoPatternFinder.cxx:257 TGeoPatternFinder.cxx:258 TGeoPatternFinder.cxx:259 TGeoPatternFinder.cxx:260 TGeoPatternFinder.cxx:261 TGeoPatternFinder.cxx:262 TGeoPatternFinder.cxx:263 TGeoPatternFinder.cxx:264 TGeoPatternFinder.cxx:265 TGeoPatternFinder.cxx:266 TGeoPatternFinder.cxx:267 TGeoPatternFinder.cxx:268 TGeoPatternFinder.cxx:269 TGeoPatternFinder.cxx:270 TGeoPatternFinder.cxx:271 TGeoPatternFinder.cxx:272 TGeoPatternFinder.cxx:273 TGeoPatternFinder.cxx:274 TGeoPatternFinder.cxx:275 TGeoPatternFinder.cxx:276 TGeoPatternFinder.cxx:277 TGeoPatternFinder.cxx:278 TGeoPatternFinder.cxx:279 TGeoPatternFinder.cxx:280 TGeoPatternFinder.cxx:281 TGeoPatternFinder.cxx:282 TGeoPatternFinder.cxx:283 TGeoPatternFinder.cxx:284 TGeoPatternFinder.cxx:285 TGeoPatternFinder.cxx:286 TGeoPatternFinder.cxx:287 TGeoPatternFinder.cxx:288 TGeoPatternFinder.cxx:289 TGeoPatternFinder.cxx:290 TGeoPatternFinder.cxx:291 TGeoPatternFinder.cxx:292 TGeoPatternFinder.cxx:293 TGeoPatternFinder.cxx:294 TGeoPatternFinder.cxx:295 TGeoPatternFinder.cxx:296 TGeoPatternFinder.cxx:297 TGeoPatternFinder.cxx:298 TGeoPatternFinder.cxx:299 TGeoPatternFinder.cxx:300 TGeoPatternFinder.cxx:301 TGeoPatternFinder.cxx:302 TGeoPatternFinder.cxx:303 TGeoPatternFinder.cxx:304 TGeoPatternFinder.cxx:305 TGeoPatternFinder.cxx:306 TGeoPatternFinder.cxx:307 TGeoPatternFinder.cxx:308 TGeoPatternFinder.cxx:309 TGeoPatternFinder.cxx:310 TGeoPatternFinder.cxx:311 TGeoPatternFinder.cxx:312 TGeoPatternFinder.cxx:313 TGeoPatternFinder.cxx:314 TGeoPatternFinder.cxx:315 TGeoPatternFinder.cxx:316 TGeoPatternFinder.cxx:317 TGeoPatternFinder.cxx:318 TGeoPatternFinder.cxx:319 TGeoPatternFinder.cxx:320 TGeoPatternFinder.cxx:321 TGeoPatternFinder.cxx:322 TGeoPatternFinder.cxx:323 TGeoPatternFinder.cxx:324 TGeoPatternFinder.cxx:325 TGeoPatternFinder.cxx:326 TGeoPatternFinder.cxx:327 TGeoPatternFinder.cxx:328 TGeoPatternFinder.cxx:329 TGeoPatternFinder.cxx:330 TGeoPatternFinder.cxx:331 TGeoPatternFinder.cxx:332 TGeoPatternFinder.cxx:333 TGeoPatternFinder.cxx:334 TGeoPatternFinder.cxx:335 TGeoPatternFinder.cxx:336 TGeoPatternFinder.cxx:337 TGeoPatternFinder.cxx:338 TGeoPatternFinder.cxx:339 TGeoPatternFinder.cxx:340 TGeoPatternFinder.cxx:341 TGeoPatternFinder.cxx:342 TGeoPatternFinder.cxx:343 TGeoPatternFinder.cxx:344 TGeoPatternFinder.cxx:345 TGeoPatternFinder.cxx:346 TGeoPatternFinder.cxx:347 TGeoPatternFinder.cxx:348 TGeoPatternFinder.cxx:349 TGeoPatternFinder.cxx:350 TGeoPatternFinder.cxx:351 TGeoPatternFinder.cxx:352 TGeoPatternFinder.cxx:353 TGeoPatternFinder.cxx:354 TGeoPatternFinder.cxx:355 TGeoPatternFinder.cxx:356 TGeoPatternFinder.cxx:357 TGeoPatternFinder.cxx:358 TGeoPatternFinder.cxx:359 TGeoPatternFinder.cxx:360 TGeoPatternFinder.cxx:361 TGeoPatternFinder.cxx:362 TGeoPatternFinder.cxx:363 TGeoPatternFinder.cxx:364 TGeoPatternFinder.cxx:365 TGeoPatternFinder.cxx:366 TGeoPatternFinder.cxx:367 TGeoPatternFinder.cxx:368 TGeoPatternFinder.cxx:369 TGeoPatternFinder.cxx:370 TGeoPatternFinder.cxx:371 TGeoPatternFinder.cxx:372 TGeoPatternFinder.cxx:373 TGeoPatternFinder.cxx:374 TGeoPatternFinder.cxx:375 TGeoPatternFinder.cxx:376 TGeoPatternFinder.cxx:377 TGeoPatternFinder.cxx:378 TGeoPatternFinder.cxx:379 TGeoPatternFinder.cxx:380 TGeoPatternFinder.cxx:381 TGeoPatternFinder.cxx:382 TGeoPatternFinder.cxx:383 TGeoPatternFinder.cxx:384 TGeoPatternFinder.cxx:385 TGeoPatternFinder.cxx:386 TGeoPatternFinder.cxx:387 TGeoPatternFinder.cxx:388 TGeoPatternFinder.cxx:389 TGeoPatternFinder.cxx:390 TGeoPatternFinder.cxx:391 TGeoPatternFinder.cxx:392 TGeoPatternFinder.cxx:393 TGeoPatternFinder.cxx:394 TGeoPatternFinder.cxx:395 TGeoPatternFinder.cxx:396 TGeoPatternFinder.cxx:397 TGeoPatternFinder.cxx:398 TGeoPatternFinder.cxx:399 TGeoPatternFinder.cxx:400 TGeoPatternFinder.cxx:401 TGeoPatternFinder.cxx:402 TGeoPatternFinder.cxx:403 TGeoPatternFinder.cxx:404 TGeoPatternFinder.cxx:405 TGeoPatternFinder.cxx:406 TGeoPatternFinder.cxx:407 TGeoPatternFinder.cxx:408 TGeoPatternFinder.cxx:409 TGeoPatternFinder.cxx:410 TGeoPatternFinder.cxx:411 TGeoPatternFinder.cxx:412 TGeoPatternFinder.cxx:413 TGeoPatternFinder.cxx:414 TGeoPatternFinder.cxx:415 TGeoPatternFinder.cxx:416 TGeoPatternFinder.cxx:417 TGeoPatternFinder.cxx:418 TGeoPatternFinder.cxx:419 TGeoPatternFinder.cxx:420 TGeoPatternFinder.cxx:421 TGeoPatternFinder.cxx:422 TGeoPatternFinder.cxx:423 TGeoPatternFinder.cxx:424 TGeoPatternFinder.cxx:425 TGeoPatternFinder.cxx:426 TGeoPatternFinder.cxx:427 TGeoPatternFinder.cxx:428 TGeoPatternFinder.cxx:429 TGeoPatternFinder.cxx:430 TGeoPatternFinder.cxx:431 TGeoPatternFinder.cxx:432 TGeoPatternFinder.cxx:433 TGeoPatternFinder.cxx:434 TGeoPatternFinder.cxx:435 TGeoPatternFinder.cxx:436 TGeoPatternFinder.cxx:437 TGeoPatternFinder.cxx:438 TGeoPatternFinder.cxx:439 TGeoPatternFinder.cxx:440 TGeoPatternFinder.cxx:441 TGeoPatternFinder.cxx:442 TGeoPatternFinder.cxx:443 TGeoPatternFinder.cxx:444 TGeoPatternFinder.cxx:445 TGeoPatternFinder.cxx:446 TGeoPatternFinder.cxx:447 TGeoPatternFinder.cxx:448 TGeoPatternFinder.cxx:449 TGeoPatternFinder.cxx:450 TGeoPatternFinder.cxx:451 TGeoPatternFinder.cxx:452 TGeoPatternFinder.cxx:453 TGeoPatternFinder.cxx:454 TGeoPatternFinder.cxx:455 TGeoPatternFinder.cxx:456 TGeoPatternFinder.cxx:457 TGeoPatternFinder.cxx:458 TGeoPatternFinder.cxx:459 TGeoPatternFinder.cxx:460 TGeoPatternFinder.cxx:461 TGeoPatternFinder.cxx:462 TGeoPatternFinder.cxx:463 TGeoPatternFinder.cxx:464 TGeoPatternFinder.cxx:465 TGeoPatternFinder.cxx:466 TGeoPatternFinder.cxx:467 TGeoPatternFinder.cxx:468 TGeoPatternFinder.cxx:469 TGeoPatternFinder.cxx:470 TGeoPatternFinder.cxx:471 TGeoPatternFinder.cxx:472 TGeoPatternFinder.cxx:473 TGeoPatternFinder.cxx:474 TGeoPatternFinder.cxx:475 TGeoPatternFinder.cxx:476 TGeoPatternFinder.cxx:477 TGeoPatternFinder.cxx:478 TGeoPatternFinder.cxx:479 TGeoPatternFinder.cxx:480 TGeoPatternFinder.cxx:481 TGeoPatternFinder.cxx:482 TGeoPatternFinder.cxx:483 TGeoPatternFinder.cxx:484 TGeoPatternFinder.cxx:485 TGeoPatternFinder.cxx:486 TGeoPatternFinder.cxx:487 TGeoPatternFinder.cxx:488 TGeoPatternFinder.cxx:489 TGeoPatternFinder.cxx:490 TGeoPatternFinder.cxx:491 TGeoPatternFinder.cxx:492 TGeoPatternFinder.cxx:493 TGeoPatternFinder.cxx:494 TGeoPatternFinder.cxx:495 TGeoPatternFinder.cxx:496 TGeoPatternFinder.cxx:497 TGeoPatternFinder.cxx:498 TGeoPatternFinder.cxx:499 TGeoPatternFinder.cxx:500 TGeoPatternFinder.cxx:501 TGeoPatternFinder.cxx:502 TGeoPatternFinder.cxx:503 TGeoPatternFinder.cxx:504 TGeoPatternFinder.cxx:505 TGeoPatternFinder.cxx:506 TGeoPatternFinder.cxx:507 TGeoPatternFinder.cxx:508 TGeoPatternFinder.cxx:509 TGeoPatternFinder.cxx:510 TGeoPatternFinder.cxx:511 TGeoPatternFinder.cxx:512 TGeoPatternFinder.cxx:513 TGeoPatternFinder.cxx:514 TGeoPatternFinder.cxx:515 TGeoPatternFinder.cxx:516 TGeoPatternFinder.cxx:517 TGeoPatternFinder.cxx:518 TGeoPatternFinder.cxx:519 TGeoPatternFinder.cxx:520 TGeoPatternFinder.cxx:521 TGeoPatternFinder.cxx:522 TGeoPatternFinder.cxx:523 TGeoPatternFinder.cxx:524 TGeoPatternFinder.cxx:525 TGeoPatternFinder.cxx:526 TGeoPatternFinder.cxx:527 TGeoPatternFinder.cxx:528 TGeoPatternFinder.cxx:529 TGeoPatternFinder.cxx:530 TGeoPatternFinder.cxx:531 TGeoPatternFinder.cxx:532 TGeoPatternFinder.cxx:533 TGeoPatternFinder.cxx:534 TGeoPatternFinder.cxx:535 TGeoPatternFinder.cxx:536 TGeoPatternFinder.cxx:537 TGeoPatternFinder.cxx:538 TGeoPatternFinder.cxx:539 TGeoPatternFinder.cxx:540 TGeoPatternFinder.cxx:541 TGeoPatternFinder.cxx:542 TGeoPatternFinder.cxx:543 TGeoPatternFinder.cxx:544 TGeoPatternFinder.cxx:545 TGeoPatternFinder.cxx:546 TGeoPatternFinder.cxx:547 TGeoPatternFinder.cxx:548 TGeoPatternFinder.cxx:549 TGeoPatternFinder.cxx:550 TGeoPatternFinder.cxx:551 TGeoPatternFinder.cxx:552 TGeoPatternFinder.cxx:553 TGeoPatternFinder.cxx:554 TGeoPatternFinder.cxx:555 TGeoPatternFinder.cxx:556 TGeoPatternFinder.cxx:557 TGeoPatternFinder.cxx:558 TGeoPatternFinder.cxx:559 TGeoPatternFinder.cxx:560 TGeoPatternFinder.cxx:561 TGeoPatternFinder.cxx:562 TGeoPatternFinder.cxx:563 TGeoPatternFinder.cxx:564 TGeoPatternFinder.cxx:565 TGeoPatternFinder.cxx:566 TGeoPatternFinder.cxx:567 TGeoPatternFinder.cxx:568 TGeoPatternFinder.cxx:569 TGeoPatternFinder.cxx:570 TGeoPatternFinder.cxx:571 TGeoPatternFinder.cxx:572 TGeoPatternFinder.cxx:573 TGeoPatternFinder.cxx:574 TGeoPatternFinder.cxx:575 TGeoPatternFinder.cxx:576 TGeoPatternFinder.cxx:577 TGeoPatternFinder.cxx:578 TGeoPatternFinder.cxx:579 TGeoPatternFinder.cxx:580 TGeoPatternFinder.cxx:581 TGeoPatternFinder.cxx:582 TGeoPatternFinder.cxx:583 TGeoPatternFinder.cxx:584 TGeoPatternFinder.cxx:585 TGeoPatternFinder.cxx:586 TGeoPatternFinder.cxx:587 TGeoPatternFinder.cxx:588 TGeoPatternFinder.cxx:589 TGeoPatternFinder.cxx:590 TGeoPatternFinder.cxx:591 TGeoPatternFinder.cxx:592 TGeoPatternFinder.cxx:593 TGeoPatternFinder.cxx:594 TGeoPatternFinder.cxx:595 TGeoPatternFinder.cxx:596 TGeoPatternFinder.cxx:597 TGeoPatternFinder.cxx:598 TGeoPatternFinder.cxx:599 TGeoPatternFinder.cxx:600 TGeoPatternFinder.cxx:601 TGeoPatternFinder.cxx:602 TGeoPatternFinder.cxx:603 TGeoPatternFinder.cxx:604 TGeoPatternFinder.cxx:605 TGeoPatternFinder.cxx:606 TGeoPatternFinder.cxx:607 TGeoPatternFinder.cxx:608 TGeoPatternFinder.cxx:609 TGeoPatternFinder.cxx:610 TGeoPatternFinder.cxx:611 TGeoPatternFinder.cxx:612 TGeoPatternFinder.cxx:613 TGeoPatternFinder.cxx:614 TGeoPatternFinder.cxx:615 TGeoPatternFinder.cxx:616 TGeoPatternFinder.cxx:617 TGeoPatternFinder.cxx:618 TGeoPatternFinder.cxx:619 TGeoPatternFinder.cxx:620 TGeoPatternFinder.cxx:621 TGeoPatternFinder.cxx:622 TGeoPatternFinder.cxx:623 TGeoPatternFinder.cxx:624 TGeoPatternFinder.cxx:625 TGeoPatternFinder.cxx:626 TGeoPatternFinder.cxx:627 TGeoPatternFinder.cxx:628 TGeoPatternFinder.cxx:629 TGeoPatternFinder.cxx:630 TGeoPatternFinder.cxx:631 TGeoPatternFinder.cxx:632 TGeoPatternFinder.cxx:633 TGeoPatternFinder.cxx:634 TGeoPatternFinder.cxx:635 TGeoPatternFinder.cxx:636 TGeoPatternFinder.cxx:637 TGeoPatternFinder.cxx:638 TGeoPatternFinder.cxx:639 TGeoPatternFinder.cxx:640 TGeoPatternFinder.cxx:641 TGeoPatternFinder.cxx:642 TGeoPatternFinder.cxx:643 TGeoPatternFinder.cxx:644 TGeoPatternFinder.cxx:645 TGeoPatternFinder.cxx:646 TGeoPatternFinder.cxx:647 TGeoPatternFinder.cxx:648 TGeoPatternFinder.cxx:649 TGeoPatternFinder.cxx:650 TGeoPatternFinder.cxx:651 TGeoPatternFinder.cxx:652 TGeoPatternFinder.cxx:653 TGeoPatternFinder.cxx:654 TGeoPatternFinder.cxx:655 TGeoPatternFinder.cxx:656 TGeoPatternFinder.cxx:657 TGeoPatternFinder.cxx:658 TGeoPatternFinder.cxx:659 TGeoPatternFinder.cxx:660 TGeoPatternFinder.cxx:661 TGeoPatternFinder.cxx:662 TGeoPatternFinder.cxx:663 TGeoPatternFinder.cxx:664 TGeoPatternFinder.cxx:665 TGeoPatternFinder.cxx:666 TGeoPatternFinder.cxx:667 TGeoPatternFinder.cxx:668 TGeoPatternFinder.cxx:669 TGeoPatternFinder.cxx:670 TGeoPatternFinder.cxx:671 TGeoPatternFinder.cxx:672 TGeoPatternFinder.cxx:673 TGeoPatternFinder.cxx:674 TGeoPatternFinder.cxx:675 TGeoPatternFinder.cxx:676 TGeoPatternFinder.cxx:677 TGeoPatternFinder.cxx:678 TGeoPatternFinder.cxx:679 TGeoPatternFinder.cxx:680 TGeoPatternFinder.cxx:681 TGeoPatternFinder.cxx:682 TGeoPatternFinder.cxx:683 TGeoPatternFinder.cxx:684 TGeoPatternFinder.cxx:685 TGeoPatternFinder.cxx:686 TGeoPatternFinder.cxx:687 TGeoPatternFinder.cxx:688 TGeoPatternFinder.cxx:689 TGeoPatternFinder.cxx:690 TGeoPatternFinder.cxx:691 TGeoPatternFinder.cxx:692 TGeoPatternFinder.cxx:693 TGeoPatternFinder.cxx:694 TGeoPatternFinder.cxx:695 TGeoPatternFinder.cxx:696 TGeoPatternFinder.cxx:697 TGeoPatternFinder.cxx:698 TGeoPatternFinder.cxx:699 TGeoPatternFinder.cxx:700 TGeoPatternFinder.cxx:701 TGeoPatternFinder.cxx:702 TGeoPatternFinder.cxx:703 TGeoPatternFinder.cxx:704 TGeoPatternFinder.cxx:705 TGeoPatternFinder.cxx:706 TGeoPatternFinder.cxx:707 TGeoPatternFinder.cxx:708 TGeoPatternFinder.cxx:709 TGeoPatternFinder.cxx:710 TGeoPatternFinder.cxx:711 TGeoPatternFinder.cxx:712 TGeoPatternFinder.cxx:713 TGeoPatternFinder.cxx:714 TGeoPatternFinder.cxx:715 TGeoPatternFinder.cxx:716 TGeoPatternFinder.cxx:717 TGeoPatternFinder.cxx:718 TGeoPatternFinder.cxx:719 TGeoPatternFinder.cxx:720 TGeoPatternFinder.cxx:721 TGeoPatternFinder.cxx:722 TGeoPatternFinder.cxx:723 TGeoPatternFinder.cxx:724 TGeoPatternFinder.cxx:725 TGeoPatternFinder.cxx:726 TGeoPatternFinder.cxx:727 TGeoPatternFinder.cxx:728 TGeoPatternFinder.cxx:729 TGeoPatternFinder.cxx:730 TGeoPatternFinder.cxx:731 TGeoPatternFinder.cxx:732 TGeoPatternFinder.cxx:733 TGeoPatternFinder.cxx:734 TGeoPatternFinder.cxx:735 TGeoPatternFinder.cxx:736 TGeoPatternFinder.cxx:737 TGeoPatternFinder.cxx:738 TGeoPatternFinder.cxx:739 TGeoPatternFinder.cxx:740 TGeoPatternFinder.cxx:741 TGeoPatternFinder.cxx:742 TGeoPatternFinder.cxx:743 TGeoPatternFinder.cxx:744 TGeoPatternFinder.cxx:745 TGeoPatternFinder.cxx:746 TGeoPatternFinder.cxx:747 TGeoPatternFinder.cxx:748 TGeoPatternFinder.cxx:749 TGeoPatternFinder.cxx:750 TGeoPatternFinder.cxx:751 TGeoPatternFinder.cxx:752 TGeoPatternFinder.cxx:753 TGeoPatternFinder.cxx:754 TGeoPatternFinder.cxx:755 TGeoPatternFinder.cxx:756 TGeoPatternFinder.cxx:757 TGeoPatternFinder.cxx:758 TGeoPatternFinder.cxx:759 TGeoPatternFinder.cxx:760 TGeoPatternFinder.cxx:761 TGeoPatternFinder.cxx:762 TGeoPatternFinder.cxx:763 TGeoPatternFinder.cxx:764 TGeoPatternFinder.cxx:765 TGeoPatternFinder.cxx:766 TGeoPatternFinder.cxx:767 TGeoPatternFinder.cxx:768 TGeoPatternFinder.cxx:769 TGeoPatternFinder.cxx:770 TGeoPatternFinder.cxx:771 TGeoPatternFinder.cxx:772 TGeoPatternFinder.cxx:773 TGeoPatternFinder.cxx:774 TGeoPatternFinder.cxx:775 TGeoPatternFinder.cxx:776 TGeoPatternFinder.cxx:777 TGeoPatternFinder.cxx:778 TGeoPatternFinder.cxx:779 TGeoPatternFinder.cxx:780 TGeoPatternFinder.cxx:781 TGeoPatternFinder.cxx:782 TGeoPatternFinder.cxx:783 TGeoPatternFinder.cxx:784 TGeoPatternFinder.cxx:785 TGeoPatternFinder.cxx:786 TGeoPatternFinder.cxx:787 TGeoPatternFinder.cxx:788 TGeoPatternFinder.cxx:789 TGeoPatternFinder.cxx:790 TGeoPatternFinder.cxx:791 TGeoPatternFinder.cxx:792 TGeoPatternFinder.cxx:793 TGeoPatternFinder.cxx:794 TGeoPatternFinder.cxx:795 TGeoPatternFinder.cxx:796 TGeoPatternFinder.cxx:797 TGeoPatternFinder.cxx:798 TGeoPatternFinder.cxx:799 TGeoPatternFinder.cxx:800 TGeoPatternFinder.cxx:801 TGeoPatternFinder.cxx:802 TGeoPatternFinder.cxx:803 TGeoPatternFinder.cxx:804 TGeoPatternFinder.cxx:805 TGeoPatternFinder.cxx:806 TGeoPatternFinder.cxx:807 TGeoPatternFinder.cxx:808 TGeoPatternFinder.cxx:809 TGeoPatternFinder.cxx:810 TGeoPatternFinder.cxx:811 TGeoPatternFinder.cxx:812 TGeoPatternFinder.cxx:813 TGeoPatternFinder.cxx:814 TGeoPatternFinder.cxx:815 TGeoPatternFinder.cxx:816 TGeoPatternFinder.cxx:817 TGeoPatternFinder.cxx:818 TGeoPatternFinder.cxx:819 TGeoPatternFinder.cxx:820 TGeoPatternFinder.cxx:821 TGeoPatternFinder.cxx:822 TGeoPatternFinder.cxx:823 TGeoPatternFinder.cxx:824 TGeoPatternFinder.cxx:825 TGeoPatternFinder.cxx:826 TGeoPatternFinder.cxx:827 TGeoPatternFinder.cxx:828 TGeoPatternFinder.cxx:829 TGeoPatternFinder.cxx:830 TGeoPatternFinder.cxx:831 TGeoPatternFinder.cxx:832 TGeoPatternFinder.cxx:833 TGeoPatternFinder.cxx:834 TGeoPatternFinder.cxx:835 TGeoPatternFinder.cxx:836 TGeoPatternFinder.cxx:837 TGeoPatternFinder.cxx:838 TGeoPatternFinder.cxx:839 TGeoPatternFinder.cxx:840 TGeoPatternFinder.cxx:841 TGeoPatternFinder.cxx:842 TGeoPatternFinder.cxx:843 TGeoPatternFinder.cxx:844 TGeoPatternFinder.cxx:845 TGeoPatternFinder.cxx:846 TGeoPatternFinder.cxx:847 TGeoPatternFinder.cxx:848 TGeoPatternFinder.cxx:849 TGeoPatternFinder.cxx:850 TGeoPatternFinder.cxx:851 TGeoPatternFinder.cxx:852 TGeoPatternFinder.cxx:853 TGeoPatternFinder.cxx:854 TGeoPatternFinder.cxx:855 TGeoPatternFinder.cxx:856 TGeoPatternFinder.cxx:857 TGeoPatternFinder.cxx:858 TGeoPatternFinder.cxx:859 TGeoPatternFinder.cxx:860 TGeoPatternFinder.cxx:861 TGeoPatternFinder.cxx:862 TGeoPatternFinder.cxx:863 TGeoPatternFinder.cxx:864 TGeoPatternFinder.cxx:865 TGeoPatternFinder.cxx:866 TGeoPatternFinder.cxx:867 TGeoPatternFinder.cxx:868 TGeoPatternFinder.cxx:869 TGeoPatternFinder.cxx:870 TGeoPatternFinder.cxx:871 TGeoPatternFinder.cxx:872 TGeoPatternFinder.cxx:873 TGeoPatternFinder.cxx:874 TGeoPatternFinder.cxx:875 TGeoPatternFinder.cxx:876 TGeoPatternFinder.cxx:877 TGeoPatternFinder.cxx:878 TGeoPatternFinder.cxx:879 TGeoPatternFinder.cxx:880 TGeoPatternFinder.cxx:881 TGeoPatternFinder.cxx:882 TGeoPatternFinder.cxx:883 TGeoPatternFinder.cxx:884 TGeoPatternFinder.cxx:885 TGeoPatternFinder.cxx:886 TGeoPatternFinder.cxx:887 TGeoPatternFinder.cxx:888 TGeoPatternFinder.cxx:889 TGeoPatternFinder.cxx:890 TGeoPatternFinder.cxx:891 TGeoPatternFinder.cxx:892 TGeoPatternFinder.cxx:893 TGeoPatternFinder.cxx:894 TGeoPatternFinder.cxx:895 TGeoPatternFinder.cxx:896 TGeoPatternFinder.cxx:897 TGeoPatternFinder.cxx:898 TGeoPatternFinder.cxx:899 TGeoPatternFinder.cxx:900 TGeoPatternFinder.cxx:901 TGeoPatternFinder.cxx:902 TGeoPatternFinder.cxx:903 TGeoPatternFinder.cxx:904 TGeoPatternFinder.cxx:905 TGeoPatternFinder.cxx:906 TGeoPatternFinder.cxx:907 TGeoPatternFinder.cxx:908 TGeoPatternFinder.cxx:909 TGeoPatternFinder.cxx:910 TGeoPatternFinder.cxx:911 TGeoPatternFinder.cxx:912 TGeoPatternFinder.cxx:913 TGeoPatternFinder.cxx:914 TGeoPatternFinder.cxx:915 TGeoPatternFinder.cxx:916 TGeoPatternFinder.cxx:917 TGeoPatternFinder.cxx:918 TGeoPatternFinder.cxx:919 TGeoPatternFinder.cxx:920 TGeoPatternFinder.cxx:921 TGeoPatternFinder.cxx:922 TGeoPatternFinder.cxx:923 TGeoPatternFinder.cxx:924 TGeoPatternFinder.cxx:925 TGeoPatternFinder.cxx:926 TGeoPatternFinder.cxx:927 TGeoPatternFinder.cxx:928 TGeoPatternFinder.cxx:929 TGeoPatternFinder.cxx:930 TGeoPatternFinder.cxx:931 TGeoPatternFinder.cxx:932 TGeoPatternFinder.cxx:933 TGeoPatternFinder.cxx:934 TGeoPatternFinder.cxx:935 TGeoPatternFinder.cxx:936 TGeoPatternFinder.cxx:937 TGeoPatternFinder.cxx:938 TGeoPatternFinder.cxx:939 TGeoPatternFinder.cxx:940 TGeoPatternFinder.cxx:941 TGeoPatternFinder.cxx:942 TGeoPatternFinder.cxx:943 TGeoPatternFinder.cxx:944 TGeoPatternFinder.cxx:945 TGeoPatternFinder.cxx:946 TGeoPatternFinder.cxx:947 TGeoPatternFinder.cxx:948 TGeoPatternFinder.cxx:949 TGeoPatternFinder.cxx:950 TGeoPatternFinder.cxx:951 TGeoPatternFinder.cxx:952 TGeoPatternFinder.cxx:953 TGeoPatternFinder.cxx:954 TGeoPatternFinder.cxx:955 TGeoPatternFinder.cxx:956 TGeoPatternFinder.cxx:957 TGeoPatternFinder.cxx:958 TGeoPatternFinder.cxx:959 TGeoPatternFinder.cxx:960 TGeoPatternFinder.cxx:961 TGeoPatternFinder.cxx:962 TGeoPatternFinder.cxx:963 TGeoPatternFinder.cxx:964 TGeoPatternFinder.cxx:965 TGeoPatternFinder.cxx:966 TGeoPatternFinder.cxx:967 TGeoPatternFinder.cxx:968 TGeoPatternFinder.cxx:969 TGeoPatternFinder.cxx:970 TGeoPatternFinder.cxx:971 TGeoPatternFinder.cxx:972 TGeoPatternFinder.cxx:973 TGeoPatternFinder.cxx:974 TGeoPatternFinder.cxx:975 TGeoPatternFinder.cxx:976 TGeoPatternFinder.cxx:977 TGeoPatternFinder.cxx:978 TGeoPatternFinder.cxx:979 TGeoPatternFinder.cxx:980 TGeoPatternFinder.cxx:981 TGeoPatternFinder.cxx:982 TGeoPatternFinder.cxx:983 TGeoPatternFinder.cxx:984 TGeoPatternFinder.cxx:985 TGeoPatternFinder.cxx:986 TGeoPatternFinder.cxx:987 TGeoPatternFinder.cxx:988 TGeoPatternFinder.cxx:989 TGeoPatternFinder.cxx:990 TGeoPatternFinder.cxx:991 TGeoPatternFinder.cxx:992 TGeoPatternFinder.cxx:993 TGeoPatternFinder.cxx:994 TGeoPatternFinder.cxx:995 TGeoPatternFinder.cxx:996 TGeoPatternFinder.cxx:997 TGeoPatternFinder.cxx:998 TGeoPatternFinder.cxx:999 TGeoPatternFinder.cxx:1000 TGeoPatternFinder.cxx:1001 TGeoPatternFinder.cxx:1002 TGeoPatternFinder.cxx:1003 TGeoPatternFinder.cxx:1004 TGeoPatternFinder.cxx:1005 TGeoPatternFinder.cxx:1006 TGeoPatternFinder.cxx:1007 TGeoPatternFinder.cxx:1008 TGeoPatternFinder.cxx:1009 TGeoPatternFinder.cxx:1010 TGeoPatternFinder.cxx:1011 TGeoPatternFinder.cxx:1012 TGeoPatternFinder.cxx:1013 TGeoPatternFinder.cxx:1014 TGeoPatternFinder.cxx:1015 TGeoPatternFinder.cxx:1016 TGeoPatternFinder.cxx:1017 TGeoPatternFinder.cxx:1018 TGeoPatternFinder.cxx:1019 TGeoPatternFinder.cxx:1020 TGeoPatternFinder.cxx:1021 TGeoPatternFinder.cxx:1022 TGeoPatternFinder.cxx:1023 TGeoPatternFinder.cxx:1024 TGeoPatternFinder.cxx:1025 TGeoPatternFinder.cxx:1026 TGeoPatternFinder.cxx:1027 TGeoPatternFinder.cxx:1028 TGeoPatternFinder.cxx:1029 TGeoPatternFinder.cxx:1030 TGeoPatternFinder.cxx:1031 TGeoPatternFinder.cxx:1032 TGeoPatternFinder.cxx:1033 TGeoPatternFinder.cxx:1034 TGeoPatternFinder.cxx:1035 TGeoPatternFinder.cxx:1036 TGeoPatternFinder.cxx:1037 TGeoPatternFinder.cxx:1038 TGeoPatternFinder.cxx:1039 TGeoPatternFinder.cxx:1040 TGeoPatternFinder.cxx:1041 TGeoPatternFinder.cxx:1042 TGeoPatternFinder.cxx:1043 TGeoPatternFinder.cxx:1044 TGeoPatternFinder.cxx:1045 TGeoPatternFinder.cxx:1046 TGeoPatternFinder.cxx:1047 TGeoPatternFinder.cxx:1048 TGeoPatternFinder.cxx:1049 TGeoPatternFinder.cxx:1050 TGeoPatternFinder.cxx:1051 TGeoPatternFinder.cxx:1052 TGeoPatternFinder.cxx:1053 TGeoPatternFinder.cxx:1054 TGeoPatternFinder.cxx:1055 TGeoPatternFinder.cxx:1056 TGeoPatternFinder.cxx:1057 TGeoPatternFinder.cxx:1058 TGeoPatternFinder.cxx:1059 TGeoPatternFinder.cxx:1060 TGeoPatternFinder.cxx:1061 TGeoPatternFinder.cxx:1062 TGeoPatternFinder.cxx:1063 TGeoPatternFinder.cxx:1064 TGeoPatternFinder.cxx:1065 TGeoPatternFinder.cxx:1066 TGeoPatternFinder.cxx:1067 TGeoPatternFinder.cxx:1068 TGeoPatternFinder.cxx:1069 TGeoPatternFinder.cxx:1070 TGeoPatternFinder.cxx:1071 TGeoPatternFinder.cxx:1072 TGeoPatternFinder.cxx:1073 TGeoPatternFinder.cxx:1074 TGeoPatternFinder.cxx:1075 TGeoPatternFinder.cxx:1076 TGeoPatternFinder.cxx:1077 TGeoPatternFinder.cxx:1078 TGeoPatternFinder.cxx:1079 TGeoPatternFinder.cxx:1080 TGeoPatternFinder.cxx:1081 TGeoPatternFinder.cxx:1082 TGeoPatternFinder.cxx:1083 TGeoPatternFinder.cxx:1084 TGeoPatternFinder.cxx:1085 TGeoPatternFinder.cxx:1086 TGeoPatternFinder.cxx:1087 TGeoPatternFinder.cxx:1088 TGeoPatternFinder.cxx:1089 TGeoPatternFinder.cxx:1090 TGeoPatternFinder.cxx:1091 TGeoPatternFinder.cxx:1092 TGeoPatternFinder.cxx:1093 TGeoPatternFinder.cxx:1094 TGeoPatternFinder.cxx:1095 TGeoPatternFinder.cxx:1096 TGeoPatternFinder.cxx:1097 TGeoPatternFinder.cxx:1098 TGeoPatternFinder.cxx:1099 TGeoPatternFinder.cxx:1100 TGeoPatternFinder.cxx:1101 TGeoPatternFinder.cxx:1102 TGeoPatternFinder.cxx:1103 TGeoPatternFinder.cxx:1104 TGeoPatternFinder.cxx:1105 TGeoPatternFinder.cxx:1106 TGeoPatternFinder.cxx:1107 TGeoPatternFinder.cxx:1108 TGeoPatternFinder.cxx:1109 TGeoPatternFinder.cxx:1110 TGeoPatternFinder.cxx:1111 TGeoPatternFinder.cxx:1112 TGeoPatternFinder.cxx:1113 TGeoPatternFinder.cxx:1114 TGeoPatternFinder.cxx:1115 TGeoPatternFinder.cxx:1116 TGeoPatternFinder.cxx:1117 TGeoPatternFinder.cxx:1118 TGeoPatternFinder.cxx:1119 TGeoPatternFinder.cxx:1120 TGeoPatternFinder.cxx:1121 TGeoPatternFinder.cxx:1122 TGeoPatternFinder.cxx:1123 TGeoPatternFinder.cxx:1124 TGeoPatternFinder.cxx:1125 TGeoPatternFinder.cxx:1126 TGeoPatternFinder.cxx:1127 TGeoPatternFinder.cxx:1128 TGeoPatternFinder.cxx:1129 TGeoPatternFinder.cxx:1130 TGeoPatternFinder.cxx:1131 TGeoPatternFinder.cxx:1132 TGeoPatternFinder.cxx:1133 TGeoPatternFinder.cxx:1134 TGeoPatternFinder.cxx:1135 TGeoPatternFinder.cxx:1136 TGeoPatternFinder.cxx:1137 TGeoPatternFinder.cxx:1138 TGeoPatternFinder.cxx:1139 TGeoPatternFinder.cxx:1140 TGeoPatternFinder.cxx:1141 TGeoPatternFinder.cxx:1142 TGeoPatternFinder.cxx:1143 TGeoPatternFinder.cxx:1144 TGeoPatternFinder.cxx:1145 TGeoPatternFinder.cxx:1146 TGeoPatternFinder.cxx:1147 TGeoPatternFinder.cxx:1148 TGeoPatternFinder.cxx:1149 TGeoPatternFinder.cxx:1150 TGeoPatternFinder.cxx:1151 TGeoPatternFinder.cxx:1152 TGeoPatternFinder.cxx:1153 TGeoPatternFinder.cxx:1154 TGeoPatternFinder.cxx:1155 TGeoPatternFinder.cxx:1156 TGeoPatternFinder.cxx:1157 TGeoPatternFinder.cxx:1158 TGeoPatternFinder.cxx:1159 TGeoPatternFinder.cxx:1160 TGeoPatternFinder.cxx:1161 TGeoPatternFinder.cxx:1162 TGeoPatternFinder.cxx:1163 TGeoPatternFinder.cxx:1164 TGeoPatternFinder.cxx:1165 TGeoPatternFinder.cxx:1166 TGeoPatternFinder.cxx:1167 TGeoPatternFinder.cxx:1168 TGeoPatternFinder.cxx:1169 TGeoPatternFinder.cxx:1170 TGeoPatternFinder.cxx:1171 TGeoPatternFinder.cxx:1172 TGeoPatternFinder.cxx:1173 TGeoPatternFinder.cxx:1174 TGeoPatternFinder.cxx:1175 TGeoPatternFinder.cxx:1176 TGeoPatternFinder.cxx:1177 TGeoPatternFinder.cxx:1178 TGeoPatternFinder.cxx:1179 TGeoPatternFinder.cxx:1180 TGeoPatternFinder.cxx:1181 TGeoPatternFinder.cxx:1182 TGeoPatternFinder.cxx:1183 TGeoPatternFinder.cxx:1184 TGeoPatternFinder.cxx:1185 TGeoPatternFinder.cxx:1186 TGeoPatternFinder.cxx:1187 TGeoPatternFinder.cxx:1188 TGeoPatternFinder.cxx:1189 TGeoPatternFinder.cxx:1190 TGeoPatternFinder.cxx:1191 TGeoPatternFinder.cxx:1192 TGeoPatternFinder.cxx:1193 TGeoPatternFinder.cxx:1194 TGeoPatternFinder.cxx:1195 TGeoPatternFinder.cxx:1196 TGeoPatternFinder.cxx:1197 TGeoPatternFinder.cxx:1198 TGeoPatternFinder.cxx:1199 TGeoPatternFinder.cxx:1200 TGeoPatternFinder.cxx:1201 TGeoPatternFinder.cxx:1202 TGeoPatternFinder.cxx:1203 TGeoPatternFinder.cxx:1204 TGeoPatternFinder.cxx:1205 TGeoPatternFinder.cxx:1206 TGeoPatternFinder.cxx:1207 TGeoPatternFinder.cxx:1208 TGeoPatternFinder.cxx:1209 TGeoPatternFinder.cxx:1210 TGeoPatternFinder.cxx:1211 TGeoPatternFinder.cxx:1212 TGeoPatternFinder.cxx:1213 TGeoPatternFinder.cxx:1214 TGeoPatternFinder.cxx:1215 TGeoPatternFinder.cxx:1216 TGeoPatternFinder.cxx:1217 TGeoPatternFinder.cxx:1218 TGeoPatternFinder.cxx:1219 TGeoPatternFinder.cxx:1220 TGeoPatternFinder.cxx:1221 TGeoPatternFinder.cxx:1222 TGeoPatternFinder.cxx:1223 TGeoPatternFinder.cxx:1224 TGeoPatternFinder.cxx:1225 TGeoPatternFinder.cxx:1226 TGeoPatternFinder.cxx:1227 TGeoPatternFinder.cxx:1228 TGeoPatternFinder.cxx:1229 TGeoPatternFinder.cxx:1230 TGeoPatternFinder.cxx:1231 TGeoPatternFinder.cxx:1232 TGeoPatternFinder.cxx:1233 TGeoPatternFinder.cxx:1234 TGeoPatternFinder.cxx:1235 TGeoPatternFinder.cxx:1236 TGeoPatternFinder.cxx:1237 TGeoPatternFinder.cxx:1238 TGeoPatternFinder.cxx:1239 TGeoPatternFinder.cxx:1240 TGeoPatternFinder.cxx:1241 TGeoPatternFinder.cxx:1242 TGeoPatternFinder.cxx:1243 TGeoPatternFinder.cxx:1244 TGeoPatternFinder.cxx:1245 TGeoPatternFinder.cxx:1246 TGeoPatternFinder.cxx:1247 TGeoPatternFinder.cxx:1248 TGeoPatternFinder.cxx:1249 TGeoPatternFinder.cxx:1250 TGeoPatternFinder.cxx:1251 TGeoPatternFinder.cxx:1252 TGeoPatternFinder.cxx:1253 TGeoPatternFinder.cxx:1254 TGeoPatternFinder.cxx:1255 TGeoPatternFinder.cxx:1256 TGeoPatternFinder.cxx:1257 TGeoPatternFinder.cxx:1258 TGeoPatternFinder.cxx:1259 TGeoPatternFinder.cxx:1260 TGeoPatternFinder.cxx:1261 TGeoPatternFinder.cxx:1262 TGeoPatternFinder.cxx:1263 TGeoPatternFinder.cxx:1264 TGeoPatternFinder.cxx:1265 TGeoPatternFinder.cxx:1266 TGeoPatternFinder.cxx:1267 TGeoPatternFinder.cxx:1268 TGeoPatternFinder.cxx:1269 TGeoPatternFinder.cxx:1270 TGeoPatternFinder.cxx:1271 TGeoPatternFinder.cxx:1272 TGeoPatternFinder.cxx:1273 TGeoPatternFinder.cxx:1274 TGeoPatternFinder.cxx:1275 TGeoPatternFinder.cxx:1276 TGeoPatternFinder.cxx:1277 TGeoPatternFinder.cxx:1278 TGeoPatternFinder.cxx:1279 TGeoPatternFinder.cxx:1280 TGeoPatternFinder.cxx:1281 TGeoPatternFinder.cxx:1282 TGeoPatternFinder.cxx:1283 TGeoPatternFinder.cxx:1284 TGeoPatternFinder.cxx:1285 TGeoPatternFinder.cxx:1286 TGeoPatternFinder.cxx:1287 TGeoPatternFinder.cxx:1288 TGeoPatternFinder.cxx:1289 TGeoPatternFinder.cxx:1290 TGeoPatternFinder.cxx:1291 TGeoPatternFinder.cxx:1292 TGeoPatternFinder.cxx:1293 TGeoPatternFinder.cxx:1294 TGeoPatternFinder.cxx:1295 TGeoPatternFinder.cxx:1296 TGeoPatternFinder.cxx:1297 TGeoPatternFinder.cxx:1298 TGeoPatternFinder.cxx:1299 TGeoPatternFinder.cxx:1300 TGeoPatternFinder.cxx:1301 TGeoPatternFinder.cxx:1302 TGeoPatternFinder.cxx:1303 TGeoPatternFinder.cxx:1304 TGeoPatternFinder.cxx:1305 TGeoPatternFinder.cxx:1306 TGeoPatternFinder.cxx:1307 TGeoPatternFinder.cxx:1308 TGeoPatternFinder.cxx:1309 TGeoPatternFinder.cxx:1310 TGeoPatternFinder.cxx:1311 TGeoPatternFinder.cxx:1312 TGeoPatternFinder.cxx:1313 TGeoPatternFinder.cxx:1314 TGeoPatternFinder.cxx:1315 TGeoPatternFinder.cxx:1316 TGeoPatternFinder.cxx:1317 TGeoPatternFinder.cxx:1318 TGeoPatternFinder.cxx:1319 TGeoPatternFinder.cxx:1320 TGeoPatternFinder.cxx:1321 TGeoPatternFinder.cxx:1322 TGeoPatternFinder.cxx:1323 TGeoPatternFinder.cxx:1324 TGeoPatternFinder.cxx:1325 TGeoPatternFinder.cxx:1326 TGeoPatternFinder.cxx:1327 TGeoPatternFinder.cxx:1328 TGeoPatternFinder.cxx:1329 TGeoPatternFinder.cxx:1330 TGeoPatternFinder.cxx:1331 TGeoPatternFinder.cxx:1332 TGeoPatternFinder.cxx:1333 TGeoPatternFinder.cxx:1334 TGeoPatternFinder.cxx:1335 TGeoPatternFinder.cxx:1336 TGeoPatternFinder.cxx:1337 TGeoPatternFinder.cxx:1338 TGeoPatternFinder.cxx:1339 TGeoPatternFinder.cxx:1340 TGeoPatternFinder.cxx:1341 TGeoPatternFinder.cxx:1342 TGeoPatternFinder.cxx:1343 TGeoPatternFinder.cxx:1344 TGeoPatternFinder.cxx:1345 TGeoPatternFinder.cxx:1346 TGeoPatternFinder.cxx:1347 TGeoPatternFinder.cxx:1348 TGeoPatternFinder.cxx:1349 TGeoPatternFinder.cxx:1350 TGeoPatternFinder.cxx:1351 TGeoPatternFinder.cxx:1352 TGeoPatternFinder.cxx:1353 TGeoPatternFinder.cxx:1354 TGeoPatternFinder.cxx:1355 TGeoPatternFinder.cxx:1356 TGeoPatternFinder.cxx:1357 TGeoPatternFinder.cxx:1358 TGeoPatternFinder.cxx:1359 TGeoPatternFinder.cxx:1360 TGeoPatternFinder.cxx:1361 TGeoPatternFinder.cxx:1362 TGeoPatternFinder.cxx:1363 TGeoPatternFinder.cxx:1364 TGeoPatternFinder.cxx:1365 TGeoPatternFinder.cxx:1366 TGeoPatternFinder.cxx:1367 TGeoPatternFinder.cxx:1368 TGeoPatternFinder.cxx:1369 TGeoPatternFinder.cxx:1370 TGeoPatternFinder.cxx:1371 TGeoPatternFinder.cxx:1372 TGeoPatternFinder.cxx:1373 TGeoPatternFinder.cxx:1374 TGeoPatternFinder.cxx:1375 TGeoPatternFinder.cxx:1376 TGeoPatternFinder.cxx:1377 TGeoPatternFinder.cxx:1378 TGeoPatternFinder.cxx:1379 TGeoPatternFinder.cxx:1380 TGeoPatternFinder.cxx:1381 TGeoPatternFinder.cxx:1382 TGeoPatternFinder.cxx:1383 TGeoPatternFinder.cxx:1384 TGeoPatternFinder.cxx:1385 TGeoPatternFinder.cxx:1386 TGeoPatternFinder.cxx:1387 TGeoPatternFinder.cxx:1388 TGeoPatternFinder.cxx:1389 TGeoPatternFinder.cxx:1390 TGeoPatternFinder.cxx:1391 TGeoPatternFinder.cxx:1392 TGeoPatternFinder.cxx:1393 TGeoPatternFinder.cxx:1394 TGeoPatternFinder.cxx:1395 TGeoPatternFinder.cxx:1396 TGeoPatternFinder.cxx:1397 TGeoPatternFinder.cxx:1398 TGeoPatternFinder.cxx:1399 TGeoPatternFinder.cxx:1400 TGeoPatternFinder.cxx:1401 TGeoPatternFinder.cxx:1402 TGeoPatternFinder.cxx:1403 TGeoPatternFinder.cxx:1404 TGeoPatternFinder.cxx:1405 TGeoPatternFinder.cxx:1406 TGeoPatternFinder.cxx:1407 TGeoPatternFinder.cxx:1408 TGeoPatternFinder.cxx:1409 TGeoPatternFinder.cxx:1410 TGeoPatternFinder.cxx:1411 TGeoPatternFinder.cxx:1412 TGeoPatternFinder.cxx:1413 TGeoPatternFinder.cxx:1414 TGeoPatternFinder.cxx:1415 TGeoPatternFinder.cxx:1416 TGeoPatternFinder.cxx:1417 TGeoPatternFinder.cxx:1418 TGeoPatternFinder.cxx:1419 TGeoPatternFinder.cxx:1420 TGeoPatternFinder.cxx:1421 TGeoPatternFinder.cxx:1422 TGeoPatternFinder.cxx:1423 TGeoPatternFinder.cxx:1424 TGeoPatternFinder.cxx:1425 TGeoPatternFinder.cxx:1426 TGeoPatternFinder.cxx:1427 TGeoPatternFinder.cxx:1428 TGeoPatternFinder.cxx:1429 TGeoPatternFinder.cxx:1430 TGeoPatternFinder.cxx:1431 TGeoPatternFinder.cxx:1432 TGeoPatternFinder.cxx:1433 TGeoPatternFinder.cxx:1434 TGeoPatternFinder.cxx:1435 TGeoPatternFinder.cxx:1436 TGeoPatternFinder.cxx:1437 TGeoPatternFinder.cxx:1438 TGeoPatternFinder.cxx:1439 TGeoPatternFinder.cxx:1440 TGeoPatternFinder.cxx:1441 TGeoPatternFinder.cxx:1442 TGeoPatternFinder.cxx:1443 TGeoPatternFinder.cxx:1444 TGeoPatternFinder.cxx:1445 TGeoPatternFinder.cxx:1446 TGeoPatternFinder.cxx:1447 TGeoPatternFinder.cxx:1448 TGeoPatternFinder.cxx:1449 TGeoPatternFinder.cxx:1450 TGeoPatternFinder.cxx:1451 TGeoPatternFinder.cxx:1452 TGeoPatternFinder.cxx:1453 TGeoPatternFinder.cxx:1454 TGeoPatternFinder.cxx:1455 TGeoPatternFinder.cxx:1456 TGeoPatternFinder.cxx:1457 TGeoPatternFinder.cxx:1458 TGeoPatternFinder.cxx:1459 TGeoPatternFinder.cxx:1460 TGeoPatternFinder.cxx:1461 TGeoPatternFinder.cxx:1462 TGeoPatternFinder.cxx:1463 TGeoPatternFinder.cxx:1464 TGeoPatternFinder.cxx:1465 TGeoPatternFinder.cxx:1466 TGeoPatternFinder.cxx:1467 TGeoPatternFinder.cxx:1468 TGeoPatternFinder.cxx:1469 TGeoPatternFinder.cxx:1470 TGeoPatternFinder.cxx:1471 TGeoPatternFinder.cxx:1472 TGeoPatternFinder.cxx:1473 TGeoPatternFinder.cxx:1474 TGeoPatternFinder.cxx:1475 TGeoPatternFinder.cxx:1476 TGeoPatternFinder.cxx:1477 TGeoPatternFinder.cxx:1478 TGeoPatternFinder.cxx:1479 TGeoPatternFinder.cxx:1480 TGeoPatternFinder.cxx:1481 TGeoPatternFinder.cxx:1482 TGeoPatternFinder.cxx:1483 TGeoPatternFinder.cxx:1484 TGeoPatternFinder.cxx:1485 TGeoPatternFinder.cxx:1486 TGeoPatternFinder.cxx:1487 TGeoPatternFinder.cxx:1488 TGeoPatternFinder.cxx:1489 TGeoPatternFinder.cxx:1490 TGeoPatternFinder.cxx:1491 TGeoPatternFinder.cxx:1492 TGeoPatternFinder.cxx:1493 TGeoPatternFinder.cxx:1494 TGeoPatternFinder.cxx:1495 TGeoPatternFinder.cxx:1496 TGeoPatternFinder.cxx:1497 TGeoPatternFinder.cxx:1498 TGeoPatternFinder.cxx:1499 TGeoPatternFinder.cxx:1500 TGeoPatternFinder.cxx:1501 TGeoPatternFinder.cxx:1502 TGeoPatternFinder.cxx:1503 TGeoPatternFinder.cxx:1504 TGeoPatternFinder.cxx:1505 TGeoPatternFinder.cxx:1506 TGeoPatternFinder.cxx:1507 TGeoPatternFinder.cxx:1508 TGeoPatternFinder.cxx:1509 TGeoPatternFinder.cxx:1510 TGeoPatternFinder.cxx:1511 TGeoPatternFinder.cxx:1512 TGeoPatternFinder.cxx:1513 TGeoPatternFinder.cxx:1514 TGeoPatternFinder.cxx:1515 TGeoPatternFinder.cxx:1516 TGeoPatternFinder.cxx:1517 TGeoPatternFinder.cxx:1518 TGeoPatternFinder.cxx:1519 TGeoPatternFinder.cxx:1520 TGeoPatternFinder.cxx:1521 TGeoPatternFinder.cxx:1522 TGeoPatternFinder.cxx:1523 TGeoPatternFinder.cxx:1524 TGeoPatternFinder.cxx:1525 TGeoPatternFinder.cxx:1526 TGeoPatternFinder.cxx:1527 TGeoPatternFinder.cxx:1528 TGeoPatternFinder.cxx:1529 TGeoPatternFinder.cxx:1530 TGeoPatternFinder.cxx:1531