Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

GFcandidates.h

Go to the documentation of this file.
00001 //---------------------------------------------------
00002 //   GFcandidates
00003 //
00004 //     Search for GFxxx candidates (xxx = particle or gamma)
00005 //---------------------------------------------------
00006 
00007 #ifndef __GFcandidates_H
00008 #define __GFcandidates_H 1
00009 
00010 #include <vector>
00011 #include "TkrRecon/GFgamma.h"
00012 
00013 //##########################################################
00014 class GFcandidates 
00015 //##########################################################
00016 {
00017 public:
00018 
00019         enum type {TRACK,PARTICLE,PAIR,GAMMA};
00020 
00021 public:
00022 
00023         // construction
00024         GFcandidates(type t, double ene, double sigmaCut, Point Pend = Point(0.,0.,0.), Point Pini = Point(0.,0.,0.));
00025         ~GFcandidates() {}
00026         void clear();
00027 
00028         // access
00029         int numCandidates() {return (int) m_candidates.size();}
00030     std::vector<GFdata> m_Xcandidates;
00031     std::vector<GFdata> m_Ycandidates;
00032     
00033     std::vector<GFdata> m_candidates;
00034 
00035         // utilities
00036         static GFdata GFconstructor(GFcandidates::type , double ene, double sigmaCut, int ilayer, const Ray testRay, SiCluster::view v = SiCluster::X);
00037         
00038 private:
00039 
00040         // internal drivers
00041         void ini();
00042         bool findCandidates();
00043 
00044         // lower level itnernal drivers
00045         bool findCandidates(std::vector<GFdata>& candidates, 
00046                 const GFdata& Xcandidate, const GFdata& Ycandidate, 
00047                 double ene, GFcandidates::type);
00048 
00049     bool findSeedCandidates(std::vector<GFdata>& candidates, GFcandidates::type , SiCluster::view); 
00050     bool findSeedCandidates(std::vector<GFdata>& candidates, GFcandidates::type , SiCluster::view, int iplane, int itower = 0);
00051 
00052         // internal utilities
00053         static void incorporate(std::vector<GFdata>& candidates, const GFdata);
00054     Point createPend(SiCluster::view axis, int ilayer, const Point& PIni);
00055 
00056 private:
00057 
00058         GFcandidates::type m_type;
00059         GFcandidates::type m_seedtype;
00060 
00061         Point m_Pini;
00062         Point m_Pend;
00063 
00064         double m_eneCandidate;
00065     double m_sigmaCut;
00066 
00067 };
00068 
00069 
00070 #endif

Generated at Wed Nov 21 12:21:20 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000