Version 1.2 - Upload to repo
This commit is contained in:
		
							parent
							
								
									09f5881738
								
							
						
					
					
						commit
						292e1a2b9b
					
				| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					/// BM1D program. Date: 2017-10-29 Creators: Balázs Demeter, Balázs Ujvári 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include "Progress.hh"
 | 
				
			||||||
 | 
					#include "TApplication.h"
 | 
				
			||||||
 | 
					#include "TGraph.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace std;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void OpenRootFile()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
							TFile *fIn = TFile::Open("Plot1.root", "READ");
 | 
				
			||||||
 | 
							fIn->ls();
 | 
				
			||||||
 | 
							TGraph *Ga;
 | 
				
			||||||
 | 
							TGraph *Gb;
 | 
				
			||||||
 | 
							fIn->GetObject("1", Ga);
 | 
				
			||||||
 | 
							fIn->GetObject("2", Gb);
 | 
				
			||||||
 | 
							Ga->Draw();
 | 
				
			||||||
 | 
							Gb->Draw("same");
 | 
				
			||||||
 | 
							delete fIn;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char* argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						Int_t n = 1000;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						TApplication App("tapp", &argc, argv);
 | 
				
			||||||
 | 
						TCanvas* Canv = new TCanvas("c10","Live display",800,400);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if(argc==2)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							OpenRootFile();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							Progress* Pr1 = new Progress(n);
 | 
				
			||||||
 | 
							Progress* Pr2 = new Progress(n);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							Pr1->Count('u');
 | 
				
			||||||
 | 
							Pr2->Count('g');
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							vector<Double_t> x1 = Pr1->GetX();
 | 
				
			||||||
 | 
							vector<Double_t> y1 = Pr1->GetY();
 | 
				
			||||||
 | 
							vector<Double_t> x2 = Pr2->GetX();
 | 
				
			||||||
 | 
							vector<Double_t> y2 = Pr2->GetY();
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							TGraph* G1 = new TGraph(n,&x1[0],&y1[0]);
 | 
				
			||||||
 | 
							TGraph* G2 = new TGraph(n,&x2[0],&y2[0]);
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							TFile* fOut = new TFile("Plot1.root", "RECREATE");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							G1->SetLineColor(1);
 | 
				
			||||||
 | 
							G1->SetLineWidth(1);
 | 
				
			||||||
 | 
							G1->SetMarkerColor(1);
 | 
				
			||||||
 | 
							G1->SetMarkerStyle(0);
 | 
				
			||||||
 | 
							G1->SetTitle("Brownian Movement D=1");
 | 
				
			||||||
 | 
							G1->GetXaxis()->SetTitle("X");
 | 
				
			||||||
 | 
							G1->GetYaxis()->SetTitle("Time");
 | 
				
			||||||
 | 
							G2->SetLineColor(2);
 | 
				
			||||||
 | 
							G2->SetLineWidth(1);
 | 
				
			||||||
 | 
							G2->SetMarkerColor(2);
 | 
				
			||||||
 | 
							G2->SetMarkerStyle(0);
 | 
				
			||||||
 | 
							G2->SetTitle("Brownian Movement D=1");
 | 
				
			||||||
 | 
							G2->GetXaxis()->SetTitle("X");
 | 
				
			||||||
 | 
							G2->GetYaxis()->SetTitle("Time");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							G1->Draw();
 | 
				
			||||||
 | 
							G2->Draw("same");
 | 
				
			||||||
 | 
							G1->Write("1");
 | 
				
			||||||
 | 
							G2->Write("2");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							fOut->Close();
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						App.Run();
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					# $Id: CMakeLists.txt 12345 2017-10-26 10:11:23 Demeter Balázs $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Setup the project
 | 
				
			||||||
 | 
					cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
 | 
				
			||||||
 | 
					project(BM1D)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Find ROOT (required package)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					find_package(ROOT REQUIRED)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Setup ROOT include directories and compile definitions
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					include(${ROOT_USE_FILE})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Setup include directory for this project
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					include_directories(${PROJECT_SOURCE_DIR}/include ${ROOT_INCLUDE_DIRS})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Locate sources and headers for this project
 | 
				
			||||||
 | 
					# NB: headers are included so they will show up in IDEs
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
 | 
				
			||||||
 | 
					file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Add the executable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					add_executable(BM1D BM1D.cc ${sources} ${headers})
 | 
				
			||||||
 | 
					target_link_libraries(BM1D ${ROOT_LIBRARIES} )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 | 
					# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					install(TARGETS BM1D DESTINATION bin)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					/// BM1D program. Date: 2017-10-29 Creators: Balázs Demeter, Balázs Ujvári 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef Progress_h
 | 
				
			||||||
 | 
					#define Progress_h 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <fstream>
 | 
				
			||||||
 | 
					#include <cmath>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "TROOT.h"
 | 
				
			||||||
 | 
					#include "TF1.h"
 | 
				
			||||||
 | 
					#include "TH1.h"
 | 
				
			||||||
 | 
					#include "TH2.h"
 | 
				
			||||||
 | 
					#include "TH3.h"
 | 
				
			||||||
 | 
					#include "TNtuple.h"
 | 
				
			||||||
 | 
					#include "TFile.h"
 | 
				
			||||||
 | 
					#include "TRandom.h"
 | 
				
			||||||
 | 
					#include "TMath.h"
 | 
				
			||||||
 | 
					#include "TCanvas.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Progress {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Progress(Int_t n);
 | 
				
			||||||
 | 
					 ~Progress();
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 void Count(char a);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 std::vector<Double_t> GetX();
 | 
				
			||||||
 | 
					 std::vector<Double_t> GetY();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 TRandom* random1;
 | 
				
			||||||
 | 
					 const Int_t n;
 | 
				
			||||||
 | 
					 std::vector<Double_t> x;
 | 
				
			||||||
 | 
					 std::vector<Double_t> y;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Author: Balázs Demeter (balazsdemeter92@gmail.com)
 | 
				
			||||||
 | 
					# Version: 1.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Script for build and make Brownian movement in one dimension
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir bm1d_build
 | 
				
			||||||
 | 
					cd bm1d_build
 | 
				
			||||||
 | 
					cmake ../
 | 
				
			||||||
 | 
					make
 | 
				
			||||||
 | 
					echo Setup complete.
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					/// BM1D program. Date: 2017-10-29 Creators: Balázs Demeter, Balázs Ujvári 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "Progress.hh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Progress::Progress(Int_t nP) : 
 | 
				
			||||||
 | 
					n (nP)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						random1 = new TRandom();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Progress::~Progress()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Progress::Count(char a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						for (Int_t i=0;i<n;i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if(i==0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            x.push_back(0.0);
 | 
				
			||||||
 | 
					            y.push_back(0.0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        y.push_back((Double_t)i);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        switch(a)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
								case 'u':
 | 
				
			||||||
 | 
								if(random1->Uniform()>=0.5)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
					            x.push_back(x[i-1]-0.1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
					            x.push_back(x[i-1]+0.1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								case 'g':
 | 
				
			||||||
 | 
								if(random1->Gaus()>=0.5)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
					            x.push_back(x[i-1]-0.1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
					            x.push_back(x[i-1]+0.1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								default:
 | 
				
			||||||
 | 
								std::cout<<"Invalid argument!"<<std::endl;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::vector<Double_t> Progress::GetX()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return x;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::vector<Double_t> Progress::GetY()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return y;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue