diff --git a/doc/html/user/MUSR/Any2Many.html b/doc/html/user/MUSR/Any2Many.html new file mode 100644 index 00000000..e69de29b diff --git a/doc/html/user/MUSR/BmwLibs.html b/doc/html/user/MUSR/BmwLibs.html index 04e538ce..492bc7f1 100644 --- a/doc/html/user/MUSR/BmwLibs.html +++ b/doc/html/user/MUSR/BmwLibs.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -144,7 +144,7 @@ pre {
- Edit | Attach | Print version | PDF | History: r5 < r4 < r3 < r2 | Backlinks | View wiki text | Refresh | More topic actions + Edit | Attach | Print version | PDF | History: r5 < r4 < r3 < r2 | Backlinks | View wiki text | Refresh | More topic actions
Topic revision: r5 - 10 Jul 2011, wojek
@@ -195,7 +195,7 @@ pre { - +

diff --git a/doc/html/user/MUSR/CiteMusrFit.html b/doc/html/user/MUSR/CiteMusrFit.html new file mode 100644 index 00000000..fe86b5fd --- /dev/null +++ b/doc/html/user/MUSR/CiteMusrFit.html @@ -0,0 +1,202 @@ + + + + + + + MUSR :: CiteMusrFit + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

+

+ + + +

+

+

+

+

How to Cite musrfit?

+

+Since quite some effort is going into the development and maintenance of the musrfit package, you should at least acknowledge it in your publication if you have used it to analyze your data. Even better of course is to cite it properly by the reference given beneath +

+
+ + + + + + + +
+ + +
Topic revision: r2 - 19 Jun 2012, AndreasSuter
+
+
+
+
 
+
+
+
+ +
+

    +
  • +
  • +
+

+

+

+
+
+
+
Ideas, requests, problems regarding PSI Wiki? Send feedback
+
+
+
+
+ + + +

+

+

+

\ No newline at end of file diff --git a/doc/html/user/MUSR/LibFitPofB.html b/doc/html/user/MUSR/LibFitPofB.html index 33c54c6c..734a904d 100644 --- a/doc/html/user/MUSR/LibFitPofB.html +++ b/doc/html/user/MUSR/LibFitPofB.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -420,7 +420,7 @@ An example XML file looks as follows:
- Edit | Attach | Print version | PDF | History: r16 < r15 < r14 < r13 | Backlinks | View wiki text | Refresh | More topic actions + Edit | Attach | Print version | PDF | History: r16 < r15 < r14 < r13 | Backlinks | View wiki text | Refresh | More topic actions
Topic revision: r16 - 10 Jul 2011, wojek
@@ -471,7 +471,7 @@ An example XML file looks as follows: - +

diff --git a/doc/html/user/MUSR/LibZFRelaxation.html b/doc/html/user/MUSR/LibZFRelaxation.html index 36a2ffdb..e0e3358c 100644 --- a/doc/html/user/MUSR/LibZFRelaxation.html +++ b/doc/html/user/MUSR/LibZFRelaxation.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -225,7 +225,7 @@ The parameters are:
    Topic revision: r2 - 10 Jul 2011, wojek
    @@ -276,7 +276,7 @@ The parameters are:
      - +

      diff --git a/doc/html/user/MUSR/Msr2Data.html b/doc/html/user/MUSR/Msr2Data.html index 7edef7da..d4ace4e6 100644 --- a/doc/html/user/MUSR/Msr2Data.html +++ b/doc/html/user/MUSR/Msr2Data.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -349,7 +349,7 @@ For reporting bugs or requesting new features and improvements please use the - @@ -422,7 +422,7 @@ For reporting bugs or requesting new features and improvements please use the - +

      diff --git a/doc/html/user/MUSR/MusrFit.html b/doc/html/user/MUSR/MusrFit.html index 82eddf63..42e934d2 100644 --- a/doc/html/user/MUSR/MusrFit.html +++ b/doc/html/user/MUSR/MusrFit.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -140,11 +140,12 @@ pre {
    1. 4.3.3 User Functions
    2. 4.4 The FUNCTIONS Block -
    3. 4.5 The RUN Block -
    4. 4.6 The COMMANDS Block -
    5. 4.7 The FOURIER Block -
    6. 4.8 The PLOT Block -
    7. 4.9 The STATISTIC Block +
    8. 4.5 The GLOBAL Block +
    9. 4.6 The RUN Block +
    10. 4.7 The COMMANDS Block +
    11. 4.8 The FOURIER Block +
    12. 4.9 The PLOT Block +
    13. 4.10 The STATISTIC Block
    14. 5 The Fit Types
      • 5.1 Single Histogram Fit @@ -753,8 +754,91 @@ It follows an example to illustrate the usage of functions in the THEORY block.

        In the case that functions have to be fitted which cannot be defined in the FUNCTIONS block, the functions can be implemented externally and made usable through the userFunc mechanism.

        + +

        4.5 The GLOBAL Block

        +The GLOBAL block is used to collect data which otherwise need to be specified in every single run entry of the RUN block. Therefore, this block is only present to potential shorten the msr-file and to ease the handling for the user. +The logic will by like that:
          +
        1. check it the property is found in the RUN block. +
        2. if not present in the RUN block, check whether it is present in the GLOBAL block +
        3. if still not found, try the data file +
        4. if still not found, either try to estimate it, or fire an error message +
        +This means that an entry in the RUN block will overwrite a setting from the GLOBAL block. +

        +The currently supported GLOBAL block entries are:
          +
        • fittype +
        • data +
        • t0 +
        • addt0 +
        • fit +
        • packing +
        +

        +For a detailed discussion of these entries see Sec RUN block. +

        +An example snippet with, and without GLOBAL section: +With GLOBAL block: +
        +...
        +###############################################################
        +GLOBAL
        +fittype         0         (single histogram fit)
        +fit             0.0005  10     
        +packing         5
        +
        +###############################################################
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +map             5    6    7    0    0    0    0    0    0    0    0
        +norm            8
        +backgr.fit      9
        +forward         2 
        +data            20120   409500  
        +t0              20108.0 
        +#--------------------------------------------------------------
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +map            10   11   12    0    0    0    0    0    0    0    0
        +norm            13
        +backgr.fit      14
        +forward         3 
        +data            20111   409500  
        +t0              20088.0 
        +#--------------------------------------------------------------
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +...
        +
        +Without GLOBAL block: +
        +...
        +###############################################################
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +fittype         0         (single histogram fit)
        +map             5    6    7    0    0    0    0    0    0    0    0
        +norm            8
        +backgr.fit      9
        +forward         2 
        +data            20120   409500  
        +t0              20108.0 
        +fit             0.0005  10     
        +packing         5
        +#--------------------------------------------------------------
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +fittype         0         (single histogram fit)
        +map            10   11   12    0    0    0    0    0    0    0    0
        +norm            13
        +backgr.fit      14
        +forward         3 
        +data            20111   409500  
        +t0              20088.0 
        +fit             0.0005  10     
        +packing         5
        +#--------------------------------------------------------------
        +RUN data/tdc_hifi_2014_00153 PIE3 PSI PSI-MDU   (name beamline institute data-file-format)
        +fittype         0         (single histogram fit)
        +... and many more detectors here ...
        +
        +

        -

        4.5 The RUN Block

        +

        4.6 The RUN Block

        The RUN block is used to collect the data needed for a particular run to be fitted. This includes the run name, fit type, data format, etc. The RUN block is slightly differently organized than the other blocks. The information is collected via labels followed by the information. Each run to be fitted has its own RUN block. A RUN block starts with a run-file line which has the structure
            RUN <run_file_name> <beamline> <facility> <file_format>
        @@ -851,9 +935,8 @@ etc.
         

        lifetime (fit type 0)
        Fit parameter representing the lifetime of the muon. If it is not specified the value τμ=2.197019 μs is used in the calculations.
        -

        -
        -
        lifetimecorrection (fit type 0)
        Does not accept any arguments. If present, the output in musrview is corrected for the exponential decay of the muon. +

        +
        lifetimecorrection (fit type 0) eek! obsolete eek!
        Does not accept any arguments. If present, the output in musrview is corrected for the exponential decay of the muon. This item is obsolete in the RUN block and will be transferred to the PLOT block, which allows switching between histogram view and asymmetry view much quicker.

        map
        On this line the mapping of run-dependent parameters is done. Parameter numbers given here may be accessed through map1, map2, etc. in the THEORY and FUNCTIONS blocks (see also here). The first ten maps are always present and have the value 0 if not used; however, the total number of maps is not restricted! @@ -890,11 +973,12 @@ etc.

        -
        data (fit type 0, 4)
        The numbers of the first and the last channel of an interval from which the data is taken are specified here. In case histograms are being grouped, the specified channels are interpreted with respect to the first histogram. +
        data (fit type 0, 4)
        The numbers of the first and the last channel of an interval from which the data is taken are specified here. In case histograms are being grouped, the specified channels are interpreted with respect to the first histogram. Typically these channels are referred to as first good bin / last good bin (fgb/lgb).

        -
        data (fit types 2)
        The numbers of the first and the last channel of an interval from which the data is taken are specified here. For all the histograms this is done together in the following order: kf,first kf,last kb,first kb,last [kr,first kr,last kl,first kl,last]. In case histograms are being grouped, the specified channels are interpreted with respect to the first histograms. +
        data (fit types 2)
        The numbers of the first and the last channel of an interval from which the data is taken are specified here. Typically these channels are referred to as first good bin / last good bin (fgb/lgb). For all the histograms this is done together in the following order: kf,first kf,last kb,first kb,last [kr,first kr,last kl,first kl,last]. In case histograms are being grouped, the specified channels are interpreted with respect to the first histograms.
        +

        t0 (fit type 0, 4)
        The number of the time-zero channel of the histogram. Example:
           t0 3419        # t0 channel = 3419
        @@ -927,7 +1011,7 @@ fit 0.2 8.5
         

        -

        4.6 The COMMANDS Block

        +

        4.7 The COMMANDS Block

        The COMMANDS block is used to specify the commands which are passed from musrfit to MINUIT2. The supported commands after the COMMANDS keyword are STRATEGY, MIGRAD, SIMPLEX, MINIMIZE, MINOS, HESSE, SAVE, some additional commands described below, and for compatibility reasons SET BATCH and END RETURN. The last two commands may appear in the COMMANDS block but are simply ignored. A detailed description of all of these commands can be found in the MINUIT2 users guide pdf.

        @@ -1004,7 +1088,7 @@ For debug purposes it is possible to force MINUIT2 to print out additional infor Here the MINOS command will print out lot of additional information to the standard output. Notice there are 2 SAVE commands here. This will write the result of MIGRAD to the MINUIT2.OUTPUT file and at the end append the MINOS results to this file.

        -

        4.7 The FOURIER Block

        +

        4.8 The FOURIER Block

        The Fourier transform is done and the results are plotted within musrview —as input data the actual data shown in musrview is used. In the FOURIER block of the msr file all necessary parameters for calculating and presenting the Fourier transform of the data specified in the PLOT block is given. If the FOURIER block is not present in the msr file, either the parameters set in the XML startup file or the system defaults are taken when the Fourier transform is performed. The block starts with the FOURIER keyword and may contain the following entries on the successive lines:
        units
        Here is specified in which domain the Fourier-transformed data is presented. One may choose between the fields (Gauss) or (Tesla), the frequency (MHz), and the angular-frequency domain (Mc/s).
        fourier_power
        It is possible (but not necessary) to set the number of data points used for the Fourier transform here. As argument the exponent n<21 of a power of 2 is accepted. The number of data points is then 2n. Attention: If the number of points given here is bigger than the actual number of available data points, the input data vector is filled with zeros until the number of requested points is reached (zero padding)! @@ -1041,17 +1125,18 @@ Altogether, a possible FOURIER block might look like that:

        -

        4.8 The PLOT Block

        +

        4.9 The PLOT Block

        The PLOT block is intended to collect all the information needed for the graphical presentation of the data and fits using musrview. The PLOT keyword at the beginning of the block is followed by a number which indicates the plot type. The plot types match the fit types. Additionally, it is possible to provide information using the following keywords:
        -
        runs
        The numbers of the runs to be plotted have to be put here. The runs are numbered according to their appearance in the RUN block. +
        lifetimecorrection
        Does not accept any arguments. If present, the output in musrview is corrected for the exponential decay of the muon. Only relevant for (type 0). +
        runs
        The numbers of the runs to be plotted have to be put here. The runs are numbered according to their appearance in the RUN block.
        range
        Here it is possible to define the plotting range explicitly. Depending on the plot type the following settings are allowed where the times are given in microseconds and the N in counts (type 0, 4) or in counts/nsec (type 0):
        -
        0 without lifetimecorrection, 4
        tmin tmax [ Nmin Nmax ] -
        0 with lifetimecorrection, 2
        tmin tmax [ Amin Amax ] +
        0 without lifetimecorrection, 4
        tmin tmax [ Nmin Nmax ] +
        0 with lifetimecorrection, 2
        tmin tmax [ Amin Amax ]
        8
        xmin xmax [ ymin ymax ]
        sub_ranges
        Here it is possible to define the plotting range for each run individually. For the different plot types the command has the structure
        -
        0 without lifetimecorrection, 4
        tmin1 tmax1 tmin2 tmax2 ... tminn tmaxn [ Nmin Nmax ] (n = the number of runs to be plotted) -
        0 with lifetimecorrection, 2
        tmin1 tmax1 tmin2 tmax2 ... tminn tmaxn [ Amin Amax ] (n = the number of runs to be plotted) +
        0 without lifetimecorrection, 4
        tmin1 tmax1 tmin2 tmax2 ... tminn tmaxn [ Nmin Nmax ] (n = the number of runs to be plotted) +
        0 with lifetimecorrection, 2
        tmin1 tmax1 tmin2 tmax2 ... tminn tmaxn [ Amin Amax ] (n = the number of runs to be plotted)
        8
        not yet implemented.
        use_fit_ranges [ ymin ymax]
        The fit ranges of the individual runs are used to present the data. Optionally, an ordinate range can be provided. @@ -1079,7 +1164,7 @@ The PLOT block is intended to collect all the information needed for the graphic

        -

        4.9 The STATISTIC Block

        +

        4.10 The STATISTIC Block

        The STATISTIC block is the last block of a msr file. It contains some information on the fit: the date and time as well as the absolute and normalized values of χ2 and the number of degrees of freedom in the fit.
        If enabled in the XML file for χ2-single-histogram fits also Pearson's χ2 will be written to the STATISTIC block.
        These information only have a meaning if the fitting procedure has been executed at least once and the fit has converged! @@ -1441,7 +1526,7 @@ A technical description of the musrfit framework can be found

        8 Bugtracking

        -For reporting bugs or requesting new features and improvements please use the PSI Tracker or send an e-mail to A. Suter. +For reporting bugs or requesting new features and improvements please use the bitbucket-repo (preferred), PSI Tracker or send an e-mail to A. Suter.

        -- AS & BMW
        @@ -1455,7 +1540,7 @@ For reporting bugs or requesting new features and improvements please use the -
        Topic revision: r117 - 18 Dec 2014, AndreasSuter
        @@ -1528,7 +1613,7 @@ For reporting bugs or requesting new features and improvements please use the
        - +

        diff --git a/doc/html/user/MUSR/MusrFitAcknowledgements.html b/doc/html/user/MUSR/MusrFitAcknowledgements.html index dcca1f7a..927d0854 100644 --- a/doc/html/user/MUSR/MusrFitAcknowledgements.html +++ b/doc/html/user/MUSR/MusrFitAcknowledgements.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -142,7 +142,7 @@ pre {
        Topic revision: r4 - 10 Jul 2011, wojek
        @@ -193,7 +193,7 @@ pre { - +

        diff --git a/doc/html/user/MUSR/MusrFitSetup.html b/doc/html/user/MUSR/MusrFitSetup.html index df0c5e70..bdc0e1e6 100644 --- a/doc/html/user/MUSR/MusrFitSetup.html +++ b/doc/html/user/MUSR/MusrFitSetup.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -846,7 +846,7 @@ musrview test-histo-ROOT-NPP.msr
        Topic revision: r60 - 25 Oct 2014, AndreasSuter
        @@ -897,7 +897,7 @@ musrview test-histo-ROOT-NPP.msr - +

        diff --git a/doc/html/user/MUSR/MusrGui.html b/doc/html/user/MUSR/MusrGui.html index c1e3a2cc..222bf1a4 100644 --- a/doc/html/user/MUSR/MusrGui.html +++ b/doc/html/user/MUSR/MusrGui.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -324,7 +324,7 @@ For reporting bugs or requesting new features and improvements please use the - @@ -397,7 +397,7 @@ For reporting bugs or requesting new features and improvements please use the - +

        diff --git a/doc/html/user/MUSR/MusrRoot.html b/doc/html/user/MUSR/MusrRoot.html new file mode 100644 index 00000000..c81b5d54 --- /dev/null +++ b/doc/html/user/MUSR/MusrRoot.html @@ -0,0 +1,1120 @@ + + + + + + + MUSR :: MusrRoot + + + + + + + + + + + + + + + + + + + + + + +
        +
        +
        +
        +
        +
        +
        +

        +

        + + + +

        +

        +

        +

        +
        +

        MusrRoot

        +

        + +

        +

        1 Introduction

        +Until 2011 different μSR file formats were used within PSI. The bulk-μSR instruments were writing their data in the PSI-BIN file format, which is a fixed binary format with rather stringent limitations. The LE-μSR (LEM) instrument was using a ROOT (CERN) based file format which was tightly tailored to the special needs of the LEM instrument. This situation was unsatisfactorily and hence it was decided to move forward to a open file format called MusrRoot to be described in the following. +

        +

        2 Some Basics Concerning ROOT Files

        +The μSR data acquisition systems at PSI are utilizing MIDAS (see Midas Home Page ). The MIDAS analyzer, which is responsible to build histograms, especially the μSR decay histograms, makes it very easy to build ROOT (see ROOT/CERN home page ) histogram objects (these are TH1F objects for μSR decay histograms). ROOT is a C++ object-oriented data mining frame work. These histograms can be collected and saved in ROOT files (TFile). In order to ease the understanding of the upcoming definitions, a few ROOT related things shall be summaries here. For details concerning the ROOT frame work documentation please check ROOT/CERN Users Guide and ROOT/CERN Reference Guide . +

        +ROOT files (TFile) are binary files which can hold any kind of objects. A TFile is organized similarly to a directory structure of an operating system. Within the ROOT framework, there is a TFile browser available which allows to inspect these files. This browser (TBrowser) will show all object saved in the TFile directly, if they derive from TObject. +

        +The MusrRoot file format to be described below is only using a small subset of possible ROOT objects, namely: +

          +
        • TFolder: this are the top level objects in the MusrRoot file. +
        • TH1F: Hold the μ-decay-histograms. +
        • TObjArray: Holding collection of header information. +
        • TObjString: Holding the content of any header information. +
        +

        +Since all these objects are deriving form TObject, they will be directly accessible via the TBrowser -object. For instance, the μ-decay-histograms can be directly plotted, are even fitted, out of the box. +

        +

        3 MusrRoot an Extensible Open File Format for μSR

        +

        +As mentioned before, ROOT files are open-file-format files meaning that they can contain more entries (and most probably will) than the ones specified in the following. The specified ones will be the mandatory ones for all instruments. Before defining all mandatory entries, the MusrRoot file structure shall be sketched. +

        +The MusrRoot file structure looks like: +
        +histos ---|
        +          |- DecayAnaModule ---|
        +          |                    |- hDecay001
        +          |                    |- hDecay002
        +          |                    ...
        +          |
        +          |- SCAnaModule ---|
        +          ...               |- hSampleTemperature
        +                            |- hSampleMagneticField
        +                            ...
        +RunHeader ---|
        +             |- RunInfo
        +             |- DetectorInfo ---|
        +             |                  |- Detector001
        +             |                  |- Detector002
        +             |                  ...
        +             |
        +             |- SampleEnvironmentInfo
        +             |- MagneticFieldEnvironmentInfo
        +             |- BeamlineInfo
        +             ...
        +
        +where hDecay001, etc. are ROOT histograms (to be more specific: TH1F), containing the μSR decay histograms. There can be as many as needed, especially there is no limitation about their length. The histogram object names will be hDecayXXX, where XXX (leading zero int, i.e. %03d in C/C++ notation, starting with `1') is the histogram number. The title and name of the histogram (see description of the TH1F ROOT class) contains the label of the histogram, like `top', `forward', etc. How many of these histograms are present is accessible through the RunInfo folder in which the necessary header information are found (details see next sections). The folder SCAnaModule contains histograms of some of the slow-control parameters, as for instance the sample temperature versus time, the applied field versus time, etc. Again the label of the histogram will give more specific information about its content. +

        +

        3.1 Run Information Contained in RunHeader

        +The RunHeader contains all needed meta-information to describe a μSR-run. The list of the minimal number of required "folders" of the RunHeader is given in the following structure: +

        +
        +RunHeader (TFolder) ---|
        +                       |- RunInfo (TObjArray)
        +                       |- DetectorInfo (TObjArray)
        +                       |- SampleEnvironmentInfo (TObjArray)
        +                       |- MagneticFieldEnvironmentInfo (TObjArray)
        +                       |- BeamlineInfo (TObjArray)
        +
        +

        +In brackets the object type is given. RunInfo contains most information relevant for the user and will be itemized Sec. RunInfo Overview and RunInfo Required. DetectorInfo contains detector specific information, like detector name, time zero bin, etc. (details in Sec. DetectorInfo Required). SampleEnvironmentInfo (details in Sec. SampleEnvironmentInfo Required), and MagneticFieldEnvironmentInfo (details in Sec. MagneticFieldEnvironmentInfo Required) store additional, more detailed information concerning the sample environment. BeamlineInfo stores beamline relevant information (details in Sec. BeamlineInfo Required). +

        +Before elaborating more on the required items within this structure, a few words on the ROOT types used here: RunHeader is a TFolder object. All the "sub-directory" entries are of type TObjArray and collect items of type TObjString or other TObjArray (i.e. sub-directories and sub-sub-directories, etc.). +

        + +

        3.1.1 RunInfo Overview

        +

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Version TString SVN version of TMusrRunHeader
        Generic Validator URL TString URL of the generic MusrRoot validation xsd-file.
        Specific Validator URL TString URL of the instrument specific validation xsd-file.
        Generator TString Program which wrote the MusrRoot file,
            e.g. nemu_analyzer
        File Name TString File name of the MusrRoot file,
            e.g. deltat_tdc_gps_4295.root
        Run Title TString  
        Run Number Int_t  
        Run Start Time TString ISO 8601 date time
        Run Stop Time TString ISO 8601 date time
        Run Duration TMusrRunPhysicalQuantity run duration in sec
        Laboratory TString e.g. PSI
        Instrument TString e.g. GPS
        Muon Beam Momentum TMusrRunPhysicalQuantity e.g. 28.1 MeV/c
        Muon Species TString positive, or negative muon
        Muon Source TString e.g. Target E - Low Energy Muons or
            "Target M" ...
        Setup TString  
        Comment TString  
        Sample Name TString  
        Sample Temperature TMusrRunPhysicalQuantity e.g. 3.21 +- 0.05 K; SP: 3.2; CF1
        Sample Magnetic Field TMusrRunPhysicalQuantity e.g. 350.002 +- 0.005 G; SP: 350; WXY
        No of Histos Int_t  
        Time Resolution TMusrRunPhysicalQuantity e.g. 0.1953125 ns
        RedGreen Offsets TIntVector e.g. 0; 20
        +

        +These entries should be clear except for the RedGreen Offsets and the column "Internal Type" which shortly will be discussed before specifying the content of the other required folders. +

          +
        1. RedGreen Offsets: in case experiments are performed with external stimuli, there will be a collection of related histograms. For instance for electrical field experiments, there will be histograms for field on/off, doubling the number of needed histograms. In order to distinguish them easier in the data file, the RedGreen Offsets were introduced. One selection of histograms (assuming for the moment 8 detectors) will be numbered from 1 to 8 (lets say the field off ones). The other set of histograms (field on in this example) will then start with 21 through 28 (see table above). The same will be true for the detector information (see Sec. DetectorInfo Required). The entry No of Histos will only give 8 for the given example, meaning that red/green multiplication is defined rather via RedGreen Offsets than the number of histograms. +
        2. Internal Types: in order to ease the handling of the MusrRoot run header, a class TMusrRunHeader is available which deals with it. The "Internal Type" specified, corresponds to the internal representation in within this class. In the MusrRoot file these entries are all saved as browsable ROOT strings (TObjString). The only special type is TMusrRunPhysicalQuantity which is introduced to deal with physical quantities. They always can be represented in the following way: +
        +
        +<property name> <value> +- <estimated error> <unit>; SP: <demand>; <description>
        +
        +Not all of these values are needed to be given and depending on which are given, the representation in the MusrRoot file will be different (handled by TMusrRunHeader). Examples are given in the comment column of the table above. For details see TMusrRunPhysicalQuantity - Possible Representations. +

        +A mock-up TBrowser print-out would look like the one shown in the following figure. You might notice, that at the end of each entry you find a " -@X ", where X is a number. This is an encoding of the internal type of the entry and is the price to be payed not using derived types. The next section will explain this in much more detail. +

        +=TMusrRunHeader= mock up. The red shaded entries are of type =TMusrRunPhysicalQuantity= +

        +TMusrRunHeader mock up. The red shaded entries are of type TMusrRunPhysicalQuantity +

        + +

        4 TMusrRunHeader Concept

        +The different μSR instruments need different information to be written into the data file (next to the most important ones: the histograms). The above defined properties are the minimal number of required ones. There are different possible approaches to deal with it on the implementation level. +

          +
        • A base class dealing with minimal required standard is defined. Afterwards for each instrument a class is derived which is extending the base class to the needs of the instrument. +
        • The base class is defined in a more abstract way, and some external, text-based description is given which defines the details of the instrument. +
        +

        +Even though the first approach is very clean, it would mean a lot of maintenance work. The 2nd approach is slightly more demanding for the handling class (TMusrRunHeader and helper classes), but having the advantage of easy maintainability and expandability. The idea is that all header information can be classified into 7 groups (see previous and following section(s)): +

          +
        1. Strings, represented by TString +
        2. Integers, represented by Int_t +
        3. Floating point numbers, represented by Double_t +
        4. Physical quantities, represented by TMusrRunPhysicalQuantity - Possible Representations +
        5. Collection of strings, represented by TStringVector +
        6. Collection of integers, represented by TIntVector +
        7. Collection of floating point numbers, represented by TDoubleVector +
        +

        +These properties can be collected by themselves in form of vectors. This way any needed information can be written into the ROOT file. The class TMusrRunHeader is implementing this run header concept. In following section code snippets will be discussed, showing how this is used on level of the MIDAS analyzer, musrfit reader routine, and any2many conversion routines. The section Validation will discuss how to validate MusrRoot files. +

        +

        4.1 User Interface for MusrRoot Run Header

        +There are two things needed to deal with the MusrRoot run header, namely writing it and reading it. I will start with the writing as will be done in the MIDAS analyzer. +

        +

        4.1.1 Writing a MusrRoot Run Header

        +An example program write_musrRoot_runHeader which is writing a full run header is part of the musrfit package. Here I will concentrate just on the most essential parts. First one needs an instance of TMusrRunHeader +

        +
        +TMusrRunHeader *header = new TMusrRunHeader();
        +TMusrRunPhysicalQuantity prop;
        +
        +

        +header is the instance of TMusrRunHeader. prop is an instance of TMusrRunPhysicalQuantity which will be needed further down in the description. In the next step some run header entries will be added +

        +
        +header->Set("RunInfo/File Name", "deltat_tdc_gps_2871.root");
        +header->Set("RunInfo/Run Title", "here comes the run title");
        +header->Set("RunInfo/Run Number", 2871);
        +
        +

        +Adding information is done via the multiple overloaded Set(<pathName>,<value>) method. Here <pathName> is a string representing the "path" like representation in the MusrRoot file structure, followed by the "value" to be set, e.g. "=File Name=". <value> can be any of the types listed at the beginning of Sec. TMusrRunHeader Concept. Here a few examples how to set TMusrRunPhysicalQuantity. +

        +
        +prop.Set("Sample Temperature", 3.2, 3.21, 0.05, "K", "CF1");
        +header->Set("RunInfo/Sample Temperature", prop);
        +
        +prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999");
        +header->Set("RunInfo/Time Resolution", prop);
        +
        +prop.Set("CF3", MRH_UNDEFINED, 3.27, 0.09, "K", "strange temperature");
        +header->Set("SampleEnvironmentInfo/CF3", prop);
        +
        +

        +Here TMusrRunPhysicalQuantity objects are fed via the use of the overloaded set-method. For details see TMusrRunPhysicalQuantity - Possible Representations. +

        +To set some property within "sub-sub-directories" it would like this: +

        +
        +header->Set("DetectorInfo/Detector001/Time Zero Bin", 3419.0);
        +
        +

        +To write the whole run header into a file would look something like this: +

        +
        +TFile *f = new TFile(fileName, "RECREATE", "write_musrRoot_runHeader");
        +if (f->IsZombie()) {
        +  delete f;
        +  return -1;
        +}
        +
        +// create the needed TFolder object
        +TFolder *runHeader = new TFolder("RunHeader", "MusrRoot Run Header Info");
        +
        +// create the "directory" structure
        +if (header->FillFolder(runHeader)) {
        +  runHeader->Write(); // write run header to file
        +}
        +
        +f->Close();
        +
        +

        +

        4.1.2 Reading a MusrRoot Run Header

        +The following code snippet shows how the extract the full run header from the MusrRoot file. +

        +
        +TFile *f = new TFile(fileName, "READ", "read_musrRoot_runHeader");
        +if (f->IsZombie()) {
        +  delete f;
        +  return -1;
        +}
        +
        +TFolder *runHeader = 0;
        +f->GetObject("RunHeader", runHeader);
        +if (runHeader == 0) {
        +  cerr << endl << ">> **ERROR** Couldn't get top folder RunHeader";
        +  closeFile(f);
        +  return -1;
        +}
        +
        +TMusrRunHeader *header = new TMusrRunHeader(fileName);
        +
        +if (!header->ExtractAll(runHeader)) {
        +  cerr << endl << ">> **ERROR** couldn't extract all RunHeader information";
        +  closeFile(f);
        +  return -1;
        +}
        +
        +f->Close();
        +delete f;
        +
        +

        +The routine ExtractAll(TFolder *runHeader) decodes all the TObjString objects and fills internal data structures. This means when reading a MusrRoot -file the above handling is always needed. After the ExtractAll call, parameters can be extracted via the getter routines available. For instance to read the Run Number, the code would look like +

        +
        +Bool_t ok;
        +Int_t ival;  
        +header->Get("RunInfo/Run Number", ival, ok);
        +if (ok)
        +  cout << endl << "Run Number: " << ival;
        +else
        +  cout << endl << "**ERROR** Couldn't obtain the 'Run Number'.";
        +
        +

        +Reading a TMusrRunPhysicalQuantity object, e.g. the Sample Temperature looks like this +

        +
        +TMusrRunPhysicalQuantity prop;
        +
        +header->Get("RunInfo/Sample Temperature", prop, ok);
        +if (ok) {
        +  cout << endl << "Sample Temperature: " << prop.GetValue() << " +- ";
        +  cout << prop.GetError() << " " << prop.GetUnit().Data();
        +  cout << "; SP: " << prop.GetDemand() << "; " << prop.GetDescription().Data();
        +} else {
        +  cout << endl << "**ERROR** Couldn't obtain the 'Sample Temperature'.";
        +}
        +
        +

        + +

        4.2 Validation of a MusrRoot File

        +Since MusrRoot is an open and extensible file format a mechanism is needed to validate that a given file is indeed holding the minimum of required entries. To check this the following scheme is implemented in the program musrRootValidation: +

        + +

        +MusrRoot validation scheme +

        +In the following this validation scheme will be discussed as it is implemented in musrRootValidation: +

          +
        1. It is checked if the given file name is a TFile +
        2. The file structure is recursively parsed and mapped into an temporary XML file. XML is used since there are ample of parser and validation frameworks at hand. For details check any decent book about XML. Here the libxml2 is used, because also ROOT is requiring it. +
        3. In a next step the XML file (holding the structure of the supposed MusrRoot file is validated against a XML schema. The minimum of required entries is described by MusrRoot.xsd which is part of musrfit but also available from the PSI/LMU web-page. +
        4. If the schema validation is successful additional semantic checks (like is the number of decay histograms the same as the number of detector entries, etc.) will be preformed. +
        +

        +This validation scheme is useful for people which define instrument specific extensions of the base MusrRoot, as for instance the LEM instrument at PSI. It is also useful for people writing file converters in order to cross check if the generated file is valid. +

        + +

        5 RunInfo Required

        +

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Version TString SVN version of TMusrRunHeader
        Generic Validator URL TString URL of the generic MusrRoot validation xsd-file.
            e.g. http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRoot.xsd
        Specific Validator URL TString URL of the instrument specific validation xsd-file.
            e.g. for LEM: http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRootLEM.xsd
        Generator TString Program which wrote the MusrRoot file,
            e.g. nemu_analyzer
        File Name TString File name of the MusrRoot file,
            e.g. deltat_tdc_gps_4295.root
        Run Title TString  
        Run Number Int_t  
        Run Start Time TString ISO 8601 date time
        Run Stop Time TString ISO 8601 date time
        Run Duration TMusrRunPhysicalQuantity run duration in sec
        Laboratory TString e.g. PSI
        Instrument TString e.g. GPS
        Muon Beam Momentum TMusrRunPhysicalQuantity e.g. 28.1 MeV/c
        Muon Species TString positive, or negative muon
        Muon Source TString e.g. Target E - Low Energy Muons or
            "Target M" ...
        Setup TString  
        Comment TString  
        Sample Name TString  
        Sample Temperature TMusrRunPhysicalQuantity e.g. 3.21 +- 0.05 K; SP: 3.2; CF1
        Sample Magnetic Field TMusrRunPhysicalQuantity e.g. 350.002 +- 0.005 G; SP: 350; WXY
        No of Histos Int_t  
        Time Resolution TMusrRunPhysicalQuantity e.g. 0.1953125 ns
        RedGreen Offsets TIntVector e.g. 0; 20
        +

        + +

        6 DetectorInfo Required

        +The DetectorInfo is organized in a sub-tree like +

        +
        +DetectorInfo ---|
        +                |- Detector001
        +                |- Detector002
        +                ...
        +
        +

        +For each histogram in the histos/DecayAnaModule corresponds detector entry here. +

        +The numbering of the detectors has to correspond the its histogram, e.g. hDecay023Detector023, i.e. potentially discontinuous to show red / green breaks. +

        +Detector<XXX> has the elements +

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Name TString detector name, e.g. Left-NPP
        Histo Number Int_t histogram number. This number corresponds to the histogram number in the histos/DecayAnaModule sub-tree.
        Histo Length Int_t length of the histogram
        Time Zero Bin Double_t The type is Double_t since for the high-field spectrometer at PSI an Int_t representation would be not good enough.
        First Good Bin Int_t  
        Last Good Bin Int_t  
        +

        + +

        7 SampleEnvironmentInfo Required

        +Here only a single entry is required, namely +

        + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Cryo TString name of the used cryostat, e.g. Konti-2
        +

        + +

        8 MagneticFieldEnvironmentInfo Required

        +

        +Here only a single entry is required, namely +

        + + + + + + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Magnet Name TString name of the used magnet, e.g. WEW.
            In case of ZF measurements, there might be an entry like ZF.
        +

        + +

        9 BeamlineInfo Required

        +

        +Here only a single entry is required, namely +

        + + + + + + + + + + + + + + +
        Name Internal Type Comment
        Name TString name of the beamline, e.g. piM3.2.
        +

        +

        10 Exhaustive MusrRoot Tree Including Everything Required

        +Here it is assumed that there are hypothetical red / green data with electric field on/off and light on/off, and hence 4 data sets per detector, and 8 detectors of the instrument: left/forward, top/forward, right/forward, bottom/forward, left/backward, top/backward, right/backward, bottom/backward. To show the whole tree structure, it will be splitted in the representation afterwards, but keep in mind: this will be all part of a single MusrRoot file. I will add comments in the tree structure by the symbol #. Lets start with the μSR data histograms: +

        +
        +histos -|
        +        |- DecayAnaModule -|
        +                           |- hDecay001 # left/forward, electric field off, light off
        +                           |- hDecay002 # top/forward, electric field off, light off
        +                           |- hDecay003 # right/forward, electric field off, light off
        +                           |- hDecay004 # bottom/forward, electric field off, light off
        +                           ...
        +                           |- hDecay007 # right/backward, electric field off, light off
        +                           |- hDecay008 # bottom/backward, electric field off, light off
        +                           |- hDecay011 # left/forward, electric field on, light off
        +                           |- hDecay012 # top/forward, electric field on, light off
        +                           |- hDecay013 # right/forward, electric field on, light off
        +                           |- hDecay014 # bottom/forward, electric field on, light off
        +                           ...
        +                           |- hDecay017 # right/backward, electric field on, light off
        +                           |- hDecay018 # bottom/backward, electric field on, light off
        +                           |- hDecay021 # left/forward, electric field off, light on
        +                           |- hDecay022 # top/forward, electric field off, light on
        +                           |- hDecay023 # right/forward, electric field off, light on
        +                           |- hDecay024 # bottom/forward, electric field off, light on
        +                           ...
        +                           |- hDecay027 # right/backward, electric field off, light on
        +                           |- hDecay028 # bottom/backward, electric field off, light on
        +                           |- hDecay031 # left/forward, electric field on, light on
        +                           |- hDecay032 # top/forward, electric field on, light on
        +                           |- hDecay033 # right/forward, electric field on, light on
        +                           |- hDecay034 # bottom/forward, electric field on, light on
        +                           ...
        +                           |- hDecay037 # right/backward, electric field on, light on
        +                           |- hDecay038 # bottom/backward, electric field on, light on
        +                           ...
        +
        +

        + Comments: as can be seen the histograms are continuous numbered until there is a red / green mode switch where the histogram number "jumps" (e.g. from 008 to 011). In order to fill in the different red / green histograms an offset is added (here 10, 20, and 30). +

        +Next there will be the slowcontrol histograms: +

        +
        +histos -|
        +        |- SCAnaModule -|
        +                        |- hSampleTemperature
        +                        |- hMagneticField
        +                        |- hModeratorTemperature
        +                        ...
        +
        +

        +Comments: Theses histograms show typical time histograms of temperature, magnetic field, etc. during the run. The number of the histograms and their content will be quite different for each instrument. +

        +Next the whole RunHeader. Here the information will be grouped in different folders collecting related information, like general run info, detector info, sample and magnetic field environment info, beamline info, etc. +

        +
        +RunInfo:
        +  000 - Version: $Id: TMusrRunHeader.cpp 5092 2012-03-13 07:47:00Z nemu $ -@0
        +  001 - Generic Validator URL: http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRoot.xsd -@0
        +  002 - Specific Validator URL: http://lmu.web.psi.ch/facilities/software/MusrRoot/Validation/MusrRootLEM.xsd -@0
        +  003 - Generator: nemu_analyzer -@0
        +  004 - File Name: lem12_his_0234.root -@0
        +  005 - Run Title: here comes the run title -@0
        +  006 - Run Number: 234 -@1
        +  007 - Run Start Time: 2012-04-19 14:25:22 -@0
        +  008 - Run Stop Time: 2012-04-19 19:13:47 -@0
        +  009 - Run Duration: 17305 sec -@3
        +  010 - Laboratory: PSI -@0
        +  011 - Instrument: LEM -@0
        +  012 - Muon Beam Momentum: 28.1 MeV/c -@3
        +  013 - Muon Species: positive muon -@0
        +  014 - Muon Source: target E -@0
        +  015 - Setup: a very special setup -@0
        +  016 - Comment: nothing more to be said -@0
        +  017 - Sample Name: the best ever -@0
        +  018 - Sample Temperature: 3.21 +- 0.05 K; SP: 3.2 -@3
        +  019 - Sample Magnetic Field: 350.002 +- 0.005 G; SP: 350 -@3
        +  020 - No of Histos: 8 -@1
        +  021 - Time Resolution: 0.1953125 ns;  TDC 9999 -@3
        +  022 - RedGreen Offsets: 0; 10; 20; 30
        +DetectorInfo:
        +  Detector001:
        +    023 - Name: Left/Forward - electric field off, light off -@0
        +    024 - Histo Number: 1 -@1
        +    025 - Histo Length: 66661 -@1
        +    026 - Time Zero Bin: 3419.000000 -@2
        +    027 - First Good Bin: 3419 -@1
        +    028 - Last Good Bin: 66661 -@1
        +  Detector002:
        +    029 - Name: Top/Forward - electric field off, light off -@0
        +    030 - Histo Number: 2 -@1
        +    031 - Histo Length: 66661 -@1
        +    032 - Time Zero Bin: 3419.000000 -@2
        +    033 - First Good Bin: 3419 -@1
        +    034 - Last Good Bin: 66661 -@1
        +
        +  ...
        +
        +  Detector038:
        +    213 - Name: Bottom/Backward - electric field on, light on -@0
        +    214 - Histo Number: 38 -@1
        +    215 - Histo Length: 66661 -@1
        +    216 - Time Zero Bin: 3419.000000 -@2
        +    217 - First Good Bin: 3419 -@1
        +    218 - Last Good Bin: 66661 -@1
        +
        +SampleEnvironmentInfo:
        +  219 - Cryo: Konti-1 -@0
        +  220 - Insert: X123 -@0
        +  221 - Orientation: c-axis perp spin, perp field. spin perp field -@0
        +MagneticFieldEnvironmentInfo:
        +  222 - Magnet Name: WEW -@0
        +  223 - Current: 17.34 A -@3
        +BeamlineInfo:
        +  224 - Name: muE4 -@0
        +ScalerInfo:
        +  225 - Ip: 12332123 -@1
        +RunSummary:
        +  0000 - Wed Oct  5 01:30:37 2011 Run 2856 started.
        +  0001 - Wed Oct  5 02:02:51 2011 Run 2856 stopped.
        +  0002 - 
        +  0003 - LCO, T=170.02(K), wTF ~30(G)/5.18(A), Tr/Sa=15.02/8.50(kV), E=5.63(keV), LEDb off, BP off
        +  0004 - =========================================================================================
        +  0005 - 
        +  0006 - #BUC---- B e g i n of User Comment ------ Do not edit this line
        +  0007 - #EUC----   E n d   of User Comment ------ Do not edit this line
        +  0008 - 
        +  0009 - ======================   E v e n t  definition   =========================
        +  0010 -
        +  0011 - Events: 
        +  0012 - Event_0: (BC)-MCP1-(e+); Event_1:( BC)-TD-MCP2-(e+); Event_2: LEmuSR, (BC)-TD-e 
        +  ...
        +
        +

        +Comment: the last sub-tree RunSummary is not following TMusrRunHeader rule <number> - <label>: <value> -@<type>. It is added in the instrument analyzer directly by other means than the TMusrRunHeader::Set -method. This is no problem! Since RunSummary is not part of the required MusrRoot -file. One is quite free in adding any ROOT based information here. +

        + +

        11 TMusrRunPhysicalQuantity - Possible Representations

        +A physical property can be described as +

        +
        +<property name>: <value> +- <estimated error> <unit>; SP: <demand>; <description>
        +
        +

        +where <property name> is the name of the quantity, e.g. Sample Temperature, <value> the value of the quantity, <estimated error> the error estimate, e.g. the standard deviation, <unit> the unit, e.g. K, <demand> a demand value, e.g. the set point of the temperature. <description> is a possible additional comment for this quantity. +

        +Note, not all of these quantities are always needed. The list of handled combination are given hereafter together with the C++ code snipped how to set it. It is assumed that TMusrRunPhysicalQuantity prop; is somewhere defined. +

        +
        +<property name>: <value> <unit> [; <description>]
        +
        +

        +Code snippet: +
        +prop.Set("Muon Beam Momentum", 28.1, "MeV/c");
        +header->Set("RunInfo/Muon Beam Momentum", prop);
        +
        +prop.Set("Time Resolution", 0.1953125, "ns", "TDC 9999");
        +header->Set("RunInfo/Time Resolution", prop);
        +
        +

        +Result in the RunHeader/RunInfo: +
        +011 - Muon Beam Momentum: 28.1 MeV/c -@3
        +013 - Time Resolution: 0.1953125 ns; TDC 9999 -@3 
        +
        +

        +The number on front of the token (e.g. 011 in front of Muon Beam Momentum) will depend on the position where the entry has been added. The last token, -@3, is the encoding of the type: here TMusrRunPhysicalQuantity. +

        +
        +

        +
        +<property name>: <val> +- <err> <unit>[; <description>]
        +
        +

        +Code snippet: +
        +prop.Set("CF3", MRH_UNDEFINED, 3.27, 0.09, "K", "strange temperature");
        +header->Set("SampleEnvironmentInfo/CF3", prop);
        +
        +

        +Result in the RunHeader/SampleEnvironmentInfo: +
        +033 - CF3: 3.27 +- 0.09 K; strange temperature -@3 
        +
        +

        +
        +

        +
        +<property name>: <val> <unit>; SP: <demand>[; <description>]
        +
        +

        +Code snippet: +
        +prop.Set("CF4", 3.25, 3.28, "K");
        +header->Set("SampleEnvironmentInfo/CF4", prop);
        +
        +prop.Set("CF5", 3.26, 3.29, "K", "another strange temperature");
        +header->Set("SampleEnvironmentInfo/CF5", prop);
        +
        +

        +Result in the RunHeader/SampleEnvironmentInfo: +
        +034 - CF4: 3.28 K; SP: 3.25 -@3
        +035 - CF5: 3.29 K; SP: 3.26; another strange temperature -@3
        +
        +

        +
        +

        +
        +<property name>: <value> +- <estimated error> <unit>; SP: <demand>; <description>
        +
        +

        +Code snippet: +
        +prop.Set("Sample Magnetic Field", 350.0, 350.002, 0.005, "G", "WXY");
        +header->Set("RunInfo/Sample Magnetic Field", prop);
        +
        +

        +Result in the RunHeader/SampleEnvironmentInfo: +
        +017 - Sample Magnetic Field: 350.002 +- 0.005 G; SP: 350.0; WXY -@3
        +
        +

        +-- AndreasSuter - 29 March 2012
        +
        + + + + + + + +
        + +
        + Edit | Attach | Print version | PDF | History: r7 < r6 < r5 < r4 | Backlinks | View wiki text | Refresh | More topic actions +
        +
        Topic revision: r7 - 29 Mar 2012, AndreasSuter
        +
        +
        +
        +
         
        +
        +
        +
        + +
        +

          +
        • +
        • +
        +

        +

        +

        +
        +
        +
        +
        Ideas, requests, problems regarding PSI Wiki? Send feedback
        +
        +
        +
        +
        + + + +

        +

        +

        +

        \ No newline at end of file diff --git a/doc/html/user/MUSR/QuickStart.html b/doc/html/user/MUSR/QuickStart.html index 4d8fd9ba..67007c7b 100644 --- a/doc/html/user/MUSR/QuickStart.html +++ b/doc/html/user/MUSR/QuickStart.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -280,7 +280,7 @@ RUN 2008/lem08_his_8472 MUE4 PSI ROOT-NPP (name beamline institute dat
        Topic revision: r7 - 10 Jul 2011, wojek
        @@ -331,7 +331,7 @@ RUN 2008/lem08_his_8472 MUE4 PSI ROOT-NPP (name beamline institute dat - +

        diff --git a/doc/html/user/MUSR/TutorialSingleHisto.html b/doc/html/user/MUSR/TutorialSingleHisto.html index a143484c..34873b08 100644 --- a/doc/html/user/MUSR/TutorialSingleHisto.html +++ b/doc/html/user/MUSR/TutorialSingleHisto.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -281,7 +281,7 @@ This page only summarizes the very basic features and options of the programs co -
        +

        Attachments (6)

         
        @@ -303,7 +303,7 @@ This page only summarizes the very basic features and options of the programs co
        Topic revision: r9 - 02 Sep 2011, wojek
        @@ -354,7 +354,7 @@ This page only summarizes the very basic features and options of the programs co
        - +

        diff --git a/doc/html/user/MUSR/WebHome.html b/doc/html/user/MUSR/WebHome.html index 433916b5..eef6a90e 100644 --- a/doc/html/user/MUSR/WebHome.html +++ b/doc/html/user/MUSR/WebHome.html @@ -1,6 +1,6 @@ - + @@ -8,7 +8,7 @@ - + @@ -134,7 +134,7 @@ pre {
      • Acknowledgements

      --- AS & (BMW) - last update Dec 4, 2014 +-- AS & (BMW) - last update Dec 18, 2014
      @@ -156,9 +156,9 @@ pre {
      Topic revision: r45 - 04 Dec 2014, AndreasSuter
      +
      Topic revision: r46 - 18 Dec 2014, AndreasSuter
      @@ -207,7 +207,7 @@ pre {
      - +