Skip to content

Commit

Permalink
Rename analysis inputs classes
Browse files Browse the repository at this point in the history
  • Loading branch information
GuiMacielPereira committed Nov 12, 2024
1 parent 2f8e083 commit 36d4e76
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 59 deletions.
6 changes: 3 additions & 3 deletions src/mvesuvio/config/analysis_inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class SampleParameters:


@dataclass
class BackwardInitialConditions(SampleParameters):
class BackwardAnalysisInputs(SampleParameters):
run_this_scattering_type = False
fit_in_y_space = False

Expand Down Expand Up @@ -47,7 +47,7 @@ class BackwardInitialConditions(SampleParameters):


@dataclass
class ForwardInitialConditions(SampleParameters):
class ForwardAnalysisInputs(SampleParameters):
run_this_scattering_type = True
fit_in_y_space = True

Expand Down Expand Up @@ -84,7 +84,7 @@ class ForwardInitialConditions(SampleParameters):


@dataclass
class YSpaceFitInitialConditions:
class YSpaceFitInputs:
showPlots = True
symmetrisationFlag = True
rebinParametersForYSpaceFit = "-25, 0.5, 25" # Needs to be symetric
Expand Down
47 changes: 22 additions & 25 deletions src/mvesuvio/main/run_routine.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,14 @@ def setup(self):

ai = self.import_from_inputs()

# self.wsBackIC = ai.LoadVesuvioBackParameters
# self.wsFrontIC = ai.LoadVesuvioFrontParameters
self.bckwdIC = ai.BackwardInitialConditions
self.fwdIC = ai.ForwardInitialConditions
self.yFitIC = ai.YSpaceFitInitialConditions
# self.userCtr = ai.UserScriptControls
self.bckwd_ai = ai.BackwardAnalysisInputs
self.fwd_ai = ai.ForwardAnalysisInputs
self.yFitIC = ai.YSpaceFitInputs

# Names of workspaces to check if they exist to skip analysis
self.ws_to_fit_y_space = []
self.classes_to_fit_y_space = []
for ai_cls in [self.bckwdIC, self.fwdIC]:
for ai_cls in [self.bckwd_ai, self.fwd_ai]:
if ai_cls.fit_in_y_space:
self.ws_to_fit_y_space.append(name_for_starting_ws(ai_cls) + '_' + str(ai_cls.noOfMSIterations))
self.classes_to_fit_y_space.append(ai_cls)
Expand All @@ -56,12 +53,12 @@ def setup(self):
self.input_ws_path.mkdir(parents=True, exist_ok=True)

# TODO: Output paths should probably not be set like this
self._set_output_paths(self.bckwdIC)
self._set_output_paths(self.fwdIC)
self._set_output_paths(self.bckwd_ai)
self._set_output_paths(self.fwd_ai)

# TODO: remove this by fixing circular import
self.fwdIC.name = name_for_starting_ws(self.fwdIC)
self.bckwdIC.name = name_for_starting_ws(self.bckwdIC)
self.fwd_ai.name = name_for_starting_ws(self.fwd_ai)
self.bckwd_ai.name = name_for_starting_ws(self.bckwd_ai)

# TODO: sort out yfit inputs
figSavePath = self.experiment_path / "figures"
Expand All @@ -79,7 +76,7 @@ def import_from_inputs(self):


def run(self):
if not self.bckwdIC.run_this_scattering_type and not self.fwdIC.run_this_scattering_type:
if not self.bckwd_ai.run_this_scattering_type and not self.fwd_ai.run_this_scattering_type:
return
# Default workflow for procedure + fit in y space

Expand All @@ -104,25 +101,25 @@ def runAnalysisFitting(self):

def runAnalysisRoutine(self):

if self.bckwdIC.run_this_scattering_type:
if self.bckwd_ai.run_this_scattering_type:

if is_hydrogen_present(self.fwdIC.masses) & (self.bckwdIC.HToMassIdxRatio==0):
if is_hydrogen_present(self.fwd_ai.masses) & (self.bckwd_ai.HToMassIdxRatio==0):
self.run_estimate_h_ratio()
return

# TODO: make this automatic
assert is_hydrogen_present(self.fwdIC.masses) != (
self.bckwdIC.HToMassIdxRatio==0
assert is_hydrogen_present(self.fwd_ai.masses) != (
self.bckwd_ai.HToMassIdxRatio==0
), "No Hydrogen detected, HToMassIdxRatio has to be set to 0"

if self.bckwdIC.run_this_scattering_type and self.fwdIC.run_this_scattering_type:
if self.bckwd_ai.run_this_scattering_type and self.fwd_ai.run_this_scattering_type:
self.run_joint_analysis()
return
if self.bckwdIC.run_this_scattering_type:
self.run_single_analysis(self.bckwdIC)
if self.bckwd_ai.run_this_scattering_type:
self.run_single_analysis(self.bckwd_ai)
return
if self.fwdIC.run_this_scattering_type:
self.run_single_analysis(self.fwdIC)
if self.fwd_ai.run_this_scattering_type:
self.run_single_analysis(self.fwd_ai)
return
return

Expand All @@ -137,8 +134,8 @@ def run_single_analysis(self, ai):

def run_joint_analysis(self):
AnalysisDataService.clear()
back_alg = self._create_analysis_algorithm(self.bckwdIC)
front_alg = self._create_analysis_algorithm(self.fwdIC)
back_alg = self._create_analysis_algorithm(self.bckwd_ai)
front_alg = self._create_analysis_algorithm(self.fwd_ai)
self.run_joint_algs(back_alg, front_alg)
return

Expand Down Expand Up @@ -187,8 +184,8 @@ def run_estimate_h_ratio(self):

table_h_ratios = create_table_for_hydrogen_to_mass_ratios()

back_alg = self._create_analysis_algorithm(self.bckwdIC)
front_alg = self._create_analysis_algorithm(self.fwdIC)
back_alg = self._create_analysis_algorithm(self.bckwd_ai)
front_alg = self._create_analysis_algorithm(self.fwd_ai)

front_alg.execute()

Expand Down
4 changes: 2 additions & 2 deletions src/mvesuvio/util/analysis_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@ def name_for_starting_ws(load_ai):


def scattering_type(load_ai, shorthand=False):
if load_ai.__name__ in ["BackwardInitialConditions"]:
if load_ai.__name__ in ["BackwardAnalysisInputs"]:
scatteringType = "BACKWARD"
if shorthand:
scatteringType = "bckwd"
elif load_ai.__name__ in ["ForwardInitialConditions"]:
elif load_ai.__name__ in ["ForwardAnalysisInputs"]:
scatteringType = "FORWARD"
if shorthand:
scatteringType = "fwd"
Expand Down
10 changes: 4 additions & 6 deletions tests/data/analysis/inputs/analysis_test.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
import numpy as np


class GeneralInitialConditions:
class SampleParameters:
transmission_guess = 0.8537 # Experimental value from VesuvioTransmission
multiple_scattering_order, number_of_events = 2, 1.0e5
vertical_width, horizontal_width, thickness = 0.1, 0.1, 0.001 # Expressed in meters


class BackwardInitialConditions(GeneralInitialConditions):
class BackwardAnalysisInputs(SampleParameters):
run_this_scattering_type = False
fit_in_y_space = False
ipfile = "ip2019.par"
Expand Down Expand Up @@ -45,7 +43,7 @@ class BackwardInitialConditions(GeneralInitialConditions):
GammaCorrectionFlag = False


class ForwardInitialConditions(GeneralInitialConditions):
class ForwardAnalysisInputs(SampleParameters):
run_this_scattering_type = True
fit_in_y_space = False

Expand Down Expand Up @@ -86,7 +84,7 @@ class ForwardInitialConditions(GeneralInitialConditions):
GammaCorrectionFlag = True


class YSpaceFitInitialConditions:
class YSpaceFitInputs:
showPlots = False
symmetrisationFlag = True
rebinParametersForYSpaceFit = "-20, 0.5, 20" # Needs to be symetric
Expand Down
22 changes: 11 additions & 11 deletions tests/data/analysis/inputs/yspace_gauss_test.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from tests.data.analysis.inputs.analysis_test import (
BackwardInitialConditions,
ForwardInitialConditions,
YSpaceFitInitialConditions,
BackwardAnalysisInputs,
ForwardAnalysisInputs,
YSpaceFitInputs,
)
ForwardInitialConditions.noOfMSIterations = 1
ForwardInitialConditions.firstSpec = 164
ForwardInitialConditions.lastSpec = 175
ForwardInitialConditions.fit_in_y_space = True
BackwardInitialConditions.fit_in_y_space = False
ForwardInitialConditions.run_this_scattering_type = True
BackwardInitialConditions.run_this_scattering_type = False
YSpaceFitInitialConditions.fitModel = "SINGLE_GAUSSIAN"
ForwardAnalysisInputs.noOfMSIterations = 1
ForwardAnalysisInputs.firstSpec = 164
ForwardAnalysisInputs.lastSpec = 175
ForwardAnalysisInputs.fit_in_y_space = True
BackwardAnalysisInputs.fit_in_y_space = False
ForwardAnalysisInputs.run_this_scattering_type = True
BackwardAnalysisInputs.run_this_scattering_type = False
YSpaceFitInputs.fitModel = "SINGLE_GAUSSIAN"
24 changes: 12 additions & 12 deletions tests/data/analysis/inputs/yspace_gc_test.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from tests.data.analysis.inputs.analysis_test import (
BackwardInitialConditions,
ForwardInitialConditions,
YSpaceFitInitialConditions,
BackwardAnalysisInputs,
ForwardAnalysisInputs,
YSpaceFitInputs,
)

ForwardInitialConditions.noOfMSIterations = 1
ForwardInitialConditions.firstSpec = 164
ForwardInitialConditions.lastSpec = 175
ForwardInitialConditions.fit_in_y_space = True
BackwardInitialConditions.fit_in_y_space = False
ForwardInitialConditions.run_this_scattering_type = True
BackwardInitialConditions.run_this_scattering_type = False
YSpaceFitInitialConditions.fitModel = "GC_C4_C6"
YSpaceFitInitialConditions.symmetrisationFlag = False
ForwardAnalysisInputs.noOfMSIterations = 1
ForwardAnalysisInputs.firstSpec = 164
ForwardAnalysisInputs.lastSpec = 175
ForwardAnalysisInputs.fit_in_y_space = True
BackwardAnalysisInputs.fit_in_y_space = False
ForwardAnalysisInputs.run_this_scattering_type = True
BackwardAnalysisInputs.run_this_scattering_type = False
YSpaceFitInputs.fitModel = "GC_C4_C6"
YSpaceFitInputs.symmetrisationFlag = False

0 comments on commit 36d4e76

Please sign in to comment.