Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/model_building_tutorial2024/model_building_exercise.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,8 @@ class PhysicsModel(PhysicsModelBase):
# --- Higgs Mass as other parameter ----
if self.options.mass != 0:
if self.modelBuilder.out.var("MH"):
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").removeMin()
self.modelBuilder.out.var("MH").removeMax()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
else:
self.modelBuilder.doVar("MH[%g]" % self.options.mass)
Expand Down
20 changes: 12 additions & 8 deletions python/DegenerateMatrixRank.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,24 @@ def doParametersOfInterest(self):
self.modelBuilder.factory_(f'expr::lambdatmu_{decay}("@0*@1",lambdat,mu_{decay})')
self.modelBuilder.doSet("POI", ",".join(poi))
if self.modelBuilder.out.var("MH"):
var = self.modelBuilder.out.var("MH")
if len(self.mHRange):
print(
"MH will be left floating within",
self.mHRange[0],
"and",
self.mHRange[1],
)
self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]), float(self.mHRange[1]))
self.modelBuilder.out.var("MH").setConstant(False)
var.setRange(float(self.mHRange[0]), float(self.mHRange[1]))
var.setConstant(False)
poi.append("MH")
self.modelBuilder.doSet("POI", ",".join(poi))
# self.modelBuilder.doSet('POI','poi,MH')
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down Expand Up @@ -160,22 +162,24 @@ def doParametersOfInterest(self):
self.modelBuilder.factory_(f'expr::lambdat_{decay}mu_{decay}("@0*@1",lambdat_{decay},mu_{decay})')
self.modelBuilder.doSet("POI", ",".join(poi))
if self.modelBuilder.out.var("MH"):
var = self.modelBuilder.out.var("MH")
if len(self.mHRange):
print(
"MH will be left floating within",
self.mHRange[0],
"and",
self.mHRange[1],
)
self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]), float(self.mHRange[1]))
self.modelBuilder.out.var("MH").setConstant(False)
var.setRange(float(self.mHRange[0]), float(self.mHRange[1]))
var.setConstant(False)
poi.append("MH")
self.modelBuilder.doSet("POI", ",".join(poi))
# self.modelBuilder.doSet('POI','poi,MH')
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down
10 changes: 6 additions & 4 deletions python/HiggsJPC.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,20 +142,22 @@ def doParametersOfInterest(self):
self.modelBuilder.factory_('expr::not_x("(1-@0)", x)')
self.sigNorms = {True: "x", False: "not_x"}
if self.modelBuilder.out.var("MH"):
var = self.modelBuilder.out.var("MH")
if len(self.mHRange):
print(
"MH will be left floating within",
self.mHRange[0],
"and",
self.mHRange[1],
)
self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]), float(self.mHRange[1]))
self.modelBuilder.out.var("MH").setConstant(False)
var.setRange(float(self.mHRange[0]), float(self.mHRange[1]))
var.setConstant(False)
poi += ",MH"
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down
6 changes: 4 additions & 2 deletions python/ModelTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,8 @@ def doExtArgs(self):

self.doVar(f"{rp}[{float(param_val)},{param_range}]")
if removeRange:
self.out.var(rp).removeRange()
self.out.var(rp).removeMin()
self.out.var(rp).removeMax()
self.out.var(rp).setConstant(False)
if setConst:
self.out.var(rp).setConstant(True)
Expand Down Expand Up @@ -334,7 +335,8 @@ def doRateParams(self):

self.doVar(f"{argu}[{argv},{param_range}]")
if removeRange:
self.out.var(argu).removeRange()
self.out.var(argu).removeMin()
self.out.var(argu).removeMax()
self.out.var(argu).setConstant(False)
self.out.var(argu).setAttribute("flatParam")

Expand Down
34 changes: 22 additions & 12 deletions python/PhysicsModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,10 @@ def doParametersOfInterest(self):
# --- Higgs Mass as other parameter ----
if self.options.mass != 0:
if self.modelBuilder.out.var("MH"):
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var = self.modelBuilder.out.var("MH")
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
self.modelBuilder.doVar("MH[%g]" % self.options.mass)

Expand Down Expand Up @@ -249,8 +251,10 @@ def getPOIList(self):
poiNames += ["MH"]
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var = self.modelBuilder.out.var("MH")
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down Expand Up @@ -511,8 +515,10 @@ def doParametersOfInterest(self):
poi += ",MH"
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var = self.modelBuilder.out.var("MH")
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down Expand Up @@ -629,8 +635,10 @@ def doParametersOfInterest(self):
poi += ",MH"
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var = self.modelBuilder.out.var("MH")
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down Expand Up @@ -786,20 +794,22 @@ def doParametersOfInterest(self):
"""Create POI and other parameters, and define the POI set."""
# --- Higgs Mass as other parameter ----
if self.modelBuilder.out.var("MH"):
var = self.modelBuilder.out.var("MH")
if len(self.mHRange):
print(
"MH will be left floating within",
self.mHRange[0],
"and",
self.mHRange[1],
)
self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]), float(self.mHRange[1]))
self.modelBuilder.out.var("MH").setConstant(False)
var.setRange(float(self.mHRange[0]), float(self.mHRange[1]))
var.setConstant(False)
self.poiNames += ["MH"]
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand Down
3 changes: 2 additions & 1 deletion python/ShapeTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,8 @@ def prepareAllShapes(self):
self.out.var("CMS_fakeObs").setBins(1)
self.doSet("CMS_fakeObsSet", "CMS_fakeObs")
self.doVar("CMS_fakeWeight[0,1]")
self.out.var("CMS_fakeWeight").removeRange()
self.out.var("CMS_fakeWeight").removeMin()
self.out.var("CMS_fakeWeight").removeMax()
shapeObs["CMS_fakeObsSet"] = self.out.set("CMS_fakeObsSet")
if p == self.options.dataname:
self.pdfModes[b] = "binned"
Expand Down
6 changes: 4 additions & 2 deletions python/TagAndProbeModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ def doParametersOfInterest(self):
self.modelBuilder.doSet("POI", "SF")
if self.options.mass != 0:
if self.modelBuilder.out.var("MH"):
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var = self.modelBuilder.out.var("MH")
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
self.modelBuilder.doVar("MH[%g]" % self.options.mass)
exp_pass = 1
Expand Down
20 changes: 12 additions & 8 deletions python/TwoHiggsModels.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,21 +64,23 @@ def doMasses(self):
poi = ""
## Searched-for higgs
if self.modelBuilder.out.var("MH"):
var = self.modelBuilder.out.var("MH")
if len(self.mHRange):
print(
"MH will be left floating within",
self.mHRange[0],
"and",
self.mHRange[1],
)
self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]), float(self.mHRange[1]))
self.modelBuilder.out.var("MH").setConstant(False)
var.setRange(float(self.mHRange[0]), float(self.mHRange[1]))
var.setConstant(False)
if self.mHAsPOI:
poi += ",MH"
else:
print("MH will be assumed to be", self.options.mass)
self.modelBuilder.out.var("MH").removeRange()
self.modelBuilder.out.var("MH").setVal(self.options.mass)
var.removeMin()
var.removeMax()
var.setVal(self.options.mass)
else:
if len(self.mHRange):
print(
Expand All @@ -95,21 +97,23 @@ def doMasses(self):
self.modelBuilder.doVar("MH[%g]" % self.options.mass)
## Already-found higgs
if self.modelBuilder.out.var("MH_SM"):
var = self.modelBuilder.out.var("MH_SM")
if len(self.mHSMRange):
print(
"MH_SM will be left floating within",
self.mHSMRange[0],
"and",
self.mHSMRange[1],
)
self.modelBuilder.out.var("MH_SM").setRange(float(self.mHSMRange[0]), float(self.mHSMRange[1]))
self.modelBuilder.out.var("MH_SM").setConstant(False)
var.setRange(float(self.mHSMRange[0]), float(self.mHSMRange[1]))
var.setConstant(False)
if self.mHSMAsPOI:
poi += ",MH_SM"
else:
print("MH_SM will be assumed to be", self.mHSM)
self.modelBuilder.out.var("MH_SM").removeRange()
self.modelBuilder.out.var("MH_SM").setVal(self.mHSM)
var.removeMin()
var.removeMax()
var.setVal(self.mHSM)
else:
if len(self.mHSMRange):
print(
Expand Down
2 changes: 1 addition & 1 deletion src/Combine.cc
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ void Combine::run(TString hlfFile, const std::string &dataset, double &limit, do
if (w->var("MH")) mass_ = w->var("MH")->getVal();
}
// look for parameters ranged [-1e+30, 1e+30], corresponding to the old definition of unlimited parameters,
// since ROOT v6.30 have to removeRange() to keep them unlimited
// since ROOT v6.30 have to removeMin() and removeMax() to keep them unlimited
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Run git-clang-format on this file before merge.

The clang-format job is already failing on src/Combine.cc, so this comment-only hunk is still blocking CI.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/Combine.cc` at line 510, Run git-clang-format on the source file
containing the Combine implementation (the file with the comment about
removeMin() and removeMax()); specifically format the file named Combine.cc so
that the clang-format CI job passes, commit the resulting changes, and push
them; this will correct the style issues flagged for symbols like removeMin and
removeMax.

utils::check_inf_parameters(w->allVars(), verbose);

} else {
Expand Down
10 changes: 5 additions & 5 deletions src/utils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -874,7 +874,8 @@
if (tmpParameter) {
cout << "Leave Parameter " << SetParameterRangeExpression[0]
<< " freely floating, with no range\n";
tmpParameter->removeRange();
tmpParameter->removeMin();
tmpParameter->removeMax();

Check warning on line 878 in src/utils.cc

View check run for this annotation

Codecov / codecov/patch

src/utils.cc#L877-L878

Added lines #L877 - L878 were not covered by tests
} else {
std::cout << "Warning: Did not find a parameter with name " << SetParameterRangeExpression[0] << endl;
}
Expand Down Expand Up @@ -930,11 +931,10 @@
std::cout << "Found a parameter named "<< p->GetName()
<< " infinite in ROOT versions < 6.30, going to update the ranges to take into account the new definition of infinity in ROOT v6.30" << endl;
}
if (p->getRange().first <= -infinity_root626 && p->getRange().second >= +infinity_root626) {
p->removeRange();
} else if (p->getRange().second >= +infinity_root626) {
if (p->getRange().second >= +infinity_root626) {
p->removeMax();
} else {
}
if (p->getRange().first <= -infinity_root626) {
p->removeMin();
}
}
Expand Down
Loading