newly added

This commit is contained in:
nemu 2010-06-04 11:31:30 +00:00
parent 787a95dad3
commit c4e7d3c57b
14 changed files with 556 additions and 55 deletions

View File

@ -4,19 +4,19 @@ FITPARAMETER
# No Name Value Step Pos_Error Boundaries
1 field 94.717 0 none
2 deadlayer 10.5 0 none
3 lambda 115.947 -0.91963 0.884948
3 lambda 115.947 -0.91963 none
# E = 22keV
4 phase22 25.4956 0 none
5 asym22 0.104724 -0.00293244 0.00297537 0 0.3
6 rate22 0.558459 -0.0323891 0.0325438
7 NormL22 753.067 -0.86835 0.866368
8 BGL22 51.0796 -0.132894 0.132971
9 NormR22 545.968 -0.762193 0.766843
10 BGR22 38.5992 -0.115679 0.115309
11 relasyR22 1.0697 -0.0377904 0.0388018 0.2 2
12 relphaR22 162.711 -1.53722 1.51998 110 210
5 asym22 0.104724 -0.00293244 none 0 0.3
6 rate22 0.558459 -0.0323891 none
7 NormL22 753.067 -0.86835 none
8 BGL22 51.0796 -0.132894 none
9 NormR22 545.968 -0.762193 none
10 BGR22 38.5992 -0.115679 none
11 relasyR22 1.0697 -0.0377904 none 0.2 2
12 relphaR22 162.711 -1.53722 none 110 210
13 energy22 22 0 none
14 one 1 0 none
@ -65,7 +65,10 @@ packing 150
COMMANDS
MINIMIZE
#HESSE
MINOS
#MINOS
#SCAN 3
CONTOURS 2 3
MNPLOT
SAVE
###############################################################
@ -83,5 +86,5 @@ runs 1 2
range 0.00 4.00 -0.25 0.25
###############################################################
STATISTIC --- 2010-01-08 14:15:38
chisq = 700.410521, NDF = 663, chisq/NDF = 1.05642612
STATISTIC --- 2010-03-12 11:22:43
*** FIT DID NOT CONVERGE ***

View File

@ -3,10 +3,10 @@ Test asymmetry plot, PSI-BIN data file
FITPARAMETER
# Nr. Name Value Step Pos_Error Boundaries
1 alpha 0.954734 0 none 0 2
2 asy 0.262608 0.00143923 none 0 0.33
3 phase -0.699373 0.328173 none
4 field 97.9126 0.0550285 none 0 none
5 rate 0.316773 0.0044115 none 0 none
2 asy 0.262387 0.00144114 none 0 0.33
3 phase -0.0892349 0.327999 none
4 field 97.9113 0.0550109 none 0 none
5 rate 0.31646 0.00441463 none 0 none
###############################################################
THEORY
@ -55,5 +55,5 @@ range 0.00 8.00 -0.30 0.30
view_packing 38
###############################################################
STATISTIC --- 2010-01-08 14:45:44
chisq = 543.235673, NDF = 351, chisq/NDF = 1.54767998
STATISTIC --- 2010-05-26 21:27:41
chisq = 545.990682, NDF = 351, chisq/NDF = 1.55552901

31
src/tests/FIR/Makefile Normal file
View File

@ -0,0 +1,31 @@
# Makefile for the remez exchange algorithm
#
# Author: Andreas Suter
# e-mail: andreas.suter@psi.ch
#
# $Id$
#----------------------------------------------------------------
CXX = gcc
CXXFLAGS = -g -Wall -fPIC
LD = g++
LDFLAGS = -g
LIBS = -lm
OBJS = remez.o
OBJS += test.o
EXEC = remez_test
all: $(EXEC)
$(EXEC): $(OBJS)
$(LD) $(OBJS) -o $(EXEC) $(LIBS)
clean:
@rm -f $(OBJS)
@echo ">> removing $(OBJS)"
$(OBJS): %.o: %.c
$(CXX) $(CXXFLAGS) -c $<

View File

@ -21,6 +21,8 @@
#include "remez.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
/*******************

View File

@ -32,7 +32,7 @@
#define Pi2 6.2831853071795865
#define GRIDDENSITY 16
#define MAXITERATIONS 40
#define MAXITERATIONS 100
/* Function prototype for remez() - the only function that should need be
* called from external code

View File

@ -26,9 +26,11 @@
**************************************************************************/
#include "remez.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
main()
int main()
{
double *weights, *desired, *bands;
double *h;
@ -37,40 +39,50 @@ main()
bands = (double *)malloc(10 * sizeof(double));
weights = (double *)malloc(5 * sizeof(double));
desired = (double *)malloc(5 * sizeof(double));
h = (double *)malloc(300 * sizeof(double));
h = (double *)malloc(600 * sizeof(double));
desired[0] = 0;
desired[1] = 1;
desired[2] = 0;
desired[3] = 1;
desired[4] = 0;
// desired[3] = 1;
// desired[4] = 0;
/*
weights[0] = 10;
weights[1] = 1;
weights[2] = 3;
weights[3] = 1;
weights[4] = 20;
*/
weights[0] = 1;
weights[1] = 1;
weights[2] = 1;
// weights[3] = 1;
// weights[4] = 1;
bands[0] = 0;
bands[1] = 0.05;
bands[2] = 0.1;
bands[3] = 0.15;
bands[4] = 0.18;
bands[5] = 0.25;
bands[6] = 0.3;
bands[7] = 0.36;
bands[8] = 0.41;
bands[9] = 0.5;
bands[1] = 0.12;
bands[2] = 0.17;
bands[3] = 0.28;
bands[4] = 0.33;
bands[5] = 0.50;
// bands[6] = 0.3;
// bands[7] = 0.36;
// bands[8] = 0.41;
// bands[9] = 0.5;
remez(h, 104, 5, bands, desired, weights, BANDPASS);
for (i=0; i<104; i++)
remez(h, 102, 2, bands, desired, weights, BANDPASS);
for (i=0; i<102; i++)
{
printf("%23.20f\n", h[i]);
printf("%3d, %23.20f\n", i, h[i]);
}
free(bands);
free(weights);
free(desired);
free(h);
return 1;
}

View File

@ -0,0 +1,99 @@
#---------------------------------------------------
# Makefile.PMeissnerNonMuSR
#
# Author: Andreas Suter
# e-mail: andreas.suter@psi.ch
#
# $Id$
#
#---------------------------------------------------
#---------------------------------------------------
# get compilation and library flags from root-config
ROOTCFLAGS = $(shell $(ROOTSYS)/bin/root-config --cflags)
ROOTLIBS = $(shell $(ROOTSYS)/bin/root-config --libs)
ROOTGLIBS = $(shell $(ROOTSYS)/bin/root-config --glibs)
#---------------------------------------------------
# depending on the architecture, choose the compiler,
# linker, and the flags to use
#
OSTYPE = $(shell uname)
ifeq ($(OSTYPE),Linux)
OS = LINUX
endif
ifeq ($(OSTYPE),linux-gnu)
OS = LINUX
endif
ifeq ($(OSTYPE),darwin)
OS = DARWIN
endif
# -- Linux
ifeq ($(OS),LINUX)
CXX = g++
CXXFLAGS = -g -Wall -Wno-trigraphs -fPIC
INCLUDES = -I./
LD = g++
LDFLAGS = -g
SOFLAGS = -O -shared
endif
# -- Darwin
ifeq ($(OS),DARWIN)
CXX = g++
CXXFLAGS = -g -Wall -Wno-trigraphs -fPIC
INCLUDES = -I../include
LD = g++
LDFLAGS = -g
SOFLAGS = -dynamic
endif
# the output from the root-config script:
CXXFLAGS += $(ROOTCFLAGS)
LDFLAGS +=
# the ROOT libraries (G = graphic)
LIBS = $(ROOTLIBS) -lXMLParser
GLIBS = $(ROOTGLIBS) -lXMLParser
# some definitions: headers (used to generate *Dict* stuff), sources, objects,...
OBJS =
OBJS += PMeissnerNonMuSR.o PMeissnerNonMuSRDict.o
SHLIB = libPMeissnerNonMuSR.so
# make the shared lib:
#
all: $(SHLIB)
$(SHLIB): $(OBJS)
@echo "---> Building shared library $(SHLIB) ..."
/bin/rm -f $(SHLIB)
$(LD) $(OBJS) $(SOFLAGS) -o $(SHLIB) $(LIBS)
@echo "done"
# clean up: remove all object file (and core files)
# semicolon needed to tell make there is no source
# for this target!
#
clean:; @rm -f $(OBJS) *Dict* core*
@echo "---> removing $(OBJS)"
#
$(OBJS): %.o: %.cpp
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $<
PMeissnerNonMuSRDict.cpp: PMeissnerNonMuSR.h PMeissnerNonMuSRLinkDef.h
@echo "Generating dictionary $@..."
rootcint -f $@ -c -p $^
install: all
@echo "Installing shared lib: libTUserFcn.so ( you must be root ;-) )"
ifeq ($(OS),LINUX)
cp -pv $(SHLIB) $(ROOTSYS)/lib
cp -pv PMeissnerNonMuSR.h $(ROOTSYS)/include
endif

View File

@ -0,0 +1,83 @@
/***************************************************************************
PMeissnerNonMuSR.cpp
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
$Id$
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007 by Andreas Suter *
* andreas.suter@psi.c *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include <iostream>
using namespace std;
#include <cassert>
#include <cmath>
#include "PMeissnerNonMuSR.h"
ClassImp(PMeissnerNonMuSR)
//------------------------------------------------------
/**
* <p>Constructor
*/
PMeissnerNonMuSR::PMeissnerNonMuSR()
{
}
//------------------------------------------------------
/**
* <p>Destructor
*/
PMeissnerNonMuSR::~PMeissnerNonMuSR()
{
}
//------------------------------------------------------
/**
* <p>Example of a user defined function. This example implements a 3rd order polynom
* \f[ = \sum_{k=0}^3 c_k t^k\f]
*
* <b>meaning of paramValues:</b> \f$c_0\f$, \f$c_1\f$, \f$c_2\f$, \f$c_3\f$
*
* <b>return:</b> function value
*
* \param z mean distance from the surface
* \param param parameter vector
*/
Double_t PMeissnerNonMuSR::operator()(Double_t z, const std::vector<Double_t> &param) const
{
// expected parameters: Bext, t=thickness/2, deadLayer, lambda_ab
assert(param.size() == 4);
// if z<deadLayer or z>2t-deadLayer
Double_t result = param[0];
if ((z > param[2]) && (z < 2.0*param[1]-param[2]))
result = param[0]*cosh((param[1]-param[2]-(z-param[2]))/param[3])/cosh((param[1]-param[2])/param[3]);
return result;
}

View File

@ -0,0 +1,57 @@
/***************************************************************************
PMeissnerNonMuSR.h
Author: Andreas Suter
e-mail: andreas.suter@psi.ch
$Id$
***************************************************************************/
/***************************************************************************
* Copyright (C) 2007 by Andreas Suter *
* andreas.suter@psi.c *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef _PMEISSNERNONMUSR_H_
#define _PMEISSNERNONMUSR_H_
#include <vector>
#include "PUserFcnBase.h"
/**
* <p>Meissner screen profile for non-muSR \f$B_{\rm G}\f$ versus \f$\langle z \rangle\f$,
* where \f$B_{\rm G}\f$ is the screened field obtained from a Gaussian fit, and \f$\langle z \rangle\f$
* is the mean muon stopping range. The functional dependency is
* \f[ B_{\rm G}(\langle z \rangle) = B_0 \cosh\left[(\tilde{t}-z)/\lambda_{ab}\right]/\cosh\left[\tilde{t}/\lambda_{ab}\right] \f]
* where \f$\tilde{t} = t-d\f$ with \f$2 t\f$ the thickness of the sample, and \f$d\f$ the dead layer.
*/
class PMeissnerNonMuSR : public PUserFcnBase
{
public:
PMeissnerNonMuSR();
~PMeissnerNonMuSR();
Double_t operator()(Double_t z, const std::vector<Double_t> &param) const;
ClassDef(PMeissnerNonMuSR, 1)
};
#endif // _PMEISSNERNONMUSR_H_

View File

@ -0,0 +1,9 @@
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class PMeissnerNonMuSR+;
#endif

View File

@ -0,0 +1,162 @@
TITLE
>>>Put your title here<<<
Abstract
>>>Put your abstract here<<<
LABELS
T (K)
mu0 H (G)
Implantation Energy (keV)
Transport (kV)
RAL-RAR (kV)
RAT-RAB (kV)
meanZ
phase
field
asymS
rateS
asymF
rateF
Norm_L
BG_L
Norm_R
BG_R
relasy_R
relphase_R
one
zero
CHISQ
NDF
CHISQred
RUN
Data dataT dataB dataE dataTr dataRALRAR dataRATRAB meanZ phase field asymS rateS asymF rateF Norm_L BG_L Norm_R BG_R relasy_R relphase_R one zero CHISQ NDF CHISQred RUN
\-e
dataT = 4.99941, 0.00650997, 0.00650997,\
dataB = 48.0186, 0, 0,\
dataE = 12.5235, 0, 0,\
dataTr = 15.0182, 0, 0,\
dataRALRAR = -0.139, 0, 0,\
dataRATRAB = 0.101, 0, 0,\
meanZ = 20, 0, 0,\
phase = 21.3446, 0.546258, 0.54555,\
field = 46.5739, 0.0441267, 0.0441304,\
asymS = 0.211786, 0.00180491, 0.00179975,\
rateS = 0.130139, 0.00550913, 0.00565179,\
asymF = 0, 0, 0,\
rateF = 0, 0, 0,\
Norm_L = 499.926, 0.74285, 0.744386,\
BG_L = 28.5418, 0.143533, 0.14318,\
Norm_R = 519.636, 0.754036, 0.754018,\
BG_R = 31.1182, 0.147768, 0.147756,\
relasy_R = 1.04062, 0.0113913, 0.0112727,\
relphase_R = 159.803, 0.586514, 0.587173,\
one = 1, 0, 0,\
zero = 0, 0, 0,\
CHISQ = 424.81, 0, 0,\
NDF = 392, 0, 0,\
CHISQred = 1.0837, 0, 0,\
261,,, LSCO (949,951,952) ZFC T=4.98 K,E=12.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/1.60 kV,RAL-RAR=-0.14 kV,RAT-RAB=0.10 kV
dataT = 4.99564, 0.0621208, 0.0621208,\
dataB = 48.0453, 0, 0,\
dataE = 22.5189, 0, 0,\
dataTr = 15.0181, 0, 0,\
dataRALRAR = -0.111, 0, 0,\
dataRATRAB = 0.101, 0, 0,\
meanZ = 50, 0, 0,\
phase = 21.219, 0.543271, 0.543954,\
field = 46.5715, 0.0440877, 0.0440207,\
asymS = 0.21447, 0.00180433, 0.00180653,\
rateS = 0.132167, 0.00532286, 0.00546076,\
asymF = 0, 0, 0,\
rateF = 0, 0, 0,\
Norm_L = 495.542, 0.741127, 0.73896,\
BG_L = 28.1408, 0.142324, 0.142839,\
Norm_R = 527.913, 0.758809, 0.757839,\
BG_R = 30.8471, 0.14803, 0.148163,\
relasy_R = 1.02787, 0.0111753, 0.0110297,\
relphase_R = 160.378, 0.5825, 0.582385,\
one = 1, 0, 0,\
zero = 0, 0, 0,\
CHISQ = 363.518, 0, 0,\
NDF = 392, 0, 0,\
CHISQred = 0.927341, 0, 0,\
262,,, LSCO (949,951,952) ZFC T=5.00 K,E=22.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/-8.40 kV,RAL-RAR=-0.11 kV,RAT-RAB=0.10 kV
dataT = 4.99984, 0.00585447, 0.00585447,\
dataB = 48.039, 0, 0,\
dataE = 4.52904, 0, 0,\
dataTr = 15.0181, 0, 0,\
dataRALRAR = -0.148, 0, 0,\
dataRATRAB = 0.101, 0, 0,\
meanZ = 130.3, 0, 0,\
phase = 22.2369, 0.705849, 0.705242,\
field = 46.8346, 0.0562009, 0.0561931,\
asymS = 0.162166, 0.00181365, 0.00181091,\
rateS = 0.129029, 0.00710755, 0.00735287,\
asymF = 0, 0, 0,\
rateF = 0, 0, 0,\
Norm_L = 503.131, 0.743846, 0.744346,\
BG_L = 28.6006, 0.143795, 0.143646,\
Norm_R = 517.372, 0.752304, 0.752205,\
BG_R = 30.6729, 0.147208, 0.147209,\
relasy_R = 1.08117, 0.015245, 0.0150009,\
relphase_R = 160.517, 0.752318, 0.753607,\
one = 1, 0, 0,\
zero = 0, 0, 0,\
CHISQ = 414.826, 0, 0,\
NDF = 392, 0, 0,\
CHISQred = 1.05823, 0, 0,\
263,,, LSCO (949,951,952) ZFC T=5.00 K,E=4.53 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/9.59 kV,RAL-RAR=-0.15 kV,RAT-RAB=0.10 kV
dataT = 40.0008, 0.000682791, 0.000682791,\
dataB = 48.0408, 0, 0,\
dataE = 12.5235, 0, 0,\
dataTr = 15.0181, 0, 0,\
dataRALRAR = -0.138, 0, 0,\
dataRATRAB = 0.101, 0, 0,\
meanZ = 227.8, 0, 0,\
phase = 22.3589, 0.543593, 0.542181,\
field = 46.8825, 0.0418532, 0.0419479,\
asymS = 0.209744, 0.00176668, 0.00176403,\
rateS = 0.101772, 0.00629342, 0.00660049,\
asymF = 0, 0, 0,\
rateF = 0, 0, 0,\
Norm_L = 499.612, 0.741729, 0.741754,\
BG_L = 28.5143, 0.143253, 0.143207,\
Norm_R = 519.682, 0.752879, 0.752248,\
BG_R = 31.0601, 0.147658, 0.147804,\
relasy_R = 1.04906, 0.0113501, 0.0112243,\
relphase_R = 159.343, 0.581261, 0.58179,\
one = 1, 0, 0,\
zero = 0, 0, 0,\
CHISQ = 422.237, 0, 0,\
NDF = 392, 0, 0,\
CHISQred = 1.07713, 0, 0,\
264,,, LSCO (949,951,952) ZFC T=40.01 K,E=12.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/1.60 kV,RAL-RAR=-0.14 kV,RAT-RAB=0.10 kV
dataT = 40.0001, 0.000412161, 0.000412161,\
dataB = 48.0451, 0, 0,\
dataE = 22.5195, 0, 0,\
dataTr = 15.0182, 0, 0,\
dataRALRAR = -0.112, 0, 0,\
dataRATRAB = 0.101, 0, 0,\
meanZ = 340.1, 0, 0,\
phase = 20.8701, 0.518675, 0.51845,\
field = 46.9052, 0.0410536, 0.0410349,\
asymS = 0.223576, 0.00178038, 0.00177858,\
rateS = 0.112782, 0.00560028, 0.00579775,\
asymF = 0, 0, 0,\
rateF = 0, 0, 0,\
Norm_L = 495.429, 0.739729, 0.739417,\
BG_L = 28.2599, 0.142554, 0.142607,\
Norm_R = 525.303, 0.75693, 0.756255,\
BG_R = 31.3186, 0.14834, 0.148485,\
relasy_R = 1.01191, 0.0105013, 0.0103782,\
relphase_R = 160.605, 0.557402, 0.557926,\
one = 1, 0, 0,\
zero = 0, 0, 0,\
CHISQ = 381.779, 0, 0,\
NDF = 392, 0, 0,\
CHISQred = 0.973927, 0, 0,\
265,,, LSCO (949,951,952) ZFC T=40.00 K,E=22.52 keV,B=~48(G)/1.50(A),Tr/Sa=15.02/-8.40 kV,RAL-RAR=-0.11 kV,RAT-RAB=0.10 kV

View File

@ -0,0 +1,37 @@
YBCO Meissner
###############################################################
FITPARAMETER
# Nr. Name Value Step Pos_Error Boundaries
1 field 100.0 1.0 none 0 none
2 thickness 150.0 0.0 none
3 deadLayer 15.0 1.0 none 0 none
4 lambda 150.0 0.1 none 0 none
###############################################################
THEORY
userFcn libPMeissnerNonMuSR.so PMeissnerNonMuSR 1 2 3 4
###############################################################
RUN YBCO-Meissner MUE4 PSI DB (name beamline institute data-file-format)
fittype 8 (non musr fit)
map 0 0 0 0 0 0 0 0 0 0
xy-data meanZ field
fit 0 400
packing 1
###############################################################
COMMANDS
STRATEGY 1
MINIMIZE
#MINOS
SAVE
END RETURN
###############################################################
PLOT 8 (non muSR plot)
runs 1
range 0 400
###############################################################
STATISTIC --- 2008-04-04 07:44:31
chisq = 569.50931, NDF = 542, chisq/NDF = 1.05075518

View File

@ -0,0 +1,7 @@
# YBCO Meissner runlist test
RUN meanZ
261 20
262 50
263 130.3
264 227.8
265 340.1

View File

@ -32,6 +32,7 @@
void t0NotEqFirstGoodData()
{
// load library
gSystem->Load("$ROOTSYS/lib/libTLemRunHeader");
gSystem->Load("$ROOTSYS/lib/libPAddPoissonNoise");
// generate data
@ -44,7 +45,7 @@ void t0NotEqFirstGoodData()
decayAnaModule = histosFolder->AddFolder("DecayAnaModule", "muSR decay histograms");
// feed run info header
UInt_t runNo = 20001;
UInt_t runNo = 30002;
TString tstr;
runInfo = gROOT->GetRootFolder()->AddFolder("RunInfo", "LEM RunInfo");
gROOT->GetListOfBrowsables()->Add(runInfo, "RunInfo");
@ -67,23 +68,23 @@ void t0NotEqFirstGoodData()
header->SetNHist(8);
header->SetCuts("none");
header->SetModerator("none");
Double_t tt0[8] = {3419.0, 3519.0, 3419.0, 3519.0, 3419.0, 3519.0, 3419.0, 3519.0};
Double_t tt0[8] = {3419.0, 3420.0, 3520.0, 3521.0, 3417.0, 3418.0, 3522.0, 3523.0};
header->SetTimeZero(tt0);
runInfo->Add(header); //add header to RunInfo folder
// create histos
UInt_t t0[8] = {3419, 3519, 3419, 3519, 3419.0, 3519.0, 3419.0, 3519.0};
UInt_t t0[8] = {3419, 3420, 3520, 3521, 3417, 3418, 3522, 3523};
UInt_t n0[8] = {10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0, 10000.0};
UInt_t bkg[8] = {11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0, 11.0};
UInt_t bkg[8] = {10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0};
const Double_t tau = 2197.019; // ns
// asymmetry related stuff
const Double_t timeResolution = 0.1953125; // ns
Double_t a0[8] = {0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26};
Double_t a1[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
Double_t phase[8] = {0.0*TMath::Pi()/180.0, 45.0*TMath::Pi()/180.0, 90.0*TMath::Pi()/180.0, 135.0*TMath::Pi()/180.0,
180.0*TMath::Pi()/180.0, 225.0*TMath::Pi()/180.0, 270.0*TMath::Pi()/180.0, 315.0*TMath::Pi()/180.0,};
Double_t phase[8] = {5.0*TMath::Pi()/180.0, 50.0*TMath::Pi()/180.0, 95.0*TMath::Pi()/180.0, 140.0*TMath::Pi()/180.0,
185.0*TMath::Pi()/180.0, 230.0*TMath::Pi()/180.0, 275.0*TMath::Pi()/180.0, 320.0*TMath::Pi()/180.0,};
const Double_t gamma = 0.00001355; // gamma/(2pi)
Double_t bb0 = 200.0; // field in Gauss
Double_t bb0 = 15000.0; // field in Gauss
Double_t bb1 = 400.0; // field in Gauss
Double_t sigma0 = 0.05/1000.0; // Gaussian sigma in 1/ns
Double_t sigma1 = 0.005/1000.0; // Gaussian sigma in 1/ns
@ -99,32 +100,30 @@ void t0NotEqFirstGoodData()
Double_t time;
Double_t dval;
for (UInt_t i=0; i<8; i++) {
for (UInt_t j=1; j<66601; j++) {
for (UInt_t j=0; j<66600; j++) {
if (j<t0[i]) {
histo[i]->SetBinContent(j, bkg[i]);
histo[i]->SetBinContent(j+1, bkg[i]);
} else {
time = (Double_t)(j-t0[i])*timeResolution;
dval = (Double_t)n0[i]*TMath::Exp(-time/tau)*(1.0+a0[i]*TMath::Exp(-0.5*TMath::Power(time*sigma0,1.2))*TMath::Cos(TMath::TwoPi()*gamma*bb0*time+phase[i])
+a1[i]*TMath::Exp(-0.5*TMath::Power(time*sigma1,2.0))*TMath::Cos(TMath::TwoPi()*gamma*bb1*time+phase[i]))+(Double_t)bkg[i];
histo[i]->SetBinContent(j, (UInt_t)dval);
histo[i]->SetBinContent(j+1, (UInt_t)dval);
}
}
}
// add a promp peak
/*
Double_t ampl = 500.0;
Double_t ampl = 10000.0;
Double_t promptLambda = 500.0/1000.0; // Lorentzain in 1/ns
for (UInt_t i=0; i<4; i++) {
for (UInt_t i=0; i<8; i++) {
for (UInt_t j=1; j<66601; j++) {
dval = histo[i]->GetBinContent(j);
time = (Double_t)(j-t0[i])*timeResolution;
dval += ampl*TMath::Exp(-fabs(time)*promptLambda);
histo[i]->SetBinContent(j, (UInt_t)dval);
histo[i+4]->SetBinContent(j, (UInt_t)dval);
histo[i+8]->SetBinContent(j, (UInt_t)dval);
}
}
*/
// add Poisson noise
PAddPoissonNoise *addNoise = new PAddPoissonNoise();