// fitfun.cpp --- Fitfunktionen fuer A und B // 2004 10 20 Daniela Mund #ifndef FITFUN_H #define FITFUN_H // Root-Includes #include #include #include #include #include #include using namespace std; #define SPEKLEN 2048 #define MAX_ENERGY 1300. #define MIN_ENERGY 0. #define PE_SPEKLEN 512 #define PAR_NUM 7 const Double_t alpha=7.297352533e-3; const Double_t pi=3.141592654; const Double_t me=510.999; const Double_t E0=1292.579; const Double_t mp=938271.998; extern TF1 *tfun; // Triggerfunktion extern TF1 *sp; // Spence-Funktion extern int FitFlag; Double_t triggerfun(Double_t *x, Double_t *par); Double_t beta(Double_t Ee);// v/c Double_t min_channel(Double_t channel, Double_t sigma); Double_t max_channel(Double_t channel, Double_t sigma); /* --- Verbreiterungsfunktionen ---*/ void poisson_broad(TH1F *fromHist, TH1F *toHist,Double_t PE_per_keV); void BinomialCorr(TH1F *fromHist); void gaus_broad(TH1F *fromHist, TH1F *toHist,Double_t BinPerPhotoElectron, Double_t SigmaGaus, Double_t sigmaPed, Double_t ChannelOffset); /* ------- Eichspektren */ void bi(TH1F *spec,Double_t biscale); void cer(TH1F *spec); void sn(TH1F *spec); /* TODO: fermifunktionen */ /* TODO: asymmetrien-----------*/ class MyFit { private: TH1F *theor_spec; TH1F *pe_spec; TH1F *effective_spec; Double_t old_parameter[PAR_NUM]; bool fix_parameter[PAR_NUM]; int flag; public: MyFit(Double_t *parameter, int FunFlag); Double_t GetHistoBin(Double_t *x, Double_t *par); void ChangeHistos(Double_t *parameter); void SelectTheory(int MyFlag, Double_t *newParameter); TF1 *GetFunction(void); }; // gibt komplettes TheorieSpektrum raus TH1F *fitspec(Double_t *par); #endif