Create a lattice around mu, sigma
This commit is contained in:
parent
2cb63ce971
commit
eeca7819af
|
@ -0,0 +1,49 @@
|
|||
#ifndef Lattice_h
|
||||
#define LAttice_h 1
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <fstream>
|
||||
#include <cmath>
|
||||
|
||||
#include "TMath.h"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
// //
|
||||
// Create a lattice around the estimated mu, sigma //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
||||
Double_t mu = 0.0;
|
||||
Double_t sigma = 0.0;
|
||||
}MuSigma;
|
||||
|
||||
class Lattice{
|
||||
|
||||
public:
|
||||
Lattice();
|
||||
~Lattice();
|
||||
|
||||
void SetNop(Int_t num);
|
||||
void SetPercent(Int_t num);
|
||||
|
||||
void SetLattice(Double_t mu_est, Double_t sigma_est);
|
||||
|
||||
MuSigma GetMuSigma(Int_t index);
|
||||
|
||||
|
||||
private:
|
||||
Int_t _nop; //number of points in [mu-_percent; mu+_percent]
|
||||
Double_t _percent;
|
||||
|
||||
std::vector<MuSigma> ms_vect;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,74 @@
|
|||
#include "Lattice.hh"
|
||||
|
||||
|
||||
Lattice::Lattice() : _nop(100), _percent(0.2){;}
|
||||
|
||||
Lattice::~Lattice(){;}
|
||||
|
||||
|
||||
void Lattice::SetNop(Int_t num){
|
||||
|
||||
_nop = num;
|
||||
}
|
||||
|
||||
|
||||
void Lattice::SetPercent(Int_t num){
|
||||
|
||||
if((num > 1) && (num <= 100))
|
||||
_percent = num/100.0;
|
||||
|
||||
else
|
||||
std::cout << "Invalid value for percent, set to default" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
MuSigma Lattice::GetMuSigma(Int_t index){
|
||||
|
||||
return ms_vect[index];
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Lattice::SetLattice(Double_t mu_est, Double_t sigma_est){
|
||||
|
||||
Double_t loc_sigma, loc_mu;
|
||||
|
||||
Double_t sigmin, sigmax, mumin, mumax;
|
||||
|
||||
Double_t ds, dm;
|
||||
|
||||
mumax = mu_est + mu_est*_percent;
|
||||
mumin = mu_est - mu_est*_percent;
|
||||
sigmax = sigma_est + sigma_est*_percent;
|
||||
sigmin = sigma_est - sigma_est*_percent;
|
||||
|
||||
dm = (mumax-mumin) / _nop;
|
||||
ds = (sigmax-sigmin) / _nop;
|
||||
|
||||
loc_mu = mumin;
|
||||
loc_sigma = sigmin;
|
||||
|
||||
int i = 0;
|
||||
|
||||
while(loc_mu <= mumax){
|
||||
|
||||
ms_vect.push_back(MuSigma());
|
||||
|
||||
ms_vect[i].mu = loc_mu;
|
||||
ms_vect[i].sigma = loc_sigma;
|
||||
|
||||
i++;
|
||||
loc_mu += dm;
|
||||
loc_sigma += ds;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue