HoughLine Class Reference

#include <HoughLine.h>

List of all members.

Public Member Functions

 HoughLine ()
 ~HoughLine ()
 HoughLine (double theta, double r, double offset_t, double offset_z)
void SetHoughParams (double theta, double r, double offset_t, double offset_z)
double GetExpectedT (double z)
void Reset ()
void ResetHits (int keep_bounds=0)
void AddCluster (Managed::ManagedCluster *cl)

Public Attributes

std::vector< int > cluster_id
double sum_e
double start_z
double start_t
double end_z
double end_t
int ncluster
double theta
double r
double offset_t
double offset_z
double phi
double chi2
int primary

Private Member Functions

 ClassDef (HoughLine, 1)

Detailed Description

Definition at line 9 of file HoughLine.h.


Constructor & Destructor Documentation

HoughLine::HoughLine (  ) 

Definition at line 13 of file HoughLine.cxx.

References Reset().

00014 {
00015         Reset();
00016 }

HoughLine::~HoughLine (  ) 

Definition at line 18 of file HoughLine.cxx.

00019 {}

HoughLine::HoughLine ( double  theta,
double  r,
double  offset_t,
double  offset_z 
)

Definition at line 21 of file HoughLine.cxx.

References SetHoughParams().

00022 {
00023         SetHoughParams(theta, r, offset_t, offset_z);
00024 }


Member Function Documentation

void HoughLine::AddCluster ( Managed::ManagedCluster cl  ) 

Definition at line 27 of file HoughLine.cxx.

References chi2, cluster_id, Managed::ManagedCluster::e, end_t, end_z, GetExpectedT(), Managed::ManagedCluster::id, ncluster, start_t, start_z, sum_e, Managed::ManagedCluster::t, and Managed::ManagedCluster::z.

Referenced by PrimaryShowerFinder::LoadCloseHits(), and PrimaryShowerFinder::SplitHoughLine().

00028 {
00029 
00030         //printf("z %f t %f\n",cl->z,cl->t);
00031 
00032         if(!cl)return;
00033         cluster_id.push_back(cl->id);
00034         
00035 //      printf("adding cluster %d to hl %f %f  %f %f  ",cl->id,start_z,start_t,end_z,end_t);
00036 
00037         sum_e+=cl->e;
00038         if(ncluster==0 && start_z==0) //need to check start_z in case we did a resethits(1)
00039         {
00040                 start_z=end_z=cl->z;
00041                 start_t=end_t=cl->t;
00042         }
00043 
00044         if(start_z > cl->z)
00045         {
00046                 start_z = cl->z;
00047                 start_t = cl->t;
00048         }
00049         
00050         if(end_z < cl->z)
00051         {
00052                 end_z = cl->z;
00053                 end_t = cl->t;
00054         }
00055         
00056 //      printf(" now at %f %f  %f %f\n",start_z,start_t,end_z,end_t);
00057 
00058         ncluster++;
00059         
00060         double exp_t = GetExpectedT(cl->z);
00061         chi2+=(cl->t-exp_t)*(cl->t-exp_t);
00062 }

HoughLine::ClassDef ( HoughLine  ,
 
) [private]
double HoughLine::GetExpectedT ( double  z  ) 

Definition at line 120 of file HoughLine.cxx.

References offset_t, offset_z, r, and theta.

Referenced by AddCluster(), PrimaryShowerFinder::FindFirstIntersection(), PrimaryShowerFinder::LoadCloseHits(), PrimaryShowerFinder::MakeChains(), and PrimaryShowerFinder::SplitHoughLine().

00121 {
00122 
00123 
00124         return (- cos(theta)/sin(theta))*(z-offset_z)+r/sin(theta) + offset_t;
00125 
00126 }

void HoughLine::Reset (  ) 

Definition at line 84 of file HoughLine.cxx.

References chi2, offset_t, offset_z, phi, r, ResetHits(), and theta.

Referenced by HoughLine(), and SetHoughParams().

00085 {
00086 
00087                 
00088         theta=0;
00089         r=0;
00090         offset_t=0;
00091         offset_z=0;
00092         chi2=0;
00093         phi=0;
00094         
00095         ResetHits(0);
00096 
00097 }

void HoughLine::ResetHits ( int  keep_bounds = 0  ) 

Definition at line 99 of file HoughLine.cxx.

References cluster_id, end_t, end_z, ncluster, primary, start_t, start_z, and sum_e.

Referenced by Reset(), and PrimaryShowerFinder::SplitHoughLine().

00100 {
00101 
00102         cluster_id.clear();
00103         
00104         if(!keep_bounds)
00105         {
00106                 start_z=0;
00107                 start_t=0;
00108                 end_z=0;
00109                 end_t=0;
00110         }
00111         
00112         
00113         ncluster=0;
00114         
00115         sum_e=0;
00116         primary=0;      
00117 }

void HoughLine::SetHoughParams ( double  theta,
double  r,
double  offset_t,
double  offset_z 
)

Definition at line 65 of file HoughLine.cxx.

References phi, and Reset().

Referenced by HoughLine().

00066 {
00067         Reset();
00068         this->theta=theta;
00069         this->r=r;
00070         this->offset_t=offset_t;
00071         this->offset_z=offset_z;
00072         
00073         
00074         //determine the angle off of z "phi
00075         double d=1;
00076         double zpos1 = offset_z + (offset_t + r/sin(theta)-d)*sin(theta)/cos(theta);
00077         double zpos2 = offset_z + (offset_t + r/sin(theta)+d)*sin(theta)/cos(theta);
00078         
00079         phi = atan(2*d/(zpos2-zpos1));
00080         
00081 }


Member Data Documentation

Definition at line 40 of file HoughLine.h.

Referenced by AddCluster(), CompareChi2(), and Reset().

std::vector<int> HoughLine::cluster_id

Definition at line 42 of file HoughLine.h.

Referenced by PrimaryShowerFinder::MakeShowerChain(), and ResetHits().

double HoughLine::r

The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1