gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/histMC [ Modules ]

[ Top ] [ Modules ]

NAME

module histMC

PURPOSE

Encapsulate all routines and data for 1D Histograms with multiple channels.

Features of Histograms provided by this module:

  • store parameters of the x-binning
  • enable multiple y-values
  • track keeping of under-/over-score the given extreme values of x.
  • provide simple-to-understand output routines (cf. WriteHist)
  • provide simple histogram arithmetic (not yet implemented)
  • many others...

Every Histogram prints its own multicolumn output. A multicolumn output of many different histograms for the same x-value is not implemented. This is done by the module "histMPf90".

INPUTS

...(This module needs no input)


histMC/histogramMC [ Types ]

[ Top ] [ histMC ] [ Types ]

NAME

type histogramMC

PURPOSE

Type definition to store all information for a multi-channel 1D Histogram.

SOURCE

  type, public :: histogramMC
     real             :: xMin        ! smallest x-value
     real             :: xMax        ! largest x-value
     real             :: xBin        ! width of x-Bin
     real             :: xExtreme(2) ! extremes of used x-values
                                     ! (min,max)
     character*(NameLength) :: Name  ! name to be written
     character*(NameLength) :: xDesc ! description of x-value
     character*(NameLength),allocatable :: yDesc(:) ! description of y-channels
     real,allocatable :: yVal(:,:)   ! histogramm values:
                                     ! (x), (yy1,yy2,yy3...)
                                     ! bin 0,-1 : underflow/overflow !!!
     logical :: initialized = .false.! flag to indicate whether the histogram has been initialized
  end type histogramMC

histMC/ClearHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine ClearHistMC (H)

PURPOSE

Sets the histogram to zero again

INPUTS

OUTPUT

H is changed


histMC/CreateHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine CreateHistMC (H, HName, x1, x2, bin, nCh)

PURPOSE

This is the Constructor of a multi-channel 1D-Histogram! Allocate Memory for the entries and put additional variables to their default.

INPUTS

  • type(histogramMC):: H -- Histogramm to be created
  • character*(*) :: HName -- Name of Histogram
  • real :: x1,x2,bin -- Minimal/maximal value for x-coordinate to be considered, bin-width
  • integer :: nCh -- Number of Channels

OUTPUT

H is changed


histMC/RemoveHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine RemoveHistMC(H)

PURPOSE

Free the allocated memory

INPUTS

OUTPUT

H is changed


histMC/AddHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine AddHistMC (H, x, nCh, y)

PURPOSE

Add to the given histogram at the given x-value the weight y (y2). If y2 is given, also the second column is filled.

INPUTS

  • type(histogram) :: H -- Histogramm to be used
  • real :: x -- x-value
  • integer :: nCh-- number of Channel
  • real :: y -- weight to be added

OUTPUT

H is changed


histMC/RebinHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine RebinHistMC (H, N)

PURPOSE

Perform a rebinning of a present histogram, i.e. increase the bin size by an integer factor.

INPUTS

  • type(histogramMC),intent(inout) :: H -- histogram to be rebinned
  • integer, intent(in) :: N -- rebinning factor

OUTPUT

H is changed


histMC/CopyDesc [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine CopyDesc(H_dest,H_src)

PURPOSE

Copy the channel descriptions from one histogram to another.

INPUTS

  • type(histogram) :: H_dest -- destination Histogramm
  • type(histogram) :: H_src -- source Histogram

OUTPUT

H_dest is changed


histMC/WriteHeaderMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

logical function WriteHeaderMC (H, iFile, mul, FinalLineBreak)

PURPOSE

A header is written to the file:

  • Underflow: sum of all calls with a x-value less than x-min
  • Entries: sum of all entries listed in section "Data" below
  • Overflow: sum of all calls with a x-value above x-max
  • Extrema: the smallest/biggest x-values which had been added
  • counted: the range of x-values, which is considered in "Entries"
  • descriptions of x-value and all y-channels

Summing "Underflow"+"Entries"+"Overflow" gives the number of ALL calls, i.e. the integral from -infty upto +infty.

Output of "Underflow","Entries","Overflow" shows only the sum of all channels.

INPUTS

  • type(histogramMC) :: H -- Histogramm
  • integer :: iFile -- file number to write to
  • real, optional :: mul
  • logical,optional :: FinalLineBreak -- .false.= No line break after the header

OUTPUT


histMC/WriteHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine WriteHistMC(H,file,div,add,mul,dump)

PURPOSE

Write out the histogram.

The entries are multiplied by 'mul'.

INPUTS

  • type(histogram) :: H -- Histogramm to be used
  • character*(*) :: file -- name of file to open and close
  • real :: div -- if true, divide data by the bin width [OPTIONAL]
  • real :: add -- factor to add [OPTIONAL]
  • real :: mul -- factor to multiply [OPTIONAL]
  • logical :: dump -- if true, also dump it binary to file [OPTIONAL]

OUTPUT

write to file

Several columns are written in the data section:

  • 1) x-value (i.e. middle of bin)
  • 2) total sum of all y-values
  • 3...) all single y-values

Columns are divided by the bin-width, if "div" is true (or omitted). (Default: div = .true.)

In addition a header with additional info is written to the file (see "WriteHeaderMC")

NOTES

The Histogram Data is not affected!!!


histMC/WriteHistMC_Integrated [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine WriteHistMC_Integrated(H,file,div)

PURPOSE

Write out the histogram, integrating the data over x.

INPUTS

  • type(histogram) :: H -- Histogramm to be used
  • character*(*) :: file -- name of file to open and close
  • logical :: div -- if true, divide data by the bin width [OPTIONAL]

OUTPUT

write to file


histMC/WriteHistMC_Spline [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine WriteHistMC_Spline(H,file,nPoints)

PURPOSE

Write out the histogram.

The binning is subdivided into "nPoints" points per bin, where every point is calculated via cubic spline interpolation. (Default: nPoints=5)

INPUTS

  • type(histogram) :: H -- Histogramm to be used
  • integer :: iFile -- File number output to redirect
  • integer :: nPoints -- number of sub-points [OPTIONAL]

OUTPUT

write to file number

cf. WriteHist

NOTES

The Histogram Data is not affected!!!


histMC/WriteHistMC_Gauss [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine WriteHistMC_Gauss (H, file, width_in, mul)

PURPOSE

Write out the histogram, convoluted with a gaussian distribution.

INPUTS

  • type(histogram) :: H -- Histogramm to be used
  • character*(*) :: file -- name of file to open and close
  • real, optional :: width_in -- width of gaussian
  • real, optional :: mul -- factor to multiply

OUTPUT

write to file

NOTES

The histogram data is not affected!!!


histMC/ReadHistMC [ Functions ]

[ Top ] [ histMC ] [ Functions ]

NAME

function ReadHistMC (H, file, w) result (success)

PURPOSE

Read in a histogram from a file.

INPUTS

  • type(histogramMC) :: H -- Histogram to be used
  • character*(*) :: file -- name of file to read
  • real, optional, intent(in) :: w -- optional weigting factor

OUTPUT

  • H is changed
  • return value indicates success or failure

NOTES

Only data points are read (no under-/overflow etc).


histMC/sumHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine sumHistMC (A, B, w)

PURPOSE

Perform a summation of two histograms: A = A + B. If a weight 'w' is given, do a weighted summation: A = A + w*B

INPUTS

  • type(histogramMC) :: A, B -- Histograms to be used
  • real, optional, intent(in) :: w -- optional weighting factor

OUTPUT

A is changed.


histMC/DumpHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine DumpHistMC(H,file,iFile, add,mul)

PURPOSE

Write all the histogram information unformatted (i.e. binary) to a file

INPUTS

  • type(histogramMC) :: H -- Histogramm to be used
  • character*(*) :: file -- name of file to open and close
  • integer,OPTIONAL :: iFile -- File number output to redirect [OPTIONAL]
  • real :: add -- factor to add [OPTIONAL]
  • real :: mul -- factor to multiply [OPTIONAL]

OUTPUT

H is written UNFORMATTED to the given file


histMC/FetchHistMC [ Subroutines ]

[ Top ] [ histMC ] [ Subroutines ]

NAME

subroutine FetchHistMC(H,file,iFile, add,mul,flagOK)

PURPOSE

Read in all the histogram information previously dumped unformatted (i.e. binary) to a file

INPUTS

  • character*(*) :: file -- name of file to open and close
  • integer,OPTIONAL:: iFile -- File number input to redirect [OPTIONAL]

OUTPUT

  • type(histogramMC) :: H -- Histogramm to be used
  • real :: add -- factor to add [OPTIONAL]
  • real :: mul -- factor to multiply [OPTIONAL]
  • logical :: flagOK -- flag, if reading was okay [OPTIONAL]

H is read UNFORMATTED from the given file. Sizes are calculated as in CreateHist, also memory is allocated.

NOTES

No checks about input are performed!