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

G4-11.2.p01 geant-val results #34

Merged
merged 5 commits into from
Apr 15, 2024
Merged
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ The following are results deployed on Geant Val so far. A copy of the used confi

| ATLHECTB | Reproduce data | Reproduce analysis | Comments |
| ------------- | ---------- | ----------- | ----------- |
| v2.6.2 <br /> Dataset #2 tag 2.6.2_1 <br /> G4.11.2.p01 PL: FTFP_BERT(+tune1,2,3), QGSP_BERT, FTFP_BERT_ATL <br /> (Note: no FTFP_INCLXX due to a crash to be investigated) <br /> Added on 15/4/2024 | python3 mc-config-generator.py submit -t ATLHECTB -d OUTPUTxxx -v xxx -q "testmatch" -r | python3 mc-config-generator.py parse -t ATLHECTB -d OUTPUTxxx | First results produced on el9 lxplus machines. |
| v2.5 <br /> Dataset #2 tag 2.5_2 <br /> (G4.10.4.p03, G4.10.5.p01, G4.10.6.p03, G4.10.7.p01, G4.10.7.p03, G4.11.0.p04, G4.11.1.p01) <br />(PL: FTFP_BERT, QGSP_BERT, FTFP_BERT_ATL, FTFP_INCLXX) <br /> (Note: no FTFP_INCLXX for 10.4.p03) (Note: for G4.11.1.p01 FTFP_BERT(+tunes1,2,3) have been included) <br /> Added on 2/5/2023 | python mc-config-generator.py submit -t ATLHECTB -d OUTPUTxxx -v xxx -q "testmatch" -r | python mc-config-generator.py parse -t ATLHECTB -d OUTPUTxxx | New results by v2.5, previous results on geant-val to be removed. Exp. data json files not recreated, kept the 2.4_2 ones. Results with 10.4.p03 obtained in single thread mode, see [Bugs report](#bugs-report). |
| v2.4 <br /> Dataset #2 <br /> tag 2.4_2 (Geant4.10.7.p03, Geant4.11.0.p03 ATLHECTB v2.4, FTFP_BERT, FTFP_BERT_ATL, QGSP_BERT, FTFP_BERT_INCLXX) (Geant4.11.1, ATLHECTB v2.4, FTFP_BERT(+tune1-2-3), FTFP_BERT_ATL, QGSP_BERT, FTFP_BERT_INCLXX) <br /> ~Added on 4/2/2023~ Removed on 2/5/2023 (exp. data not removed) <br /> | python mc-config-generator.py submit -t ATLHECTB -d OUTPUT -v 10.7.p03 (11.0.p03, 11.1) -q "testmatch" -r | python mc-config-generator.py parse -t ATLHECTB -d OUTPUT | Results for three Geant4 versions using v2.4 i.e. simulation with scintillators + new pi/e and longitudinal shape analysis. New exp. data uploaded (better error bars) reproducable with parser.py v2.4.|
| v2.1 <br /> Dataset #2 <br /> tag 2.1_2 (Geant4.10.05.p01, ATLHECTB v2.1, FTFP_BERT, FTFP_BERT_ATL, QGSP_BERT, FTFP_BERT_INCLXX) (Geant4.10.4, Geant4.10.4.p01, ATLHECTB v2.1, FTFP_BERT, FTFP_BERT_ATL, QGSP_BERT) <br /> ~Added on 28/10/2021~ Removed on 2/5/2023 <br /> | python mc-config-generator.py submit -t ATLHECTB -d OUTPUT -v 10.5.p01 (10.4, 10.4.p01) -q "testmatch" -r | python mc-config-generator.py parse -t ATLHECTB -d OUTPUT | Results for three Geant4 versions, can be compared to tag 2.1_1, 2.0_1, and 2.0_2. Results for 10.4 and 10.4.p01 obtained in single thread mode, see [Bugs report](#bugs-report).|
Expand Down
2 changes: 1 addition & 1 deletion geantval_scripts/ATLHECTB/params.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!PHYSLIST=FTFP_BERT, QGSP_BERT, FTFP_BERT_ATL, FTFP_INCLXX
!PHYSLIST=FTFP_BERT, FTFP_BERT_tune1, FTFP_BERT_tune2, FTFP_BERT_tune3, QGSP_BERT, FTFP_BERT_ATL, FTFP_INCLXX
!CONST:ENERGY_UNIT=GeV
PARTICLE | ENERGY | PHYSLIST | NEVENTS
pi- | 20. | PHYSLIST | 50000
Expand Down
40 changes: 20 additions & 20 deletions geantval_scripts/ATLHECTB/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@ def parse(self, jobs):
pienergies = [float(x["ENERGY"]) for x in pijobs]
pifiles = [os.path.join(x["path"], "ATLHECTBout_Run0.root")
for x in pijobs]
print "Found "+str(len(jobs))+" runs in jobs:"
print "--->" + str(len(ectrjobs)) + " jobs with e-, energies (GeV): " + str(ectrenergies) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print("Found "+str(len(jobs))+" runs in jobs:")
print("--->" + str(len(ectrjobs)) + " jobs with e-, energies (GeV): " + str(ectrenergies) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
# print "------> files: ", ectrfiles
print "--->" + str(len(pijobs)) + " jobs with pi-, energies (GeV): " + str(pienergies) + " ,physlist: " + str(set([x["PHYSLIST"] for x in pijobs]))
print("--->" + str(len(pijobs)) + " jobs with pi-, energies (GeV): " + str(pienergies) + " ,physlist: " + str(set([x["PHYSLIST"] for x in pijobs])))
# print "------> files: ", pifiles

# e- analysis
#
print "Running e- analysis"
print("Running e- analysis")
sampfractions = []
ersampfractions = []
resolutions = []
Expand All @@ -71,8 +71,8 @@ def parse(self, jobs):
* 100) # percent value
sampfractions.append(H1sampfraction.GetMean())
ersampfractions.append(H1sampfraction.GetMeanError())
print "--->e- sampling fraction: " + str(sampfractions) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print "--->e- avg sampling fraction: " + str(np.mean(sampfractions)) + "%" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print("--->e- sampling fraction: " + str(sampfractions) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
print("--->e- avg sampling fraction: " + str(np.mean(sampfractions)) + "%" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
outfile = TFile.Open("OUTe-"+str(ectrjobs[0]["PHYSLIST"])+".root", "RECREATE")
for energy in eenergies:
# Find e- job with corresponding energy
Expand Down Expand Up @@ -107,9 +107,9 @@ def parse(self, jobs):
erecenergies.append(recenergy.GetFunction("gaus").GetParameter(1))
outfile.cd()
recenergy.Write()
print "--->e- sampling terms in resolution: " + str(resolutions) + " %GeV^{1/2}" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print "--->e- avg sampling term in resolution: " + str(np.mean(resolutions)) + " %GeV^{1/2}" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print "-->e- reconstructed energies: " + str(erecenergies) + ",physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print("--->e- sampling terms in resolution: " + str(resolutions) + " %GeV^{1/2}" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
print("--->e- avg sampling term in resolution: " + str(np.mean(resolutions)) + " %GeV^{1/2}" + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
print("-->e- reconstructed energies: " + str(erecenergies) + ",physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))

# This contains e- reconstructed energies or 99% of beam energy
# if no data are available
Expand Down Expand Up @@ -159,7 +159,7 @@ def parse(self, jobs):

# pi- analysis
#
print "Running pi- analysis"
print("Running pi- analysis")
responses = []
erresponses = []
resolutions = []
Expand Down Expand Up @@ -363,16 +363,16 @@ def parse(self, jobs):
erL0 = [0.005*x for x in L0]
ersigmaL0 = [0.005*x for x in sigmaL0]

print "--->pi- pi/e: " + str(responses) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs]))
print "--->pi- avg pi/e: " + str(np.mean(responses))
print "--->pi- resolutions: " + str(resolutions) + " %"
print "--->pi- avg resolution: " + str(np.mean(resolutions)) + " %"
print "--->pi- F1: " + str(F1)
print "--->pi- F2: " + str(F2)
print "--->pi- F3: " + str(F3)
print "--->pi- F4: " + str(F4)
print "--->pi- L0 [cm]: " + str(L0)
print "--->pi- sigmaL0 [cm]: " + str(sigmaL0)
print("--->pi- pi/e: " + str(responses) + " ,physlist: " + str(set([x["PHYSLIST"] for x in ectrjobs])))
print("--->pi- avg pi/e: " + str(np.mean(responses)))
print("--->pi- resolutions: " + str(resolutions) + " %")
print("--->pi- avg resolution: " + str(np.mean(resolutions)) + " %")
print("--->pi- F1: " + str(F1))
print("--->pi- F2: " + str(F2))
print("--->pi- F3: " + str(F3))
print("--->pi- F4: " + str(F4))
print("--->pi- L0 [cm]: " + str(L0))
print("--->pi- sigmaL0 [cm]: " + str(sigmaL0))

# Create JSON output files for pi- energy resolution (graph)
#
Expand Down
21 changes: 21 additions & 0 deletions geantval_scripts/configs/11.2.p01.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

export G4GCC_VERSION="12"
export G4GCC_PLATFORM="x86_64-el9-gcc12-opt"
export GEANT4_VERSION="11.2"
export GEANT4_PLATFORM="x86_64-el9-gcc12-optdeb-MT"
export GCC_VERSION="12"
export GCC_PLATFORM="x86_64-el9-gcc12-opt"

source /cvmfs/sft.cern.ch/lcg/contrib/gcc/${G4GCC_VERSION}/${G4GCC_PLATFORM}/setup.sh
source /cvmfs/geant4.cern.ch/geant4/${GEANT4_VERSION}/${GEANT4_PLATFORM}/bin/geant4.sh
source /cvmfs/sft.cern.ch/lcg/contrib/gcc/${GCC_VERSION}/${GCC_PLATFORM}/setup.sh

# Test path
GVALPATH="/cvmfs/geant4.cern.ch/opt-geant-val/$GEANT4_VERSION/$GEANT4_PLATFORM/bin:/cvmfs/geant4.cern.ch/opt/$GEANT4_VERSION/$GEANT4_PLATFORM/bin"
YOURPATH="/afs/cern.ch/work/l/lopezzot/Fellow/ATLHECTB/build/"
export PATH="$GVALPATH:$PATH:$YOURPATH"

# Geant Val exports
export VERSION=$GEANT4_VERSION
export PLATFORM=$GEANT4_PLATFORM
8 changes: 8 additions & 0 deletions scripts/ATLHECTB_lxplus_11.2.p01.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh

source /cvmfs/sft.cern.ch/lcg/contrib/gcc/12/x86_64-el9-gcc12-opt/setup.sh
source /cvmfs/geant4.cern.ch/geant4/11.2.p01/x86_64-el9-gcc12-optdeb-MT/CMake-setup.sh
export CXX=`which g++`
export CC=`which gcc`
cmake3 -DGeant4_DIR=/cvmfs/geant4.cern.ch/geant4/11.2.p01/x86_64-el9-gcc12-optdeb-MT/lib64/Geant4-11.2.1/ ../ATLHECTB/
make -j$(nproc)
Loading