Class: Calib

Inherits:
Object
  • Object
show all
Defined in:
lib/trinitycrmod/calib.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash) ⇒ Calib

Returns a new instance of Calib.



23
24
25
# File 'lib/trinitycrmod/calib.rb', line 23

def initialize(hash)
  hash.each{|k,v| instance_variable_set("@".to_sym + k, v)}
end

Instance Attribute Details

#calibration_jobsObject

Returns the value of attribute calibration_jobs.



22
23
24
# File 'lib/trinitycrmod/calib.rb', line 22

def calibration_jobs
  @calibration_jobs
end

Class Method Details

.analyse_file(filename) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/trinitycrmod/calib.rb', line 3

def self.analyse_file(filename)
  str = File.read(filename)
  str.sub!(/calibra.*\s+/, '')
  cal = $~[0]
  strs = str.split(/(?=reduced_qflux)/); strs.shift
  return strs.map{|s| new_from_string(cal,s)}
end

.new_from_string(cal, str) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/trinitycrmod/calib.rb', line 10

def self.new_from_string(cal,str)
  pp str
  cal = cal.sub(/cal\w+/,'').split(/\s+/).delete_if{|s| s=~/\A\s*\Z/}.map{|s| s.to_i}
  hash = str.scan(
    /((?:(?:reduced|full)_[pq]flux)|[pq]flux factor)([\deE\s.+-]+)/
  ).inject({}){|h,(k,v)| 
    arr = v.split(/\s+/).delete_if{|s| s=~/\A\s*\Z/}.map{|s| s.to_f}
    h[k.gsub(/ /, '_')]=arr.pieces(arr.size>cal.size*3?2:3); h}
  pp hash
  hash[:calibration_jobs] = cal
  new(hash)
end

Instance Method Details

#pflux_graphkit(i) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/trinitycrmod/calib.rb', line 26

def pflux_graphkit(i)
  #k = (0..0).to_a.map{|i|
  k = GraphKit.quick_create([@calibration_jobs, raw_pflux_factor(i)], [(0...(@pflux_factor[i].size)).to_a, @pflux_factor[i]])
  #}.sum
  k.data.each{|dk| dk.gp.with = 'lp'}
  k.data[1].title = 'factor'
  k
end

#qflux_graphkit(i) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/trinitycrmod/calib.rb', line 34

def qflux_graphkit(i)
  #k = (0..0).to_a.map{|i|
  k = GraphKit.quick_create([@calibration_jobs, raw_qflux_factor(i)], [(0...(@qflux_factor[i].size)).to_a, @qflux_factor[i]])
  #}.sum
  k.data.each{|dk| dk.gp.with = 'lp'}
  k.data[1].title = 'factor'
  k
end

#raw_pflux_factor(i) ⇒ Object



45
46
47
# File 'lib/trinitycrmod/calib.rb', line 45

def raw_pflux_factor(i)
  (@full_pflux[i].to_gslv/@reduced_pflux[i].to_gslv).to_a
end

#raw_qflux_factor(i) ⇒ Object



42
43
44
# File 'lib/trinitycrmod/calib.rb', line 42

def raw_qflux_factor(i)
  (@full_qflux[i].to_gslv/@reduced_qflux[i].to_gslv).to_a
end