minor fixes and optimsiation
This commit is contained in:
		
							parent
							
								
									f8764de7e1
								
							
						
					
					
						commit
						b2332bbea0
					
				
							
								
								
									
										2
									
								
								BM1D.cc
								
								
								
								
							
							
						
						
									
										2
									
								
								BM1D.cc
								
								
								
								
							| 
						 | 
				
			
			@ -45,7 +45,7 @@ int main(int argc, char* argv[])
 | 
			
		|||
		//todo fix  parameters
 | 
			
		||||
		percent = 0.99; 
 | 
			
		||||
		nGenerated = 7000;
 | 
			
		||||
		nop = 43;
 | 
			
		||||
		nop = 30;
 | 
			
		||||
		
 | 
			
		||||
		j_mu1=-25; 
 | 
			
		||||
        j_sigma1=0.3;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,8 +11,10 @@
 | 
			
		|||
class Crusher
 | 
			
		||||
{
 | 
			
		||||
	public:
 | 
			
		||||
		Crusher(std::vector<Double_t> tp, std::vector<Double_t> xp, double p0p);
 | 
			
		||||
		Crusher(std::vector<Double_t> tp, std::vector<Double_t> xp);
 | 
			
		||||
		Crusher(const std::vector<Double_t> & tp, const std::vector<Double_t> & xp, double p0p);
 | 
			
		||||
		Crusher(const std::vector<Double_t> & tp, const std::vector<Double_t> & xp);
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
		~Crusher();
 | 
			
		||||
		
 | 
			
		||||
		bool RunMachine(const int & nRunsm, const MuSigma & parameters);
 | 
			
		||||
| 
						 | 
				
			
			@ -23,13 +25,14 @@ class Crusher
 | 
			
		|||
	private:
 | 
			
		||||
		int nSteps;
 | 
			
		||||
		double p0;
 | 
			
		||||
		double BiggerLimit;
 | 
			
		||||
		std::vector<Double_t>  t;
 | 
			
		||||
		std::vector<Double_t>  x;
 | 
			
		||||
		
 | 
			
		||||
		BM1DProcess *myBM1DProcess;
 | 
			
		||||
		Analyse *myAnalyse;
 | 
			
		||||
		
 | 
			
		||||
		bool Bigger(double percent);
 | 
			
		||||
		inline bool Bigger();
 | 
			
		||||
		
 | 
			
		||||
		std::vector<Double_t> multipleRunVectorT;
 | 
			
		||||
		std::vector<Double_t> multipleRunVectorX;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@ class Draw2DWorkerThread
 | 
			
		|||
{
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
	Draw2DWorkerThread(int jobOffset_, int jobSize_, std::vector<Double_t> x_, std::vector<Double_t> t_, int nRuns_, Lattice *myLattice_, TH2D *BM1D_histo_, TH2D *BM1D_histo2_, struct graphArray graphArray_,  pthread_mutex_t *histoMutex_);
 | 
			
		||||
	Draw2DWorkerThread(int jobOffset_, int jobSize_, const std::vector<Double_t> & x_, const std::vector<Double_t> & t_, int nRuns_, Lattice *myLattice_, TH2D *BM1D_histo_, TH2D *BM1D_histo2_, struct graphArray graphArray_,  pthread_mutex_t *histoMutex_);
 | 
			
		||||
 
 | 
			
		||||
	~Draw2DWorkerThread();
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -45,8 +45,8 @@ private:
 | 
			
		|||
	
 | 
			
		||||
	int nRuns;   //Chrusher parameter number of tested "kukac"
 | 
			
		||||
	
 | 
			
		||||
	std::vector<Double_t> t;  //original "kukac"
 | 
			
		||||
	std::vector<Double_t> x;
 | 
			
		||||
	//std::vector<Double_t> t;  //original "kukac"
 | 
			
		||||
	//std::vector<Double_t> x;
 | 
			
		||||
	
 | 
			
		||||
	Crusher *myCrusher;
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								setup.sh
								
								
								
								
							
							
						
						
									
										2
									
								
								setup.sh
								
								
								
								
							| 
						 | 
				
			
			@ -3,6 +3,6 @@
 | 
			
		|||
rm -rf ../bm1d_build
 | 
			
		||||
mkdir ../bm1d_build
 | 
			
		||||
cd ../bm1d_build
 | 
			
		||||
cmake ../BM1D
 | 
			
		||||
cmake -DCMAKE_BUILD_TYPE=Release  ../BM1D
 | 
			
		||||
make
 | 
			
		||||
echo Setup complete.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,23 +1,30 @@
 | 
			
		|||
#include "Crusher.hh"
 | 
			
		||||
 | 
			
		||||
Crusher::Crusher(std::vector<Double_t> tp, std::vector<Double_t> xp, double p0p)
 | 
			
		||||
Crusher::Crusher(const std::vector<Double_t> & tp, const std::vector<Double_t> & xp, double p0p)
 | 
			
		||||
{
 | 
			
		||||
	nSteps = tp.size();
 | 
			
		||||
	t = tp;
 | 
			
		||||
	x = xp;
 | 
			
		||||
	p0 = p0p;
 | 
			
		||||
 | 
			
		||||
	myBM1DProcess = new BM1DProcess();
 | 
			
		||||
	nSteps = t.size();
 | 
			
		||||
 | 
			
		||||
	const double percent = 0.5;
 | 
			
		||||
	BiggerLimit = nSteps * percent;
 | 
			
		||||
	
 | 
			
		||||
	myBM1DProcess = new BM1DProcess();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Crusher::Crusher(std::vector<Double_t> tp, std::vector<Double_t> xp)
 | 
			
		||||
Crusher::Crusher(const std::vector<Double_t> & tp, const  std::vector<Double_t> & xp)
 | 
			
		||||
{
 | 
			
		||||
	nSteps = tp.size();
 | 
			
		||||
	t = tp;
 | 
			
		||||
	x = xp;
 | 
			
		||||
	p0 = 0.5;
 | 
			
		||||
 | 
			
		||||
	nSteps = t.size();
 | 
			
		||||
 | 
			
		||||
	const double percent = 0.5;
 | 
			
		||||
	BiggerLimit = nSteps * percent;
 | 
			
		||||
 | 
			
		||||
	myBM1DProcess = new BM1DProcess();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,22 +33,23 @@ Crusher::~Crusher()
 | 
			
		|||
	delete myBM1DProcess;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Crusher::Bigger(double percent)
 | 
			
		||||
inline bool Crusher::Bigger()
 | 
			
		||||
{
 | 
			
		||||
	int counterBig = 0;
 | 
			
		||||
	double limit = nSteps * percent;
 | 
			
		||||
	//double limit = nSteps * percent;
 | 
			
		||||
	const std::vector<Double_t> & refx = myBM1DProcess -> GetX();
 | 
			
		||||
	
 | 
			
		||||
	for(int i = 0; i < nSteps; i++)
 | 
			
		||||
	{
 | 
			
		||||
		
 | 
			
		||||
		if(myBM1DProcess -> GetX()[i] < x[i]) // reference < origin
 | 
			
		||||
		if(refx[i] < x[i]) // reference < origin
 | 
			
		||||
		{
 | 
			
		||||
			counterBig ++;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	if(counterBig >= limit)
 | 
			
		||||
	if(counterBig >= BiggerLimit)
 | 
			
		||||
	{
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -71,7 +79,7 @@ bool Crusher::RunMachine(const int & nRuns, const MuSigma & parameters)
 | 
			
		|||
			}
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			if(Bigger(0.5))
 | 
			
		||||
			if(Bigger())
 | 
			
		||||
			{
 | 
			
		||||
				counter ++;
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,8 +27,8 @@ Draw2D::Draw2D(int nop, double percent, int nRunsp, std::vector<Double_t> tp, st
 | 
			
		|||
	BM1D_histo2 = new TH2D("BM1D_histo2", "BM1D_histo2",  myLattice -> GetWidth() , myLattice -> GetMuMin(), (myLattice -> GetMuMax()) , myLattice -> GetHeight() ,  myLattice -> GetSigmaMin(),  (myLattice -> GetSigmaMax()) );
 | 
			
		||||
    
 | 
			
		||||
	graphArray.size = myLattice -> GetLatticeSize();
 | 
			
		||||
	graphArray.X    = new double[graphArray.size];
 | 
			
		||||
	graphArray.Y    = new double[graphArray.size];
 | 
			
		||||
	graphArray.X    = new double[graphArray.size] {};
 | 
			
		||||
	graphArray.Y    = new double[graphArray.size] {};
 | 
			
		||||
	
 | 
			
		||||
	gr = new TGraph(graphArray.size);
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
#include "Draw2DWorkerThread.hh"
 | 
			
		||||
 | 
			
		||||
Draw2DWorkerThread::Draw2DWorkerThread(int jobOffset_, int jobSize_, std::vector<Double_t> x_, std::vector<Double_t> t_, int nRuns_, Lattice *myLattice_, TH2D *BM1D_histo_, TH2D *BM1D_histo2_, struct graphArray graphArray_, pthread_mutex_t *histoMutex_)
 | 
			
		||||
Draw2DWorkerThread::Draw2DWorkerThread(int jobOffset_, int jobSize_, const std::vector<Double_t> & x_, const std::vector<Double_t> & t_, int nRuns_, Lattice *myLattice_, TH2D *BM1D_histo_, TH2D *BM1D_histo2_, struct graphArray graphArray_, pthread_mutex_t *histoMutex_)
 | 
			
		||||
{
 | 
			
		||||
	std::cout << "Draw2DWorkerThread::Draw2DWorkerThread" <<std::endl;
 | 
			
		||||
	//copy to private variables
 | 
			
		||||
	x = x_;
 | 
			
		||||
	t = t_;
 | 
			
		||||
	//x = x_;
 | 
			
		||||
	//t = t_;
 | 
			
		||||
	
 | 
			
		||||
	myLattice = myLattice_;
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ Draw2DWorkerThread::Draw2DWorkerThread(int jobOffset_, int jobSize_, std::vector
 | 
			
		|||
	jobSize = jobSize_;
 | 
			
		||||
	
 | 
			
		||||
	//create Crusher instance
 | 
			
		||||
	myCrusher = new Crusher(t,x);
 | 
			
		||||
	myCrusher = new Crusher(t_, x_);
 | 
			
		||||
	
 | 
			
		||||
	//calculate lattice parameters  TODO rework lattice class!!
 | 
			
		||||
	XbinSize = (myLattice -> GetMuMax() - myLattice -> GetMuMin())/ myLattice -> GetWidth() ;
 | 
			
		||||
| 
						 | 
				
			
			@ -63,5 +63,5 @@ void Draw2DWorkerThread::WorkerFunction()
 | 
			
		|||
						
 | 
			
		||||
				}
 | 
			
		||||
		}		
 | 
			
		||||
 pthread_exit((void*) 0);  //kell?? vagy NULL??	
 | 
			
		||||
 pthread_exit((void*) 0); 
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue