From 673356a1397afb75e4f036ca3840efc1c826c93f Mon Sep 17 00:00:00 2001
From: Marina Ganeva <m.ganeva@fz-juelich.de>
Date: Fri, 6 Dec 2013 10:20:05 +0100
Subject: [PATCH] C++ example for cylinders and prisms is working now.

---
 CMakeLists.txt                                |  3 +
 .../CylindersAndPrisms.cpp                    | 58 ++++++++-----------
 .../CylindersAndPrisms.h                      |  8 +--
 .../modules/FindBornAgain.cmake               |  5 +-
 4 files changed, 34 insertions(+), 40 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index ee5d52b0fb4..753386fa400 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,9 @@ cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
 
 project(BornAgain)
 
+set (CMAKE_CXX_FLAGS "-H -Wall")
+
+
 # --- The version number ---
 set(BornAgain_VERSION_MAJOR 0)
 set(BornAgain_VERSION_MINOR 9)
diff --git a/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.cpp b/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.cpp
index 359f3f17067..37b17139d63 100644
--- a/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.cpp
+++ b/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.cpp
@@ -59,48 +59,40 @@ void CylindersAndPrismsExample::setSample()
 
 void CylindersAndPrismsExample::setSimulation()  
 {
-	m_simulation = new Simulation();
+    m_simulation = new Simulation();
 
     m_simulation->setDetectorParameters(
-        100,-1.0*Units::degree, 1.0*Units::degree, 100,
-        0.0*Units::degree, 2.0*Units::degree, true);
+                400,-1.0*Units::degree, 1.0*Units::degree, 400,
+                0.0*Units::degree, 2.0*Units::degree, true);
     m_simulation->setBeamParameters(
-        1.0*Units::angstrom, 0.2*Units::degree, 0.0*Units::degree);
+                1.0*Units::angstrom, 0.2*Units::degree, 0.0*Units::degree);
 
     m_simulation->setSample(*m_sample);
 }
 
 CylindersAndPrismsExample::CylindersAndPrismsExample() : m_result(0)
 {
-	setSample();
+    setSample();
     setSimulation();
 }
 
 void CylindersAndPrismsExample::runSimulation() 
 {
-	m_simulation->runSimulation();
+    m_simulation->runSimulation();
     m_result = m_simulation->getIntensityData();
-
-//=====DEBUG============
-    std::cout << "Rank: " << m_result->getRank() << ", Size: " << m_result->getAllocatedSize() << std::endl;
-
-    for (size_t i=0; i<m_result->getAllocatedSize();++i){
-        std::cout << (*m_result)[i] << std::endl;
-    }
-//=========DEBUG==END===========
 }
 
 void CylindersAndPrismsExample::drawResult()
 {
-	const IAxis *axisPhi = m_result->getAxis(0);
-	const IAxis *axisAlpha = m_result->getAxis(1);
+    const IAxis *axisPhi = m_result->getAxis(0);
+    const IAxis *axisAlpha = m_result->getAxis(1);
 
-	size_t nPhibins = axisPhi->getSize();
-	size_t nAlphabins = axisAlpha->getSize();
+    size_t nPhibins = axisPhi->getSize();
+    size_t nAlphabins = axisAlpha->getSize();
 
-    TH2D *hist = new TH2D("Layer with Roughness", "Layer with Roughness",
-        (int)nPhibins, axisPhi->getMin()/Units::degree, axisPhi->getMax()/Units::degree,
-        (int)nAlphabins, axisAlpha->getMin()/Units::degree, axisAlpha->getMax()/Units::degree);
+    TH2D *hist = new TH2D("Cylinders and prisms", "Cylinders and prisms",
+                          (int)nPhibins, axisPhi->getMin()/Units::degree, axisPhi->getMax()/Units::degree,
+                          (int)nAlphabins, axisAlpha->getMin()/Units::degree, axisAlpha->getMax()/Units::degree);
 
     hist->GetXaxis()->SetTitle( axisPhi->getName().c_str() );
     hist->GetYaxis()->SetTitle( axisAlpha->getName().c_str() );
@@ -114,20 +106,20 @@ void CylindersAndPrismsExample::drawResult()
         hist->Fill(x/Units::degree, y/Units::degree, value);
     }
 
-	hist->SetContour(50);
+    hist->SetContour(50);
     hist->SetStats(0);
     hist->GetYaxis()->SetTitleOffset(1.1);
 
     gStyle->SetPalette(1);
     gStyle->SetOptStat(0);
 
-    TCanvas *c1 = new TCanvas("Layer with Roughness", "Layer with Roughness", 800, 800);
-	c1->cd();
-	c1->SetLogz();
-	hist->SetMinimum(1.0);
-	hist->DrawCopy("colz");
-	c1->Update();
-	
+    TCanvas *c1 = new TCanvas("Cylinders and prisms", "Cylinders and prisms", 980, 800);
+    c1->cd();
+    c1->SetLogz();
+    hist->SetMinimum(1.0);
+    hist->DrawCopy("colz");
+    c1->Update();
+
     delete axisPhi;
     delete axisAlpha;
     delete hist;
@@ -136,12 +128,12 @@ void CylindersAndPrismsExample::drawResult()
 
 int main(int argc, char **argv)
 {
-	CylindersAndPrismsExample* example = new CylindersAndPrismsExample();
+    CylindersAndPrismsExample* example = new CylindersAndPrismsExample();
     example->runSimulation();
 
- //   TApplication *theApp = new TApplication("theApp", &argc, argv);
- //   example->drawResult();
- //   theApp->Run();
+    TApplication *theApp = new TApplication("theApp", &argc, argv);
+    example->drawResult();
+    theApp->Run();
 
     delete example;
     return 0;
diff --git a/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.h b/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.h
index d6379a811f1..81d321267ea 100644
--- a/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.h
+++ b/Examples/cpp/ex001_CylindersAndPrisms/CylindersAndPrisms.h
@@ -16,13 +16,13 @@ public:
     void drawResult();
 
 protected:
-	void setSample();
+    void setSample();
     void setSimulation();
 
 private:
-	OutputData<double> *m_result;
-	Simulation *m_simulation;
-	MultiLayer *m_sample;
+    OutputData<double> *m_result;
+    Simulation *m_simulation;
+    MultiLayer *m_sample;
 };
 
 #endif /* CYLINDERSANDPRISMS_H_ */
diff --git a/Examples/cpp/ex001_CylindersAndPrisms/modules/FindBornAgain.cmake b/Examples/cpp/ex001_CylindersAndPrisms/modules/FindBornAgain.cmake
index ad4de305b83..7209e9d3a2a 100644
--- a/Examples/cpp/ex001_CylindersAndPrisms/modules/FindBornAgain.cmake
+++ b/Examples/cpp/ex001_CylindersAndPrisms/modules/FindBornAgain.cmake
@@ -22,9 +22,8 @@ find_library (BORNAGAIN_FIT BornAgainFit
 set(BORNAGAIN_LIBRARIES ${BORNAGAIN_CORE} ${BORNAGAIN_FIT})
 
 find_path(BORNAGAIN_INCLUDE_DIR BAVersion.h
-    /usr/include/BornAgain
-    /usr/local/include/BornAgain
-    /opt/local/include/BornAgain
+    PATHS /usr/include /usr/local/include /opt/local/include ${BORNAGAIN_INCLUDE_DIR}
+	PATH_SUFFIXES BornAgain
     HINTS ${BORNAGAIN_INCLUDE_DIR}
 )
 
-- 
GitLab