base.conf 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. ;;;;;;
  2. ;; General configuration options.
  3. ;; PlotStyle: Either a global matplotlib style name, or a style file in the base dir.
  4. ;; Variable: Variable to decompose.
  5. ;; Weight: Event weight. This is REQUIRED.
  6. ;; Scale: Scale factor to apply to the data
  7. ;;
  8. ;; Lumi: The luminosity when converted events -> cross-sections
  9. ;; LumiUnc: Uncertainty on the luminosity; range is from 0 to 1
  10. ;; XSecUnits: Units to display on limit plots. This is cosmetic;
  11. ;; units should correspond to whatever units are used
  12. ;; for 'Lumi'.
  13. ;;;;;;
  14. [General]
  15. PlotStyle: plot.mplstyle
  16. Variable: Myy
  17. Weight: weight
  18. Scale: 1
  19. Lumi: 0.0
  20. LumiUnc: 0.02
  21. XSecUnits: Events
  22. ;;;;;;
  23. ;; Input files. Format is
  24. ;; DataSet : n
  25. ;; to keep every n'th event.
  26. ;;;;;;
  27. [InputFiles]
  28. Test: 1
  29. ;;;;;;
  30. ;; Cuts to apply. The format is
  31. ;; 'name: condition'
  32. ;; where condition can be a Python snippet referring to any variable in the dataset.
  33. ;;;;;;
  34. [Cuts]
  35. Mass: Myy > 60
  36. ;;;;;;
  37. ;; Parameters for the decomposition. Note that most are fixed,
  38. ;; but Alpha and Lambda are free and will be adjusted during
  39. ;; optimization.
  40. ;;
  41. ;; Nbasis: number of moments when calculating moments, yields, covariances
  42. ;; Nxfrm: number of moments used as inputs to transformation
  43. ;; Ncheck: max number of moments to consider as possible background
  44. ;;
  45. ;; x0: Minimum mass cut. There should be a corresponding cut in 'Cuts' above
  46. ;; in order to guarantee consistency.
  47. ;;
  48. ;; Nthread: Number of threads to use for array operations.
  49. ;;;;;;
  50. [ExpDecompFactory]
  51. Nthread: 4
  52. Nbasis: 4096
  53. Nxfrm: 256
  54. Ncheck: 24
  55. x0: 60.0
  56. ;;;;;
  57. ;; Scan ranges for the hyperparameters 'Alpha' and 'Lambda'. These use
  58. ;; the syntax:
  59. ;; (start) : (stop) : (# fine steps) : (# coarse steps)
  60. ;; The search region is delineated by 'start' and 'stop'. Full decompositions
  61. ;; are performed on the coarse grid, and transformed decompositions are
  62. ;; produced on the fine grid. The best set of parameters are used as the
  63. ;; initial point for a final optimization. The final ':' and last parameter
  64. ;; may be omitted, in which case they default to 1.
  65. ;;;;;
  66. [HyperParameterScan]
  67. Alpha: 0.45 : 0.85 : 49 : 5
  68. Lambda: 120 : 40 : 81 : 5
  69. ;;;;;;
  70. ;; Specification of signal models. 'func' is a function that describes
  71. ;; the signal shape, which takes argument 'x'. Other parameters can be
  72. ;; specified in curly braces like {parameter}, and then later set as
  73. ;; configuration keys like:
  74. ;;
  75. ;; parameter: 0.256
  76. ;;
  77. ;; The configuration blocks 'ParametricSignal: <name>' inherit from
  78. ;; 'ParametricSignalDefault'. Any keys not specified in or overridden
  79. ;; by 'ParametricSignal: <name>' will be retrieved from 'ParametricSignalDefault'.
  80. ;;
  81. ;; If the ParametricSignal block DOES NOT have a 'Scan' key specified, it is
  82. ;; included in all decomposition, including during the hyperparameter
  83. ;; optimization. If 'Scan' is specified, it should be a list or ndarray
  84. ;; containing a list of masses to consider. The masses are exposed as
  85. ;; {Mass} when the block is evaluated, so the functions and their
  86. ;; parameters can be written as functions of {Mass} when necessary.
  87. ;;;;;;
  88. [ParametricSignalDefault]
  89. ;;;;;
  90. ;; Plots. Specify as many as you would like. Each plot is specified in a block
  91. ;; with header
  92. ;;
  93. ;; [Plot : filename.pdf]
  94. ;;
  95. ;; The plot is saved in '<basedir>/Output/filename.pdf'. Like the signal blocks,
  96. ;; all plot blocks inherit from 'PlotDefault'.
  97. ;;
  98. ;; There are several plot types available, specified by the 'Type' key:
  99. ;; Estimators: Draw signal shapes and the corresponding estimators. Use the
  100. ;; 'signals' key to specifiy which signals to draw, and the 'Draw'
  101. ;; key to specify what to draw (signals, estimators, or residuals).
  102. ;;
  103. ;; Moments: Line / bar plot of the norm-squared of the moments for the data
  104. ;; and specified signal models. The data is always drawn; signals
  105. ;; can be selectively specified using the 'Draw' key, just like
  106. ;; above. 'Style' can be set to either 'line' or 'bar'.
  107. ;;
  108. ;; Fit: Draw a histogram of the mass spectrum together with the decomposition.
  109. ;; The key 'Bins' should contain a list or ndarray of bin edges, in
  110. ;; order. The plot will be drawn from the lower edge to the upper
  111. ;; edge, ignoring events outside the range.
  112. ;;
  113. ;; Scan: Draw a p-value and limit plot for the mass scans specified in
  114. ;; 'Scans'. You're allowed to choose any signal model above that
  115. ;; had a 'Scan' parameter specified.
  116. ;;
  117. ;; All of these have various keys available to adjust the cosmetic features of
  118. ;; the plot (titles, linear vs. log, etc.). See below for examples. The plot
  119. ;; code lives in Plots/Plots.py, so consult that for a full list of parameters.
  120. ;;;;;
  121. [PlotDefault]
  122. XLabel: $M_{\gamma\gamma}$ (GeV)
  123. LogX: False
  124. LogY: True
  125. Style: errorbar
  126. CMap: copper
  127. Residual: True
  128. ResYLim: (-1.0, 1.0)
  129. ;;;;;
  130. ;; Compare all the data moments to the Higgs signal and estimator.
  131. ;;;;;
  132. [Plot: moments.pdf]
  133. Type: Moments
  134. Title: Moment Comparison - Data vs. Higgs
  135. XLabel: "Moment \#"
  136. Draw: ("Signal", "Estimator")
  137. Style: line
  138. Range: (1, 2048)
  139. LogX: False
  140. LogY: True
  141. ;;;;;
  142. ;; Draw the first 128 data moments.
  143. ;;;;;
  144. [Plot: low_moments.pdf]
  145. Type: Moments
  146. Title: Data Moments
  147. XLabel: "Moment \#"
  148. Style: bar
  149. Range: (1, 128)
  150. LogX: False
  151. LogY: True
  152. ;;;;;
  153. ;; Make some plots of the fits
  154. ;;;;;
  155. [Plot: full.pdf]
  156. Type: Fit
  157. Title: Full Spectrum
  158. YLabel: Events / GeV
  159. Bins: np.logspace(np.log10(60), np.log10(3060), 201)
  160. LogX: True
  161. YLim: (1e-5, 1e5)
  162. [Plot: lowmass.pdf]
  163. Type: Fit
  164. Title: Low-Mass Region
  165. YLabel: Events / GeV
  166. Bins: np.linspace(60, 160, 101)
  167. LogY: False