Home

User Manual for

image

Contents

1. Conveying under any other circumstances is permitted solely under the conditions stated below Sublicensing is not allowed section 10 makes it unnecessary Protecting Users Legal Rights From Anti Circumvention Law No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996 or similar laws prohibiting or restricting circumvention of such measures When you convey a covered work you waive any legal power to forbid cir cumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work and you disclaim any intention to limit operation or modification of the work as a means of enforcing against the work s users your or third parties legal rights to forbid circumvention of technological measures Conveying Verbatim Copies You may convey verbatim copies of the Program s source code as you receive it in any medium provided that you conspicuously and appropri ately publish on each copy an appropriate copyright notice keep intact all notices stating that this License and any non permissive terms added in accord with section 7 apply to the code keep intact all notices of the 85 absence of any warranty and give all recipients a copy of this License along with the Program You may charge any pric
2. Figure 3 14 A contour plot for sin 623 and Am3 for an ISS neutrino factory simulation using a step which is 50 times smaller than those used earlier 0 1 f 1 1 f i 1 1 1 0 0 005 0 01 0 015 0 02 6 0 025 0 03 0 035 0 04 0 045 13 Figure 3 15 How Fig 3 11 would appear without the Gaussian filter 3 5 NOTES ON FILTERING 49 fluctuations while maintaining the features that are inherent of the physical setup Thus a valid question is What number of bins and what filtering should one use Clearly in order to properly reproduce a feature we should use a bin size as well as a filter size which is relatively small compared to the typical size of the feature Any feature smaller than the bin size will be lost upon binning and any feature smaller than the filter size will be completely smoothed out into a Gaussian with the filter size The easiest way to produce a reliable figure is to simply pick an apropriate bin size and then to try different filter sizes As the features of the graph are smoothened out by the filter the results will always be conservative Thus the best filter size is one which makes the contours smooth and where decreasing the filter size does not significantly shrink the contours If no such filter size can be found this means that the simulation does not contain enough samples to reproduce the wanted features This leaves the user with essentially three alternatives using a relatively jagged graph
3. Ignored Included for compliance with the MonteCUBES standard Returns void double nue_prior glb_params p void user_data Currently equivalent to the standard GLoBES prior p The parameter vector for which to compute the prior user_data Ignored Included for compliance with the GLoBES standard Returns The value of the prior void nue_setAl11NU glb_params p double v This method can be used to set all of the non unitarity parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void 68 void void int int int APPENDIX B THE NONUNITARITY ENGINE NUE nue_setEpss glb_params p double v This method can be used to set all of the absolute values of the non unitarity parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void nue_setPhis glb_params p double v This method can be used to set all of the phases of the non unitarity parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void nue_init_ probability _engine The method that should be called to initiate the NUE Returns 0
4. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms To do so attach the following notices to the program It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty and each file should have at least the copyright line and a pointer to where the full notice is found lt one line to give the program s name and a brief idea of what it does gt Copyright C lt textyear gt lt name of author gt 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 3 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 see lt http www gnu org licenses gt Also add information on how to contact you by electronic and paper mail If the program does terminal interaction make it output a short noti
5. Essentially we are free to choose any transition function W x y How ever a very important special case which is the one currently implemented in MonteCUBES is the choice of the original Metropolis sampling algorithm namely W x gt y W y gt x With this condition the acceptance probability is sim ply the minimum of one and the ratio between P and P z A future version of MonteCUBES may include the possibility of setting a user defined transition function A 1 1 Convergence and finer details Clearly as the Monte Carlo chain test steps and acceptance criteria depend on the current step of the chain there will in general be a correlation between subsequent steps within the same chain In order for this correlation to be ereased it is necessary to create enough samples within each chain and put up criteria of convergence The convergence criteria implemented in MonteCUBES are based on comparing the variances within each chain with the variance of the entire sample In addition in order to get rid of any dependence on the initial conditions the first parts of the chains should be ignored The process of ignoring the first part of the chains is known as burning and MonteCUBES has two different ways of implementing this A l THE METROPOLIS HASTINGS SAMPLING ALGORITHM 53 1 Static burning This method simply burns a predefined number of samples in each chain It can be used when the user has a good grasp of how many ste
6. APPENDIX C THE NSI EVENT GENERATOR ENGINE NSIEGE nsi_setAl1NSI glb_params p double v This method can be used to set all of the NSI parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void nsi_setEpss glb_params p double v This method can be used to set all of the absolute values of the NSI parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void nsi_setPhis glb params p double v This method can be used to set all of the phases of the NSI parameters in a GLoBES parameter vector to a certain value p The GLoBES parameter vector in which to set the values v The value to use for the parameters being set Returns void nsi_init_probability_engine The method that should be called to initiate the nSIEGE Returns 0 nsi_free_probability_engine The method that should be called when freeing the memory allocated by the nSIEGE C 2 API DEFINITIONS 77 Returns 0 int nsi_set_oscillation_ parameters glb params p void user data Sets the oscillation parameters that are used by the nSIEGE to those specified in a GLoBES parameter vector p The GLoBES parameter vector to use user_data Ignored Included for complianc
7. THE MONTECUBES MATLAB GUI Xey O e u U gde i 3 2 10 Am ahenn oe 0 04 1 l 0 5 915 0 0 mod 8 2x 1 Figure 3 9 A 3D surface plot showing the degenerate solutions from the beta beam simulation described in Sec 2 4 2 as well as the GUI settings that pro duced it See Sec 3 3 for more details 3 2 7 3D surface plots The 3D surface plots are essentially the three dimensional equivalents of the 2D counts contour plots and are created in exactly the same way In Fig 3 9 we present a 3D surface plot showing the two degeneracies of the example in Sec 2 4 2 This plot type has the same parameter fields as its two dimensional counterpart However note that three dimensional filtering and binning requires quite a bit of computations and may therefore take some time Also note that it will usually only be possible to see the outer of the surfaces Since this plotting type is mainly inteded to allow the user to visualize the correlation between different parameters it does not include the possibility of exporting any data 3 3 RESULTS FROM THE DEGENERATE SOLUTION SIMULATION 45 0015 0 02 0 025 093 0 035 0 04 0 045 o 02 04 06 14 16 18 2 i Ay ae mod 5 2n x Figure 3 10 The 68 confidence region plots of the degeneracy in 6 3 and 3 3 Results from the degenerate solution simu lation In Sec 2 4 2 we showed how to treat cases with degenerate solutions In
8. nue_free_probability_engine The method that should be called when freeing the memory allocated by the NUE Returns 0 nue_set_oscillation_parameters glb_params p void user_data Sets the oscillation parameters that are used by the NUE to those specified in a GLoBES parameter vector p The GLoBES parameter vector to use B 2 API DEFINITIONS 69 user_data Ignored Included for compliance with the GLoBES standard Returns 0 int nue_get_oscillation_parameters glb_params p void user_data Stores the oscillation parameters that are used by the NUE in the specified GLoBES parameter vector p The GLoBES parameter vector to use user_data Ignored Included for compliance with the GLoBES standard Returns 0 int nue probability matrix double P 3 3 int cp sign double E int psteps const double length const double density double filter_sigma void user_data The method to compute the matrix of oscillation probabilities using the NUE P A two dimensional double array to store the oscillation probabilities cp_sign Flag for neutrinos or anti neutrinos as per the GLoBES manual E The neutrino energy as per the GLoBES manual psteps The number of steps as per the GLoBES manual length The length of the steps as per the GLoBES manual density The density in the steps as per the GLoBES manual filter_sigma Ignored At present the NUE is only able to compute t
9. only once assuming that the experimental setup does not change and instead use mcb_readDegeneracySteps degLocs mcd 30 CHAPTER 2 THE MONTECUBES C LIBRARY in subsequent runs of the program This will simply load the degeneracies stored in degLocs mcd and set the correct degeneracy steps Once the appropriate degeneracy steps have been set the usual Markov Chain Monte Carlo can be run as described in the previous example Chapter 3 The MonteCUBES Matlab GUI In this chapter we will describe the MonteCUBES Matlab GUI and how to use it In order to do so we will use the results from the examples in the previous chapter The GUI will be presented on an example basis in which we use it to produce the different plots and explain the features as we go along 3 1 Starting the GUI and reading simulation re sults In order to start the MonteCUBES Matlab GUI you should first start Matlab and make sure that the GUI code is located in the current directory the GUI code is distributed in the sub directory matlab of the MonteCUBES distribution Once this is the case the GUI can be started by simply typing MonteCUBES in the command window Command Window OH ax gt gt MonteCUBES The GUI will then start up in a new window in a state reminiscent of that in Fig 3 1 The startup appearance of the GUI show only the most basic features simply because no simulation results have been read which naturally means they cannot be plott
10. using a graph which is smooth but overestimates the sizes of the features in it or rerunning the simulation with a larger number of samples 50 CHAPTER 3 THE MONTECUBES MATLAB GUI Appendix A Markov Chain Monte Carlo theory Markov Chain Monte Carlos are a powerful tool which can be used to sam ple multi dimensional probability distributions Essentially this is achieved by creating a Markov Chain that has the desired distribution as an equilibrium distribution In particular the method used in the MonteCUBES C library is the Metropolis Hastings algorithm In this chapter we will describe this algorithm as well as how it is implemented into MonteCUBES A 1 The Metropolis Hastings sampling algorithm Suppose that we have a probability density distribution P x which depends on the set of parameters x and that we wish to construct a set of samples of this distribution through Monte Carlo methods The Metropolis Hastings MH algorithm performs this sampling through a random walk in the parameter space In order to actually sample the distribution properly this random walk must have the desired distribution as its equilibrium distribution In the MH algorithm this is acheived through the following steps 1 To generate n 1 create a new random point in parameter space ac cording to the known jump probability function W a2 gt 2 Compute the probability densities P x and P 3 Pick a random number p fr
11. 1 so that the walls between the degeneracies can be passed When a sufficient number of Monte Carlo steps have been taken so that the chains have reached equilibrium at the high temperature the temperature is lowered and the chains are run for the same number of steps at this lower 60 APPENDIX A MARKOV CHAIN MONTE CARLO THEORY temperature note that the chains are not run to equilibrium at the lower tem peratures since we want to find the degeneracies This process is repeated until the chains are at a very low temperature T lt 1 where the degeneracies are extremely pronounced The final samples in the chains will then be located close to the different local minima Thus the degeneracy finder checks the resulting chain enpoints for different minima two endpoints are considered as belonging to the same minima if they are less than one Monte Carlo step size at T 1 away from each other The step sizes used by the degeneracy finder vary from temperature to tem perature Essentially the degeneracy finder uses the same steps as the main Markov Chain Monte Carlo at T 1 When T 1 the steps sizes are multi plied by VT in order to accomodate for the flatter distribution Note that it is not guaranteed that each degenerate solution will be explored by this method There are essentially two things that can go wrong 1 The original temperature is not high enough If this is the case then the degeneracy finder will still not be able t
12. 2 1 4 Prerequisites for installation of MonteCUBES Installation Instructions 4 Basic Installation 2 2 0 0 02 000004 If your GLoBES copy is installed in a different directory 2 2 c APIldefinitions 5 ie 2s 2 ey oe ee ee ea a le ee a ia 2 21 2 2 2 Basic usage definitions 0 4 Advanced usage definitions 2 3 Definitions of outfiles 0 0 0 0 0 0 0 0020 0 00 00000 2 3 1 2 3 2 Summary iles L 446 ii bd HM eden Ou NS Chain files m aau a igh E a a ee ee A eet 24 Examples tsn ie aaa hg oN g h e eaii ss dd id 4 2 4 1 2 4 2 Simulation of the ISS neutrino factory Treating degeneracies o oo a 3 The MonteCUBES Matlab GUI 3 1 Starting the GUI and reading simulation results 2 ord Making plots i praa ini n e e BS Feta RR a 3 2 1 3 2 2 3 2 3 3 2 4 3 2 5 3 2 6 3 2 7 1D histogram plots 0 0 000 1D chain progression plots 4 1D confidence region plots 0 0 2D scatter plots 2 02 02 0 0008 2D counts contour plots ooa Triangle Plots sara ane A Bae ae SE ke ee 3D surface plots 2 00 00000048 3 3 Results from the degenerate solution simulation 3 4 Examples of bad convergence 0 0004 3 5 Notes on filtering 2 0 5 0 002 22 eee vii viii A Markov Chain Monte Carlo theory A 1 The Metropolis Hastings s
13. E Add an appropriate copyright notice for your modifications adjacent to the other copyright notices N O 99 Include immediately after the copyright notices a license notice giving the public permission to use the Modified Version under the terms of this License in the form shown in the Addendum below Preserve in that license notice the full lists of Invariant Sections and re quired Cover Texts given in the Document s license notice Include an unaltered copy of this License Preserve the section Entitled History Preserve its Title and add to it an item stating at least the title year new authors and publisher of the Modified Version as given on the Title Page If there is no section Entitled History in the Document create one stating the title year authors and publisher of the Document as given on its Title Page then add an item describing the Modified Version as stated in the previous sentence Preserve the network location if any given in the Document for public access to a Transparent copy of the Document and likewise the network locations given in the Document for previous versions it was based on These may be placed in the History section You may omit a network location for a work that was published at least four years before the Doc ument itself or if the original publisher of the version it refers to gives permission For any section Entitled Acknowledgements
14. If a section in the Document is Entitled Acknowledgements Dedica tions or History the requirement section 4 to Preserve its Title section 1 will typically require changing the actual title 9 TERMINATION You may not copy modify sublicense or distribute the Document except as expressly provided under this License Any attempt otherwise to copy modify sublicense or distribute it is void and will automatically terminate your rights under this License However if you cease all violation of this License then your license from a particular copyright holder is reinstated a provisionally unless and until the copyright holder explicitly and finally terminates your license and b per manently if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation Moreover your license from a particular copyright holder is reinstated per manently if the copyright holder notifies you of the violation by some reasonable 102 APPENDIX E GNU FREE DOCUMENTATION LICENSE means this is the first time you have received notice of violation of this License for any work from that copyright holder and you cure the violation prior to 30 days after your receipt of the notice Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License If your rights have been terminated and not
15. The number to use for minimum chain length Max The number to use for maximum chain length Returns MCB_OK if successful MCB_SET_ERR if input is ambiguous int mcb_setConvergenceCriteria glb_params r This function sets the convergence criteria to use for each parameter The Monte Carlo will be considered to have converged when R 1 lt r for all parameters see App A The default value for each convergence criteria is 0 05 r A GLoBES parameter vector containing the convergence criteria for each parameter Returns MCB_OK if successful MCB_SET_ERR if invalid convergence criteria are given int mcb_setConvergenceCheck int N This function sets how often the Monte Carlo will check for convergence The convergence check will be performed each time this number of new samples has been produced The default value for the convergence check is MCB_CONV_CHECK_ON i e convergence is not checked N The number of samples produced between each convergence check Use MCB_NO_CONV_CHECK if convergence should not be checked The default MCB CONV_CHECK_ON is a large number mainly intended to turn the convergence checks on when dynamic burning is used Returns MCB_OK if successful MCB_SET_ERR if invalid argument is passed int mcb_setVerbosity int N This function sets when MonteCUBES will give feedback to stdout De pending on the value set the user will get different amounts of feedback see below N The verbosit
16. a boundary is given by the bins on the opposite boundary This is useful for complex phases and other cyclic parameters which are plotted within a full period 4 Mirrored The mirroring boundary condition makes the GUI assume that the bins are mirrored in the boundary This only affects the plots where filters are applied If a two or three dimensional graph type is chosen there will also be Variable switch buttons between the variable rows Pressing such a button will exchange the values in the two variable rows adjacent to it The Clear button Pressing this buttion will clear all of the text fields in the variable row 36 CHAPTER 3 THE MONTECUBES MATLAB GUI Graph type Figure Weight 1D histogram E X variable Min Max Bins Transformation P3 theta_ 23 fines Clear 4 x10 Count 0 48 0 49 0 5 5 0 51 0 52 sin 8 Figure 3 3 A 1D histogram plot for sin 023 for the ISS neutrino factory sim ulation as well as the GUI settings that produced it Note that we have not used a weight factor The reason for this is that although the transformation used is non linear it is almost linear in the region of interest 3 2 1 1D histogram plots The one dimensional histogram plots simply divides the plotting interval into bins counts the number of samples in each bin and uses the result to produce a histogram An example of this is shown in Fig 3 3 The figure also shows the state of the G
17. been loaded the Plot chains button will appear If the user is satisfied with the simulation that has been loaded pressing this button will make the GUI proceed to plotting mode where a number of different plots can be produced from the loaded data If the user wants to load a different file or use a different burn length this can be done by pressing the Open mcb button again In addition the Add new mcb button provides the user with the possibility of joining the chains from different simulations This will append the results of the second simulation with those from the first Several checks will then be made such as checking that the same parameters are free in both simulations and the user will be notified in the feedback window if anything is strange In Fig 3 1 and for most of this manual we are using the simulation files resulting from running the program presented in Sec 2 4 1 In the end of this chapter we will switch to the results from Sec 2 4 2 3 2 Making plots After deciding to plot the loaded simulation by pressing the plot chains button the GUI will change in appearance to look like Fig 3 2 The GUI now contains several new elements 34 CHAPTER 3 THE MONTECUBES MATLAB GUI The GUI mode selector This sets the graphical mode of the GUI and can be set to Simple or Advanced the default If set to Simple a lot of the GUI controllers will be hidden and default values used except for the filter parameter which
18. comma and or white space separated list of these into the field The CLs are given in ratios compared to the total number of samples and should therefore be numbers between 0 and 1 If the field is left blank then a default list of 0 68 0 90 and 0 95 will be used Similar to the 1D histogram and confidence region plots this graph type is also affected by the weight parameter field If using the export data feature with this graph type the resulting file will contain a matrix defined by the Matlab contour definition 3 2 6 Triangle plots The triangle plot graph type can be used to produce a figure containing several of the confidence level and contour plots A typical triangle plot is presented in Fig 3 8 By default the triangle plot selects the combination of three simulation variables that present the largest cumulative relative covariance and produces all of the confidence level and contour plots for these This can be changed by filling in the parameters extra parameter field in order to select what parameters to use When doing so simply input a comma and or white space separated list with the numbers of the parameters to use without the initial P Although two variable rows are displayed when the triangle plot type is selected only the bins fields have any effect on the final result This is simply due to the fact that the x and y parameters change throughout the triangle plot The bins fields will however be used the x bins f
19. example of such a server A Massive Multiauthor Collaboration or MMC contained in the site means any set of copyrightable works thus published on the MMC site CC BY SA means the Creative Commons Attribution Share Alike 3 0 li cense published by Creative Commons Corporation a not for profit corporation with a principal place of business in San Francisco California as well as future copyleft versions of that license published by that same organization Incorporate means to publish or republish a Document in whole or in part as part of another Document An MMC is eligible for relicensing if it is licensed under this License and if all works that were first published under this License somewhere other than this MMC and subsequently incorporated in whole or in part into the MMC 1 had no cover texts or invariant sections and 2 were thus incorporated prior to November 1 2008 The operator of an MMC Site may republish an MMC contained in the site under CC BY SA on the same site at any time before August 1 2009 provided the MMC is eligible for relicensing 103 ADDENDUM How to use this License for your documents To use this License in a document you have written include a copy of the License in the document and put the following copyright and license notices just after the title page Copyright YEAR YOUR NAME Permission is granted to copy distribute and or modify this document under the terms
20. future versions of the GPL as needed to protect the freedom of users Finally every program is threatened constantly by software patents States should not allow patents to restrict development and use of software on general purpose computers but in those that do we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary To prevent this the GPL assures that patents cannot be used to render the program non free The precise terms and conditions for copying distribution and modification follow TERMS AND CONDITIONS 0 Definitions This License refers to version 3 of the GNU General Public License Copyright also means copyright like laws that apply to other kinds of works such as semiconductor masks The Program refers to any copyrightable work licensed under this Li cense Each licensee is addressed as you Licensees and recipients may be individuals or organizations To modify a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission other than the making of an exact copy The resulting work is called a modified version of the earlier work or a work based on the earlier work A covered work means either the unmodified Program or a work based on the Program To propagate a work means to do anything with it that without permis sion would make you directly or se
21. ing a publicly available DTD and standard conforming simple HTML PostScript or PDF designed for human modification Examples of transparent image for mats include PNG XCF and JPG Opaque formats include proprietary formats that can be read and edited only by proprietary word processors SGML or 97 XML for which the DTD and or processing tools are not generally available and the machine generated HTML PostScript or PDF produced by some word processors for output purposes only The Title Page means for a printed book the title page itself plus such following pages as are needed to hold legibly the material this License requires to appear in the title page For works in formats which do not have any title page as such Title Page means the text near the most prominent appearance of the work s title preceding the beginning of the body of the text The publisher means any person or entity that distributes copies of the Document to the public A section Entitled XYZ means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language Here XYZ stands for a specific sec tion name mentioned below such as Acknowledgements Dedications Endorsements or History To Preserve the Title of such a sec tion when you modify the Document means that it remains a section Entitled XYZ according to th
22. made If you convey an object code work under this section in or with or specif ically for use in a User Product and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term regardless of how the transaction is characterized the Corresponding Source conveyed under this section must be accompanied by the Installation Information But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product for example the work has been installed in ROM The requirement to provide Installation Information does not include a requirement to continue to provide support service warranty or updates for a work that has been modified or installed by the recipient or for the User Product in which it has been modified or installed Access to a net work may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network Corresponding Source conveyed and Installation Information provided in accord with this section must be in a format that is publicly documented and with an implementation available to the public in source code form and must require no special password or key for unpacking reading or copying Additional Terms Additional permis
23. not fit the above definition of Secondary then it is not allowed to be designated as Invariant The Document may contain zero Invariant Sections If the Document does not identify any Invariant Sections then there are none The Cover Texts are certain short passages of text that are listed as Front Cover Texts or Back Cover Texts in the notice that says that the Doc ument is released under this License A Front Cover Text may be at most 5 words and a Back Cover Text may be at most 25 words A Transparent copy of the Document means a machine readable copy represented in a format whose specification is available to the general public that is suitable for revising the document straightforwardly with generic text editors or for images composed of pixels generic paint programs or for draw ings some widely available drawing editor and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters A copy made in an otherwise Transparent file format whose markup or absence of markup has been arranged to thwart or discour age subsequent modification by readers is not Transparent An image format is not Transparent if used for any substantial amount of text A copy that is not Transparent is called Opaque Examples of suitable formats for Transparent copies include plain ASCII without markup Texinfo input format LaTeX input format SGML or XML us
24. number of samples is used This feature is useful to counteract the effects of a variable transformation with a jacobian different from one Using the export data feature with a 1D histogram graph type produces a file containing two columns of floating point numbers The first of these represents the variable values at the center of the bins while the second represents the number of counts 3 2 2 1D chain progression plots In Fig 3 4 we show a one dimensional chain progression plot for sin 623 This graph type simply provides a plot of the variable value against the number of the distinct sample It is a tool for visualizing how the chains behave A well behaved and well converged chain should seem to jump randomly back and forth within the range of values taken by the chain In addition it should not be possible to distinguish where one chain ends and another one starts A chain which actually looks as a random walk within the parameter space usually has bad convergence and should not be trusted Two possibilities of fixing this problem are using larger steps or producing more samples or a combination of 38 CHAPTER 3 THE MONTECUBES MATLAB GUI Graph type Figure Filter Type CLs Weight 1D confidence region w 5 Max likl x X variable Min Max Bins Transformation Boundary cond P3Mtheta_ 23 od 100 finas Opadded Clear 0 48 0 49 Dun 0 51 0 52 sin j 23 Figure 3 5 A 1D confidence
25. of adding different new physics The second part of MonteCUBES is a graphical Matlab interface which makes it easy to plot simulation results in a variety of different ways as well as export higher level data such as contours and graphs without reference to the originally produced MCMC results iv Terms of usage Referencing the MonteCUBES software MonteCUBES has been developed as a tool for academic use Thus the authors of MonteCUBES would appreciate to be given proper academic credit when it is used If you use MonteCUBES to produce a publication or talk please cite the following reference M Blennow and E Fernandez Martinez Neutrino oscillation parameter sampling with MonteCUBES arXiv 0903 3985 hep ph Do not cite this manual itself it is not a scientific publication and will evolve along with the MonteCUBES software Of course if you are using MonteCUBES then you will also be using GLoBES Do not forget to give proper academic credit also to the GLoBES developers see the GLoBES manual for details Apart from the above MonteCUBES is free and open sourced software dis tributed under the GNU General Public License vi Contents 1 Introduction 1 1 What isMonteCUBES 0 0 000000002 2 ee 1 2 What is MonteCUBES not 0 0 2 000000 0048 13 VERSIONING as t ese ght tele a hea a A A ee de 2 The MonteCUBES C library 25 Installation asa iit ant Ae ete Ny ho RO eo ed Be ea ee 2 2 1 2 2 1 3
26. or c Prohibiting misrepresentation of the origin of that material or requir ing that modified versions of such material be marked in reasonable ways as different from the original version or d Limiting the use for publicity purposes of names of licensors or au thors of the material or e Declining to grant rights under trademark law for use of some trade names trademarks or service marks or f Requiring indemnification of licensors and authors of that material by anyone who conveys the material or modified versions of it with contractual assumptions of liability to the recipient for any liability that these contractual assumptions directly impose on those licensors and authors All other non permissive additional terms are considered further restric tions within the meaning of section 10 If the Program as you received it or any part of it contains a notice stating that it is governed by this License along with a term that is a further restriction you may remove that term If a license document contains a further restriction but per mits relicensing or conveying under this License you may add to a covered work material governed by the terms of that license document provided that the further restriction does not survive such relicensing or conveying If you add terms to a covered work in accord with this section you must place in the relevant source files a statement of the additional terms that apply to thos
27. others For example if you distribute copies of such a program whether gratis or for a fee you must pass on to the recipients the same freedoms that you received 81 82 APPENDIX D GNU GENERAL PUBLIC LICENSE You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights Developers that use the GNU GPL protect your rights with two steps 1 assert copyright on the software and 2 offer you this License giving you legal permission to copy distribute and or modify it For the developers and authors protection the GPL clearly explains that there is no warranty for this free software For both users and authors sake the GPL requires that modified versions be marked as changed so that their problems will not be attributed erroneously to authors of previous versions Some devices are designed to deny users access to install or run modified versions of the software inside them although the manufacturer can do so This is fundamentally incompatible with the aim of protecting users freedom to change the software The systematic pattern of such abuse occurs in the area of products for individuals to use which is precisely where it is most unacceptable Therefore we have designed this version of the GPL to prohibit the practice for those products If such problems arise substantially in other domains we stand ready to extend this provision to those domains in
28. previous paragraph plus a right to possession of the Corresponding Source of the work from the pre decessor in interest if the predecessor has it or can get it with reasonable efforts You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License For example you may not impose 90 11 APPENDIX D GNU GENERAL PUBLIC LICENSE a license fee royalty or other charge for exercise of rights granted under this License and you may not initiate litigation including a cross claim or counterclaim in a lawsuit alleging that any patent claim is infringed by making using selling offering for sale or importing the Program or any portion of it Patents A contributor is a copyright holder who authorizes use under this Li cense of the Program or a work on which the Program is based The work thus licensed is called the contributor s contributor version A contributor s essential patent claims are all patent claims owned or controlled by the contributor whether already acquired or hereafter ac quired that would be infringed by some manner permitted by this Li cense of making using or selling its contributor version but do not include claims that would be infringed only as a consequence of further modification of the contributor version For purposes of this definition control includes the right to grant patent sublicenses in a manner con sistent with
29. prior to 28 March 2007 Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law No Surrender of Others Freedom If conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not ex cuse you from the conditions of this License If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not convey it at all For example if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program Use with the GNU Affero General Public License Notwithstanding any other provision of this License you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work and to convey the resulting work The terms of this License will continue to apply to the part which is the covered work but the special requirements of the GNU Affero General Public License section 13 concerning interaction through a network will apply to the combination as such Revised Versions of t
30. probability P D Pp is essentially the probability density that we wish to sample and gives the relative likelihoods of the parameter values given the data D The probability P D p is the likelihood of actually making the measurement D if the true parameters are 0 while P 0 is a prior function which inputs our pre knowledge of the theory parameters 0 Finally P D C is interpreted as the probability of actually getting the measurement D within the given theory i e C J Lp 0 n 0 d0 A 12 which apparently does not depend on the model parameters since they are integrated out Since the Metropolis Hastings algorithm is only using the ratios of the probability density functions it is therefore equivalent to insert Pp and Lp 7 8 as the probability density A 2 1 The GLoBES x as the log likelihood In order to compute how well a given data set D fits a specific set of model parameters 0 GLoBES uses the logarithm of the likelihood ratio 9 A 00 28 F i n A 13 where n 0 is the predicted number of events in bin i given the parameters 8 is the actual number of events in bin 7 and f n m is the likelihood of m events given a Poisson distribution with mean n it is given by 2In f n m f m m 2 n m min A 14 Again the denominator is a normalizing constant and does not affect the ra tios of the probability densities in the Monte Carlo The nominal GLoBES y function is de
31. problem when choosing the appropriate step sizes for our Monte Carlo simulations Assuming that we only take Gaussian steps of a given average size there are two possible choices 1 Degeneracy sized steps If we use step sizes comparable to the size of each degenerate solution then the solution that we happen to fall into will be sampled very well However the probability of jumping between the degeneracies will be severely suppressed This is due to the fact that in order to jump the chains must at some point pass through the region which should not contain so many samples If Ay is the typical differ ence in x between the lowest point of the wall and the minimum of the degeneracy then the simulation should sample the minimum point about exp Ay 2 times for each time that the lowest wall point is sampled If Ax O 200 which is not at all unreasonable then this ratio is O 10 Adding the fact that in order to be sure that the chains have sampled the degenerate solutions with proper weights the chains should jump a large number of times A simulation that properly samples the degeneracies with this choice of step length would have to run for a very long time 2 Degeneracy difference sized steps If we instead use steps of a size which is comparable to the size of the step needed to jump between the degeneracies without having to sample points in between then the chais will hardly ever jump This would result in the degeneracies b
32. region plot for sin 023 for the ISS neutrino factory simulation as well as the GUI settings that produced it the two Using the export data feature with a 1D histogram graph type produces a file containing two columns of numbers The first of these is simply the index of the distinct sample in the chain which increases by one per row while the second represents the variable value at that sample 3 2 3 1D confidence region plots The one dimensional confidence region plot is essentially an advance variant of the histogram plot An example of this plot is shown in Fig 3 5 The procedure followed by the GUI in order to produce the confidence region plot is as follows First of all the same information as for the histogram plot is produced i e the samples are divided into bins The GUI then applies a Gaussian filter to the histogram in order to provide a smoother curve and get rid of the statistical fluctuations The standard deviation of the Gaussian filter in bins is set by the filter parameter field If the field is left blank then the width is assumed to be zero and no filtering is applied It is possible to use a non integer standard deviation Finally the GUI computes what bins that are needed to contain a given fraction of the samples using as few bins as possible The fraction is set by the confidence levels CLs parameter field and the default value is 0 68 Just 3 2 MAKING PLOTS 39 as in the case of a 1D histogram pl
33. that language The System Libraries of an executable work include anything other than the work as a whole that a is included in the normal form of packag ing a Major Component but which is not part of that Major Component and b serves only to enable use of the work with that Major Compo nent or to implement a Standard Interface for which an implementation is available to the public in source code form A Major Component in this context means a major essential component kernel window system and so on of the specific operating system if any on which the exe cutable work runs or a compiler used to produce the work or an object code interpreter used to run it The Corresponding Source for a work in object code form means all the source code needed to generate install and for an executable work run the object code and to modify the work including scripts to control those activities However it does not include the work s System Libraries or general purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work For example Corresponding Source includes interface definition files associated with source files for the work and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require such as by intimate data communication or control flow between those subprograms an
34. that the parameters used here do not give the same matter interaction term as in the NUE although we will use the same notation for the extra parameters C 2 API definitions This section contains descriptions of the methods declared in the nSIEGE header file as well as a list of and explanations for the different constants that are defined in it C 2 1 Methods void nsi_fixA11NSI glb_projection p This method sets all projection flags for the NSI parameters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change Returns void void nsi_freeAllNSI glb_projection p This method sets all projection flags for the NSI parameters in a GLoBES projection to GLB_FREE 1 An example of this is the scheme of minimal unitarity violation which is also implemented into MonteCUBES through NUE see App B C 2 void void void void API DEFINITIONS 73 p The GLoBES projection to change Returns void nsi_fixPhases glb_projection p This method sets all projection flags for the NSI phase parameters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change Returns void nsi_freePhases glb_projection p This method sets all projection flags for the NSI phase parameters in a GLoBES projection to GLB_FREE p The GLoBES projection to change Returns void nsi_fixEpss glb_projection p This method sets all projection flags for the NSI absolute value para
35. the function For example if the user wants to construct a simulation using transition functions which do not depend on the current step argument 1 will not be used However the definition of the function should have this structure proposal The function to use in order to generate new test steps udata User defined data to be passed along to proposal Returns MCB_OK as it will always be possible to set the function and user data pointers It is up to the user to ensure that the function works properly int mcb_setTransitionRatioFunction double ratio const glb_params const glb_params const glb_params const int const int int int double void void udata If mcb_setStepProposalFunction is used to set the proposal function to an asymmetric function i e W gt tn W n gt amp then this will affect the acceptance criteria that should be used in the Metropolis Hastings algorithm This method is used to implement this change of acceptance criteria and sets the function that is used to compute the ratio W gt tn W an gt If this method is not called or ratio is NULL then it will be assumed that the ratio is 1 The function ratio should take nine 9 arguments according to the following specification see App A 1 for the Monte Carlo theory notation 1 const glb_params The current step n in the simulation 2 const glb_params The proposed new step in the simulation 3 cons
36. the public It is requested but not required that you contact the authors of the Doc ument well before redistributing any large number of copies to give them a chance to provide you with an updated version of the Document 4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above provided that you release the Modified Version under precisely this License with the Modified Version filling the role of the Document thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it In addition you must do these things in the Modified Version A Use in the Title Page and on the covers if any a title distinct from that of the Document and from those of previous versions which should if there were any be listed in the History section of the Document You may use the same title as a previous version if the original publisher of that version gives permission B List on the Title Page as authors one or more persons or entities respon sible for authorship of the modifications in the Modified Version together with at least five of the principal authors of the Document all of its prin cipal authors if it has fewer than five unless they release you from this requirement C State on the Title page the name of the publisher of the Modified Version as the publisher D Preserve all the copyright notices of the Document
37. the step sizes step The step sizes to use in the Monte Carlo simulation Returns MCB_OK since the parameter vector will simply be copied int mcb_addStartPosition glb params s This function should be used to add starting positions in parameter space to the Monte Carlo simulation The actual starting points used will be generated through a step with stepsize three 3 away from the specified starting positions This function can be called repeatedly If more than one start position is added the starting points of different chains will alternate between them This method must be called at least once before running a MCMC simulation s The parameter vector containing the starting position to be used Returns MCB_OK if successful MCB_SET_ERR if the maximum number of starting positions has already been reached int mcb_clearStartPositions This function clears all of the currently stored starting positions from memory If called new starting positions will have to be added before a MCMC simulation can be performed Returns MCB_OK 12 CHAPTER 2 THE MONTECUBES C LIBRARY int mcb_MCMC char outfile int EXP int RULE This is the core function of MonteCUBES It runs the MCMC and produces output files containing the resulting samplings The MCMC parameters as well as the GLoBES initiations should be set to the desired values before calling this function outfile EXP RULE A string contain
38. to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The purpose of this License is to make a manual textbook or other func tional and useful document free in the sense of freedom to assure everyone the effective freedom to copy and redistribute it with or without modifying it either commercially or noncommercially Secondarily this License preserves for the author and publisher a way to get credit for their work while not being considered responsible for modifications made by others This License is a kind of copyleft which means that derivative works of the document must themselves be free in the same sense It complements the GNU General Public License which is a copyleft license designed for free software We have designed this License in order to use it for manuals for free software because free software needs free documentation a free program should come with manuals providing the same freedoms that the software does But this License is not limited to software manuals it can be used for any textual work regardless of subject matter or whether it is published as a printed book We recommend this License principally for works whose purpose is instruction or reference 1 APPLICABILITY AND DEFINITIONS 95 96 APPENDIX E GNU FREE DOCUMENTATION LICENSE This License applies to any manual or other work in any medium that contains a notice placed by the copyri
39. to read It should be the output of the degen eracy locator 16 CHAPTER 2 THE MONTECUBES C LIBRARY Returns MCB_OK if the degeneracy steps are set properly MCB_IO_ERR if the file could not be read MCB_SET_ERR if there were too many degeneracies to fit the steps into the memory allocated to degeneracy steps by MonteCUBES MCB_ALLOC_ERR if the memory to store the degeneracy steps could not be allocated int mcb_TdegFinder double Th double Tl int NT int Nsamp int exper int rule double maxChi2 int set char outfile This is the degeneracy locator currently implemented in MonteCUBES It scans the parameter space for degeneracies by starting a number of chains at a high temperature and then gradually lowering the temperature see App A 3 for details Th T1 NT Nsamp exper rule maxChi2 set outfile The starting temperature Should be set to a sufficiently high value so that the degeneracies are merged The end temperature Should be set to a low value so that the chains settle into local minima The total number of temperatures to run the chains at The total number of chains to run This should be fairly large to decrease the probability of missing a degenerate solution The experiment for which to find the degeneracies Passed on to the computation of the y The rule for which to find the degeneracies Passed on to the com putation of the y The maximal
40. up to 25 words as a Back Cover Text to the end of the list of Cover Texts in the Modified Version Only one passage of Front Cover Text and one of Back Cover Text may be added by or through arrangements made by any one entity If the Document already includes a cover text for the same cover previously added by you or by arrangement made by the same entity you are acting on behalf of you may not add another but you may replace the old one on explicit permission from the previous publisher that added the old one The author s and publisher s of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version 5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License under the terms defined in section 4 above for modified versions pro vided that you include in the combination all of the Invariant Sections of all of the original documents unmodified and list them all as Invariant Sections of your combined work in its license notice and that you preserve all their Warranty Disclaimers The combined work need only contain one copy of this License and multiple identical Invariant Sections may be replaced with a single copy If there are multiple Invariant Sections with the same name but different contents make the title of each such section unique by adding at the end of it in parentheses the name of the original
41. used by the prior functions This parameter vector will be used to store these errors It is now time to set the event rates that would be expected given that the neutrino oscillation parameters take the values we declared in the beginning of the main function This is done through the statements glbDef ineParams true_values theta12 theta13 theta23 deltacp sdm 1dm glbSetDensityParams true_values 1 0 GLB_ALL glbSetOscillationParameters true_values glbSetRates glbSetCentralValues true_values The first line sets the values stored in true_values to the neutrino oscillation parameters from the beginning of the main function The second line tells GLoBES that the matter density along the baselines are supposed to be the same as those defined in the AEDL files used In the third line the neutrino oscillation parameters that should be used to compute rates is set to true_values Finally in the fourth line we tell GLoBES to set the event rates of all experiments to the ones that would be expected if the neutrino oscillation parameters were those in true_values Finally we will also use the true_values as the central values when computing the priors which is what is accomplished by the fifth line We will also use these same values as the starting values of our Markov Chains thus we simply copy the parameter vector by the statement glbCopyParams true_values start_values In order to compute the prior properly we also need
42. weights This is implemented by the possibility of adding degener acy steps to the simulation Essentially a degeneracy step is a constant step in parameter space describing the distance between two degeneracies The in clusion of a degeneracy step can be viewed as digging a tunnel between the degeneracies so that the Monte Carlo chains do not have to cross the large bar rier between them in order to sample them both For details on how this works see App A In this section we will make an example of how to search for de generacies and resolve them using the MonteCUBES C library The example will be continued in the next chapter where we will display the results using the MonteCUBES Matlab GUI Appendix A also includes a description of a gradual temperature lowering algorithm to find the different degenerate solutions Also this algorithm is implemented in MonteCUBES and for illustration we will use it to find the degeneracies automatically even if we know where the degeneracies are located First of all in order to need the degeneracy solver we need an experimental setup which has degeneracies In particular in order to demonstrate the effi ciency of the degeneracy resolution we choose the following experimental setup with only the L 2000 km detector from Ref 5 The above setup has a twofold degeneracy which shows up at different values for 013 and and a sign change of Am3 Since the two degeneracies are located in different
43. will be set to one The simple mode can be useful for the user who only wants to plot simulation results with as little effort as possible although we recommend to use the advanced setting in order to take full advantage of the MonteCUBES capabilities The Make figure button Pressing this button will produce a new figure according to the current state of the GUI The Export data button This button will save the data necessary to produce a plot according to the current state of the GUI The user will be provided with a file dialog in order to choose where to save the data The structure of the output file depends on the type of graph that should be produced This option is not available for the triangle and 3D surface plots see below The Clear figure button Fairly self explanatory this button will clear the figure currently indicated in the Figure parameter field see below If the Figure parameter field is empty this button has no effect The Graph type selector This drop down menu provides the user with a number of different plot types which can be produced by the GUI The visual appearance of the GUI will depend on the graph type that is actually selected One or more parameter fields Just right of the graph type selector a number of parameter fields will appear depending on the selected graph type For example the Figure field will always be present and is used to tell the GUI in which figure to plot the results when pressing
44. x difference for which to include degeneracies Final results x larger than x2 plus this value will be ignored Flag for declaring if the finder should also set the degeneracy steps using mcb_setDegeneracySteps Set to 0 if the steps should not be set and 1 if they should The name of the file in which to store the final results Only results belonging to different local minima will be stored Returns MCB_OK if run properly MCB_SET_ERR if the step sizes or starting positions are not properly defined MCB_ALLOC_ERR if at some point memory could not be allocated properly 2 2 API DEFINITIONS 17 int mcb_setDegeneracyStepProbability double p This function sets the probability with which a degeneracy step is taken The probability is the total probability of taking any of the stored degen eracy steps i e if there are n degeneracy steps and the probability is p then the probability for each step is p n p The probability of taking a degeneracy step Returns MCB_OK if the probability is set MCB_SET_ERR if p is not between 0 and 1 int mcb_setStepProposalFunction double proposal const glb_params const glb_params const int const int int int double double glb_params void void udata This function sets the function that determines what test step to use in the Monte Carlo based on the current step and other simulation parameters The function is set to proposal which must be a function taking ten
45. 007 Free Software Foundation Inc http fsf org Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The GNU General Public License is a free copyleft license for software and other kinds of works The licenses for most software and other practical works are designed to take away your freedom to share and change the works By contrast the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program to make sure it remains free software for all its users We the Free Software Foundation use the GNU General Public License for most of our software it applies also to any other work released this way by its authors You can apply it to your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for them if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to prevent others from denying you these rights or asking you to surrender the rights Therefore you have certain respon sibilities if you distribute copies of the software or if you modify it responsi bilities to respect the freedom of
46. 10 arguments as follows see App A 1 for the Monte Carlo theory notation 1 const glb_params The current step n in the simulation 2 const glb_params The typical step sizes to use in the simulation i e the ones set by mcb_setStepSizes 3 const int An integer array with flags notifying if a parameter should be free in the simulation or not 1 for free 0 for fixed 4 const int An integer array with flags notifying if a density should be free in the simulation or not 1 for free 0 for fixed 5 int The number of free parameters Nf in the simulation i e the number of ones in argument 3 6 int The number of free densities Nd in the simulation i e the number of ones in argument 4 7 double A double array containing Gaussian random numbers with variance 1 The size of the array is Nf Nd 8 double A parameter denoting the relative step size This will be one in the simulation but the starting samples in the simulation will be determined from taking a step with a larger step size In addition the temperature lowering degeneracy locator uses different step sizes for different temperatures 9 glb_params This is where the new proposed sample should be stored 10 void This argument can contain user defined data The user_data passed to mcb_setStepProposalFunction is passed in this argument 18 CHAPTER 2 THE MONTECUBES C LIBRARY Note that the user does not need to use all of these arguments in
47. Cover Texts on the back cover Both covers must also clearly and legibly identify you as the publisher of these copies The front cover must present the full title with all words of the title equally prominent and visible You may add other material on the covers in addition Copying with changes 98 APPENDIX E GNU FREE DOCUMENTATION LICENSE limited to the covers as long as they preserve the title of the Document and satisfy these conditions can be treated as verbatim copying in other respects If the required texts for either cover are too voluminous to fit legibly you should put the first ones listed as many as fit reasonably on the actual cover and continue the rest onto adjacent pages If you publish or distribute Opaque copies of the Document numbering more than 100 you must either include a machine readable Transparent copy along with each Opaque copy or state in or with each Opaque copy a computer network location from which the general network using public has access to download using public standard network protocols a complete Transparent copy of the Document free of added material If you use the latter option you must take reasonably prudent steps when you begin distribution of Opaque copies in quantity to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy directly or through your agents or retailers of that edition to
48. D Rubin Statistical Science 7 457 1992 105
49. D OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PAR TICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION Limitation of Liability IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MODIFIES AND OR CONVEYS THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES IN CLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUEN TIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES Interpretation of Sections 15 and 16 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms reviewing courts 93 shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee
50. NITIONS 65 Returns void nue_freePhases glb_projection p This method sets all projection flags for the non unitarity phase parame ters in a GLoBES projection to GLB_FREE p The GLoBES projection to change Returns void nue fixEpss glb_projection p This method sets all projection flags for the non unitarity absolute value parameters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change Returns void nue _freeEpss glb_projection p This method sets all projection flags for the non unitarity absolute value parameters in a GLoBES projection to GLB_FREE p The GLoBES projection to change Returns void nue_fixEps glb_projection p int n int m This method sets the projection flag for the absolute value of the non unitarity parameter in the nth row and mth column to GLB_FIXED This is equivalent to glbSetProjectionFlag p GLB_FIXED NUE_EPS_nm p The GLoBES projection to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 66 APPENDIX B THE NONUNITARITY ENGINE NUE Returns void void nue_freeEps glb_projection p int n int m This method sets the projection flag for the absolute value of the non unitarity parameter in the nth row and mth column to GLB_FREE This is equivalent to glbSetProjectionFlag p GLB_FREE NUE_EPS_nm p The GLoBES projection to change n The row o
51. PTER 3 THE MONTECUBES MATLAB GUI Graph type Figure 2D scatter plot M X variable Min Max Transformation P3 theta_ 23 bin 2 Clear Y variable Xani PeiDeta m 3172 v 10 3 P6 Clear 2 51 2 505 2 31 2 5502 10 Am 2 4957 2 49 F 0 48 0 49 0 5 5 O51 0 52 sin 0 Figure 3 6 A 2D scatter plot for sin 023 and Am3 for the ISS neutrino factory simulation as well as the GUI settings that produced it Note that this scatter plot only contains the last 64000 samples to reduce the figure size 3 2 MAKING PLOTS Al Xe 2 4957 2 497 0 48 0 49 05 gt 0 51 053 sin 0 Figure 3 7 A 2D count contour plot for sin 023 and Am3 for the ISS neutrino factory simulation as well as the GUI settings that produced it 42 CHAPTER 3 THE MONTECUBES MATLAB GUI filter field can be used to input the standard deviation of the Gaussian filter to be used The user can choose to use two different numbers in the x and y directions This is done by simply inputting two different comma and or white space separated numbers in the filter field The first of these will be used in the x direction and the second in the y direction If the filter field is left blank then no filter will be applied The CLs field can be used to input the levels at which to draw the contours In order to draw contours at levels other than the pre defined values simply input a
52. UI that was used to produce it Note that the transforma tion of 423 to sin 623 includes rather than in order for the squaring of the vector sin P3 to be done element by element In this example we have chosen to use 20 bins rather than the default value of 30 simply to demonstrate the usage of the binning parameter Note that the GUI has also parsed the variable transformation string into the proper 2 label of the figure This will be done in every graph type There is one additional parameter field affecting the histogram plots this is the weight function parameter field It provides the user with the possibility of weighting the number of samples depending on the parameters The number of times a point has been sampled is simply multiplied with this weight The value put into this field is parsed into an inline function similar to the transformation of variables in the variable rows Just as with the variable transformations the user must make sure that the function computes 3 2 MAKING PLOTS 37 CINE Figure 1D chain progression v mE a 0 53 0 52 j 0 51 J N X 05 n 0 49 J sal J 0 47 0 2 4 6 8 Sample x10 Figure 3 4 A 1D chain progression plot for sin 023 for the ISS neutrino factory simulation as well as the GUI settings that produced it the weights element wise as it is applied to the full set of samples at the same time If no weight function is specified then the original
53. User Manual for MONTE Carlo Utility Based Experiment Simulator Mattias Blennow and Enrique Fernandez Martinez Department of Theoretical Physics KTH Royal Institute of Technology Roslagstullsbacken 21 106 91 Stockholm Sweden Departamento de Fisica Te rica UAM Cantoblanco 28049 Madrid Spain Version 1 3 0 Copyright 2008 2013 Mattias Blennow Enrique Fernandez Martinez Permission is granted to copy distribute and or modify this document under the terms of the GNU Free Documentation License Version 1 3 or any later ver sion published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License Abstract MonteCUBES is a package created to provide the possibility of easily performing Markov Chain Monte Carlo MCMC simulations of neutrino oscillation experi ments This document is the end user manual for MonteCUBES and thus provides instructions on how to install and use it along with other tools The MonteCUBES distribution consists of two main parts The first part of the distribution is a C library written as a plug in to GLoBES 1 2 This part enables the user to perform MCMC samplings of the parameter space of neutrino oscillations The fact that it is written as a plug in to GLoBES makes it simple to define and study different experimental setups as well as the possibility
54. age for your system If you re using csh on an old version of System V you might need to type sh configure instead to prevent csh from trying to execute configure itself Running configure takes a while While running it prints some messages telling which features it is checking for 2 Type make to compile the package 3 Type make install to install the programs and any data files and docu mentation 4 You can remove the program binaries and object files from the source code directory by typing make clean To also remove the files that configure created so you can compile the package for a different kind of computer type make distclean There is also a make maintainer clean target but that is intended mainly for the package s developers If you use it you may have to get all sorts of other programs in order to regenerate files that came with the distribution 5 Since you ve installed a library don t forget to run ldconfig 2 2 API DEFINITIONS 7 2 1 4 If your GLoBES copy is installed in a different direc tory If you installed GLoBES in a directory different from the default one reason for doing this could be lack of root priviliges then you will have to install MonteCUBES in that same directory as well This is done by configure prefix GLB_DIR where GLB_DIR is the directory of the GLoBES installation and then follow the usual installation guide Since MonteCUBES will then be installed in the same dire
55. al index of the NSI parameter NSI_EPS_33 NSI_EPS_TT Both of these constants are the same They refer to the internal index of the NSI parameter NSI_EPS_21 NSI_EPS_ME Both of these constants are the same They refer to the internal index of the NSI parameter epel NSI_EPS_31 NSI_EPS_TE Both of these constants are the same They refer to the internal index of the NSI parameter e el NSI_EPS_32 NSI_EPS_TM Both of these constants are the same They refer to the internal index of the NSI parameter NSI_PHI_21 NSI_PHI_ME Both of these constants are the same They refer to the internal index of the NSI parameter arg pe NSI_PHI_31 NSI_PHI_TE Both of these constants are the same They refer to the internal index of the NSI parameter arg 7e NSI_PHI_32 NSI_PHI_TM Both of these constants are the same They refer to the internal index of the NSI parameter arg e NSI_TOT_NO This constant has the value of the total number of oscillation parameters within the nSIEGE NSI_EPSS This constant has the value of the lowest index referring to a parameter describing the absolute values of the es C 2 API DEFINITIONS 79 NSI_PHIS This constant has the value of the lowest index referring to a parameter describing the phase of an e 80 APPENDIX C THE NSI EVENT GENERATOR ENGINE NSIEGE Appendix D GNU General Public License GNU GENERAL PUBLIC LICENSE Version 3 29 June 2007 Copyright 2
56. also affect the probability density Let us assume that we make the transformation 0 6 For the relation P 0 d0 P 6 d6 to hold we must have P 8 P 8 I 8 A 17 where 7 is the Jacobian of the transformation In order to preserve the expression for the probability density in terms of the likelihood and prior we must have n 6 8 F 8 I A 18 Thus the actual value of the prior function is parametrization dependent and the prior does not have the same expression for different parametrizations In particular this means that assuming a flat prior which is essentially saying that any parameter values are equally likely in one parametrization will still give a non flat prior in some other parametrization The MonteCUBES GUI includes a weight function so that the user can essentially change the prior by hand post simulation This can be useful e g when making plots where sin 26 is used and the user does not want to rewrite the internal GLoBES or MonteCUBES prior functions The implied prior in the sin 20 space will give a pile up of samples near sin 20 1 but multiplication of the number of samples by dsin 20 d0 2sin 46 will give a flat prior in this space assuming the original prior was flat in 9 The multiplication of the sample number in the GUI is done on a sample by sample basis A 2 3 Interpreting the results All of the MonteCUBES GUI metods that provide a confidence region of some s
57. ampling algorithm A 1 1 Convergence and finer details A 2 Usage and interpretation of GLoBES methods A 2 1 The GLoBES x as the log likelihood A 2 2 Notes on priors A 2 3 Interpreting the results A 3 The MonteCUBES degeneracy solver A 3 1 Chain heating 0 A 3 2 Degenerate steps B The NonUnitarity Engine NUE B 1 Theory of a non unitary mixing matrix B 2 API definitions B 2 1 Methods B 2 2 Constants C The nSI Event Generator Engine nSIEGE C 1 Theory of a non standard matter interactions C 2 API definitions C 2 1 Methods C 2 2 Constants D GNU General Public License GNU Free Documentation License 1 APPLICABILITY AND DEFINITIONS VERBATIM COPYING COPYING IN QUANTITY MODIFICATIONS COMBINING DOCUMENTS COLLECTIONS OF DOCUMENTS CON MD oP Wb TRANSLATION 9 TERMINATION 10 FUTURE REVISIONS OF THIS LICENSE 11 RELICENSING ADDENDUM How to use this License for your documents AGGREGATION WITH INDEPENDENT WORKS CONTENTS Chapter 1 Introduction 1 1 What is MonteCUBES The Monte Carlo Utility Based Experiment Simulator MonteCUBES is a util ity designed to provide a simple and straighforward way of performing Markov Chain Monte Carlo MCMC sampling of the parameter space for any setup of terrestrial neutrino oscillation experiments In particular it has lately be come increasingly popular to not only consider neutrino oscillations within the standard framework in whi
58. andard Model SM Usually the NSI are parametrized independently of the underlying theory through effective four fermion operators Lnsi 2V2G pel elf PS Pa Yu Prve C 1 where f is a matter fermion and P is a left or right handed projector In addition to these neutral current like NC like processes extensions of the SM 71 72 APPENDIX C THE NSI EVENT GENERATOR ENGINE NSIEGE will in general also imply charged current like CC like NSI usually with some correlation between the couplings However it has been common to study the flavor propagation effects induced by NC like processes separately from the source and detector effects induced by the CC like processes because of the lack of model independent relations between the two The effect that NSI have on the neutrino flavor propagation can be effectively described through making the substitution 1 0 0 I Gee Ele Ere Amatter V2GrN 0 0 0 Sr V2GrN Eue Eup 29 0 0 0 0 Ere En En C 2 where Ne is the electron number density and the ag are combinations of the ay weighted properly for the relative abundance of the corresponding fermions Note that the diagonal elements are real due to hermiticity Just as in the case of unitarity violation see App B this means that the new physics are parametrized through the introduction of an arbitrary hermitian matrix which we again parametrize according to the modulus and phases Eas aglexp tbag It should be noted
59. arity of the lepton mixing matrix A convenient way of parameterizing the effects of non unitary mixing in neu trino oscillations is splitting the general non unitary matrix N as the product of an hermitian times a unitary matrix N 1 U where et e Since strong constraints can be derived on the unitarity deviations through electroweak de cays should be a small perturbation and U Upyng We will adopt this parametrization adding the extra six modulus and three phases included in the hermitian to the standard parameters of the unitary part of the general mixing matrix B 2 API definitions This section contains descriptions of the methods declared in the NUE header file as well as a list of and explanations for the different constants that are defined in it B 2 1 Methods void nue_fixAl1NU glb_projection p This method sets all projection flags for the non unitarity parameters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change Returns void void nue freeAl1NU glb projection p This method sets all projection flags for the non unitarity parameters in a GLoBES projection to GLB_FREE p The GLoBES projection to change Returns void void nue fixPhases glb_ projection p This method sets all projection flags for the non unitarity phase parame ters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change B 2 void void void void API DEFI
60. assed to the x function of GLoBES and represent which of the defined experiments and rules that we wish to use Since we want to use all of the experiments and rules defined in the AEDL files we use GLB_ALL Finally the Monte Carlo has been run and it is time to end the program It is good practice to free the memory allocated in the program even though the program will terminate immedeately afterwards Therefore we end our program with glbFreeParams true_values glbFreeParams convcrit glbFreeParams start_values glbFreeParams input_errors glbFreeParams steps glbFreeProjection pro 2 4 2 Treating degeneracies An important aspect of future neutrino oscillation searches is the appearance of degeneracies In general if the degeneracies are well separated and the starting point is close only to one of the degenerate solutions then all chains will fall into that degenerate solution with a miniscule probability of ever jumping to another of the degenerate solutions unless simulations run for about the age of the Universe On the other hand if the starting point is located in such a way that chains fall into different degeneracies the low probability of changing minimum for a chain will result in chains with very bad convergence criteria In order to solve the problem with degeneracies MonteCUBES includes a pro cedure for sampling all of the degeneracies in the same simulation and with 2 4 EXAMPLES 29 appropriate
61. ataFunction Returns MCB_OK as the clearing will always be possible 2 3 DEFINITIONS OF OUTFILES 21 Nchain Number of chains Npar Number of parameters r Convergence criteria free Flags for free parameters Nburn Length of burn in Nmin Minimum chain length used Nmax Maximum chain length used time Time elapsed during simulation Nsamp Number of samples produced start_values Starting values for the parameters step_size Typical step size used in simulation Npoint Number of distinct samples varNames Variable names T Temperature used in simulation Table 2 1 The structure of the summary files and text thereafter is not written in the files Each line except Npoint and varNames see text represents a new line in the summary file 2 3 Definitions of outfiles An important part of the MonteCUBES interface is the creation of files storing the samplings produced by the MCMC and we will refer to them as the raw sampling files This is the output of the MonteCUBES C library and the input of the MonteCUBES Matlab GUI If you are planning to use both of these you can most probably skip this section since the Matlab GUI will take care of reading and interpreting the raw sampling files for you However if you are planning to create your own method of plotting the results or if you want to search for irregularities within the samplings this section describes the structure of the raw sa
62. author or publisher of that section if known or else a unique number Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work In the combination you must combine any sections Entitled History in the various original documents forming one section Entitled History likewise combine any sections Entitled Acknowledgements and any sections Entitled Dedications You must delete all sections Entitled Endorsements 6 COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License and replace the individual copies of this License in the various documents with a single copy that is included in the collection provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects You may extract a single document from such a collection and distribute it individually under this License provided you insert a copy of this License into the extracted document and follow this License in all other respects regarding verbatim copying of that document 101 7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works in or on a volume of a storage or distribution medium is called an aggregate if the copyright resulting from the compilation is not used to limi
63. ce like this when it starts in an interactive mode lt program gt Copyright C lt year gt lt name of author gt This program comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain conditions type show c for details The hypothetical commands show w and show c should show the appro priate parts of the General Public License Of course your program s com mands might be different for a GUI interface you would use an about 3 box 94 APPENDIX D GNU GENERAL PUBLIC LICENSE You should also get your employer if you work as a programmer or school if any to sign a copyright disclaimer for the program if necessary For more information on this and how to apply and follow the GNU GPL see http www gnu org licenses The GNU General Public License does not permit incorporating your pro gram into proprietary programs If your program is a subroutine library you may consider it more useful to permit linking proprietary applica tions with the library If this is what you want to do use the GNU Lesser General Public License instead of this License But first please read http www gnu org philosophy why not lgpl html Appendix E GNU Free Documentation License Version 1 3 3 November 2008 Copyright 2000 2001 2002 2007 2008 Free Software Foundation Inc lt http fsf org gt Everyone is permitted
64. ced by the same MCMC run unless only one chain is used The naming convention for the summary files is lt name gt mc lt n gt where lt name gt is the outfile argument passed to the MCMC see Sec 2 2 and lt n gt is the chain number Thus a MonteCUBES 2 4 EXAMPLES 23 simulation using three chains and specifying out as the filename would produce the files out mcb out mc1 out mc2 and out mc3 Since the summary files and chain files have the same names up to the suffixes it is easy to tell which chain files have been created from reading the summary file The chain files contain all of the samples produced in the MCMC simulation including the burn in samples However in order to make the file size smaller the chain files only store each sample once along with a number indicating how many times that point was sampled before leaving Each line of a chain file has the following structure chi2 N par The interpretation of this is chi2 The value of the x function for this sample N The number of times this point was sampled by the MCMC par A list of Npar see the summary file description numbers representing the different parameter values 2 4 Examples 2 4 1 Simulation of the ISS neutrino factory Table 2 2 contains a typical example program designed to simulate the ISS neu trino factory 4 Do not worry if you find the font too small we will go through each line of code separately This example is essentia
65. ch the parameters consist of two mass square dif ferences three mixing angles and a C P violating phase but also to include the effects of various non standard physics Thus the parameter space is in general high dimensional and this makes deterministic algorithms for probing it such as griding and deterministic minimization inefficient Instead the complexity of a stochastic algorithm does not grow at the same rate with dimensionality and it is therefore ideal for problems of this kind The MonteCUBES distribution consists of two parts 1 A C library in the form of a plug in to the General Long Baseline Ex periment Simulator GLoBES 1 2 As the GLoBES software package already includes several methods for defining neutrino oscillation exper iments computing event rates etc there would be no use in doubling this work Thus the MonteCUBES C library makes use of these meth ods in order to provide a simple and structured user interface It adds methods for defining MCMC parameters and for performing the actual simulation The actual Monte Carlo method employed is the Metropolis Hastings sampling algorithm see App A Since the MonteCUBES C li brary is a plug in to GLoBES files used with GLoBES for describing ex periments Abstract Experiment Definition Language AEDL files will also work with MonteCUBES The MonteCUBES C library was constructed with GLoBES 3 0 but should be compatible also with some older ver sions of GLoBES H
66. condarily liable for infringement under 83 applicable copyright law except executing it on a computer or modifying a private copy Propagation includes copying distribution with or with out modification making available to the public and in some countries other activities as well To convey a work means any kind of propagation that enables other parties to make or receive copies Mere interaction with a user through a computer network with no transfer of a copy is not conveying An interactive user interface displays Appropriate Legal Notices to the extent that it includes a convenient and prominently visible feature that 1 displays an appropriate copyright notice and 2 tells the user that there is no warranty for the work except to the extent that warranties are provided that licensees may convey the work under this License and how to view a copy of this License If the interface presents a list of user commands or options such as a menu a prominent item in the list meets this criterion Source Code The source code for a work means the preferred form of the work for making modifications to it Object code means any non source form of a work A Standard Interface means an interface that either is an official stan dard defined by a recognized standards body or in the case of interfaces specified for a particular programming language one that is widely used among developers working in
67. ctory as GLoBES you will not have to tell the compiler to add additional directories to look for header files However you will have to tell the linker that it should include the montecubes library A typical compiler command is gcc c my_program c IGLB_DIR include and a typical linker command is gcc my_program o lglobes lmontecubes LGLB_DIR 1lib o my_executable More information on this issue can be obtained by having a look into the output of make install CAVEAT It is in principle possible to have many installations on one ma chine especially the situation of having an installation by root and by a user at the same time might occur However it is strictly warned against this possibility since it is extremely likely to create some versioning problem at some time Installation Names By default make install will install the package s files in usr local bin usr local include etc You can specify an installation prefix other than usr local by giving configure the option prefix PATH The path into which you install MonteCUBES should be the same as the one where you installed GLoBES i e you should give the same options to the MonteCUBES configure script as you gave the GLoBES configure script 2 2 API definitions This section lists the functions defined in montecubes h and specifies their usage In order to use them you must include montecubes h as a header file in your program typically by putting include lt mont
68. d other parts of the work 84 APPENDIX D GNU GENERAL PUBLIC LICENSE The Corresponding Source need not include anything that users can re generate automatically from other parts of the Corresponding Source The Corresponding Source for a work in source code form is that same work Basic Permissions All rights granted under this License are granted for the term of copyright on the Program and are irrevocable provided the stated conditions are met This License explicitly affirms your unlimited permission to run the unmodified Program The output from running a covered work is covered by this License only if the output given its content constitutes a covered work This License acknowledges your rights of fair use or other equivalent as provided by copyright law You may make run and propagate covered works that you do not con vey without conditions so long as your license otherwise remains in force You may convey covered works to others for the sole purpose of having them make modifications exclusively for you or provide you with facili ties for running those works provided that you comply with the terms of this License in conveying all material for which you do not control copy right Those thus making or running the covered works for you must do so exclusively on your behalf under your direction and control on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you
69. e files or a notice indicating where to find the applicable terms Additional terms permissive or non permissive may be stated in the form of a separately written license or stated as exceptions the above require ments apply either way Termination You may not propagate or modify a covered work except as expressly pro vided under this License Any attempt otherwise to propagate or modify it is void and will automatically terminate your rights under this License 10 89 including any patent licenses granted under the third paragraph of section 11 However if you cease all violation of this License then your license from a particular copyright holder is reinstated a provisionally unless and until the copyright holder explicitly and finally terminates your license and b permanently if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation Moreover your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means this is the first time you have received notice of violation of this License for any work from that copyright holder and you cure the violation prior to 30 days after your receipt of the notice Termination of your rights under this section does not terminate the li censes of parties who have received copies or rights from you under this License If yo
70. e or no price for each copy that you convey and you may offer support or warranty protection for a fee Conveying Modified Source Versions You may convey a work based on the Program or the modifications to produce it from the Program in the form of source code under the terms of section 4 provided that you also meet all of these conditions a The work must carry prominent notices stating that you modified it and giving a relevant date b The work must carry prominent notices stating that it is released under this License and any conditions added under section 7 This requirement modifies the requirement in section 4 to keep intact all notices c You must license the entire work as a whole under this License to anyone who comes into possession of a copy This License will therefore apply along with any applicable section 7 additional terms to the whole of the work and all its parts regardless of how they are packaged This License gives no permission to license the work in any other way but it does not invalidate such permission if you have separately received it d If the work has interactive user interfaces each must display Appro priate Legal Notices however if the Program has interactive inter faces that do not display Appropriate Legal Notices your work need not make them do so A compilation of a covered work with other separate and independent works which are not by their nature extensions of the c
71. e with the GLoBES standard Returns 0 int nsi_get_oscillation_parameters glb_params p void user_data Stores the oscillation parameters that are used by the nSIEGE in the specified GLoBES parameter vector p The GLoBES parameter vector to use user_data Ignored Included for compliance with the GLoBES standard Returns 0 int nsi_probability_matrix double P 3 3 int cp_sign double E int psteps const double length const double density double filter_sigma void user_data The method to compute the matrix of oscillation probabilities using the nSIEGE P A two dimensional double array to store the oscillation probabilities cp_sign Flag for neutrinos or anti neutrinos as per the GLoBES manual E The neutrino energy as per the GLoBES manual psteps The number of steps as per the GLoBES manual length The length of the steps as per the GLoBES manual density The density in the steps as per the GLoBES manual filter_sigma Ignored At present the nSIEGE is only able to compute the non filtered probabilities 78 APPENDIX C THE NSI EVENT GENERATOR ENGINE NSIEGE user_data Ignored Included for compliance with the GLoBES standard Returns 0 C 2 2 Constants NSI_EPS_11 NSI_EPS_EE Both of these constants are the same They refer to the internal index of the NSI parameter NSTI_EPS_22 NSI_EPS_MM Both of these constants are the same They refer to the intern
72. ecubes montecubes h gt along with the inclusion of the other headers The header file is located in INSTALLDIR include montecubes after installation where INSTALLDIR is the directory where you installed GLoBES and MonteCUBES CHAPTER 2 THE MONTECUBES C LIBRARY 2 2 1 Basic usage definitions The functions listed below are the ones necessary to implement the most basic usage of MonteCUBES Unless you are planning to customize your MonteCUBES usage by changing the step proposal function prior function etc and only use the basic MonteCUBES methods such as running a Markov Chain Monte Carlo simulation with Gaussian steps and no tweaks these are the only functions you will need int int int int mcb_setChainNo int N This function sets the number of chains to use in the Monte Carlo It has protections against setting a non positive number Use this function prior to calling the Monte Carlo method The preset number of chains is four N The number of chains to use Returns MCB_OK if successful MCB_SET_ERR otherwise mcb_setBurnNo int N This function sets the number of samples in the burn in per chain These samples will not be considered when testing for convergence but will still be written to the result files The burn in length will be stored in the summary file so that the burned samples can be removed from the result if desirable If the burn length is set to MCB_LDYNAMIC_BURN then a dynamic burn process w
73. ed The main features of the window are the following e The Open mcb button Since you just started the GUI this is probably the feature you want to use Pressing the button will provide you with a file dialog asking you which mcb file you wish to open The read process will be described below This button will always be visible in the GUI e The Exit button This button is fairly self explanatory Pressing it will simply close the GUI window It will always be visible in the GUI 31 32 CHAPTER 3 THE MONTECUBES MATLAB GUI Figure 3 1 The MonteCUBES Matlab GUI at startup and after reading simulation results e The Burn length field This field is specific to the startup appearance of the GUI By default the GUI will get the information on the burn length from the summary file However if the user inputs a number into this field it will be used instead of the pre defined burn length e The Simulation summary Since no simulation files have been opened this part currently displays no information However when a simulation has been read it will provide general information about the simulation and its results This part of the GUI is always visible The Feedback area The feedback area should currently display a message saying Welcome to the MonteCUBES GUI Additional messages will appear in the feedback area as the GUI is used The feedback area is always visible Once the GUI has been started it must be provided with
74. eing sampled with about the correct weights However it would hav the drawback of not exploring each individual degeneracy in any detail Thus this choice also seems like a bad idea 58 APPENDIX A MARKOV CHAIN MONTE CARLO THEORY A 3 1 Chain heating One way of dealing with degeneracies is to heat the sampled distribution In stead of sampling the actual distribution we sample the distribution Pr x P x 7 where T gt 1 is the temperature paramter The distribution Pr z can depending on T be significantly flatter than the original distribution and the relative weights of the samples will clearly change Thus in order to in terpret the results we somehow need to relate the sample from Pr x with a sample of P x This posterior process of relating a heated chain with the original distribution is known as cooling Once the heated chains have been produced we therfore need to find a method of using posterior cooling Since the distributions we are sampling are continuous the number of times a point is sampled is not necessarily propor tional to P x or Pr imagine that we already have a way of picking random samples from P x then we could use W x gt y P y and have a transition probability of one meaning that each point would essentially only be sampled once Instead we are interested in the sampling density and it is therefore a valid point to ask how much more or less likely it is that the point would have been sam
75. es The first line tells the Monte Carlo to use dynamic burning to read more about the burn in process see App A This means that the Monte Carlo will initially produce chains with twice the number of samples as the minumum chain length If the last half of the chain does not fulfill the convergence criteria then the Monte Carlo doubles the number of samples and use the earlier chain as burn in This continues until the last half of the chain has reached convergence or 28 CHAPTER 2 THE MONTECUBES C LIBRARY the maximum chain length has been reached The following two lines set the maximum and minimum length of the chains to 10 and 2000 respectively An equivalent statement would be mcb_setLengthMinMax 2000 10000000 Since we are using dynamic burning the initial burn in will be 2000 samples and another 2000 samples will be produced before checking convergence The following line sets the typical step size to use in the Monte Carlo to the steps parameter vector while the last line adds a nominal starting value for the chains The chains will then actually be started from points which are one step away from this value with a step size of three It is now time to start our Monte Carlo simulation This is done by the statement mcb_MCMC idsres GLB_ALL GLB_ALL The first argument is a string which constitutes the base for the output filenames see the separate section on output files The two final arguments will be p
76. etting C3 from Ref 3 for the definition of the physical region p The GLoBES parameter vector to transform to the physical region udata Not used No user data input required passing NULL is sufficient The argument is provided to comply with the standard for the function mcb_setPhysicalTransformation 2 2 API DEFINITIONS 13 Returns void int mcb_setPhysicalTransformation void transf glb_params void void udata This function defines which transformation that should be used in order to transform a given set of parameters into the physical region If the user does not set this or if set to NULL MonteCUBES will use mcb_toPhysicalRegion transf The transformation used to transform a general glb_params structure into one where the parameters are in the physical region The first argument is the set of parameters to transform The second argument is a void pointer which can contain user specified data udata The data to be passed as the second argument to transf whenever it is called Returns MCB_OK as it will always be possible to set the function and user data pointers It is up to the user that the transformation works properly double mcb_standard_prior const glb_params in void udata This function is essentially the same as the standard prior function in GLoBES It adds priors based on which parameters that are left free ac cording to the current projection If the input errors have been se
77. f the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nue_fixPhi glb_projection p int n int m This method sets the projection flag for the phase of the non unitarity parameter in the nth row and mth column to GLB_FIXED This is equivalent to glbSetProjectionFlag p GLB_FIXED NUE_PHI_nm p The GLoBES projection to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nue_freeEps glb_projection p int n int m This method sets the projection flag for the phase of the non unitarity parameter in the nth row and mth column to GLB_FREE This is equivalent to glbSetProjectionFlag p GLB_FREE NUE_PHI_nm p The GLoBES projection to change B 2 API DEFINITIONS 67 n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nue_toPhysical glb_params toTransf void user_data This is a physical transformation for usage with MonteCUBES It simply puts the phases between a and m and makes sure that the absolute values are positive In addition it calls the standard MonteCUBES function to make sure that the standard parameters are in the physical region toTransf The GLoBES parameter vector to transform The entries of this vec tor will be changed by the function user_data
78. fined as Ny xX 0 21In 8 o2 c0 iy n 25 A 15 and systematic errors are then taken into account using the pull method with Gaussian systematics to obtain the final y see the GLoBES manual for details which we will denote by y The actual probability density sampled by MonteCUBES is P 8 N 6 n 8 exp cO exp aw A 16 1The constant C can essentially be used to discriminate among different models 2Note that this does not follow a x distribution except in the limit of large samples 56 APPENDIX A MARKOV CHAIN MONTE CARLO THEORY where y 0 2In7 with a slight abuse of notation this quantity is referred to as the prior although it is actually related to the logarithm of the prior function The central quantity used in MonteCUBES is x x this is the actual number that will be stored along with the samples in the MonteCUBES output files see Sec 2 3 A 2 2 Notes on priors Obviously a given parametrization of a model is not necessarily the only one and the parametrization used to implement the physics of the model may not be the same as the one which is most illuminating For example GLoBES implements the mixing angles and the C P phase as the parameters of the neutrino oscillation theory while it is common to plot the results as a function of sin of the angles or multiples of the angles Since this transformation may not preserve volumes in the parameter space it will
79. ge one or more identifi able patents in that country that you have reason to believe are valid If pursuant to or in connection with a single transaction or arrangement you convey or propagate by procuring conveyance of a covered work and grant a patent license to some of the parties receiving the covered work authorizing them to use propagate modify or convey a specific copy of the 12 13 14 91 covered work then the patent license you grant is automatically extended to all recipients of the covered work and works based on it A patent license is discriminatory if it does not include within the scope of its coverage prohibits the exercise of or is conditioned on the non exercise of one or more of the rights that are specifically granted under this License You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software under which you make payment to the third party based on the extent of your activity of conveying the work and under which the third party grants to any of the parties who would receive the covered work from you a discriminatory patent license a in connection with copies of the covered work conveyed by you or copies made from those copies or b primarily for and in connection with specific products or compilations that contain the covered work unless you entered into that arrangement or that patent license was granted
80. ght holder saying it can be distributed under the terms of this License Such a notice grants a world wide royalty free license unlimited in duration to use that work under the conditions stated herein The Document below refers to any such manual or work Any member of the public is a licensee and is addressed as you You accept the license if you copy modify or distribute the work in a way requiring permission under copyright law A Modified Version of the Document means any work containing the Document or a portion of it either copied verbatim or with modifications and or translated into another language A Secondary Section is a named appendix or a front matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document s overall subject or to related matters and contains nothing that could fall directly within that overall subject Thus if the Document is in part a textbook of mathematics a Secondary Section may not explain any mathematics The relationship could be a matter of historical connection with the subject or with related matters or of legal commercial philosophical ethical or political position regarding them The Invariant Sections are certain Secondary Sections whose titles are designated as being those of Invariant Sections in the notice that says that the Document is released under this License If a section does
81. hange for a price no more than your reasonable cost of physically performing this conveying of source or 2 access to copy the Corresponding Source from a network server at no charge c Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source This alternative is allowed only occasionally and noncommercially and only if you received the object code with such an offer in accord with subsection 6b d Convey the object code by offering access from a designated place gratis or for a charge and offer equivalent access to the Correspond ing Source in the same way through the same place at no further charge You need not require recipients to copy the Corresponding Source along with the object code If the place to copy the object code is a network server the Corresponding Source may be on a dif ferent server operated by you or a third party that supports equiv alent copying facilities provided you maintain clear directions next to the object code saying where to find the Corresponding Source Regardless of what server hosts the Corresponding Source you re main obligated to ensure that it is available for as long as needed to satisfy these requirements e Convey the object code using peer to peer transmission provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d A
82. he test steps so that it is possible to jump between the degeneracies and sam ple them with the correct weights See the section on solving degeneracies in App A for details step The difference vector in parameter space between the degeneracies Returns MCB_OK if successful MCB_SET_ERR if the maximum number of degen eracy steps has been reached int mcb_clearDegeneracySteps This function clears all the degeneracy steps from memory This can be useful if running several simulations in the same program and different degeneracies are present in the different simulations Returns MCB_OK as it is always possible to clear the list of degeneracy steps void mcb_setDegeneracySteps glb_params p int ind int N This method can be used to set the apropriate degeneracy steps for a given set of degenerate solutions p A glb_params array containing the degenerate solutions ind An integer array containing the indices of p where the degenerate solutions are located If all of the entries in p should be used then ind k is equal to k N The total number of degenerate solutions to set i e the length of ind Returns void int mcb_readDegeneracySteps char file This method can be used to read the output file of the degeneracy lo cator containing the degenerate solutions It then sets the appropriate degeneracy steps for these solutions using mcb_setDegeneracySteps file The name of the file
83. he non filtered probabilities user_data This should be an integer array containing two entries These entries are flags telling the NUE if to normalize the probabilities 1 or not 0 The first entry of the array concerns the source normalization and the second entry the detector normalization Returns 0 70 APPENDIX B THE NONUNITARITY ENGINE NUE B 2 2 Constants NUE_EPS_11 NUE_EPS_EE Both of these constants are the same the non unitary parameter Eee NUE_EPS_22 NUE_EPS_MM Both of these constants are the same the non unitary parameter NUE_EPS_33 NUE_EPS_TT Both of these constants are the same the non unitary parameter NUE_EPS_21 NUE_EPS_ME Both of these constants are the same the non unitary parameter NUE_EPS_31 NUE_EPS_TE Both of these constants are the same the non unitary parameter el NUE_EPS_32 NUE_EPS_TM Both of these constants are the same the non unitary parameter e NUE_PHI_21 NUE_PHI_ME Both of these constants are the same the non unitary parameter arg pe NUE_PHI_31 NUE_PHI_TE Both of these constants are the same the non unitary parameter arg re NUE_PHI_32 NUE_PHI_TM Both of these constants are the same the non unitary parameter arg NUE_TOT_NO They refer to the internal index of They refer to the internal index of They refer to the internal index of They refer to the inter
84. he points should be distributed quite smoothly and no trace of them being the result of a random walk should be visible as in the figure Chains that do not have a good convergence will display features as some regions being overpopulated due to the walk staying there fore too long Again the remedy for resolving this issue would be to increase the number of samples in the simulation and or changing the step sizes The use of the export data feature with this plot type will result in a list of the different points in parameter space The main advantages of such a file over the original chain files is that the chains are joined that the file only contains the information on the specific parameters and that the parameters can be arbitrarily transformed although any reasonable plotting tool should be able to handle this 3 2 5 2D counts contour plots Much like the scatter plots are the two dimensional equivalents of the chain progression plots the two dimensional contour plots are the equivalents of the confidence region plots An example of a contour plot is given in Fig 3 7 The plots are constructed by binning the samples using a Gaussian filter to eliminate the statistical fluctuations and finally the smallest area contours containing a given ratio of the samples are drawn Similar to the confidence region plots the counts contour plots have two extra parameter fields the filter field and the confidence levels CLs field The 40 CHA
85. his License The Free Software Foundation may publish revised and or new versions of the GNU General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns 92 15 16 17 APPENDIX D GNU GENERAL PUBLIC LICENSE Each version is given a distinguishing version number If the Program specifies that a certain numbered version of the GNU General Public Li cense or any later version applies to it you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation If the Program does not specify a version number of the GNU General Public License you may choose any version ever published by the Free Software Foundation If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used that proxy s public state ment of acceptance of a version permanently authorizes you to choose that version for the Program Later license versions may give you additional or different permissions However no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version Disclaimer of Warranty THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AN
86. idence regions are not what one would expect from a well behaved simulation 3 5 Notes on filtering As mentioned earlier both the confidence region plots and contour plots use Gaussian filters in order to smoothen the features of the simulation results This is actually quite necessary in order to produce figures which do not look gobbled up while maintaining a large number of bins For example Fig 3 15 shows how Fig 3 11 would appear without the filter However it is apparent that using a filter which is too wide will destroy features in the plot Of course what we really want to do is to destroy the features introduced by the random 3 5 NOTES ON FILTERING 0 53 0 525 F 0 52 F 0 515F 0 51 F el N 2 0 505 8 sin 0 5 0 495 0 49 0 485 0 48 F 0 0 5 3 5 x 10 Figure 3 12 A 1D chain progression plot for sin 423 for an ISS neutrino factory simulation using a step which is 50 times smaller than those used earlier 2 31 10 Am 2 494 2 492 i 1G 1 0 485 0 49 0 495 05 0505 0 51 0 515 0 52 sin Figure 3 13 A scatter plot for sin 23 and Am3 for an ISS neutrino factory simulation using a step which is 50 times smaller than those used earlier 48 CHAPTER 3 THE MONTECUBES MATLAB GUI 2 506 2 504 2 502 2 31 2 5 10 Am 2 498 2 496 2 494 2 492 4 0 485 0 49 0 495 0 5 2 0 505 0 51 0 515 0 52 sin 0
87. ield will be used in all plots while the y bins field will only be used in the contour plots Furthermore the filter and CLs fields are also available for the triangle plot The values of these fields will simply be passed along to the functions drawing the confidence region and contour plots and therefore have exactly the same usage as for these An important point is that only the first value will be used in the case of the confidence region plots since this plot type requires that only one value is passed to it This means that an input of 0 68 0 9 for the CLs field will produce the same contours but different confidence region plots compared to an input of 0 9 0 68 Since the data for the triangle plots can be exported using the individual 1D confidence region and 2D counts contour plots the export data feature is turned off for the triangle plots 3 2 MAKING PLOTS Graph type Figure Filter Parameters CLs Triangle plot x 5 X variable Min Max Bins P3 theta_ 23 vj 100 Y variable ETES P6 Deha m_ 31F2 v Boundary cond Opadded Opadded Clear Clear 43 05 055 06 0 65 12 x10 9 _ 8 5 Se 5 e 7 5 0 5 055 0 6 12 x10 2 51 SF Eas 2 49 05 055 0 6 0 65 75 8 585 9 249 25 2 51 12 Am x10 ma x 10 Figure 3 8 A triangle plot for the ISS neutrino factory simulation as well as the GUI settings that produced it 44 CHAPTER 3
88. ill be used The preset burn in length is 1000 N The number of samples to use as burn in Returns MCB_OK if successful MCB_SET_ERR otherwise mcb_setLengthMax int N This function sets the maximum length of one Markov Chain after burn in This number of samples will never be exceeded even if the Monte Carlo has not converged If no convergence check is made then this number of samples will be produced The preset maximum chain length is 10 N The number to use for maximum chain length Returns MCB_OK if successfull MCB_SET_ERR if input is smaller than minimum chain length mcb_setLengthMin int N This function sets the minimum length of one Markov Chain after burn in This number of samples will always be produced even if the Monte Carlo has converged The preset minimum chain length is 5000 N The number to use for minimum chain length Returns MCB_OK if successful MCB_SET_ERR if input is larger than maximum chain length or input is negative 2 2 API DEFINITIONS 9 int mcb_setLengthMinMax int Min int Max This function sets both the minimum and maximum length of one Markov Chain after burn in The Monte Carlo will always produce a number of samples between these two numbers regardless of convergence checks If no convergence check is made then the chain length will reach the maximum number of samples The preset minimum chain length is 5000 and the preset maximum chain length is 10 Min
89. ine a projection which will tell MonteCUBES what parameters it should be changing in the Markov Chains Out of the six the statements glb_params true_values glbAllocParams glb_params start_values glbAllocParams glb_params steps glbAllocParams glb_params convcrit glbAllocParams glb_params input_errors glbAllocParams glb_projection pro glbAllocProjection the first five declare and and allocate memory to parameter vectors while the last statement declares and allocates memory to a projection The five param eter vectors we will use are true_values We will use these values to set the event rates They correspond to the values we assume have been realized in Nature start_values These are parameter values at which we will start the Markov Chains The first sample in the Markov Chains will be given by a rather large step three times the normal step size away from this value steps We will use this parameter vector to store the typical step sizes that we want to use in the Markov Chains The steps will be Gaussian with these values as standard deviation 26 CHAPTER 2 THE MONTECUBES C LIBRARY convcrit This parameter vector stores the convergence criteria Thus we can in principle set different convergence criteria for different parameters al though we will not do this in this example input_errors As in standard GLoBES programs we will need to set the input errors that should be
90. int the name of the outfiles to produce excluding the suffix If set to out the outfiles will be named out mcb out mci out mc2 etc Which experiment to use according to the GLoBES standard Use GLB_ALL for all experiments This argument is simply passed to the GLoBES x function Which rule to use according to the GLoBES standard Use GLB_ALL for all rules This argument is simply passed to the GLoBES y function Returns MCB_OK if executed without problems MCB_N_ERR if the MCMC has not converged and MCB_SET_ERR if the step size or starting positions have not been set MCB_ALLOC_ERR if at some point memory could not be allocated properly 2 2 2 Advanced usage definitions MonteCUBES includes several ways of customizing its behavior Some of these features such as customizing the way the Metropolis Hastings algorithm is im plemented in the simulation are beyond the basic usage of MonteCUBES Nev ertheless the advanced user may want to make these implementations Thus MonteCUBES also includes the possibility to do so The below definitions will allow the user to fully customize the Monte Carlo Markov Chain simulations void mcb_toPhysicalRegion glb_params p void udata This is the standard MonteCUBES function used to transform an arbitrary set of parameters to the physical region in such a way that the same set of parameters is always used to parametrize the same physical point in parameter space The method is using s
91. is definition The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document These Warranty Disclaimers are considered to be included by reference in this License but only as regards disclaiming warranties any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License 2 VERBATIM COPYING You may copy and distribute the Document in any medium either commer cially or noncommercially provided that this License the copyright notices and the license notice saying this License applies to the Document are reproduced in all copies and that you add no other conditions whatsoever to those of this License You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute However you may accept compensation in exchange for copies If you distribute a large enough number of copies you must also follow the conditions in section 3 You may also lend copies under the same conditions stated above and you may publicly display copies 3 COPYING IN QUANTITY If you publish printed copies or copies in media that commonly have printed covers of the Document numbering more than 100 and the Document s license notice requires Cover Texts you must enclose the copies in covers that carry clearly and legibly all these Cover Texts Front Cover Texts on the front cover and Back
92. led using the command 5 6 CHAPTER 2 THE MONTECUBES C LIBRARY make install The default install directory prefix is usr local 2 1 3 Basic Installation These are generic installation instructions The configure shell script attempts to guess correct values for various system dependent variables used during compilation It uses those values to create a Makefile in each directory of the package It may also create one or more h files containing system dependent definitions Finally it creates a shell script config status that you can run in the future to recreate the current configuration a file config cache that saves the results of its tests to speed up reconfiguring and a file config log containing compiler output useful mainly for debugging configure If you need to do unusual things to compile the package please try to figure out how configure could check whether to do them and mail diffs or instruc tions to the address given in the README so they can be considered for the next release If at some point config cache contains results you don t want to keep you may remove or edit it The file configure ac is used to create configure by a program called autoconf You only need configure ac if you want to change it or regenerate configure using a newer version of autoconf The simplest way to compile this package is 1 cd to the directory containing the package s source code and type configure to configure the pack
93. lly how you would con struct a MonteCUBES simulation without caring too much about implementing new physics priors or degeneracies Let us start from the beginning of the code with the include statements include lt math h gt include lt globes globes h gt include lt montecubes montecubes h gt As you will notice there is essentially nothing strange in these lines We need math h to tell us about M_PI globes h to have access to the GLoBES functions and montecubes h in order to use the functions introduced by MonteCUBES If you are unfamiliar with C programming the main function is the function that is called when you run the binary executable file that is constructed by the compiler Thus we will not explain its syntax in any detail as this can be found in any tutorial on C programming Instead we simply focus on the instructions within which are executed when the binary is The first statements i e double thetai2 33 21 M_PI 180 double theta13 0 M_PI 180 double theta23 45 M_PI 180 double deltacp M_PI 2 24 CHAPTER 2 THE MONTECUBES C LIBRARY include lt math h gt include lt globes globes h gt include lt montecubes montecubes h gt int main int argc char argv double thetai2 33 21 M_PI 180 double thetai3 0 M_PI 180 double theta23 45 M_PI 180 double deltacp M_PI 2 double sdm 8 0e 5 double ldm 2 5e 3 double r 0 025 glbInit argv 0 glbInitExperiment ids ba
94. mass hierarchies there is a huge barrier between them and the chains have to pass Am3 0 essentially the no oscillation region in order to jump between the degeneracies Additionally the degenerate solution is not a perfect fit and it should be sampled slightly less often than the true solution Thus testing this setup will also show that the degeneracy step solution is able to reproduce the different solutions with the appropriate weights In principle the degeneracy finder is a Markov Chain Monte Carlo by itself Thus in order to run it the user must specify the same parameters before running it as if running the main method of MonteCUBES such as step sizes The degeneracy finder is then run by a command similar to mcb_TdegFinder 1000 0 0 01 10 20 GLB_ALL GLB_ALL 20 0 1 degLocs mcd Here the chains are started at a temperature of Ta 1000 and gradually cooled to T 0 01 the number of temperature steps is ten and the number of chains tried is 20 The GLB_ALL arguments tells the degeneracy finder to use all ex periments and rules the 20 0 is the maximum value of the y which should be considered a degenerate solution the 1 tells the degeneracy finder to automati cally set the degeneracy steps using the function mcb_setDegeneracyStep and the final string degLocs mcd is the name of the file into which the degenerate solutions are stored Since it can take some time to run this method it may be advisable to run it
95. meters in a GLoBES projection to GLB_FIXED p The GLoBES projection to change Returns void nsi_freeEpss glb_projection p This method sets all projection flags for the NSI absolute value parameters in a GLoBES projection to GLB_FREE p The GLoBES projection to change Returns void 74 APPENDIX C THE NSI EVENT GENERATOR ENGINE NSIEGE void nsi_fixEps glb_projection p int n int m This method sets the projection flag for the absolute value of the NSI parameter in the nth row and mth column to GLB_FIXED This is equivalent to glbSetProjectionFlag p GLB_FIXED NSI_EPS_nm p The GLoBES projection to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nsi_freeEps glb_projection p int n int m This method sets the projection flag for the absolute value of the NSI parameter in the nth row and mth column to GLB_FREE This is equivalent to glbSetProjectionFlag p GLB_FREE NSI_EPS_nm p The GLoBES projection to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nsi_fixPhi glb_projection p int n int m This method sets the projection flag for the phase of the NSI parameter in the nth row and mth column to GLB_FIXED This is equivalent to glbSetProjectionFlag p GLB_FIXED NSI_PHI_nm p The GLoBES projec
96. mpling files There are two types of raw sampling files the summary files and the chain files Each of these are described in subsections below 2 3 1 Summary files For each MCMC simulation a summary file will be created This file contains general information about the MCMC simulation such as which parameters that were used the duration of the simulation how many samples were produced etc The summary file will be named lt name gt mcb where lt name gt is the outfile argument passed to the MCMC see Sec 2 2 In Tab 2 1 we give the structure of the summary files The entries of this table should be interpreted in the following way Nchain The number of chains produced in the simulation Npar The number of parameters used in the simulation 22 free Nburn Nmin Nmax time Nsamp start_values step_size Npoint varNames CHAPTER 2 THE MONTECUBES C LIBRARY The convergence criteria put on the parameters This consists of Npar numbers one for each parameter Flags denoting which parameters that were allowed to vary during the simulation This consists of Npar numbers where 0 denotes that the parameter was fixed and 1 that it was allowed to vary The number of samples per chain that were not considered in the conver gence criteria The minimum number of samples per chain that the MCMC was told to produce after burn in The maximum number of sample
97. mply sets the convergence criteria for all oscillation parameters to r which was defined in the beginning of the program Note that we could just as well have used the glbDefineParams here as well However this for loop would be sufficient also if we had used a user defined probability engine with more parameters see the GLoBES manual Finally the last statement tells MonteCUBES to use these values as the convergence criteria Another just as important thing to tell the Monte Carlo is how big steps it should be taking To this end we have defined the steps parameter vector which will be passed to the function starting the simulation We simply need to put the typical step length into the vector using standard GLoBES commands glbDefineParams steps 0 005 theta12 0 0025 0 005 theta23 0 2 M_PI 0 005 sdm 0 005 1dm glbSetDensityParams steps 0 02 GLB_ALL The typical step length that should be used is about the one standard deviation that we expect If the step length is too small the Monte Carlo will take more time to converge If it is too large then the sampling of the parameter space will be bad as the chains will get stuck in the same point for a long time It is now time to set options for the Monte Carlo that we do not wish to be put to their defaults Here we use four examples mcb_setBurnNo MCB_DYNAMIC_BURN mcb_setLengthMax 10000000 mcb_setLengthMin 2000 mcb_setStepSizes steps mcb_addStartPosition start_valu
98. n also use the NUE independently from the rest of MonteCUBES This appendix describes the functionality that is added when including the header file through the com mand include lt montecubes nue_probability h gt B 1 Theory of a non unitary mixing matrix A non unitary lepton mixing matrix in the CC interaction between neutrinos and charged leptons is the generic feature of models involving extra degrees of freedom that can mix with either of the lepton components In particular in the popular type I seesaw models accommodating the smallness of neutrino masses through the addition of heavy fermionic singlets right handed neutrinos these extra degrees of freedom will mix with the light active neutrinos giving rise to a larger mixing matrix than the standard three by three one The three by three sub matrix involving the mixing between the light mass eigenstates accessible at low energies and the three active flavour eigenstates will in general not be unitary In standard seesaw models these unitarity violation is expected to be unobservably small On the hand these violations are induced by an independent lepton number conserving operator than the one that generates neutrino masses The smallness of the neutrino mass can then be naturally accommodated through a slightly broken lepton number symmetry as in the 63 64 APPENDIX B THE NONUNITARITY ENGINE NUE inverse or double seesaw models with large testable deviations from unit
99. nal index of They refer to the internal index of They refer to the internal index of They refer to the internal index of They refer to the internal index of They refer to the internal index of This constant has the value of the total number of oscillation parameters within the NUE NUE_EPSS This constant has the value of the lowest index referring to a parameter describing the absolute values of the es NUE_PHIS This constant has the value of the lowest index referring to a parameter describing the phase of an Appendix C The non Standard Interaction Event Generator Engine nSIEGE The non Standard Interaction Event Generator Engine nSIEGE is a probabil ity engine implementing the physics of a non standard matter interaction be tween background matter and neutrinos into GLoBES The nSIEGE is installed along with the MonteCUBES C library However the methods of nSIEGE are included in the header file nsi_probability h rather than in montecubes h although these will be located in the same directory after installation You can also use the nSIEGE independently from the rest of MonteCUBES This appendix describes the functionality that is added when including the header file through the command include lt montecubes nsi_probability h gt C 1 Theory of a non standard matter interac tions Non standard interactions NSI of neutrinos with matter are expected in a number of different extensions of the St
100. o pass between the degeneracies and will only find degeneracies between which the temperature is sufficient 2 Pure chance There is always the pure statistical chance that one degener ate solution will be missed The probability of this depends on the number of chains Clearly if the number of chains is smaller than the number of degeneracies the probability is one Therefore we recommend that you run a number of chains which is about an order of magnitude larger than the expected number of degeneracies In Fig A 1 we show the probabil ity of missing one or more of the degenerate solutions as a function of the number of chains and the number of degeneracies A 3 THE MONTECUBES DEGENERACY SOLVER 61 0 10 20 30 40 50 Number of chains Figure A 1 The probability of missing one or more of the degenerate solu tions under the assumption that the chains fall into each degeneracy with equal probability The labels denote the total number of degeneracies APPENDIX A MARKOV CHAIN MONTE CARLO THEORY Appendix B The NonUnitarity Engine NUE The NonUnitarity Engine NUE is a probability engine implementing the physics of a non unitary lepton mixing matrix into GLoBES The NUE is installed along with the MonteCUBES C library However the methods of NUE are included in the header file nue_probability h rather than in montecubes h although these will be located in the same directory after installation You ca
101. of the GNU Free Documentation License Version 1 3 or any later version pub lished by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the li cense is included in the section entitled GNU Free Documentation License If you have Invariant Sections Front Cover Texts and Back Cover Texts replace the with Texts line with this with the Invariant Sections being LIST THEIR TITLES with the Front Cover Texts being LIST and with the Back Cover Texts being LIST If you have Invariant Sections without Cover Texts or some other combina tion of the three merge those two alternatives to suit the situation If your document contains nontrivial examples of program code we recom mend releasing these examples in parallel under your choice of free software license such as the GNU General Public License to permit their use in free software 104 APPENDIX E GNU FREE DOCUMENTATION LICENSE Bibliography 1 P Huber M Lindner and W Winter Comput Phys Commun 167 195 2005 hep ph 0407333 2 P Huber J Kopp M Lindner M Rolinec and W Winter Comput Phys Commun 177 432 2007 hep ph 0701187 3 A de Gouvea and J Jenkins 2008 0804 3627 4 ISS Physics Working Group A Bandyopadhyay et al 2007 0710 4947 5 P Coloma A Donini E Fernandez Martinez and J Lopez Pavon JHEP 05 050 2008 0712 0796 6 A Gelman and
102. om a uniform distribution in the interval 0 1 If P W gt n Pla Wan gt 2 SERRET then put n 1 Otherwise put n41 Ln p lt min i 4 Repeat this procedure until the appropriate number of samples have been reached 51 52 APPENDIX A MARKOV CHAIN MONTE CARLO THEORY In order to see why this procedure has P x as its equilibrium distribution let us consider the equilibrium condition of detailed balance R a gt y Rly gt zx A 1 where R x y is the transition rate from x to y Since R x y is simply given by the product of P x describing the probability to be in x and W a2 gt y the rate of transition from z to y given that we are starting in x the detailed balance condition simply boils down to P 2 W a gt y P yWly gt 2 A 2 Thus in order for our algorithm to sample P x as quickly as possible we must make sure that it fulfills detailed balance while maximizing the probability of actually making a jump Since the probability of accepting a test step is P x gt amp it follows that at equilibrium R gt y P W a gt y P a gt y Paw o gt win 1 2 rie P x W a gt y min P xz W a gt y P y W y gt 2 R y gt 2 A 3 where the last step follows from the symmetry of the expression Since we have maximized the acceptance rate in one direction P x y cannot be larger than one it must also be maximized in the other direction
103. or Dedications Preserve the Title of the section and preserve in the section all the substance and tone of each of the contributor acknowledgements and or dedications given therein Preserve all the Invariant Sections of the Document unaltered in their text and in their titles Section numbers or the equivalent are not considered part of the section titles Delete any section Entitled Endorsements Such a section may not be included in the Modified Version Do not retitle any existing section to be Entitled Endorsements or to conflict in title with any Invariant Section Preserve any Warranty Disclaimers If the Modified Version includes new front matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document you may at your option designate some or all of these sections as invariant To do this add their titles to the list of Invariant Sections in the Modified Version s license notice These titles must be distinct from any other section titles You may add a section Entitled Endorsements provided it contains noth ing but endorsements of your Modified Version by various parties for example 100 APPENDIX E GNU FREE DOCUMENTATION LICENSE statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard You may add a passage of up to five words as a Front Cover Text and a passage of
104. ort i e 1D histogram 1D confidence region 2D contours and 3D surface plots build upon the same principle Initially the region for which to make the plot is divided into bins and the weighted number of samples in each bin is computed after which any filter introduced to suppress statistical fluctuations is applied 3Note that the region close to sin 26 will still be sampled in greater detail A 3 THE MONTECUBES DEGENERACY SOLVER 57 The plotted regions includes all bins with a total number of samples larger than N where N is chosen such that the region includes a given percentage a of the total number of samples The resulting region is the smallest region containing the fraction a of the samples In the case of the 1D confidence region there is also a line denoting the point of maximum probability density which is simply the bin with the largest number of samples A 3 The MonteCUBES degeneracy solver A common feature of many setups for neutrino oscillation experiments is the appearance of solutions which are degenerate In fact degenerate solutions are in many cases the source of the main uncertainties predicted for different oscillation parameters in several experiments In this section we will describe how the MonteCUBES degeneracy solver works from a theoretical standpoint For an example on how to use it see Sec 2 4 2 If the distribution that we are sampling have well separated degeneracies then we are faced with a
105. ot the confidence region plots are affected by the weight function parameter field The actual graph contains a thick black curve representing the distribution of samples along the chosen variable a horizontal red line representing the level above which bins are needed to contain the given ratio of the samples a vertical dashed black line representing the best fit bin and a green region representing the parameter values within which the ratio is contained The graph has no scale on the y axis simply due to the fact that it represents a distribution and the normalization is arbitrary The user is also presented with the option of producing one sided confidence regions through the Type parameter field In the edges of the graph the Gaussian filter assumes the boundary condi tions set by the Boundary cond variable field Using the export data produces a file containing the one dimensional distri bution The main advantage over the export results from the histogram plot is that the data can be filtered 3 2 4 2D scatter plots The two dimensional scatter plots simply puts points in a two dimensional plot where the samples are located for the variables chosen An example of a two dimensional scatter plot is given in Fig 3 6 Apart from providing a first view of how the samples are distributed in the chosen variables the scatter plots may also provide a visual test for how well behaved the simulation was For a well converged simulation t
106. overed work and which are not combined with it such as to form a larger program in or on a volume of a storage or distribution medium is called an aggregate if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation s users beyond what the individual works permit Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate Conveying Non Source Forms You may convey a covered work in object code form under the terms of sections 4 and 5 provided that you also convey the machine readable Corresponding Source under the terms of this License in one of these ways a Convey the object code in or embodied in a physical product in cluding a physical distribution medium accompanied by the Cor responding Source fixed on a durable physical medium customarily used for software interchange 86 APPENDIX D GNU GENERAL PUBLIC LICENSE b Convey the object code in or embodied in a physical product in cluding a physical distribution medium accompanied by a written offer valid for at least three years and valid for as long as you of fer spare parts or customer support for that product model to give anyone who possesses the object code either 1 a copy of the Cor responding Source for all the software in the product that is covered by this License on a durable physical medium customarily used for software interc
107. owever GLoBES 3 0 is the first version implementing the possibility of defining new physics and one of the major strengths 1 2 CHAPTER 1 INTRODUCTION of MonteCUBES is the possibility of exploring large dimensional parameter spaces 2 A graphical user interface GUI for Matlab The raw sampling data produced by the MonteCUBES C library can although it is well defined be somewhat cumbersome to handle In order to facilitate the usage of MonteCUBES its distribution also includes a set of Matlab files intended to simplify this process and create results which are easier to overview and interpret The GUI will read the raw sampling data and provide the means to produce a number of different plots using that data In addition to allowing the data to be plotted in Matlab the GUI also provides the possibility of exporting higher level data such as actual contours and tabulized functions rather than the raw samples for inclusion in a plotting program of the user s choice No preknowledge of Matlab is required in order to use the GUI although some experience in writing inline functions may be helpful for some of the more advanced features 1 2 What is MonteCUBES not MonteCUBES is not a stand alone application Thus it is highly dependent on other software In particular since the C library is a GLoBES plug in a working installation of GLoBES is required in order to use it we recommend version 3 0 or later However apart from the de
108. par ticular as an example we have performed a simulation using a beta beam with a known degeneracy where a flip of the sign of the atmospheric mass squared difference gives a solution which produces nearly as good a fit as the input val ues The reason for choosing a scenario where the solutions are not completely degenerate is that we want to show that the Monte Carlo is able to produce the correct weights for the different degenerate solutions as well as exploring both of them properly The actual determination of Am3 by the experiment is not very good and thus we focus on the 013 0 parameter space which is where the degeneracy is apparent We already showed the degenerate solution in the example of the 3D surface plot and we now concentrate on the one and two dimensional plots which are easier to interpret by inspection The one dimensional confidence region plots are given in Fig 3 10 From this figure it is apparent that the input solution essentially the best fit is more in line with the simulation results than the degenerate solution which is only slightly allowed at the 68 level in both 6 3 and 6 Note that although the degeneracies seem relatively close in the 013 and 6 parameters there is actually a huge separation between them due to the flip of the sign of the atmospheric mass squared difference The contour plot of the same degeneracy is shown in Fig 3 11 While the degenerate solution is still smaller than the input solu
109. pendency on GLoBES the MonteCUBES C library does not have any additional requirements over those already put by GLoBES such as the proper compilers and scientific libraries Naturally the Matlab GUI also requires a working copy of Matlab The GUI was written for Matlab 7 0 and earlier versions are not supported although the GUI might still work properly However processing the raw sampling files created by the C library is possible even if the C library is not installed 1 3 Versioning The current version of MonteCUBES is 1 3 0 The version number has the follow ing interpretation e The first number denotes the release number It will increase by one when major updates rewriting of code and new functions are added compared to the previous release e The second number denotes the major revision number It is increased by one whenever new functionality is added e The final number denotes the minor revision number It is increased when ever a new distribution is put together after any minor change has been made 1 3 VERSIONING 3 e In addition the version number may be followed by a b denoting that it is a beta version In this case the distribution has been released for public testing but it is still experimental and more likely to contain bugs Our aim is to improve on MonteCUBES whenever possible If you want to give us feedback please do so at emb kth se enrique fernandez martinezGuam es In order for us to properl
110. permanently reinstated receipt of a copy of some or all of the same material does not give you any rights to use it 10 FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new revised versions of the GNU Free Documentation License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns See http www gnu org copyleft Each version of the License is given a distinguishing version number If the Document specifies that a particular numbered version of this License or any later version applies to it you have the option of following the terms and conditions either of that specified version or of any later version that has been published not as a draft by the Free Software Foundation If the Document does not specify a version number of this License you may choose any version ever published not as a draft by the Free Software Foundation If the Docu ment specifies that a proxy can decide which future versions of this License can be used that proxy s public statement of acceptance of a version permanently authorizes you to choose that version for the Document 11 RELICENSING Massive Multiauthor Collaboration Site or MMC Site means any World Wide Web server that publishes copyrightable works and also provides promi nent facilities for anybody to edit those works A public wiki that anybody can edit is an
111. pled given a cooler chain Since we are anyway computing P x at the sampling points the way of doing this is to use the transformation ont Lo Ni i Pr a A 19 where n is number of samples for the cooled distribution n is the number of samples for the heated distribution and x is the sample point Since the actual proportionality constant is irrelevant for our purposes we may as well put it to one The reason to use this transformation is that point in the vicinity of x should be sampled with a rate proportional to P x when using the cooled distribution while they are sampled with a rate proportional to Pr x Thus multiplying with the fraction between these distributions generates the correct relative sampling frequencies The method of heating chains also has some problems The largest of these being the fact that our simulations will spend a lot of time in regions where the actual probability density is quite small If the region in between the degenera cies contains points with a very small probability density and the degeneracies are well separated then the chains will have to be heated by a very large amount meaning that the degenerate solutions themselves will not be that well explored A 3 2 Degenerate steps Another way of dealing with degeneracies is based on the fact that the Metropolis Hastings sampling algorithm allows for quite general transition functions If the user knows where the degeneracies are loca
112. ples in total We then separately test for convergence for each parameter x that is allowed to vary in the simulation By x we denote the ith sample of x in chain j Furthermore we compute the mean of chain 7 ool A 4 and the total mean z Wi uo Qt ar A 5 j l i 1 j l We now compute the variance in each chain as IA H ye ai 3 A 6 i 1 A lower bound W on the variance in the complete set of samples is then given by the mean of the chain variances i e 54 APPENDIX A MARKOV CHAIN MONTE CARLO THEORY An upper bound on the same quantity can be constructed if we compute the variance between chains B namely 1 M B Ti x Woe a A 8 j l and the upper bound is N 1 B W W 4 M 1 A 9 W aM 1 A 9 The paramter R used for the convergence check is then the ratio of these two estimates aai 2 R y wm 1 A 10 In practice R is simply a measure of how well the variance in each chain cor responds to the total variance If the convergence of all chains is good then we expect this parameter to be close to one However if one or more chains have only sampled part of the target distribution then the variance within the chains will be smaller than the variance in the complete sample and R will be significantly larger In particular this will be the case when there are degen eracies and different chains fall into different degeneracies Each chain will then sample one of the degenerate
113. probability parts of the parameter space the degeneracy step method demands that the user already knows where the degenerate solutions are located Thus the method employed depends greatly on what the user wants to know If the user has no pre knowledge on where the degenerate solutions are located then it may be a good idea to start out by heating the chains in order to find the degeneracies If the chains do not need to be heated by a large amount i e the degeneracies are relatively close then this may be sufficient to also explore the structures of the degeneracies themselves However if the degeneracies are well separated then it may be useful to run some heated chains first If these runs discover degeneracies but do not resolve them with proper accuracy then the information on the distance between the degeneracies can be implemented in a run using the degenerate step degeneracy solver in order to make a more detailed exploration of the degenerate solutions A 3 4 The temperature lowering degeneracy finder One way of dealing with the dilemma of which method to use to treat degen eracies is to use both This is implemented in MonteCUBES through using a heating method in order to locate the degeneracies and then using the appro priate degeneracy steps between these degenerate solutions in order to explore the regions around them properly This degeneracy finder works by running several chains starting at a high temperature T gt gt
114. ps must be taken between two samples before their correlation goes to zero Since the sampling should not depend on the starting point the final set of samples should not be correlated with the initial condition 2 Dynamic burning This method burns the initial half of the produced samples and then tests for convergence in the second half If the chains have not converged then the number of total samples is doubled and the same procedure is repeated Effectively when a set of samples is rejected it and the samples burned before it become the new burn for the next set of samples The positive aspect of using dynamic burning is that the user does not need to know anything about for how many steps the samples are correlated The negative aspect is that half of the chains will be burned although the number of steps before correlation is lost may be smaller than the number of steps necessary to reach convergence In addition to implementing these run time burning conditions MonteCUBES always stores the full chains saving the burn lengths into the summary files The effective burn length in a simulation can then be changed when using the MonteCUBES Matlab GUI to plot the results The convergence checks in a MonteCUBES simulation proceeds in the following manner 6 Suppose that we have generated M chains each containing N samples after the burned samples have been removed in the case of dynamic burn this would mean that the chains contain 2N sam
115. res GLB_ALL GLB_ALL glbFreeParams true_values glbFreeParams convcrit glbFreeParams start_values glbFreeParams input_errors glbFreeParams steps glbFreeProjection pro Table 2 2 MonteCUBES C source code for simulating the ISS neutrino factory 2 4 EXAMPLES 25 double sdm 8 0e 5 double ldm 2 5e 3 double r 0 025 are simply declarations of variables that we will use later on in our program You will recognize the first six values as neutrino oscillation parameters with 013 set to zero and the other parameters according to the ISS neutrino factory simulation definitions The last parameter r is a parameter that we will use to set the convergence criteria for our Markov Chains A smaller value would imply more stringent convergence criteria this value is already quite stringent We now move on to initializing GLoBES and the experiments we want to use This is done through the statements glbInit argv 0 glbInitExperiment ids baseline glb amp glb_experiment_list 0 amp glb_num_of_exps The first of these statements initializes GLOBES see the GLoBES manual for details The second tells GLoBES that we want to use ids baseline glb as the AEDL file which contains a description of the ISS neutrino factory setup Once GLoBES has been initialized we need to define the parameter vectors we are going to use as well as allocate memory where the parameter vectors can be stored We also need to def
116. rule rates are then used by GLoBES to compute the x function The main usage of this method is to simulate results from an experiment and compute the x using these instead of the ones computed by GLoBES Thus this can be used to per form an actual Monte Carlo determination of the confidence belts rather than relying on the test statistic actually taking a x distribution Only the rates for exper will be changed exper The index of the experiment for which to set the rule rates Use GLB_ALL to set the rule rates for all experiments in The parameters to be used to predict the mean values of the Poisson distributions used Returns MCB_OK if the file was readable MCB_IO_ERR if it was not int mcb_addOutDataFunction double fcn glb_params const char fcnName This method can be used to add an arbitrary function of the oscillation parameters to the output files From the perspective of the outpu files the value of the function is treated as an extra parameter and is added after all other parameters fcn The function of the oscillation parameters to add to the output files fcnName The name of the function to use in the summary file Returns MCB_OK if the function was added MCB_SET_ERR if too many out data functions have already been added or MCB_ALLOC_ERR if memory to stor the function could not be allocated int mcb_clearOutDataFunctions This method clears all of the out data functions set by mcb_addOutD
117. s per chain that the MCMC was told to produce after burn in The running time in seconds of the MCMC simulation The actual number of samples produced per chain by the MCMC simula tion after burn in The typical start value of the chains This line contains Npar numbers one for each parameter The actual starting values for the chains are chosen by taking a random step away from these values this step is three times larger than the random steps taken during the MCMC If more than one start position have been used then this is the first of the start positions to be stored in memory The typical step sizes for the different parameters This line contains Npar numbers one for each parameter This actually represents Nchain different lines The lines contain the num ber of distinct samples in the different chains starting with chain 1 This number includes the burn in samples and should equal the number of lines in the corresponding chain files This represents Npar different lines Each line contains the name of one of the variables used in the simulations within quotation marks The MonteCUBES Matlab GUI will display these variable names This is a single decimal number containing the temperature used in the simulation This must be known in order to cool the chain properly 2 3 2 Chain files The chain files contain the actual samples created in the MCMC simulations Unlike the summary files several chain files will be produ
118. seline glb amp glb_experiment_list 0 amp glb_num_of_exps glb_params true_values glbAllocParams glb_params start_values glbAllocParams glb_params steps glbAllocParams glb_params convcrit glbAllocParams glb_params input_errors glbAllocParams glb_projection pro glbAllocProjection glbDefineParams true_values thetal2 theta13 theta23 deltacp sdm 1dm glbSetDensityParams true_values 1 0 GLB_ALL glbSetOscillationParameters true_values glbSetRates glbSetCentralValues true_values glbCopyParams true_values start_values glbDefineParams input_errors 0 04 theta12 0 0 1 theta23 0 0 04 sdm 0 1 1dm glbSetDensityParams input_errors 0 02 GLB_ALL glbSetInputErrors input_errors glbDefineProjection pro GLB_FREE GLB_FREE GLB_FREE GLB_FREE GLB_FREE GLB_FREE glbSetDensityProjectionFlag pro GLB_FREE GLB_ALL glbSetProjection pro int m for m 0 m lt glbGetNum0f0scParams m glbSetOscParams convcrit r m glbSetDensityParams convcrit 1 0 GLB_ALL mcb_setConvergenceCriteria convcrit glbCopyParams true_values steps glbDefineParams steps 0 005 theta12 0 0025 0 005 theta23 0 2 M_PI 0 005 sdm 0 005 1dm glbSetDensityParams steps 0 02 GLB_ALL mcb_setBurnNo MCB_DYNAMIC_BURN mcb_setLengthMax 10000000 mcb_setLengthMin 2000 mcb_setConvergenceCheck 10000 mcb_setStepSizes steps mcb_addStartPosition start_values mcb_MCMC ids
119. separable portion of the object code whose source code is excluded from the Corresponding Source as a System Library need not be included in conveying the object code work A User Product is either 1 a consumer product which means any tangible personal property which is normally used for personal family or household purposes or 2 anything designed or sold for incorporation into a dwelling In determining whether a product is a consumer prod uct doubtful cases shall be resolved in favor of coverage For a particular product received by a particular user normally used refers to a typical or common use of that class of product regardless of the status of the particular user or of the way in which the particular user actually uses or expects or is expected to use the product A product is a consumer product regardless of whether the product has substantial commercial 87 industrial or non consumer uses unless such uses represent the only sig nificant mode of use of the product Installation Information for a User Product means any methods pro cedures authorization keys or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source The information must suf fice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been
120. sions are terms that supplement the terms of this Li cense by making exceptions from one or more of its conditions Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License to the extent that they are valid under applicable law If additional permissions apply only to part of the Program that part may be used separately under those permissions but the entire Program remains governed by this License without regard to the additional permissions When you convey a copy of a covered work you may at your option remove any additional permissions from that copy or from any part of it Additional permissions may be written to require their own removal in certain cases when you modify the work You may place additional 88 APPENDIX D GNU GENERAL PUBLIC LICENSE permissions on material added by you to a covered work for which you have or can give appropriate copyright permission Notwithstanding any other provision of this License for material you add to a covered work you may if authorized by the copyright holders of that material supplement the terms of this License with terms a Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License or b Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it
121. solutions and the variance within the chains will be small compared to the variance in the complete set of samples Since the distance between the degeneracies will in general be large Z will not be close to 7 If the MonteCUBES C library is processing a chain with extremely large con vergence parameters after a large number of steps then it will warn the user of this and suggest using the built in degeneracy solver in order to resolve this Warning While different chains may fall into different degeneracies and the MonteCUBES degeneracy solver is designed to allow chains to jump between dif ferent degeneracies it is by no means implied that no degeneracies exist if they do not Well separated degeneracies will not be reached if the simulations are started close to only one of the degeneracies A 2 Usage and interpretation of the methods from GLoBES Since MonteCUBES is using GLoBES methods in order to find the likelihood ratios we should devote some time to introducing how this is done In order to discuss this properly we first need to mention Bayes theorem and its interpretation for discriminating among different models and or parameter values The statement of Bayes theorem is P BIA P A P B A 11 A 2 USAGE AND INTERPRETATION OF GLOBES METHODS 55 where P A B is the conditional probability of A given B In our case we let A be the set of model parameters 0 and B be the actual or simulated data points D The
122. t glb_params The step sizes used in the simulation 4 const int An integer array with flags notifying if a parameter should be free in the simulation or not 1 for free 0 for fixed 5 const int An integer array with flags notifying if a density should be free in the simulation or not 1 for free 0 for fixed 6 int The number of free parameters Nf in the simulation i e the number of ones in argument 4 7 int The number of free densities Nd in the simulation i e the number of ones in argument 5 8 double A parameter denoting the relative step size This will be one in the simulation but the starting samples in the simulation will be determined from taking a step with a larger step size 2 2 API DEFINITIONS 19 9 void This argument can contain user defined data The udata passed to mcb_setTransitionRatioFunction is passed in this argu ment The parameters passed to this function will essentially be the same as those passed to the step proposal function except the proposed new step which is the output of the step proposal function and the random number array which is not needed ratio The function to use to compute W gt n W n gt If NULL the ratio will be set to 1 udata User defined data to be passed to ratio Returns MCB_OK as it will always be possible to set the function and user data pointers It is up to the user to ensure that the function works properly in
123. t mcb_setExplicitRuleRates int exper int rule char file Using this method it is possible to set the rule rates of any experiment and rule to user defined values The rule rates are then used by GLoBES to compute the x function The main usage of this method is to input real or simulated results from an experiment and compute the x using these instead of the ones computed by GLoBES In order for this method to work properly it must be called after glbSetRates If this is not the case the memory storage for the rule rates will not have been allocated by GLoBES However what input values that are used for the glbSetRates does not matter when computing the x if the rule rates have been set using this method exper The index of the experiment for which to set the rule rates rule The rule for which to set the rates file A file containing the rates to set The file should contain rates sepa rated by whitespace characters or linebreaks the method uses fscanf with the pattern f to scan the file for each bin The file must contain as many rates as the exper has bins Returns MCB_OK if the file was readable MCB_IO_ERR if it was not int mcb_setSimulatedRuleRates int exper const glb_params in 20 CHAPTER 2 THE MONTECUBES C LIBRARY Using this method it is possible to set the rule rates of any experiment to Poisson distributed random numbers with mean values given by the prediction of oscillation parameters in The
124. t the legal rights of the compilation s users beyond what the individual works permit When the Document is included in an aggregate this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document If the Cover Text requirement of section 3 is applicable to these copies of the Document then if the Document is less than one half of the entire aggregate the Document s Cover Texts may be placed on covers that bracket the Document within the aggregate or the electronic equivalent of covers if the Document is in electronic form Otherwise they must appear on printed covers that bracket the whole aggregate 8 TRANSLATION Translation is considered a kind of modification so you may distribute trans lations of the Document under the terms of section 4 Replacing Invariant Sec tions with translations requires special permission from their copyright holders but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections You may include a translation of this License and all the license notices in the Document and any Warranty Disclaimers provided that you also include the original English version of this License and the original versions of those notices and disclaimers In case of a disagreement between the translation and the original version of this License or a notice or disclaimer the original version will prevail
125. t to less than 10712 then the method does not add a prior Note If you are getting nan as a prior value then you have most probably forgotten to set the density parameters for one or more of in the central values or the input errors in The parameter vector for which to compute the prior udata Not used Provided for compatibility with prior setter functions Returns The prior value at in int mcb_setPriorFunction double prior glb_params void void udata This function allows the user to set a customized prior function much like the feature that was introduced into GLoBES 3 0 It is introduced since GLoBES does not allow direct access to the prior function and all GLoBES methods actually using it are minimizers The value of the prior function will be added to the x computed with systematics only If not set before running the MCMC then Gaussian priors will be used for the free parameters 14 prior udata CHAPTER 2 THE MONTECUBES C LIBRARY The function to use as the prior Its first argument should be the point in parameter space for which to compute the prior The second argument is some user data that should be passed along to the prior function This is the data that will be passed on to the prior function This construction avoids the usage of global variables Returns MCB_OK as it will always be possible to set the function and user data pointers It is up to the user that the prior func
126. ted with respect to each other then it is possible to construct a transition function which takes this into account This way of solving degeneracies is also integrated into the MonteCUBES C li brary This is implemented in such a way that the test steps in the Markov A 3 THE MONTECUBES DEGENERACY SOLVER 59 Chains in addition to the random Gaussian step takes a step in the degen eracy direction with a predefined probability p If Wo a y is the original transition function the new transition function is given by W x gt y 1 p Wo a gt y 4 5 Mole gt y d Wo x gt y d A 20 where d is the difference vector in parameter space between the degenerate so lutions The factor of 1 2 in the second term comes from taking the degeneracy step in two different directions with equal probability It is easy to check that W x gt y is symmetric if Wo x y is This way of solving degeneracies can be likened with digging a tunnel between the degenerate solutions The specific choice of transition function makes it possible for the Markov Chains to pass from one degenerate solution to the other without having to pass the ridges of small probability densities A 3 3 Which method do I use A good question when dealing with degeneracies is what method should be used to resolve them Clearly both solutions have both up and downsides While the chain heating method will mean sacrificing computing time for exploring very low
127. the make figure button If the figure field is empty then the results will be plotted in a new figure Other parameter fields may be specific to each graph type and will be explained along with the graph types One or more variable rows Depending on the dimensionality of the se lected graph type a number of variable rows will appear i e a plot requiring one variable displays one variable row and so on Each variable row contains the following elements which are only visible in the cases where they affect the resulting plot Variable The drop down menu to the left can be used to pick what variable to use for this dimension of the plot It contains all of the variable names from the simulation summary file as well as the vari able number used to represent the parameter in the transformation field see below Min The minimum variable value to use when a plot is produced If left blank the default value is the minimum value of the variable in the simulation 3 2 MAKING PLOTS 35 Maz The maximum variable value to use when a plot is produced If left blank the default value is the maximum value of the variable in the simulation Bins The number of bins in which to divide this variable if the graph type is such that binning is needed If left blank this defaults to 30 Transformation This is an arbitrary transformation of variables that may be applied to the simulated values A transformation should be wri
128. the names of the standard parameters is set to a T X code describing that parameter and that possible extra parameters are named Extra parameter lt k gt where lt k gt is an integer N The internal integer refering to the parameter whose name should be set For example this would be GLB_THETA_13 if the user wants to set the variable name of 013 newName A string containing the new name for the parameter Returns MCB_OK if the new variable name is set properly MCB_SET_ERR if the new variable name is too long to fit into the buffers assigned for keeping track of the variable names MCB_ALLOC_ERR if memory could not be allocated to store the variable name int mcb_setTemperature double newT 2 2 API DEFINITIONS 11 This function sets the temperature to be used in the MCMC simulations The chains will have to be cooled in order to provide a sample of the true distribution if newT is different from 1 0 The preset value of the temperature is 1 0 newT The new temperature to be used in subsequent simulations Returns MCB_OK if the temperature is set MCB_SET_ERR if newT is not positive In addition unless feedback is turned off this function will give a warning if the temperature is set to less than one int mcb_setStepSizes const glb_params step This function sets the typical step size when performing the Markov Chain Monte Carlo The Monte Carlo will generate Gaussian steps with standard deviations given by
129. the output from the simulation of which it should produce high level information such as contour plots As just hinted above this is done by pressing the Open mcb button The user will then be provided with a file dialog in order to select the summary file of the simulation The GUI will then start by reading the summary file in order to get the basic information about the simulation as well as to deduce what chain files to read It is assumed that the chain files see Sec 2 3 are located in the same directory as the summary file If the Burn length field is left blank then the GUI will read the simulation files assuming that the burn length is the same as the one provided in the sum mary file However if the burn length field evaluates to a positive integer this will override the burn length in the summary file Regardless of which the chain 3 2 MAKING PLOTS 33 owere wi 4 Hea lennow MonteLUBt S examples idsres coc meo le remal nero Mei Soa fes idsres mcb ae eee 7 008 a 1 003 Figure 3 2 The appearance of the MonteCUBES Matlab GUI after pressing the plot chains button files will be read into the GUI with the given burn length and information on the convergence of the chains will be written to the feedback area In addition the information from the summary file is also stored by the GUI and the simulation summary provides basic information on the currently loaded simulation Once a simulation has
130. the requirements of this License Each contributor grants you a non exclusive worldwide royalty free patent license under the contributor s essential patent claims to make use sell offer for sale import and otherwise run modify and propagate the con tents of its contributor version In the following three paragraphs a patent license is any express agree ment or commitment however denominated not to enforce a patent such as an express permission to practice a patent or covenant not to sue for patent infringement To grant such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party If you convey a covered work knowingly relying on a patent license and the Corresponding Source of the work is not available for anyone to copy free of charge and under the terms of this License through a publicly available network server or other readily accessible means then you must either 1 cause the Corresponding Source to be so available or 2 arrange to deprive yourself of the benefit of the patent license for this particular work or 3 arrange in a manner consistent with the requirements of this License to extend the patent license to downstream recipients Know ingly relying means you have actual knowledge that but for the patent license your conveying the covered work in a country or your recipient s use of the covered work in a country would infrin
131. tion the difference now seems a litte less pronounced However this is simply due to projection reasons since the input solution both has a higher count rate and is broader it will become more pronounced when summing the samples in one direction 46 CHAPTER 3 THE MONTECUBES MATLAB GUI 1 64 1 44 amp N tr si 0 0 005 0 01 0 015 0 02 n 0 025 0 03 0 035 0 04 0 045 13 Figure 3 11 The 68 95 and 99 contours for the degeneracy in 6 3 and 3 4 Examples of bad convergence As mentioned earlier the convergence of the chains can be checked visually by studying some of the plots in particular the chain progression and scatter plots For reference we here present the results of the ISS neutrino factory simulation using a step size which is 50 times smaller than in our previous example In this case the convergence parameters are Rg 13 2623 and Ramz 1 0937 The parameters used to produce the figures are the same as earlier in this chapter The simulation contains four chains with 14000 samples each In Fig 3 12 we can clearly see the random walk structure of the chains as well as the jumps when changing chains while Fig 3 13 shows the sporadic coverage of the scatter plot as well as the localization to only a few regions due to the small number of samples Finally in Fig 3 14 we show the contours produced from this simulation From this plot alone it is quite apparent that the conf
132. tion to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 C 2 API DEFINITIONS 75 Returns void void nsi_freeEps glb_projection p int n int m This method sets the projection flag for the phase of the NSI parameter in the nth row and mth column to GLB_FREE This is equivalent to glbSetProjectionFlag p GLB_FREE NSI_PHI_nm p The GLoBES projection to change n The row of the flag to set Should be 1 2 or 3 m The column of the flag to set Should be 1 2 or 3 Returns void void nsi_toPhysical glb_params toTransf void user_data This is a physical transformation for usage with MonteCUBES It simply puts the phases between z and m and makes sure that the absolute values are positive In addition it calls the standard MonteCUBES function to make sure that the standard parameters are in the physical region toTransf The GLoBES parameter vector to transform The entries of this vec tor will be changed by the function user_data Ignored Included for compliance with the MonteCUBES standard Returns void double nSi_prior glb_params p void user_data Currently equivalent to the standard GLoBES prior p The parameter vector for which to compute the prior user_data Ignored Included for compliance with the GLoBES standard Returns The value of the prior 76 void void void int int
133. tion works properly int mcb_setRandGenerator double randgen void void udata This function sets the random generator used by MonteCUBES By default MonteCUBES uses a Mersenne twister algorithm This function provides the possibility of changing this setting randgen udata The random number generator which should be used by MonteCUBES This should be a random number generator which returns a random number which is evenly distributed between zero and one This is a pointer to data that the user wants to pass on to the random number generator It will be passed as the argument of randgen when MonteCUBES is generating a random number Returns MCB_OK as it will always be possible to set the function and user data pointers It is up to the user that the random umber generator works properly int mcb_setRandSeed int s This function allows the user to define the seed for the standard random number generator If the user has not called this function when a simula tion is run the current time will be used as the seed s The seed to use Returns MCB_OK as it will always be possible to set the seed to a given integer int mcb_addDegeneracyStep glb_params step If degeneracies are expected this function can be used in order to set the excpected distance between two degeneracies With a given probability 2 2 API DEFINITIONS 15 the Monte Carlo will then add or subtract this step when computing t
134. to define the input errors The following three statements defines the input errors to the values specified in the ISS neutrino factory simulation and tells GLoBES to use these values to compute the prior glbDefineParams input_errors 0 04 theta12 0 0 1 theta23 0 0 04 sdm 0 1 1dm glbSetDensityParams input_errors 0 02 GLB_ALL glbSetInputErrors input_errors As mentioned earlier we will also need to tell the Monte Carlo which param eters that should be allowed to vary in the simulation To this end MonteCUBES will use the projection which is currently set in GLoBES Thus it can be set as glbDefineProjection pro GLB_FREE GLB_FREE GLB_FREE GLB_FREE GLB_FREE GLB_FREE glbSetDensityProjectionFlag pro GLB_FREE GLB_ALL glbSetProjection pro 2 4 EXAMPLES 27 The first line sets all neutrino oscillation parameters free in the simulation while the second line does the same for the matter densities Finally the last line tells GLoBES to use this projection It is now time to start worrying about what we put into the Monte Carlo simulation An important part of this is telling it how well the chains should have converged befor the Monte Carlo is terminated This is done trhough the following code int m for m 0 m lt glbGetNum0fOscParams m glbSetOscParams convcrit r m mcb_setConvergenceCriteria convcrit To start with m is simply declared since we will need it as a loop variable The for loop si
135. tten in such a way that it is a Matlab function of variables P1 P2 each referring to one of the simulation parameters Further more it should be written in such a way that its result is a vector if the variables are vectors i e if the transformation should be such that P1 and P2 are multiplied the transformation should be P1 P2 rather than P1 P2 This allows the user to use any combination of parameters as the variables of the plots The variable resulting from this transformation is the variable that will actually be used in the plots If this field is left blank then the variable chosen in the variable drop down menu will be used See below for examples Note Unless the full transformation used has a jacobian of one this will effectively change the prior used in the simulation In the graph types where this matters it can be counteracted by the use of a weight function Boundary cond This is a drop menu which is used in order to set the boundary conditions of the filtering functions There are four different options 1 Zero padded With this boundary condition set the GUI assumes that any bins outside of the original grid of bins contain zero samples 2 Constant continuation This boundary condition means that the GUI will assume that the last bins in the original grid are re peated infinitely 7 e for the whole reach of the filter 3 Cyclic With a cyclic boundary the GUI assumes that the con tinuation of
136. ur rights have been terminated and not permanently rein stated you do not qualify to receive new licenses for the same material under section 10 Acceptance Not Required for Having Copies You are not required to accept this License in order to receive or run a copy of the Program Ancillary propagation of a covered work occurring solely as a consequence of using peer to peer transmission to receive a copy likewise does not require acceptance However nothing other than this License grants you permission to propagate or modify any covered work These actions infringe copyright if you do not accept this License Therefore by modifying or propagating a covered work you indicate your acceptance of this License to do so Automatic Licensing of Downstream Recipients Each time you convey a covered work the recipient automatically receives a license from the original licensors to run modify and propagate that work subject to this License You are not responsible for enforcing com pliance by third parties with this License An entity transaction is a transaction transferring control of an organi zation or substantially all assets of one or subdividing an organization or merging organizations If propagation of a covered work results from an entity transaction each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party s prede cessor in interest had or could give under the
137. y address your feedback we would appreciate if you would include information which versions of MonteCUBES GLoBES and Matlab you are using CHAPTER 1 INTRODUCTION Chapter 2 The MonteCUBES C library 2 1 Installation 2 1 1 Prerequisites for installation of MonteCUBES Installation of MonteCUBES requires that you have a working installation of GLoBES GLoBES can be downloaded from http www mpi hd mpg de lin globes MonteCUBES was developed with GLoBES 3 0 12 GLoBES versions earlier than 3 0 are not supported by MonteCUBES The MonteCUBES installer will install the library libmontecubes into the same directory as your GLoBES installation In order to compile programs using this library you will therefore only have to add lmontecubes to the linker options 2 1 2 Installation Instructions MonteCUBES follows the standard GNU installation procedure with the addi tional requirement that you must install it in the same directory as GLoBES To compile MonteCUBES you will need an ANSI C compiler After unpacking the distribution the Makefiles can be prepared using the configure command configure NOTE If you did not install GLoBES in the default directory then you will have to add the option prefix GLB_DIR where GLB_DIR is the absolute path to your GLoBES installation You can then build the library by typing make A shared version of the library will be compiled by default The MonteCUBES library can then be instal
138. y level to use according to the following table 10 CHAPTER 2 THE MONTECUBES C LIBRARY 0 or MCB_NO_FEEDBACK At this level MonteCUBES gives no feedback to the user 1 or MCB_ERROR_MESSAGES This level prints error messages to the screen whenever MonteCUBES discoveres something which it is not able to perform such as setting the maximum number of samples smaller than the minimum number of samples 2 or MCB_PROGRESS_ BARS With this verbosity level MonteCUBES will provide the user with progress bars displaying the progress of various tasks It will also display the results of convergence checks 3 or MCB_SIMULATION_INFO This verbosity level will also make MonteCUBES print various information about the current simu lation This includes information on what it is doing and what is going on in the simulation 4 or MCB_WARNINGS The highest level of verbosity This will display warning messages when the simulations are behaving in a strange way or the user sets strange but valid parameter values In addition to the feedback described in these verbosity levels MonteCUBES will also display all messages from lower verbosity levels Returns int mcb_setVarName int N const char newName This function sets the variable name for variable number N The variable name is used in feedback to the user as well as in the output summary file The variable names will appear and be used in the MonteCUBES Matlab GUI The default setting is that

Download Pdf Manuals

image

Related Search

Related Contents

超小型湿度変換器 取扱説明書  Kingston Technology HyperX 512MB 533MHz  Lenovo IdeaCentre B750  石綿障害予防規則が改正されました。  Samsung VC-6016V User Manual  Qwest 2.4GHz User's Manual  PPC-2015 User Manual  to view the operation manual ()  Brochure ColorEdge  OPERATOR`S MANUAL 650556  

Copyright © All rights reserved.
Failed to retrieve file