Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build for going solo #5

Open
WolfgangWaltenberger opened this issue Apr 4, 2024 · 14 comments
Open

build for going solo #5

WolfgangWaltenberger opened this issue Apr 4, 2024 · 14 comments

Comments

@WolfgangWaltenberger
Copy link

WolfgangWaltenberger commented Apr 4, 2024

Hey guys, I am trying to build ColliderBit/examples/solo.cpp, I have successfully built gambit proper.
I am somehwat lost as to finding all the right -I, -l and -L flags. I did not find any help on that in the documentation, either.
Would it be possible for one of guys to help me out here? I assume it's on purpose that there aren't any build files in the examples directories?

[gambit 2.4.4] Thanks in advance

Wolfgang

@WolfgangWaltenberger
Copy link
Author

Ah never mind, found the target in the toplevel makefile. sorry for the bother.
Wolfgang

@WolfgangWaltenberger
Copy link
Author

Actually, sorry for the noise, let me reopen this. I cant find a simple recipe to find the solo executable for the colliderbit. Could someone please gently point me in the right direction here?

cheers

Wolfgang

@anderkve
Copy link
Contributor

Hi @WolfgangWaltenberger!

As mentioned via email, ColliderBit Solo isn't 100% polished or documented yet, but it should be working. The build target is "CBS".

I just now tried to build CBS from a fresh clone of gambit 2.4.4 on my laptop with the following commands:

mkdir build ; cd build

cmake -DEIGEN3_INCLUDE_DIR="/path/to/my/eigen-3.4.0" -DWITH_YODA=True -DWITH_HEPMC=True -DWITH_ROOT=True -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_Fortran_COMPILER=gfortran-11 ..

make CBS

That seems to have worked as expected. So try something along those lines and let me know how it goes.

@WolfgangWaltenberger
Copy link
Author

Perfect, that worked! The only think I was missing was the name of the target, CBS. I have been trying targets
that had the word "solo" in it. I can run it, so now I need a yaml file that is configured for CBS to take hepmc as input,
and spit out signal efficiencies (or signal yields) as output. Can I please ask you to point me to a decent starting point
of yaml file for this? Much appreciated! Wolfgang

@anderkve
Copy link
Contributor

There's an example yaml file in ColliderBit/examples/solo_example.yaml -- see here: https://github.com/GambitBSM/gambit_2.4/blob/release_2.4/ColliderBit/examples/solo_example.yaml

So try running ./CBS ColliderBit/examples/solo_example.yaml.

Note that this is a minimal example -- there are actually many more options that can be added in the yaml file. I can send you a more complete yaml file soon.

One more thing: For CBS to work you probably also need to build two more backend codes for GAMBIT. So do the following before running CBS:

cd build
make nulike
make ATLAS_FullLikes

(If you forget, you should get a sensible error message when CBS starts.)

@WolfgangWaltenberger
Copy link
Author

Halleluiah, it is working:

...
Signal region SRB bveto [150, 230] (SR index 12):
Observed events: 18
SM prediction: 15.7 +/- 2.3
Signal prediction: 167.073 +/- 167.073
Log-likelihood: -0.366338
...

I am so exuberantly happy right now ;) One quick question, the output above was a result of 820 hepmc events.
I would have thought that like the other numbers in this list, the signal prediction is given as yields, thus integer numbers.
Why am I seeing real-valued numbers?
Thanks a ton!

Wolfgang

@andrewfowlie
Copy link
Contributor

167.073 +/- 167.073 looks strange as well.

@WolfgangWaltenberger
Copy link
Author

It seems to correspond to 1 event. I wanted to create 1000 events, 820 survived the generators' cuts, I sent them through CMS-SUS-20-001/CMS_13TeV_2OSLEP_137invf. That analysis has an integrated lumi of 137/fb.
The summary cutflow table reads:

0 All events 820
1 Baseline preliminary selections 32
2 Baseline lepton selections 7
3 Signal regions selections 1

Thats +/- all i know for now.

Wolfgang

@anderkve
Copy link
Contributor

Yes, the printed signal prediction is scaled to the cross-section * luminosity, hence the non-integer value. The luminosity is hard-coded in the given analysis source file, and you set the total production cross-section for your parameter point in the CBS yaml file.

@WolfgangWaltenberger
Copy link
Author

right silly me, i could have guessed. sorry for the noise
Wolfgang

@WolfgangWaltenberger
Copy link
Author

Success! So below, you see the first two SModelS validation plots produced from colliderbit "efficiency maps".

So:

*) a first version of the machinery is technically working! Yay!
*) numerically something is still off (the black lines and the blue lines would have to approximately coincide)
*) as these are my very first such plots, the remaining numerical problem is most likely with me
*) we will of course track the usage of colliderbit/gambit in our results' meta data, and will cite colliderbit, whenever
a colliderbit-produced result gets used (and tell our users to do so as well).
*) just to be sure the colliderbit implementation of an analysis is ok, do you guys collect some kind of validation material?
*) The last point will be particularly important for us once our validation results are "kinda/almost good". We will want to
know if the "kinda/almost" is due to us or due to colliderbit.
*) JFYI, these first plots are CMS-SUS-20-001 == CMS_13TeV_2OSLEP_137invfb. I strongly assume yes, but just to be sure,
from the gambit side this analysis should be good, right?
*) our signal efficiencies (what ATLAS calls "A x epsilon") are computed for a "cross_section_pb: 0.001",
as: eff := "Signal prediction" / (lumi[fb]).

Thanks a ton,

Wolfgang

TChiWZ_2EqMassAx_EqMassBy_combined_pretty
TSlepSlep_2EqMassAx_EqMassBy_combined_pretty

@WolfgangWaltenberger
Copy link
Author

ah wait, you said n := Y * lumi, okay, maybe the / lumi is wrong. will try.

@WolfgangWaltenberger
Copy link
Author

ah wait, you said n := Y * lumi, okay, maybe the / lumi is wrong. will try.

nah, that's not it. that's correct how i did it.

@WolfgangWaltenberger
Copy link
Author

WolfgangWaltenberger commented Apr 19, 2024

I think I understand. You guys could only harvest about half of the signal regions, mostly the ones for hadronic signatures. Thats why for gluino gluino production, gluino -> qq N2, N2 -> Z N1, things tend to work. Not for the ewkino case -- no SR survived. For the sleptons case you guys got half the SRs to work.

T5ZZ_2EqMassAx_EqMassBy_EqMassC1 0_combined_pretty

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants