diff --git a/src/GenFind/include/HoughTransform.h b/src/GenFind/include/HoughTransform.h
index 81ec1e44dffbc47f361b6f6aa8151b5cce9ea4a1..bbcff5109719861e38a8b9a979bc798a04450e2b 100644
--- a/src/GenFind/include/HoughTransform.h
+++ b/src/GenFind/include/HoughTransform.h
@@ -44,6 +44,19 @@ namespace GenFind {
 
       int FindPeaks(const std::vector<ROOT::Math::XYZTVector>& hits);
 
+      // crude idea:
+      //struct PreTrack {
+      //  double phi_peak;
+      //  ROOT::Math::XYZTVector ref_hit; // image or conformal space?
+      //  std::vector<ROOT::Math::XYZTVector> hits; // image space
+      //  std::vector<ROOT::Math::XYZTVector> chits; // conformal space
+      //}
+
+      //PreTrack GetPreTrack(
+      //    const std::vector<std::tuple<ROOT::Math::XYZTVector,ROOT::Math::XYZTVector>>& hits,
+      //    ROOT::Math::XYZTVector ref_hit,
+      //    double dphi = 5.0 /*degrees*/);
+
       std::vector<std::vector<std::tuple<ROOT::Math::XYZTVector,ROOT::Math::XYZTVector,ROOT::Math::XYZTVector>>> GetPreTrackHits(
           const std::vector<std::tuple<ROOT::Math::XYZTVector,ROOT::Math::XYZTVector,ROOT::Math::XYZTVector>>& hits,
           double dphi = 5.0 /*degrees*/);
diff --git a/src/GenFind/src/HoughTransform.cxx b/src/GenFind/src/HoughTransform.cxx
index 1b2d81b2165501a3d1ac7dfaa0c8150dae4f9a48..20990b6b6e11fd39ba4674b2f16b26064b2796fe 100644
--- a/src/GenFind/src/HoughTransform.cxx
+++ b/src/GenFind/src/HoughTransform.cxx
@@ -14,10 +14,10 @@ namespace GenFind {
   {
     bool status = TH1::AddDirectoryStatus();
     TH1::AddDirectory(false);
-    fPhi       = new TH1F{"hPhi","hPhi",45,-90, 90};
-    fRhoTheta0 = new TH2F{"hRhoTheta0","hRhoTheta0",120,0, 360, 100,-0.02,0.02};
-    fRhoTheta1 = new TH2F{"hRhoTheta1","hRhoTheta1",90, 0, 360, 100,-0.02,0.02};
-    fRhoTheta2 = new TH2F{"hRhoTheta2","hRhoTheta2",40, 0, 360, 100,-0.02,0.02};
+    fPhi       = new TH1F{"hPhi","hPhi",90,-90, 90};
+    fRhoTheta0 = new TH2F{"hRhoTheta0","hRhoTheta0",120,0, 180, 100,-0.1,0.1};
+    fRhoTheta1 = new TH2F{"hRhoTheta1","hRhoTheta1",90, 0, 180, 100,-0.1,0.1};
+    fRhoTheta2 = new TH2F{"hRhoTheta2","hRhoTheta2",40, 0, 180, 10,-0.1,0.1};
     fSpec  = new TSpectrum2(2*fMaxTracks);
     fSpec1 = new TSpectrum(2*fMaxTracks);
     TH1::AddDirectory(status);
@@ -94,12 +94,35 @@ namespace GenFind {
         //std::cout << " root is at " << root << std::endl;
       }
     }
-      //  for(int i_theta = 0; i_theta<500; i_theta++) {
-      //    double theta = rand.Uniform(0.0,360.0)*degree;
-      //    fRhoTheta0->Fill(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
-      //    fRhoTheta1->Fill(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
-      //    fRhoTheta2->Fill(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
-      //  }
+
+    TRandom3 rand;
+    TH1F* temp0 = (TH1F*)fRhoTheta0->Clone();
+    TH1F* temp1 = (TH1F*)fRhoTheta1->Clone(); 
+    TH1F* temp2 = (TH1F*)fRhoTheta2->Clone(); 
+    fRhoTheta0->Reset();
+    fRhoTheta1->Reset();
+    fRhoTheta2->Reset();
+    for(const auto& ahit : hits) {
+      temp0->Reset();
+      temp1->Reset();
+      temp2->Reset();
+      for(int i_theta = 0; i_theta<500; i_theta++) {
+
+        double theta = rand.Uniform(0.0,180.0)*degree;
+
+        int bin = temp0->FindBin(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
+        temp0->SetBinContent(bin, 1);
+
+        bin = temp1->FindBin(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
+        temp1->SetBinContent(bin, 1);
+
+        bin = temp2->FindBin(theta/degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
+        temp2->SetBinContent(bin, 1);
+      }
+      fRhoTheta0->Add(temp0);
+      fRhoTheta1->Add(temp1);
+      fRhoTheta2->Add(temp2);
+    }
 
     //std::cout << " average : " << avg/double(n_roots) << std::endl;
     //double z_max  = fRhoTheta1->GetBinContent(fRhoTheta1->GetMaximumBin());
diff --git a/src/GenFind/tests/hough_transform2.cxx b/src/GenFind/tests/hough_transform2.cxx
index d43b2afefbfadf8bf36b9f7cde2d08a69ffa96bb..c12f98b597d2a2f93b13fa150f408299f1315f5c 100644
--- a/src/GenFind/tests/hough_transform2.cxx
+++ b/src/GenFind/tests/hough_transform2.cxx
@@ -25,7 +25,7 @@ void hough_transform2(
   TH2F * huv   = new TH2F("huv",   "huv",   100,   -0.12, 0.12  , 100,   -0.12, 0.12  );
   TH2F * hrphi = new TH2F("hrphi", "hrphi",  90,    0, 180, 100, -0.2, 0.2);
   TH1F * hphi  = new TH1F("hphi",  "hphi",   50,   -4, 4 );
-  TH1F * htheta  = new TH1F("htheta",  "htheta", 90,   0, 180 );
+  TH1F * htheta  = new TH1F("htheta",  "htheta", 180,   0, 180 );
 
   std::vector<XYZTVector> hits ;
 
@@ -67,16 +67,16 @@ void hough_transform2(
   std::cout << " Master " << master_hits.size() << std::endl;
 
 
-  //for(auto ahit : all_chits) {
-  //  std::cout << ahit.X() << " , " <<  ahit.Y() << std::endl;
-  //  huv->Fill( ahit.X(), ahit.Y() );
-  //  hphi->Fill(TMath::ATan(ahit.Y()/ahit.X()));
-  //  for(int i_theta = 0; i_theta<180; i_theta++) {
-  //    double theta = 2.0*double(i_theta)*CLHEP::degree;
-  //    hrphi->Fill(theta/CLHEP::degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
-  //  }
-  //}
-  //auto mg = ht->FillHoughTransforms(all_chits);
+  for(auto ahit : all_chits) {
+    std::cout << ahit.X() << " , " <<  ahit.Y() << std::endl;
+    huv->Fill( ahit.X(), ahit.Y() );
+    hphi->Fill(TMath::ATan(ahit.Y()/ahit.X()));
+    for(int i_theta = 0; i_theta<180; i_theta++) {
+      double theta = 2.0*double(i_theta)*CLHEP::degree;
+      hrphi->Fill(theta/CLHEP::degree, ahit.X()*TMath::Cos(theta) + ahit.Y()*TMath::Sin(theta) );
+    }
+  }
+  auto mg = ht->FillHoughTransforms(all_chits);
 
   std::cout << " n peaks : " << ht->FindPeaks(all_chits) << std::endl;
 
@@ -124,15 +124,22 @@ void hough_transform2(
   for(auto ahist : hists){
   ahist->Draw("same");
   }
-  //mg->Draw("a");
-  //mg->GetYaxis()->SetRangeUser(-0.10,0.10);
-  //mg->Draw("a");
   //ht->fRhoTheta0->Draw("colz");
   c->cd(2);
   htheta->Draw();
-  //ht->fRhoTheta1->Draw("colz");
-  //c->cd(3);
-  //ht->fRhoTheta2->Draw("colz");
 
+  c->cd(3);
+  mg->Draw("a");
+  mg->GetYaxis()->SetRangeUser(-0.10,0.10);
+  mg->Draw("a");
+
+  c = new TCanvas();
+  c->Divide(2,2);
+  c->cd(1);
+  ht->fRhoTheta0->Draw("colz");
+  c->cd(2);
+  ht->fRhoTheta1->Draw("colz");
+  c->cd(3);
+  ht->fRhoTheta2->Draw("colz");
 
 }
diff --git a/src/GenFind/tests/simple_example_out.root b/src/GenFind/tests/simple_example_out.root
index b2e50e0d9283c6ccb63bc3b5eb06a1e43447423c..a9fa8a114e3e80c5454480af6a50f910d7fbc0ac 100644
Binary files a/src/GenFind/tests/simple_example_out.root and b/src/GenFind/tests/simple_example_out.root differ