21
Non-standard physics and Non-standard physics and user-defined priors in user-defined priors in GLoBES GLoBES Workshop on physics and applications of Workshop on physics and applications of the GLoBES software the GLoBES software Max-Planck-Institut für Kernphysik Max-Planck-Institut für Kernphysik January 24, 2007 January 24, 2007 Walter Winter Walter Winter Universität Würzburg Universität Würzburg

Non-standard physics and user- defined priors in GLoBES Workshop on physics and applications of the GLoBES software Workshop on physics and applications

Embed Size (px)

Citation preview

Non-standard physics and user-Non-standard physics and user-defined priors in GLoBESdefined priors in GLoBES

Workshop on physics and applications of the Workshop on physics and applications of the GLoBES softwareGLoBES software

Max-Planck-Institut für KernphysikMax-Planck-Institut für Kernphysik

January 24, 2007January 24, 2007

Walter WinterWalter WinterUniversität WürzburgUniversität Würzburg

January 24, 2007 GLoBES Workshop - Walter Winter

2

OutlineOutline Introduction:Introduction:

Different levels in GLoBESDifferent levels in GLoBES Probability level and the simulation of Probability level and the simulation of

non-standard physicsnon-standard physics Systematics levelSystematics level Physics level and user-defined priorsPhysics level and user-defined priors SummarySummary

January 24, 2007 GLoBES Workshop - Walter Winter

3

Different levels in GLoBESDifferent levels in GLoBES

Probability level

Systematics level

Correlation anddegeneracy level

Additional “nuisance“ parameters. Example:

(Fogli et al, 2002)

Projection onto sub-space/marginalization:

Channel

Rule

Experi-ment(s)

AEDL:

January 24, 2007 GLoBES Workshop - Walter Winter

4

“Evolution“ operator in one layer, being diagonalized:

Probability levelProbability levelHamiltonian in constant matter density layer:

Probability calculation:

January 24, 2007 GLoBES Workshop - Walter Winter

5

Non-standard physics in GLoBESNon-standard physics in GLoBES1. Modify the Hamiltonian, probability calculation, etc. Example: Non-standard matter effect in e--sector:

2. GLoBES now carries k more oscillation parameters, which need to be maintained:

January 24, 2007 GLoBES Workshop - Walter Winter

6

Example: Decoherence at reactor exp.Example: Decoherence at reactor exp. Oscillation probabilities with damping effects:Oscillation probabilities with damping effects:

Damping factors for (wave packet) decoherence:Damping factors for (wave packet) decoherence:

E: Intrinsic wave packet widthCan be implemented analytically in quasi-vacuum (short L)

(Blennow, Ohlsson, Winter, hep-ph/0502147)

(J. Kopp for GLoBES 3.0)

January 24, 2007 GLoBES Workshop - Walter Winter

7

Modification of the access functionsModification of the access functions

const int const int GLB_SIGMA_E = 6GLB_SIGMA_E = 6;;double th12, th13,th23,deltacp,sdm,ldm,double th12, th13,th23,deltacp,sdm,ldm,sigma_Esigma_E;;

int my_set_oscillation_parameters(glb_params p, void *user_data)int my_set_oscillation_parameters(glb_params p, void *user_data){{ th12 = glbGetOscParams(p, GLB_THETA_12); th12 = glbGetOscParams(p, GLB_THETA_12); th13 = glbGetOscParams(p, GLB_THETA_13); th13 = glbGetOscParams(p, GLB_THETA_13); th23 = glbGetOscParams(p, GLB_THETA_23); th23 = glbGetOscParams(p, GLB_THETA_23); deltacp = glbGetOscParams(p, GLB_DELTA_CP); deltacp = glbGetOscParams(p, GLB_DELTA_CP); sdm = glbGetOscParams(p, GLB_DM_21) * 1.0e-18; sdm = glbGetOscParams(p, GLB_DM_21) * 1.0e-18; ldm = glbGetOscParams(p, GLB_DM_31) * 1.0e-18; ldm = glbGetOscParams(p, GLB_DM_31) * 1.0e-18; sigma_E = glbGetOscParams(p, GLB_SIGMA_E);sigma_E = glbGetOscParams(p, GLB_SIGMA_E);

return 0;return 0;}}

int my_get_oscillation_parameters(glb_params p, void *user_data)int my_get_oscillation_parameters(glb_params p, void *user_data){{ glbSetOscParams(p, th12, GLB_THETA_12); glbSetOscParams(p, th12, GLB_THETA_12); glbSetOscParams(p, th13, GLB_THETA_13); glbSetOscParams(p, th13, GLB_THETA_13); glbSetOscParams(p, th23, GLB_THETA_23); glbSetOscParams(p, th23, GLB_THETA_23); glbSetOscParams(p, deltacp, GLB_DELTA_CP); glbSetOscParams(p, deltacp, GLB_DELTA_CP); glbSetOscParams(p, sdm*1.0e18, GLB_DM_21); glbSetOscParams(p, sdm*1.0e18, GLB_DM_21); glbSetOscParams(p, ldm*1.0e18, GLB_DM_31); glbSetOscParams(p, ldm*1.0e18, GLB_DM_31); glbSetOscParams(p, sigma_E, GLB_SIGMA_E);glbSetOscParams(p, sigma_E, GLB_SIGMA_E);

return 0;return 0;}}

Define access functions for the oscillation parameters:Define access functions for the oscillation parameters:

Set oscillationparameters

from internalstructure

Get oscillationparameters

from internalstructure

January 24, 2007 GLoBES Workshop - Walter Winter

8

Definition of a probability engineDefinition of a probability engineint my_probability_matrix(double P[3][3], int cp_sign, double E, int psteps,int my_probability_matrix(double P[3][3], int cp_sign, double E, int psteps, const double *length, const double *density, const double *length, const double *density, double filter_sigma, void *user_data) double filter_sigma, void *user_data){{ int i, j; int i, j; double L, Delta21, Delta31, Delta32, D21, D31, D32, s13, c13, s12, c12, t; double L, Delta21, Delta31, Delta32, D21, D31, D32, s13, c13, s12, c12, t; /* Set all probabilities to zero initially *//* Set all probabilities to zero initially */ for (i=0; i < 3; i++) for (j=0; j < 3; j++) P[i][j] = 0.0; for (i=0; i < 3; i++) for (j=0; j < 3; j++) P[i][j] = 0.0;

/* Calculate total baseline from the input lists*//* Calculate total baseline from the input lists*/ L = 0.0; for (i=0; i < psteps; i++) L += length[i]; L = 0.0; for (i=0; i < psteps; i++) L += length[i]; L = GLB_KM_TO_EV(L) * 1.0e9; /* Convert to GeV^{-1} */ L = GLB_KM_TO_EV(L) * 1.0e9; /* Convert to GeV^{-1} */

/* Compute P_ee analytically with a piece of code*//* Compute P_ee analytically with a piece of code*/ s12 = sin(th12);c12 = cos(th12);s13 = sin(th13); s12 = sin(th12);c12 = cos(th12);s13 = sin(th13);c13 = cos(th13);c13 = cos(th13); t = L / (4.0 * E); t = L / (4.0 * E); Delta21 = sdm * t;Delta31 = ldm * t;Delta32 = Delta31 - Delta21; Delta21 = sdm * t;Delta31 = ldm * t;Delta32 = Delta31 - Delta21; t = M_SQRT2 * sigma_E / E; t = M_SQRT2 * sigma_E / E; D21 = exp(-square( Delta21 * t )); D31 = exp(-square( Delta31 * t )); D21 = exp(-square( Delta21 * t )); D31 = exp(-square( Delta31 * t )); D32 = exp(-square( Delta32 * t )); D32 = exp(-square( Delta32 * t )); P[0][0]P[0][0] = square(square(c13)) * ( 1 - 2.0*square(s12*c12)* (1–D21* = square(square(c13)) * ( 1 - 2.0*square(s12*c12)* (1–D21* cos(2.0*Delta21))) + 2.0*square(s13*c13) * ( D31*square(c12) * cos(2.0*Delta21))) + 2.0*square(s13*c13) * ( D31*square(c12) * cos(2.0*Delta31) + D32*square(s12) * cos(2.0*Delta32) ) + cos(2.0*Delta31) + D32*square(s12) * cos(2.0*Delta32) ) + square(square(s13)); square(square(s13));

return 0; return 0;}}

(GLoBES 3.0, example6.c)

January 24, 2007 GLoBES Workshop - Walter Winter

9

Using the new probability engineUsing the new probability engine Register the new probability engine and access functionsRegister the new probability engine and access functions

glbRegisterProbabilityEngine(glbRegisterProbabilityEngine(7, // Number of params7, // Number of params &my_probability_matrix, &my_probability_matrix, &my_set_oscillation_parameters, &my_set_oscillation_parameters, &my_get_oscillation_parameters, &my_get_oscillation_parameters, NULL); NULL);

Maintain the new oscillation parameter(s):Maintain the new oscillation parameter(s):– Use Use glbSetOscParamsglbSetOscParams and and glbGetOscParamsglbGetOscParams to to

access the non-standard parameter(s)access the non-standard parameter(s)

– Always use Always use glbChiNPglbChiNP (instead of (instead of glbChiTheta13glbChiTheta13 etc.) etc.)to define how the non-standard degrees of freedom behaveto define how the non-standard degrees of freedom behave

– Define your non-standard behavior in the projection with Define your non-standard behavior in the projection with glbSetProjectionFlagglbSetProjectionFlag

January 24, 2007 GLoBES Workshop - Walter Winter

10

Results for our exampleResults for our example glbDefineProjection(myproj, GLB_FREE, glbDefineProjection(myproj, GLB_FREE, GLB_FIXED, GLB_FIXED, GLB_FIXED, GLB_FIXED, GLB_FIXED, GLB_FIXED, GLB_FREE, GLB_FREE); GLB_FREE, GLB_FREE); glbSetDensityProjectionFlag(myproj, glbSetDensityProjectionFlag(myproj, GLB_FIXED, GLB_ALL); GLB_FIXED, GLB_ALL); glbSetProjectionFlag(myproj,GLB_FIXED,GLB_SIGMA_E);glbSetProjectionFlag(myproj,GLB_FIXED,GLB_SIGMA_E); glbSetProjection(myproj); glbSetProjection(myproj);

for(x=0; x < 0.05+0.001; x+=0.005) /* th13 */ for(x=0; x < 0.05+0.001; x+=0.005) /* th13 */ for(y=0.0; y < 0.010+0.001; y+=0.001) /* sigma_E */ for(y=0.0; y < 0.010+0.001; y+=0.001) /* sigma_E */ { { /* Set vector of test=fit values */ /* Set vector of test=fit values */ thetheta13=asin(sqrt(x))/2.0; thetheta13=asin(sqrt(x))/2.0; glbSetOscParams(test_values,thetheta13, glbSetOscParams(test_values,thetheta13, GLB_THETA_13); GLB_THETA_13); glbSetOscParams(test_values,y,GLB_SIGMA_E);glbSetOscParams(test_values,y,GLB_SIGMA_E); /* Compute Chi^2 with correlations */ /* Compute Chi^2 with correlations */ res= res=glbChiNPglbChiNP(test_values,NULL,GLB_ALL);(test_values,NULL,GLB_ALL); AddToOutput(x,y,res); AddToOutput(x,y,res); } } True values: 13=e=0

(Original figure from hep-ph/0502147)

Correlations

January 24, 2007 GLoBES Workshop - Walter Winter

11

More physics examples computed with More physics examples computed with GLoBESGLoBES

Simulation of Simulation of Hamiltonian-level effectsHamiltonian-level effects

(Blennow, Ohlsson, Winter, (Blennow, Ohlsson, Winter,

hep-ph/0508175; hep-ph/0508175;

also: Kopp, Lindner, Ota, in prep.)also: Kopp, Lindner, Ota, in prep.)

Mass-varying neutrinos: Mass-varying neutrinos: Environment-dependence Environment-dependence of neutrino massof neutrino mass

(Schwetz, Winter, hep-ph/0511177)(Schwetz, Winter, hep-ph/0511177)

January 24, 2007 GLoBES Workshop - Walter Winter

12

Systematics levelSystematics level

Discussed in Joachim Kopp´s talk …Discussed in Joachim Kopp´s talk …

User-defined?

January 24, 2007 GLoBES Workshop - Walter Winter

13

Correlation and degeneracy levelCorrelation and degeneracy level… and the inclusion of external input… and the inclusion of external input

Projection onto sub-space/marginalization:

Standard GLoBES: Include of external input by Gaussian priors, e.g., for 12 with an error 12

User-defined priors:

January 24, 2007 GLoBES Workshop - Walter Winter

14

How to define user-defined priorsHow to define user-defined priors

double my_prior(const glb_params in, void* user_data)double my_prior(const glb_params in, void* user_data){ { glb_params central_values = glbAllocParams(); glb_params central_values = glbAllocParams(); glb_params input_errors = glbAllocParams(); glb_params input_errors = glbAllocParams(); glb_projection p = glbAllocProjection(); glb_projection p = glbAllocProjection(); glbGetCentralValues(central_values); glbGetCentralValues(central_values); glbGetInputErrors(input_errors); glbGetInputErrors(input_errors); glbGetProjection(p); glbGetProjection(p); int i; int i; double pv = 0.0; double pv = 0.0; double fitvalue,centralvalue,inputerror; double fitvalue,centralvalue,inputerror;

/* Add oscillation parameter priors *//* Add oscillation parameter priors */ for(i=0;i<glbGetNumOfOscParams();i++) for(i=0;i<glbGetNumOfOscParams();i++) if(glbGetProjectionFlag(p,i)==GLB_FREE) if(glbGetProjectionFlag(p,i)==GLB_FREE) { { fitvalue=glbGetOscParams(in,i); fitvalue=glbGetOscParams(in,i); centralvalue=glbGetOscParams(central_values,i); centralvalue=glbGetOscParams(central_values,i); inputerror=glbGetOscParams(input_errors,i); inputerror=glbGetOscParams(input_errors,i); if(inputerror>1e-12) if(inputerror>1e-12) { { if(i==GLB_THETA_12) pv+=square((if(i==GLB_THETA_12) pv+=square(( square(startvalue-sin(fitvalue)))/inputerror); square(startvalue-sin(fitvalue)))/inputerror); else else pv+=square((startvalue-fitvalue)/inputerror); pv+=square((startvalue-fitvalue)/inputerror); } } } }

/* Add matter parameter priors *//* Add matter parameter priors */ for(i=0;i<glb_num_of_exps;i++) for(i=0;i<glb_num_of_exps;i++) if(glbGetDensityProjectionFlag(p,i)==GLB_FREE) if(glbGetDensityProjectionFlag(p,i)==GLB_FREE) { { fitvalue=glbGetDensityParams(in,i); fitvalue=glbGetDensityParams(in,i); inputerror=glbGetDensityParams(input_errors,i); inputerror=glbGetDensityParams(input_errors,i); if(inputerror>1e-12) if(inputerror>1e-12) pv+=square((fitvalue-1.0)/inputerror); pv+=square((fitvalue-1.0)/inputerror); } }

glbFreeParams(central_values); glbFreeParams(central_values); glbFreeParams(input_errors); glbFreeParams(input_errors); glbFreeProjection(p); glbFreeProjection(p);

/* Add any input from other experiments: *//* Add any input from other experiments: */ /* pv+= ... */ /* pv+= ... */

return pv; return pv; }}

In main():In main():

glbInit(argv[0]); glbInit(argv[0]); glbRegisterPriorFunction(my_prior,glbRegisterPriorFunction(my_prior, NULL,NULL,NULL); NULL,NULL,NULL);

Define a prior function and register it.Example: Gaussian error in sin212 (instead of 12)

January 24, 2007 GLoBES Workshop - Walter Winter

15

Example: Astrophysical sources Example: Astrophysical sources … for neutrino oscillations?… for neutrino oscillations?

Astrophysical neutrino sources produceAstrophysical neutrino sources producecertain flavor ratios of neutrinos (certain flavor ratios of neutrinos (ee::::):):Neutron decays: (1:0:0)Neutron decays: (1:0:0)Muon damped sources: (0:1:0)Muon damped sources: (0:1:0)Pion decays: (1:2:0)Pion decays: (1:2:0)

These ratios are changed through averaged These ratios are changed through averaged neutrino oscillations:neutrino oscillations:Only CP-conserving effects remaining ~ cos Only CP-conserving effects remaining ~ cos CPCP

Measure muon track to shower ratio at neutrino Measure muon track to shower ratio at neutrino telescope: R = telescope: R = /(/(ee))(conservative, since in future also flavors!?)(conservative, since in future also flavors!?)

January 24, 2007 GLoBES Workshop - Walter Winter

16

Complementarity to beamsComplementarity to beams Use R to obtainUse R to obtain

information oninformation onosc. parameters?osc. parameters?Difficult, sinceDifficult, since– Low statisticsLow statistics– No spectral infoNo spectral info

(Serpico, Kachelriess, 2005;(Serpico, Kachelriess, 2005;Serpico, 2005)Serpico, 2005)

But: ComplementaryBut: Complementarydependence on dependence on CPCPHere: Constant-rates/ Here: Constant-rates/ constant-R curvesconstant-R curves

Combine the Combine the information from two information from two “low-statistics”“low-statistics”sources?sources? (Winter, hep-ph/0604191)(Winter, hep-ph/0604191)

Best-fit

January 24, 2007 GLoBES Workshop - Walter Winter

17

Implementation in GLoBESImplementation in GLoBESdouble R_neutron_true; /* Simulated/true R */double R_neutron_true; /* Simulated/true R */double relerror = 0.2; /* Relative error */double relerror = 0.2; /* Relative error */

double R_neutron(const glb_params in)double R_neutron(const glb_params in){{ double theta12 = glbGetOscParams(in,GLB_THETA_12);double theta13 = glbGetOscParams(in,GLB_THETA_13);double theta12 = glbGetOscParams(in,GLB_THETA_12);double theta13 = glbGetOscParams(in,GLB_THETA_13); double theta23 = glbGetOscParams(in,GLB_THETA_23);double deltacp = glbGetOscParams(in,GLB_DELTA_CP); double theta23 = glbGetOscParams(in,GLB_THETA_23);double deltacp = glbGetOscParams(in,GLB_DELTA_CP); double sdm = glbGetOscParams(in,GLB_DM_21);double ldm = glbGetOscParams(in,GLB_DM_31); double sdm = glbGetOscParams(in,GLB_DM_21);double ldm = glbGetOscParams(in,GLB_DM_31);

double R= double R= (pow(cos(theta13),2.0)*(8.0*pow(cos(theta12),2.0)* pow(cos(theta23),2.0)*(pow(cos(theta13),2.0)*(8.0*pow(cos(theta12),2.0)* pow(cos(theta23),2.0)* pow(sin(theta12),2.0) + sin(theta13)*((7.0 + cos(4.0*theta12))*sin(theta13)* pow(sin(theta12),2.0) + sin(theta13)*((7.0 + cos(4.0*theta12))*sin(theta13)* pow(sin(theta23),2.0) + cos(deltacp)*sin(4.0*theta12)*sin(2.0*theta23))))/ pow(sin(theta23),2.0) + cos(deltacp)*sin(4.0*theta12)*sin(2.0*theta23))))/ (4.0 + 2.0*pow(cos(theta13),2.0)*(2.0*pow(cos(theta12),4.0)*cos(2.0*theta23)* (4.0 + 2.0*pow(cos(theta13),2.0)*(2.0*pow(cos(theta12),4.0)*cos(2.0*theta23)* pow(sin(theta13),2.0) + pow(cos(theta12),2.0)*(-2.0*(cos(2.0*theta13) + pow(sin(theta13),2.0) + pow(cos(theta12),2.0)*(-2.0*(cos(2.0*theta13) + cos(2.0*theta23))*pow(sin(theta12),2.0) + (-3.0 + cos(2.0*theta12))* cos(2.0*theta23))*pow(sin(theta12),2.0) + (-3.0 + cos(2.0*theta12))* pow(sin(theta13),2.0)) + 4.0*cos(deltacp)*cos(theta12)*cos(theta23)* pow(sin(theta13),2.0)) + 4.0*cos(deltacp)*cos(theta12)*cos(theta23)* pow(sin(theta12),3.0)*sin(theta13)*sin(theta23) -4.0*pow(sin(theta12),2.0)* pow(sin(theta12),3.0)*sin(theta13)*sin(theta23) -4.0*pow(sin(theta12),2.0)* pow(sin(theta13),2.0)*pow(sin(theta23),2.0) – 2.0*cos(deltacp)*pow(cos(theta12),3.0)* pow(sin(theta13),2.0)*pow(sin(theta23),2.0) – 2.0*cos(deltacp)*pow(cos(theta12),3.0)* sin(theta12)*sin(theta13)*sin(2.0*theta23))); sin(theta12)*sin(theta13)*sin(2.0*theta23)));

return R; return R;

}}

double my_prior(const glb_params in, void* user_data)double my_prior(const glb_params in, void* user_data){ { [...] /* Standard GLoBES prior */ [...] /* Standard GLoBES prior */ /* Astrophysical information */ /* Astrophysical information */ pv+=square((R_neutron(in)-R_neutron_true)/(R_neutron_true*relerror);pv+=square((R_neutron(in)-R_neutron_true)/(R_neutron_true*relerror);

return pv; return pv;}}

glbSetRates(true_values);R_neutron_true = R_neutron(true_values);glbSetRates(true_values);R_neutron_true = R_neutron(true_values);

Global variables

Calculate,for example,

RNeutron analytically:

Add as externalGaussian

measurement

Always together!

January 24, 2007 GLoBES Workshop - Walter Winter

18

Reactor experiment+astrophysical sourceReactor experiment+astrophysical source

Double ChoozDouble Choozcould be thecould be thefirst experiment tofirst experiment toobserve observe CPCP

(Winter, hep-ph/0604191)(Winter, hep-ph/0604191)

(1(1, 90% CL; 1 d.o.f.), 90% CL; 1 d.o.f.)

January 24, 2007 GLoBES Workshop - Walter Winter

19

Mass hierarchyMass hierarchy Astrophysical source may Astrophysical source may

help mass hierarchy help mass hierarchy measurement at superbeam:measurement at superbeam:20% prec. good20% prec. good (Winter, hep-ph/0604191)(Winter, hep-ph/0604191)

No ext. info

20%

5%10%

January 24, 2007 GLoBES Workshop - Walter Winter

20

Further physics applicationsFurther physics applications Combination with other external measurements, Combination with other external measurements,

such as atmospheric neutrinossuch as atmospheric neutrinos(Huber, Maltoni, Schwetz, hep-ph/0501037; (Huber, Maltoni, Schwetz, hep-ph/0501037; Campagne, Maltoni, Mezzetto, Schwetz, hep-ph/0603172)Campagne, Maltoni, Mezzetto, Schwetz, hep-ph/0603172)

Penalties for degeneracy localization:Penalties for degeneracy localization:E.g. add penalty if in wrong octantE.g. add penalty if in wrong octant(Schwetz priors)(Schwetz priors)

Tutorial „Finding parameter degeneracies“Tutorial „Finding parameter degeneracies“tomorrow!tomorrow!

January 24, 2007 GLoBES Workshop - Walter Winter

21

Summary: GLoBES 3.0Summary: GLoBES 3.0

Probability level

Systematics level

Correlation anddegeneracy level

User-definedprobabilities

User-definedsystematics

User-definedpriors

(Joachim’s talk)(Joachim’s talk)

Maximumflexibility

inGLoBES

(Huber, Kopp, Lindner, Rolinec, (Huber, Kopp, Lindner, Rolinec, Winter, hep ph/0701187)Winter, hep ph/0701187)

http://www.mpi-hd.mpg.de/http://www.mpi-hd.mpg.de/lin/globes/lin/globes/