diff --git a/.gitignore b/.gitignore index c0ac296d3fb..8cea159b21b 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,8 @@ benchmark*json # Graphviz graphs *.dot *.png + +# Condor logs +*.err +*.out +*.log \ No newline at end of file diff --git a/analyzers/dataframe/FCCAnalyses/MCParticle.h b/analyzers/dataframe/FCCAnalyses/MCParticle.h index b2c6c31b870..c4ec7041ffa 100644 --- a/analyzers/dataframe/FCCAnalyses/MCParticle.h +++ b/analyzers/dataframe/FCCAnalyses/MCParticle.h @@ -39,6 +39,13 @@ namespace MCParticle{ ROOT::VecOps::RVec operator() (ROOT::VecOps::RVec in); }; + /// select MCParticles with absolute pseudorapidity less than a max value + struct sel_eta { + sel_eta(float arg_min_eta); + float m_min_eta = 2.5; //> pseudorapidity threshold + ROOT::VecOps::RVec operator() (ROOT::VecOps::RVec in); + }; + /// select MCParticles with their status struct sel_genStatus { sel_genStatus(int arg_status); @@ -188,9 +195,18 @@ namespace MCParticle{ /// return the phi of the input MCParticles ROOT::VecOps::RVec get_phi(ROOT::VecOps::RVec in); - /// return the delta r of the input ReconstructedParticles + /// return the delta eta of the input MCParticles + ROOT::VecOps::RVec get_delta_eta(ROOT::VecOps::RVec in); + + /// return the delta phi of the input MCParticles + ROOT::VecOps::RVec get_delta_phi(ROOT::VecOps::RVec in); + + /// return the delta r of the input MCParticles ROOT::VecOps::RVec get_delta_r(ROOT::VecOps::RVec in); + /// return the min delta r of the input MCParticles + ROOT::VecOps::RVec get_min_delta_r(ROOT::VecOps::RVec in); + /// return the energy of the input MCParticles ROOT::VecOps::RVec get_e(ROOT::VecOps::RVec in); diff --git a/analyzers/dataframe/FCCAnalyses/ReconstructedParticle.h b/analyzers/dataframe/FCCAnalyses/ReconstructedParticle.h index fd6a805167d..5279aca2227 100644 --- a/analyzers/dataframe/FCCAnalyses/ReconstructedParticle.h +++ b/analyzers/dataframe/FCCAnalyses/ReconstructedParticle.h @@ -110,6 +110,8 @@ namespace ReconstructedParticle{ /// return the momenta of the input ReconstructedParticles ROOT::VecOps::RVec get_p(ROOT::VecOps::RVec in); + float get_diphoton_deltaR(edm4hep::ReconstructedParticleData p, edm4hep::ReconstructedParticleData diphoton1 , edm4hep::ReconstructedParticleData diphoton2); + /// return the momenta of the input ReconstructedParticles ROOT::VecOps::RVec get_px(ROOT::VecOps::RVec in); @@ -128,6 +130,14 @@ namespace ReconstructedParticle{ /// return the theta of the input ReconstructedParticles ROOT::VecOps::RVec get_theta(ROOT::VecOps::RVec in); + /// return the distance of particle to the calorimeter barrel or endcap based on its current trajectory + //ROOT::VecOps::RVec get_L2calorimeter(ROOT::VecOps::RVec photon, float ALP_Lx, float ALP_Ly, float ALP_Lz); + + /// return coordiantes of calorimeter hit of a prompt photon coming from the interaction point + ROOT::VecOps::RVec> get_prompt_photon_calorimeter_hits(ROOT::VecOps::RVec photon); + + ROOT::VecOps::RVec> get_displaced_photon_calorimeter_hits(ROOT::VecOps::RVec photon,float ALP_Lx, float ALP_Ly, float ALP_Lz); + /// return the phi of the input ReconstructedParticles ROOT::VecOps::RVec get_phi(ROOT::VecOps::RVec in); @@ -140,9 +150,15 @@ namespace ReconstructedParticle{ /// return the delta r of the input ReconstructedParticles ROOT::VecOps::RVec get_delta_r(ROOT::VecOps::RVec in); + /// return the delta r of the input ReconstructedParticles + float get_delta_r(edm4hep::ReconstructedParticleData p1, edm4hep::ReconstructedParticleData p2); + /// return the minimum delta r of the input ReconstructedParticles ROOT::VecOps::RVec get_min_delta_r(ROOT::VecOps::RVec in); + /// return the photon indices of the minimum delta r of the input ReconstructedParticles + ROOT::VecOps::RVec get_pidx_min_delta_r(ROOT::VecOps::RVec in); + /// return the energy of the input ReconstructedParticles ROOT::VecOps::RVec get_reference_point_x(ROOT::VecOps::RVec in); diff --git a/analyzers/dataframe/src/MCParticle.cc b/analyzers/dataframe/src/MCParticle.cc index 1d7756fb850..32e83b2e74f 100644 --- a/analyzers/dataframe/src/MCParticle.cc +++ b/analyzers/dataframe/src/MCParticle.cc @@ -72,6 +72,21 @@ ROOT::VecOps::RVec sel_pt::operator() (ROOT::VecOps::R return result; } +sel_eta::sel_eta(float arg_min_eta) : m_min_eta(arg_min_eta) {}; +ROOT::VecOps::RVec sel_eta::operator() (ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + result.reserve(in.size()); + for (size_t i = 0; i < in.size(); ++i) { + auto & p = in[i]; + TLorentzVector tv1; + tv1.SetXYZM(p.momentum.x, p.momentum.y, p.momentum.z, p.mass); + if (abs(tv1.Eta()) < abs(m_min_eta)){ + result.emplace_back(p); + } + } + return result; +} + filter_pdgID::filter_pdgID(int arg_pdgid, bool arg_abs){m_pdgid = arg_pdgid; m_abs = arg_abs;}; bool filter_pdgID::operator() (ROOT::VecOps::RVec in) { @@ -337,6 +352,38 @@ ROOT::VecOps::RVec get_phi(ROOT::VecOps::RVec in return result; } + +ROOT::VecOps::RVec get_delta_eta(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + for (int i = 0; i < in.size(); i++) { + TLorentzVector tlv1; + tlv1.SetXYZM(in[i].momentum.x, in[i].momentum.y, in[i].momentum.z, in[i].mass); + for (auto j = i + 1; j < in.size(); j++) { + TLorentzVector tlv2; + tlv2.SetXYZM(in[j].momentum.x, in[j].momentum.y, in[j].momentum.z, in[j].mass); + float delta_eta = abs(tlv1.Eta() - tlv2.Eta()); + result.push_back(delta_eta); + } + } + return result; +} + +ROOT::VecOps::RVec get_delta_phi(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + for (int i = 0; i < in.size(); i++) { + TLorentzVector tlv1; + tlv1.SetXYZM(in[i].momentum.x, in[i].momentum.y, in[i].momentum.z, in[i].mass); + for (auto j = i + 1; j < in.size(); j++) { + TLorentzVector tlv2; + tlv2.SetXYZM(in[j].momentum.x, in[j].momentum.y, in[j].momentum.z, in[j].mass); + float delta_phi = tlv1.DeltaPhi(tlv2); + result.push_back(delta_phi); + } + } + return result; +} + + ROOT::VecOps::RVec get_delta_r(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (int i = 0; i < in.size(); i++) { @@ -352,6 +399,32 @@ ROOT::VecOps::RVec get_delta_r(ROOT::VecOps::RVec get_min_delta_r(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + float min_delta_r = 999; + // p1idx = -1 + // p2idx = -1 + for (int i = 0; i < in.size(); i++) { + TLorentzVector tlv1; + tlv1.SetXYZM(in[i].momentum.x, in[i].momentum.y, in[i].momentum.z, in[i].mass); + for (int j = i + 1; j < in.size(); j++) { + TLorentzVector tlv2; + tlv2.SetXYZM(in[j].momentum.x, in[j].momentum.y, in[j].momentum.z, in[j].mass); + float delta_r = tlv1.DeltaR(tlv2); + if (delta_r < min_delta_r) { + min_delta_r = delta_r; + // p1idx = i + // p2idx = j + } + } + } + result.push_back(min_delta_r); + // if(p1idx > -1) + // result.emplace_back(in[p1idx]); + // result.emplace_back(in[p2idx]); + return result; +} + ROOT::VecOps::RVec get_e(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (auto & p: in) { diff --git a/analyzers/dataframe/src/ReconstructedParticle.cc b/analyzers/dataframe/src/ReconstructedParticle.cc index fcad3a64166..ed353afdc97 100644 --- a/analyzers/dataframe/src/ReconstructedParticle.cc +++ b/analyzers/dataframe/src/ReconstructedParticle.cc @@ -387,6 +387,15 @@ ROOT::VecOps::RVec get_delta_r(ROOT::VecOps::RVec get_min_delta_r(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; float min_delta_r = 999; @@ -406,6 +415,35 @@ ROOT::VecOps::RVec get_min_delta_r(ROOT::VecOps::RVec get_pidx_min_delta_r(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + float min_delta_r = 999; + int p1idx = -1; + int p2idx = -1; + for (int i = 0; i < in.size(); i++) { + TLorentzVector tlv1; + tlv1.SetXYZM(in[i].momentum.x, in[i].momentum.y, in[i].momentum.z, in[i].mass); + for (int j = i + 1; j < in.size(); j++) { + TLorentzVector tlv2; + tlv2.SetXYZM(in[j].momentum.x, in[j].momentum.y, in[j].momentum.z, in[j].mass); + float delta_r = tlv1.DeltaR(tlv2); + if (delta_r < min_delta_r) { + min_delta_r = delta_r; + p1idx = i; + p2idx = j; + } + } + } + + if(p1idx > -1 && p2idx > -1) + result.emplace_back(p1idx); + result.emplace_back(p2idx); + // std::cout << p1idx << " " << p2idx << std::endl; + return result; +} + + + ROOT::VecOps::RVec get_reference_point_x(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (auto & p: in) { @@ -414,6 +452,22 @@ ROOT::VecOps::RVec get_reference_point_x(ROOT::VecOps::RVec get_reference_point_y(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + for (auto & p: in) { + result.push_back(p.referencePoint.y); + } + return result; +} + +ROOT::VecOps::RVec get_reference_point_z(ROOT::VecOps::RVec in) { + ROOT::VecOps::RVec result; + for (auto & p: in) { + result.push_back(p.referencePoint.z); + } + return result; +} + ROOT::VecOps::RVec get_e(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (auto & p: in) { @@ -440,6 +494,15 @@ ROOT::VecOps::RVec get_p(ROOT::VecOps::RVec result; + TLorentzVector diphoton_tlv, p_tlv; + diphoton_tlv.SetXYZM(diphoton1.momentum.x+diphoton2.momentum.x, diphoton1.momentum.y+diphoton2.momentum.y, diphoton1.momentum.z+diphoton2.momentum.z, diphoton1.mass+diphoton2.mass); + p_tlv.SetXYZM(p.momentum.x, p.momentum.y, p.momentum.z, p.mass); + float delta_r = diphoton_tlv.DeltaR(p_tlv); + return delta_r; +} + ROOT::VecOps::RVec get_px(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (auto & p: in) { @@ -493,6 +556,82 @@ ROOT::VecOps::RVec get_theta(ROOT::VecOps::RVec> get_prompt_photon_calorimeter_hits(ROOT::VecOps::RVec photon) { + const float R = 2500.0; //calorimeter radius and length is 2500mm + const float Zmax = 2500.0; + ROOT::VecOps::RVec> result; + for (auto & p : photon) { + TLorentzVector tlv; + tlv.SetXYZM(p.momentum.x, p.momentum.y, p.momentum.z, p.mass); + TVector3 direction = tlv.Vect().Unit(); + float ux = static_cast(direction.X()); + float uy = static_cast(direction.Y()); + float uz = static_cast(direction.Z()); + float t_r = R / sqrt(ux*ux + uy*uy); + float t_z = Zmax / fabs(uz); + float t_hit = std::min(t_r, t_z); + + // float ux2 = sin(tlv.Theta())*cos(tlv.Phi()); + // float uy2 = sin(tlv.Theta())*sin(tlv.Phi()); + // float uz2 = cos(tlv.Theta()); + + std::vector hit_pos = {t_hit * ux, t_hit * uy, t_hit * uz}; + + + + result.push_back(hit_pos); + } + return result; +} + +ROOT::VecOps::RVec> get_displaced_photon_calorimeter_hits(ROOT::VecOps::RVec photon,float ALP_Lx, float ALP_Ly, float ALP_Lz) { + const float R = 2500.0; //calorimeter radius and length is 2500mm + const float Zmax = 2500.0; + ROOT::VecOps::RVec> result; + for (auto & p : photon) { + TLorentzVector tlv; + tlv.SetXYZM(p.momentum.x, p.momentum.y, p.momentum.z, p.mass); + TVector3 direction = tlv.Vect().Unit(); + float ux = static_cast(direction.X()); + float uy = static_cast(direction.Y()); + float uz = static_cast(direction.Z()); + + ///solving quadratic equation to find intersection with calorimeter + /// (ALP_Lx + t * ux)^2 + (ALP_Ly + t * uy)^2 = R^2 and solve for t + /// (ux^2 + uy^2) * t^2 + 2 * (ALP_Lx * ux + ALP_Ly * uy) * t + (ALP_Lx^2 + ALP_Ly^2 - R^2) = 0 + float a = 2.0f * (ALP_Lx * ux + ALP_Ly * uy); + float b = a * a - 4 * (ux * ux + uy * uy) * (ALP_Lx * ALP_Lx + ALP_Ly * ALP_Ly - R * R); + + float t_r = 99999999; + + if (b >= 0) { + float t1 = (-a + sqrt(b)) / (2 * (ux * ux + uy * uy)); + float t2 = (-a - sqrt(b)) / (2 * (ux * ux + uy * uy)); + if (t1 > 0) t_r = t1; + if (t2 > 0) t_r = std::min(t_r, t2); + } + + float t_z_pos = (Zmax - ALP_Lz) / uz; + float t_z_neg = (-Zmax - ALP_Lz) / uz; + float t_z = 99999999; + if (t_z_pos > 0 && fabs(ALP_Lz + t_z_pos * uz) <= Zmax) t_z = t_z_pos; + if (t_z_neg > 0 && fabs(ALP_Lz + t_z_neg * uz) <= Zmax) t_z = std::min(t_z, t_z_neg); + + if (t_r < 0) t_r = 99999999; + if (t_z < 0) t_z = 99999999; + + float t_hit = std::min(t_r, t_z); + + std::vector hit_pos = {ALP_Lx + t_hit * ux, ALP_Ly + t_hit * uy, ALP_Lz + t_hit * uz}; + result.push_back(hit_pos); + } + return result; +} + + + + ROOT::VecOps::RVec get_tlv(ROOT::VecOps::RVec in) { ROOT::VecOps::RVec result; for (auto & p: in) { diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia.cmnd b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia.cmnd index b9ed83503fe..b56e0d46184 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia.cmnd +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia.cmnd @@ -1,17 +1,19 @@ ! File: ALP_pythia.cmd Random:setSeed = on Main:timesAllowErrors = 10 ! how many aborts before run stops -Main:numberOfEvents = 100000 ! number of events to generate +Main:numberOfEvents = 1000000 ! number of events to generate ! 2) Settings related to output in init(), next() and stat(). -Next:numberCount = 100 ! print message every n events +Next:numberCount = 1000 ! print message every n events !Beams:idA = 11 ! first beam, e+ = 11 !Beams:idB = -11 ! second beam, e- = -11 Beams:frameType = 4 ! read info from a LHEF ! Change the LHE file here -Beams:LHEF = ALP_Z_aa_1GeV_cYY_0p5.lhe +!Beams:LHEF = /eos/experiment/fcc/ee/analyses_storage/BSM/LLPs/ALPs_3photons/mg5amcnlo/madgraph_5_1.0/Events/run_01/unweighted_events.lhe +Beams:LHEF = /eos/user/e/ebakhish/MG/MGOutput/Backgrounds/background_ee_aa/Events/run_01/unweighted_events.lhe.gz + ! 3) Settings for the event generation process in the Pythia8 library. PartonLevel:ISR = on ! initial-state radiation diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia_sample.cmnd b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia_sample.cmnd new file mode 100644 index 00000000000..95178f829b7 --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia_sample.cmnd @@ -0,0 +1,25 @@ +#don't delete this file, this template is used to produce pythia outputs with the shell script "runPythiaDelphesCondor.sh" + + +! File: ALP_pythia.cmd +Random:setSeed = on +Main:timesAllowErrors = 10 ! how many aborts before run stops +Main:numberOfEvents = NUMBEROFEVENTS ! number of events to generate + + +! 2) Settings related to output in init(), next() and stat(). +Next:numberCount = 100 ! print message every n events +!Beams:idA = 11 ! first beam, e+ = 11 +!Beams:idB = -11 ! second beam, e- = -11 + +Beams:frameType = 4 ! read info from a LHEF +! Change the LHE file here +!Beams:LHEF = /eos/experiment/fcc/ee/analyses_storage/BSM/LLPs/ALPs_3photons/mg5amcnlo/madgraph_5_1.0/Events/run_01/unweighted_events.lhe +Beams:LHEF = INPUTFILE + + +! 3) Settings for the event generation process in the Pythia8 library. +PartonLevel:ISR = on ! initial-state radiation +PartonLevel:FSR = on ! final-state radiation + +LesHouches:setLifetime = 2 diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sh b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sh new file mode 100755 index 00000000000..33b8abaf053 --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# *** run this with bash mg.sh to create ALP signal events, +# *** mass and coupling should always be denoted with a . for decimal (e.g. 0.3 for 0.3 GeV) + +job_number=$1 +mass=$2 +coupling=$3 +nevents=$4 + +mass_filename=$(echo ${mass} | sed "s/\./p/g") +coupling_filename=$(echo ${coupling} | sed "s/\./p/g") +baseoutputdir="ALP_Z_aa_${mass_filename}GeV_cYY${coupling_filename}" + +# Define the EOS base directory +eos_base_dir="/eos/user/e/ebakhish/MG/MGOutput" +# afs_base_dir="/afs/cern.ch/user/e/ebakhish/FCCAnalyses/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/MGOutput" + +#create directory for output +if [ ! -d "/eos/user/e/ebakhish/MG/MGOutput/${baseoutputdir}" ]; then + mkdir -p "/eos/user/e/ebakhish/MG/MGOutput/${baseoutputdir}" +fi +# if [ ! -d "${afs_base_dir}/${baseoutputdir}" ]; then +# mkdir -p "${afs_base_dir}/${baseoutputdir}" +# fi + + +output_dir="${eos_base_dir}/${baseoutputdir}/${baseoutputdir}_${job_number}" +# output_dir="${afs_base_dir}/${baseoutputdir}/${baseoutputdir}_${job_number}" + +# if [ -d "$output_dir" ]; then +# counter=1 +# while [ -d "${output_dir}_v${counter}" ]; do +# counter=$((counter + 1)) +# done +# output_dir="${output_dir}_v${counter}" +# fi + +temp_card="/eos/user/e/ebakhish/MG/Processcards/${baseoutputdir}_${job_number}.dat" + +# temp_card="/afs/cern.ch/user/e/ebakhish/FCCAnalyses/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/Processcards/${baseoutputdir}_${job_number}.dat" +input_file="/afs/cern.ch/user/e/ebakhish/FCCAnalyses/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg_cards_collection/mg5_proc_card_ALP_Z_aa_template.dat" + +#random seed number for MG +seed=$(($RANDOM % 900000000 + 1)) + +# Create temporary process card with unique output path +#this line searches for certain variables in the input file and replaces them with our defined properties +sed "s|ALPMASS|${mass}|g;s|ALPCOUPLING|${coupling}|g;s|OUTPUTDIR|${output_dir}|g;s|NUMBEROFEVENTS|${nevents}|g;s|SEEDNUMBER|${seed}|g" $input_file > $temp_card + +# Run MadGraph with temporary card +#./bin/mg5_aMC $temp_card +/afs/cern.ch/user/e/ebakhish/MG5_aMC_v3_5_6/bin/mg5_aMC $temp_card + +# Clean up temporary card +# rm $temp_card \ No newline at end of file diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sub b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sub new file mode 100644 index 00000000000..97bd1606859 --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg.sub @@ -0,0 +1,14 @@ +#submit description file for HTCondor + +Universe = vanilla +executable = mg.sh +arguments = $(ProcId) 2.0 1.0 100000 +GetEnv = True +output = output/$(ClusterId).$(ProcId).out +error = error/$(ClusterId).$(ProcId).err +log = log/$(ClusterId).log +#requirements = ( OpSysAndVer == "RedHat9") +# request_memory = 4 GB ++JobFlavour = "espresso" + +queue 10 \ No newline at end of file diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg_cards_collection/mg5_proc_card_ALP_Z_aa_template.dat b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg_cards_collection/mg5_proc_card_ALP_Z_aa_template.dat new file mode 100644 index 00000000000..bb18f2924fa --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_MadGraph/mg_cards_collection/mg5_proc_card_ALP_Z_aa_template.dat @@ -0,0 +1,83 @@ +#don't delete this file, this template is used to produce madgraph samples with the shell script "mg.sh" + +#************************************************************ +#* MadGraph5_aMC@NLO * +#* * +#* * * * +#* * * * * * +#* * * * * 5 * * * * * +#* * * * * * +#* * * * +#* * +#* * +#* VERSION 3.2.0 2021-08-22 * +#* * +#* The MadGraph5_aMC@NLO Development Team - Find us at * +#* https://server06.fynu.ucl.ac.be/projects/madgraph * +#* * +#************************************************************ +#* * +#* Command File for MadGraph5_aMC@NLO * +#* * +#* run as ./bin/mg5_aMC filename * +#* * +#************************************************************ +set group_subprocesses Auto +set ignore_six_quark_processes False +set low_mem_multicore_nlo_generation False +set complex_mass_scheme False +set include_lepton_initiated_processes False +set gauge unitary +set loop_optimized_output True +set loop_color_flows False +set max_npoint_for_channel 0 +set default_unset_couplings 99 +set max_t_for_channel 99 +set zerowidth_tchannel True +set nlo_mixed_expansion True +set auto_convert_model T +import model sm +define p = g u c d s u~ c~ d~ s~ +define j = g u c d s u~ c~ d~ s~ +define l+ = e+ mu+ +define l- = e- mu- +define vl = ve vm vt +define vl~ = ve~ vm~ vt~ +import model ALP_NLO_UFO +generate e+ e- > Z, (Z > a ALP, (ALP > a a)) +output OUTPUTDIR +launch OUTPUTDIR +#set run_card draa 0.01 +#set run_card pta 2.0 +done +# set to electron beams (0 for ele, 1 for proton) +set lpp1 0 +set lpp2 0 +set ebeam1 45.594 +set ebeam2 45.594 +# set ALP mass +set Ma ALPMASS +# set ALP couplings +set cWW = 0.0 +set CYY = ALPCOUPLING +set cGG = 0. +set cuu = 0. +set cdd = 0. +set ccc = 0. +set css = 0. +set ctt = 0. +set cbb = 0. +set cee = 0. +set cmumu = 0. +set ctautau = 0. +set cah = 0. +set cZh5 = 0. +# set supression scale in the effective operators coupling the ALP to SM particles: 1000/(16*pi**2) +set falp = 6.33 + +# set the decay width of the ALP to auto +set WALP auto +set time_of_flight 0 +set nevents NUMBEROFEVENTS +set iseed SEEDNUMBER +done diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/PythiaDelphes.sub b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/PythiaDelphes.sub new file mode 100644 index 00000000000..7ae8dc8e312 --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/PythiaDelphes.sub @@ -0,0 +1,16 @@ +#submit description file for HTCondor + +Universe = vanilla +executable = runPythiaDelphesCondor.sh +arguments = $(ProcId) 1.0 1.0 100000 +GetEnv = True +output = output/$(ClusterId).$(ProcId).out +error = error/$(ClusterId).$(ProcId).err +log = log/$(ClusterId).log +#requirements = ( OpSysAndVer == "RedHat9") +# request_memory = 4 GB ++JobFlavour = "espresso" + +queue 100 + +#if running this for the same sample: to avoid overwriting existing samples change $MGfiledir in runPythiaDelphesCondor.sh \ No newline at end of file diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/runPythiaDelphesCondor.sh b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/runPythiaDelphesCondor.sh new file mode 100755 index 00000000000..0d2ad947bf5 --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/Condor_PythiaDelphes/runPythiaDelphesCondor.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# *** run this with bash runPythiaDelphesCondor.sh to find the previously created ALP signal sample from MadGraph +# *** and to run it through PythiaDelphes, mass and coupling should always be denoted with a . for decimal (e.g. 0.3 for 0.3 GeV) + +job_number=$1 +mass=$2 +coupling=$3 +nevents=$4 + +mass_filename=$(echo ${mass} | sed "s/\./p/g") +coupling_filename=$(echo ${coupling} | sed "s/\./p/g") + +baseoutputdir="ALP_Z_aa_${mass_filename}GeV_cYY${coupling_filename}" +MGfiledir="${baseoutputdir}_${job_number}" +#use this with correct number _v... if you are adding more samples afterwards +#MGfiledir="${baseoutputdir}_${job_number}_v1" + +#input .lhe files for the pythia run +inputfile="/eos/user/e/ebakhish/MG/MGOutput/${baseoutputdir}/${MGfiledir}/Events/run_01/unweighted_events.lhe.gz" +pythiacard=/afs/cern.ch/user/e/ebakhish/FCCAnalyses/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/ALP_pythia_sample.cmnd +temp_pythiacard="/eos/user/e/ebakhish/MG/Pythiacards/ALP_pythia_${MGfiledir}.cmnd" +#outputfile= "/eos/user/e/ebakhish/MG/Pythia_Output/${MGfiledir}" + +#this line searches for certain variables in the input file and replaces them with our defined properties for #events and inputfile +sed "s|INPUTFILE|${inputfile}|g;s|NUMBEROFEVENTS|${nevents}|g" $pythiacard > $temp_pythiacard + +#collect the output in specified directory +if [ ! -d "/eos/user/e/ebakhish/MG/Pythia_Output/${baseoutputdir}" ]; then + mkdir -p "/eos/user/e/ebakhish/MG/Pythia_Output/${baseoutputdir}" +fi + + + + +# only run following command if the MadGraph output was successful + +if [ -d "/eos/user/e/ebakhish/MG/MGOutput/${baseoutputdir}/${MGfiledir}/Events/run_01" ]; then + # quick command to run DelphesPythia8_EDM4HEP + # needs one input for the name of the output root-file + DelphesPythia8_EDM4HEP /afs/cern.ch/user/e/ebakhish/FCC-config/FCCee/Delphes/card_IDEA.tcl /afs/cern.ch/user/e/ebakhish/FCC-config/FCCee/Delphes/edm4hep_IDEA.tcl $temp_pythiacard /eos/user/e/ebakhish/MG/Pythia_Output/${baseoutputdir}/${MGfiledir}.root +else + echo "/$MGfiledir/Events/run_01 does not exist" +fi diff --git a/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/runPythiaDelphes.sh b/examples/FCCee/bsm/LLPs/ALPs/ALP_sample_creation/runPythiaDelphes.sh old mode 100644 new mode 100755 diff --git a/examples/FCCee/bsm/LLPs/ALPs/analysis_final.py b/examples/FCCee/bsm/LLPs/ALPs/analysis_final.py index 56dd6c9aca4..c0fde9f4989 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/analysis_final.py +++ b/examples/FCCee/bsm/LLPs/ALPs/analysis_final.py @@ -1,17 +1,21 @@ #Input directory where the files produced at the stage1 level are # inputDir = "./output_stage1/" #inputDir = "/eos/user/j/jalimena/FCCeeLLP/" -inputDir = "./stage1_sameMass/" +#inputDir = "./stage1_output/" +inputDir = "/eos/user/e/ebakhish/stage1_output/final_signals/" + #Output directory where the files produced at the final-selection level are -outputDir = "./final_sameMass/" -#outputDir = "output_finalSel/" +#outputDir = "./final_output/" +outputDir = "/eos/user/e/ebakhish/final_output/cut_flow_4sel/" + #Integrated luminosity for scaling number of events (required only if setting doScale to true) -#intLumi = 150e6 #pb^-1 +# intLumi = 205e6 #pb^-1 #use this for only-photon-background +intLumi = 205e6*0.49 #pb^-1 #use this for the signal event and for resonant z backgrounds to take into account that the Z-pole run is actually spread over three center-of-mass energies #Scale event yields by intLumi and cross section (optional) -#doScale = True +doScale = True #Save event yields in a table (optional) saveTabular = True @@ -31,6 +35,7 @@ # 'ee_aa':{}, # 'ee_aaa':{}, # 'ee_aaaa':{}, + # 'background_ee_aa':{}, #signals @@ -57,18 +62,6 @@ # 'ALP_Z_aa_0.1.GeV_cYY_0.00006':{}, # 'ALP_Z_aa_0.1.GeV_cYY_0.00019':{}, # 'ALP_Z_aa_0.1.GeV_cYY_0.0006':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.0019':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.006':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.019':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.06':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.19':{}, - # 'ALP_Z_aa_0.1.GeV_cYY_0.6':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.000019':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.00006':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.00019':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.0006':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.0019':{}, - # 'ALP_Z_aa_0.316.GeV_cYY_0.006':{}, # 'ALP_Z_aa_0.316.GeV_cYY_0.019':{}, # 'ALP_Z_aa_0.316.GeV_cYY_0.06':{}, # 'ALP_Z_aa_0.316.GeV_cYY_0.19':{}, @@ -122,68 +115,158 @@ # 'ALP_Z_aa_31.6.GeV_cYY_0.19':{}, # 'ALP_Z_aa_31.6.GeV_cYY_0.6':{}, - # 'ee_Z_ALPga_gagaga':{}, - - # 'ALP_Z_aa_1GeV_cYY_0p5':{}, - - # 'ALP_Z_aa_0.1GeV_cYY_0.1':{}, - # 'ALP_Z_aa_0.2GeV_cYY_0.1':{}, - # 'ALP_Z_aa_0.135GeV_cYY_0.1':{}, - # 'ALP_Z_aa_0.3GeV_cYY_0.1':{}, - - # 'ALP_Z_aa_1.GeV_cYY_0.1':{}, - # 'ALP_Z_aa_1.GeV_cYY_0.3':{}, - # 'ALP_Z_aa_1.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_1.GeV_cYY_0.7':{}, - # 'ALP_Z_aa_1.GeV_cYY_0.9':{}, - - # 'ALP_Z_aa_0.5.GeV_cYY_0.6':{}, - # 'ALP_Z_aa_0.5.GeV_cYY_1.2':{}, - - 'ALP_Z_aa_1.GeV_cYY_0.6':{}, - 'ALP_Z_aa_1.GeV_cYY_0.8':{}, - 'ALP_Z_aa_1.GeV_cYY_1.0':{}, - 'ALP_Z_aa_1.GeV_cYY_1.2':{}, - 'ALP_Z_aa_1.GeV_cYY_1.4':{}, - - # 'ALP_Z_aa_0.5.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_1.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_1.5.GeV_cYY_1.0':{}, - # # 'ALP_Z_aa_2.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_3.GeV_cYY_1.0':{}, - # # 'ALP_Z_aa_4.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_5.GeV_cYY_1.0':{}, - # # 'ALP_Z_aa_8.GeV_cYY_1.0':{}, - - # 'ALP_Z_aa_0.6.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_0.8.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_1.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_1.2.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_1.4.GeV_cYY_1.0':{}, - - # 'ALP_Z_aa_3.GeV_cYY_0.1':{}, - # 'ALP_Z_aa_3.GeV_cYY_0.3':{}, - # 'ALP_Z_aa_3.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_3.GeV_cYY_0.7':{}, - # 'ALP_Z_aa_3.GeV_cYY_0.9':{}, - - # 'ALP_Z_aa_5.GeV_cYY_0.1':{}, - # 'ALP_Z_aa_5.GeV_cYY_0.3':{}, - # 'ALP_Z_aa_5.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_5.GeV_cYY_0.7':{}, - # 'ALP_Z_aa_5.GeV_cYY_0.9':{}, - - # 'ALP_Z_aa_0.5GeV_cYY_0.5':{}, - # 'ALP_Z_aa_0.7GeV_cYY_0.5':{}, - # 'ALP_Z_aa_1.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_3.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_5.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_7.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_10.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_15.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_20.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_25.GeV_cYY_0.5':{}, - # 'ALP_Z_aa_30.GeV_cYY_0.5':{}, + + + #### using my new pythia samples #### + # 'ALP_Z_aa_0p5GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p8GeV_cYY1p0':{}, + # 'ALP_Z_aa_1p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_5p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_8p0GeV_cYY1p0':{}, + + # 'ALP_Z_aa_0p001GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p01GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p1GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p5GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p8GeV_cYY1p0':{}, + # 'ALP_Z_aa_1p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_3p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_5p0GeV_cYY1p0':{}, + + # 'ALP_Z_aa_1p0GeV_cYY0p001':{}, + # 'ALP_Z_aa_1p0GeV_cYY0p01':{}, + # 'ALP_Z_aa_1p0GeV_cYY0p1':{}, + # 'ALP_Z_aa_1p0GeV_cYY0p4':{}, + # 'ALP_Z_aa_1p0GeV_cYY0p7':{}, + # 'ALP_Z_aa_1p0GeV_cYY1p3':{}, + # 'ALP_Z_aa_1p0GeV_cYY1p6':{}, +###################################### + + # 'ALP_Z_aa_1p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p1GeV_cYY1p0':{}, + +###################################### + + # 'ALP_Z_aa_30p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_10p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_3p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_1p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p3GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p1GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p03GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p01GeV_cYY1p6': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p4': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p1': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p03': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p009': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p002': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p0007': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p0002': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p00005': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p00001': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p000004': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p000001': {}, + + + #####Background###### + # 'background_ee_aa1':{}, + # 'background_ee_aaa1':{}, + # 'background_ee_aaaa1':{}, + # 'background_ee_ee':{}, + # 'background_ee_eea1':{}, + # 'background_ee_eeaa1':{}, + # 'background_ee_eeaaa1':{}, + + + } ###Dictionary for prettier names of processes (optional) @@ -201,6 +284,15 @@ # 'ee_aaa':"$\rightarrow$ #gamma#gamma#gamma", # 'ee_aaaa':"$\rightarrow$ #gamma#gamma#gamma#gamma", + + 'background_ee_aa1':"$\rightarrow$ #gamma#gamma", + 'background_ee_aaa1':"$\rightarrow$ #gamma#gamma#gamma", + 'background_ee_aaaa1':"$\rightarrow$ #gamma#gamma#gamma#gamma", + 'background_ee_ee':"$\rightarrow$ ee", + 'background_ee_eea1':"$\rightarrow$ ee#gamma", + 'background_ee_eeaa1':"$\rightarrow$ ee#gamma#gamma", + 'background_ee_eeaaa1':"$\rightarrow$ ee#gamma#gamma#gamma", + #signals # 'ALP_Z_aa_0.01.GeV_cYY_0.00006':"$m_ALP =$ 0.01 GeV, $c_{YY} = 0.00006$", @@ -287,71 +379,122 @@ # 'ALP_Z_aa_31.6.GeV_cYY_0.006':"$m_ALP =$ 31.6 GeV, $c_{YY} = 0.006$", # 'ALP_Z_aa_31.6.GeV_cYY_0.019':"$m_ALP =$ 31.6 GeV, $c_{YY} = 0.019$", # 'ALP_Z_aa_31.6.GeV_cYY_0.06':"$m_ALP =$ 31.6 GeV, $c_{YY} = 0.06$", - # 'ALP_Z_aa_31.6.GeV_cYY_0.19':"$m_ALP =$ 31.6 GeV, $c_{YY} = 0.19$", - # 'ALP_Z_aa_31.6.GeV_cYY_0.6':"$m_ALP =$ 31.6 GeV, $c_{YY} = 0.6$", - - # 'ee_Z_ALPga_gagaga':"$m_ALP =$ 1 GeV, $c_{YY} = 0.5$ (mine)", - - # 'ALP_Z_aa_1GeV_cYY_0p5': "$m_ALP =$ 1 GeV, $c_{YY} = 0.5$", - - # 'ALP_Z_aa_0.1GeV_cYY_0.1': "$m_ALP =$ 0.1 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_0.2GeV_cYY_0.1': "$m_ALP =$ 0.2 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_0.135GeV_cYY_0.1': "$m_ALP =$ 0.135 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_0.3GeV_cYY_0.1': "$m_ALP =$ 0.3 GeV, $c_{YY} = 0.1$", - - # 'ALP_Z_aa_1.GeV_cYY_0.1': "$m_ALP =$ 1 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_1.GeV_cYY_0.3': "$m_ALP =$ 1 GeV, $c_{YY} = 0.3$", - # 'ALP_Z_aa_1.GeV_cYY_0.5': "$m_ALP =$ 1 GeV, $c_{YY} = 0.5$ (spring2021)", - # 'ALP_Z_aa_1.GeV_cYY_0.7': "$m_ALP =$ 1 GeV, $c_{YY} = 0.7$", - # 'ALP_Z_aa_1.GeV_cYY_0.9': "$m_ALP =$ 1 GeV, $c_{YY} = 0.9$", - - # 'ALP_Z_aa_0.5.GeV_cYY_0.6': "$m_ALP =$ 0.5 GeV, $c_{YY} = 0.6$", - # 'ALP_Z_aa_0.5.GeV_cYY_1.2': "$m_ALP =$ 0.5 GeV, $c_{YY} = 1.2$", - - 'ALP_Z_aa_1.GeV_cYY_0.6': "$m_ALP =$ 1 GeV, $c_{YY} = 0.6$", - 'ALP_Z_aa_1.GeV_cYY_0.8': "$m_ALP =$ 1 GeV, $c_{YY} = 0.8$", - 'ALP_Z_aa_1.GeV_cYY_1.0': "$m_ALP =$ 1 GeV, $c_{YY} = 1.0$", - 'ALP_Z_aa_1.GeV_cYY_1.2': "$m_ALP =$ 1 GeV, $c_{YY} = 1.2$", - 'ALP_Z_aa_1.GeV_cYY_1.4': "$m_ALP =$ 1 GeV, $c_{YY} = 1.4$", - - # 'ALP_Z_aa_0.5.GeV_cYY_1.0': "$m_ALP =$ 0.5 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_1.GeV_cYY_1.0': "$m_ALP =$ 1 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_1.5.GeV_cYY_1.0': "$m_ALP =$ 1.5 GeV, $c_{YY} = 1.0$", - # # 'ALP_Z_aa_2.GeV_cYY_1.0': "$m_ALP =$ 2 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_3.GeV_cYY_1.0': "$m_ALP =$ 3 GeV, $c_{YY} = 1.0$", - # # 'ALP_Z_aa_4.GeV_cYY_1.0': "$m_ALP =$ 4 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_5.GeV_cYY_1.0': "$m_ALP =$ 5 GeV, $c_{YY} = 1.0$", - # # 'ALP_Z_aa_8.GeV_cYY_1.0': "$m_ALP =$ 8 GeV, $c_{YY} = 1.0$", - - # 'ALP_Z_aa_0.6.GeV_cYY_1.0': "$m_ALP =$ 0.6 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_0.8.GeV_cYY_1.0': "$m_ALP =$ 0.8 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_1.GeV_cYY_1.0': "$m_ALP =$ 1 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_1.2.GeV_cYY_1.0': "$m_ALP =$ 1.2 GeV, $c_{YY} = 1.0$", - # 'ALP_Z_aa_1.4.GeV_cYY_1.0': "$m_ALP =$ 1.4 GeV, $c_{YY} = 1.0$", - - # 'ALP_Z_aa_3.GeV_cYY_0.1': "$m_ALP =$ 3 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_3.GeV_cYY_0.3': "$m_ALP =$ 3 GeV, $c_{YY} = 0.3$", - # 'ALP_Z_aa_3.GeV_cYY_0.5': "$m_ALP =$ 3 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_3.GeV_cYY_0.7': "$m_ALP =$ 3 GeV, $c_{YY} = 0.7$", - # 'ALP_Z_aa_3.GeV_cYY_0.9': "$m_ALP =$ 3 GeV, $c_{YY} = 0.9$", - - # 'ALP_Z_aa_5.GeV_cYY_0.1': "$m_ALP =$ 5 GeV, $c_{YY} = 0.1$", - # 'ALP_Z_aa_5.GeV_cYY_0.3': "$m_ALP =$ 5 GeV, $c_{YY} = 0.3$", - # 'ALP_Z_aa_5.GeV_cYY_0.5': "$m_ALP =$ 5 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_5.GeV_cYY_0.7': "$m_ALP =$ 5 GeV, $c_{YY} = 0.7$", - # 'ALP_Z_aa_5.GeV_cYY_0.9': "$m_ALP =$ 5 GeV, $c_{YY} = 0.9$", - - # 'ALP_Z_aa_0.5GeV_cYY_0.5': "$m_ALP =$ 0.5 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_0.7GeV_cYY_0.5': "$m_ALP =$ 0.7 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_1.GeV_cYY_0.5': "$m_ALP =$ 1 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_3.GeV_cYY_0.5': "$m_ALP =$ 3 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_5.GeV_cYY_0.5': "$m_ALP =$ 5 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_7.GeV_cYY_0.5': "$m_ALP =$ 7 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_10.GeV_cYY_0.5': "$m_ALP =$ 10 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_15.GeV_cYY_0.5': "$m_ALP =$ 15 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_20.GeV_cYY_0.5': "$m_ALP =$ 20 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_25.GeV_cYY_0.5': "$m_ALP =$ 25 GeV, $c_{YY} = 0.5$", - # 'ALP_Z_aa_30.GeV_cYY_0.5': "$m_ALP =$ 30 GeV, $c_{YY} = 0.5$", + + + + + # 'ALP_Z_aa_30p0GeV_cYY1p6': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_10p0GeV_cYY1p6': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_3p0GeV_cYY1p6': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_1p0GeV_cYY1p6': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_0p3GeV_cYY1p6': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_0p1GeV_cYY1p6': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_0p03GeV_cYY1p6': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 1.6$", + # 'ALP_Z_aa_0p01GeV_cYY1p6': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 1.6$", + + # 'ALP_Z_aa_30p0GeV_cYY0p4': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_10p0GeV_cYY0p4': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_3p0GeV_cYY0p4': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_1p0GeV_cYY0p4': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_0p3GeV_cYY0p4': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_0p1GeV_cYY0p4': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_0p03GeV_cYY0p4': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.4$", + # 'ALP_Z_aa_0p01GeV_cYY0p4': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.4$", + + # 'ALP_Z_aa_30p0GeV_cYY0p1': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_10p0GeV_cYY0p1': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_3p0GeV_cYY0p1': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_1p0GeV_cYY0p1': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_0p3GeV_cYY0p1': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_0p1GeV_cYY0p1': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_0p03GeV_cYY0p1': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.1$", + # 'ALP_Z_aa_0p01GeV_cYY0p1': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.1$", + + # 'ALP_Z_aa_30p0GeV_cYY0p03': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_10p0GeV_cYY0p03': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_3p0GeV_cYY0p03': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_1p0GeV_cYY0p03': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_0p3GeV_cYY0p03': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_0p1GeV_cYY0p03': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_0p03GeV_cYY0p03': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.03$", + # 'ALP_Z_aa_0p01GeV_cYY0p03': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.03$", + + # 'ALP_Z_aa_30p0GeV_cYY0p009': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_10p0GeV_cYY0p009': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_3p0GeV_cYY0p009': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_1p0GeV_cYY0p009': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_0p3GeV_cYY0p009': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_0p1GeV_cYY0p009': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_0p03GeV_cYY0p009': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.009$", + # 'ALP_Z_aa_0p01GeV_cYY0p009': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.009$", + + # 'ALP_Z_aa_30p0GeV_cYY0p002': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_10p0GeV_cYY0p002': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_3p0GeV_cYY0p002': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_1p0GeV_cYY0p002': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_0p3GeV_cYY0p002': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_0p1GeV_cYY0p002': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_0p03GeV_cYY0p002': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.002$", + # 'ALP_Z_aa_0p01GeV_cYY0p002': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.002$", + + # 'ALP_Z_aa_30p0GeV_cYY0p0007': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_10p0GeV_cYY0p0007': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_3p0GeV_cYY0p0007': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_1p0GeV_cYY0p0007': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_0p3GeV_cYY0p0007': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_0p1GeV_cYY0p0007': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_0p03GeV_cYY0p0007': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.0007$", + # 'ALP_Z_aa_0p01GeV_cYY0p0007': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.0007$", + + # 'ALP_Z_aa_30p0GeV_cYY0p0002': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_10p0GeV_cYY0p0002': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_3p0GeV_cYY0p0002': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_1p0GeV_cYY0p0002': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_0p3GeV_cYY0p0002': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_0p1GeV_cYY0p0002': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_0p03GeV_cYY0p0002': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.0002$", + # 'ALP_Z_aa_0p01GeV_cYY0p0002': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.0002$", + + # 'ALP_Z_aa_30p0GeV_cYY0p00005': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_10p0GeV_cYY0p00005': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_3p0GeV_cYY0p00005': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_1p0GeV_cYY0p00005': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_0p3GeV_cYY0p00005': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_0p1GeV_cYY0p00005': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_0p03GeV_cYY0p00005': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.00005$", + # 'ALP_Z_aa_0p01GeV_cYY0p00005': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.00005$", + + # 'ALP_Z_aa_30p0GeV_cYY0p00001': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_10p0GeV_cYY0p00001': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_3p0GeV_cYY0p00001': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_1p0GeV_cYY0p00001': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_0p3GeV_cYY0p00001': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_0p1GeV_cYY0p00001': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_0p03GeV_cYY0p00001': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.00001$", + # 'ALP_Z_aa_0p01GeV_cYY0p00001': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.00001$", + + # 'ALP_Z_aa_30p0GeV_cYY0p000004': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_10p0GeV_cYY0p000004': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_3p0GeV_cYY0p000004': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_1p0GeV_cYY0p000004': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_0p3GeV_cYY0p000004': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_0p1GeV_cYY0p000004': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_0p03GeV_cYY0p000004': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.000004$", + # 'ALP_Z_aa_0p01GeV_cYY0p000004': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.000004$", + + # 'ALP_Z_aa_30p0GeV_cYY0p000001': "$m_{ALP} =$ 30.0 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_10p0GeV_cYY0p000001': "$m_{ALP} =$ 10.0 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_3p0GeV_cYY0p000001': "$m_{ALP} =$ 3.0 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_1p0GeV_cYY0p000001': "$m_{ALP} =$ 1.0 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_0p3GeV_cYY0p000001': "$m_{ALP} =$ 0.3 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_0p1GeV_cYY0p000001': "$m_{ALP} =$ 0.1 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_0p03GeV_cYY0p000001': "$m_{ALP} =$ 0.03 GeV, $c_{YY} = 0.000001$", + # 'ALP_Z_aa_0p01GeV_cYY0p000001': "$m_{ALP} =$ 0.01 GeV, $c_{YY} = 0.000001$", + + + # 'ALP_Z_aa_1p0GeV_cYY1p0':"$m_{ALP} =$ 1.0 GeV, $c_{YY} = 1.0$", + # 'ALP_Z_aa_0p1GeV_cYY1p0':"$m_{ALP} =$ 0.1 GeV, $c_{YY} = 1.0$", + } #Link to the dictonary that contains all the cross section information etc... @@ -366,11 +509,20 @@ # "test4": {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 0.461, "kfactor": 1.0, "matchingEfficiency": 1.0}, # "ee_gammagamma": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 45.454, "kfactor": 1.0, "matchingEfficiency": 1.0}, # "ee_gaga_test": {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 4.563, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ee_aa": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 57.3, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ee_aaa": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.461, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ee_aa": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ee_aaa": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ee_aaaa": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.00111, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ee_aa": {"numberOfEvents": 1000000, "sumOfWeights": 100000, "crossSection": 57.3, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + + # "background_ee_aa1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 67.25 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_aaa1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.995 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_aaaa1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.06271, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_ee": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4500, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_eea1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 118.4 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_eeaa1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.993 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "background_ee_eeaaa1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.02369, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + +########################################### + # "ALP_Z_aa_0.01.GeV_cYY_0.00006": {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 1, "kfactor": 1.0, "matchingEfficiency": 1.0}, # "ALP_Z_aa_0.01.GeV_cYY_0.0006": {"numberOfEvents": 10000, "sumOfWeights": 10000, "crossSection": 1, "kfactor": 1.0, "matchingEfficiency": 1.0}, @@ -475,50 +627,161 @@ # "ALP_Z_aa_0.5.GeV_cYY_1.2": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 3.94, "kfactor": 1.0, "matchingEfficiency": 1.0}, # for 0.6 below, cross section is actually 0.98597 - "ALP_Z_aa_1.GeV_cYY_0.6": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - "ALP_Z_aa_1.GeV_cYY_0.8": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - "ALP_Z_aa_1.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - "ALP_Z_aa_1.GeV_cYY_1.2": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - "ALP_Z_aa_1.GeV_cYY_1.4": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - - # "ALP_Z_aa_0.5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1.GeV_cYY_0.6": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1.GeV_cYY_0.8": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_1.GeV_cYY_1.2": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_1.GeV_cYY_1.4": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + # "ALP_Z_aa_0.5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_1.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_1.5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_2.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.73, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_3.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # # "ALP_Z_aa_4.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.709, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_8.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.671, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + # # "ALP_Z_aa_0.6.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0.8.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, # "ALP_Z_aa_1.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_1.5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # # "ALP_Z_aa_2.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_3.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # # "ALP_Z_aa_4.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_5.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # # "ALP_Z_aa_8.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - - # "ALP_Z_aa_0.6.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_0.8.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_1.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # "ALP_Z_aa_1.2.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1.2.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, # "ALP_Z_aa_1.4.GeV_cYY_1.0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 0.027, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.1':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.3':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.5':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.7':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.9':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - - # 'ALP_Z_aa_5.GeV_cYY_0.1':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_5.GeV_cYY_0.3':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_5.GeV_cYY_0.5':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_5.GeV_cYY_0.7':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_5.GeV_cYY_0.9':{"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - - # 'ALP_Z_aa_0.5GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_0.7GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_1.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_3.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_5.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_7.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_10.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_15.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_20.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_25.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, - # 'ALP_Z_aa_30.GeV_cYY_0.5': {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.744e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + +#### using my new pythia samples #### + + # "ALP_Z_aa_0p5GeV_cYY1p0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0p8GeV_cYY1p0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY1p0": {"numberOfEvents": 100, "sumOfWeights": 100, "crossSection": 2.733, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_5p0GeV_cYY1p0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.709, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_8p0GeV_cYY1p0": {"numberOfEvents": 100000, "sumOfWeights": 100000, "crossSection": 2.671, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + # "ALP_Z_aa_0p001GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.407, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0p01GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0p1GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0p5GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_0p8GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # # "ALP_Z_aa_2p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.736, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_3p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.731, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_5p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.715, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_10p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.642, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_20p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.363, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_30p0GeV_cYY1p0": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.943, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + + # "ALP_Z_aa_1p0GeV_cYY0p001": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY0p01": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002739, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY0p1": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.02739, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY0p4": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4382, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY0p7": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.342, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY1p3": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.629, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # "ALP_Z_aa_1p0GeV_cYY1p6": {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.011, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + + + + # 'ALP_Z_aa_30p0GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.974, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.764, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.991, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.011, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.014, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.014, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.014, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY1p6': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.014, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.3109, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4228, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.437, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4382, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4384, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4384, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4384, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p4': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.4384, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.01943, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.02642, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.02731, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.02739, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0274, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0274, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0274, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p1': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0274, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.001749, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002378, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002458, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002465, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002466, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002466, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002466, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p03': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.002466, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0001574, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.000214, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002212, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002218, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002219, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002219, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002219, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p009': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 0.0002219, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.772e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.057e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.092e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-05, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 9.521e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.295e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.338e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.342e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.343e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.343e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.343e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p0007': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.343e-06, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 7.772e-08, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.057e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.092e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.095e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p0002': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.096e-07, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.858e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.605e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.827e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.847e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.849e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.85e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.85e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p00005': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 6.85e-09, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.943e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.642e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.731e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p00001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-10, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 3.109e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.228e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.37e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.382e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.384e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.384e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.384e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p000004': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 4.384e-11, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_30p0GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 1.943e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_10p0GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.642e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_3p0GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.731e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_1p0GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p3GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p03GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p01GeV_cYY0p000001': {"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.74e-12, "kfactor": 1.0, "matchingEfficiency": 1.0}, + + # 'ALP_Z_aa_1p0GeV_cYY1p0':{"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + # 'ALP_Z_aa_0p1GeV_cYY1p0':{"numberOfEvents": 1000000, "sumOfWeights": 1000000, "crossSection": 2.739 , "kfactor": 1.0, "matchingEfficiency": 1.0}, + } #Number of CPUs to use @@ -541,6 +804,18 @@ # "seldeltaR": "n_RecoPhotons == 3 && RecoPhotons_min_delta_r[0] < 1.0", # "selp": "n_RecoPhotons == 3 && RecoPhoton0_p > 44", # "selall": "n_RecoPhotons == 3 && RecoPhotons_min_delta_r[0] < 1.0 && RecoPhoton0_p > 44", + + + + ### E ### + # "sel_3photon": "n_RecoPhotons_obj_sel_eta == 3", + # "sel_mindeltaR": "RecoPhotons_min_delta_r_obj_sel_eta[0] < 1", + # "sel_0electrons": "n_RecoElectrons == 0", + # "sel_2": "n_RecoPhotons_obj_sel_eta == 3 && n_RecoElectrons == 0 ", + # "sel_3": "n_RecoPhotons_obj_sel_eta == 3 && n_RecoElectrons == 0 && RecoPhotons_min_delta_r_obj_sel_eta[0] < 1", + # "sel_4": "n_RecoPhotons_obj_sel_eta == 3 && n_RecoElectrons == 0 && RecoPhotons_min_delta_r_obj_sel_eta[0] < 1 && RecoPhoton0_p_obj_sel_eta > 42", + # "sel_4_alternative": "n_RecoPhotons_obj_sel_eta == 3 && n_RecoElectrons == 0 && RecoPhotons_min_delta_r_obj_sel_eta[0] < 1 && RecoPhoton0_pt_obj_sel_eta > 42", + } ###Dictionary for prettier names of cuts (optional) @@ -556,16 +831,30 @@ # "seldeltaR": "3 reco photons and reco photons min #DeltaR < 1", # "selp": "3 reco photons and RecoPhoton0 momentum > 44", # "selall": "all selections", + + # "sel_3photon": "Exactly 3 reconstructed photons", + # "sel_mindeltaR": "Reco photons min #DeltaR < 1", + # "sel_0electrons": "0 reconstructed electrons", + # "sel_2": "3 reco photons and 0 reco electrons", + # "sel_3": "3 reco photons, 0 reco electrons, reco photons min #DeltaR < 1 ", + # "sel_4": "3 reco photons, 0 reco electrons, reco photons min #DeltaR < 1, RecoPhoton0 momentum > 42", + # "sel_4_alternative": "sel 4 alternative", + + + # "sel_photon0_p": "RecoPhoton0 momentum > 38 GeV", + # "sel_alp_photons_p": "Reco ALP photons total momentum > 38", + } ###Dictionary for the ouput variable/hitograms. The key is the name of the variable in the output files. "name" is the name of the variable in the input file, "title" is the x-axis label of the histogram, "bin" the number of bins of the histogram, "xmin" the minimum x-axis value and "xmax" the maximum x-axis value. histoList = { #gen variables + "Calorimeterhit_time": {"name":"Calorimeterhit_time", "title":"Time of calorimeter hit", "bin":100,"xmin":0 ,"xmax":10e-8}, "All_n_GenALP": {"name":"All_n_GenALP", "title":"Total number of gen ALPs", "bin":5,"xmin":-0.5 ,"xmax":4.5}, "n_FSGenALP": {"name":"n_FSGenALP", "title":"Total number of FS gen ALPs", "bin":5,"xmin":-0.5 ,"xmax":4.5}, - "AllGenALP_mass": {"name":"AllGenALP_mass", "title":"All gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":10}, + "AllGenALP_mass": {"name":"AllGenALP_mass", "title":"All gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "AllGenALP_e": {"name":"AllGenALP_e", "title":"All gen ALP energy [GeV]", "bin":100,"xmin":0 ,"xmax":100}, "AllGenALP_p": {"name":"AllGenALP_p", "title":"All gen ALP p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "AllGenALP_pt": {"name":"AllGenALP_pt", "title":"All gen ALP p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -574,22 +863,32 @@ "AllGenALP_theta": {"name":"AllGenALP_theta", "title":"All gen ALP #theta", "bin":64, "xmin":0,"xmax":3.2}, "AllGenALP_phi": {"name":"AllGenALP_phi", "title":"All gen ALP #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, - "n_FSGenElectron": {"name":"n_FSGenElectron", "title":"Number of final state gen electrons", "bin":5,"xmin":-0.5 ,"xmax":4.5}, + "n_FSGenElectron": {"name":"n_FSGenElectron", "title":"Number of final state gen electrons", "bin":7,"xmin":-0.5 ,"xmax":6.5}, # "n_FSGenPositron": {"name":"n_FSGenPositron", "title":"Number of final state gen positrons", "bin":5,"xmin":-0.5 ,"xmax":4.5}, # "n_FSGenNeutrino": {"name":"n_FSGenNeutrino", "title":"Number of final state gen neutrinos", "bin":5,"xmin":-0.5 ,"xmax":4.5}, # "n_FSGenAntiNeutrino": {"name":"n_FSGenAntiNeutrino", "title":"Number of final state gen anti-neutrinos", "bin":5,"xmin":-0.5 ,"xmax":4.5}, - "n_FSGenPhoton": {"name":"n_FSGenPhoton", "title":"Number of final state gen photons", "bin":8,"xmin":-0.5 ,"xmax":7.5}, + "n_FSGenPhoton": {"name":"n_FSGenPhoton", "title":"Number of final state gen photons", "bin":9,"xmin":-0.5 ,"xmax":8.5}, # # "n_FSGenElectron_forFS2GenPhotons": {"name":"n_FSGenElectron_forFS2GenPhotons", "title":"Number of final state gen electrons for events with 2 FS photons", "bin":7,"xmin":-2.5 ,"xmax":4.5}, # # "n_FSGenPositron_forFS2GenPhotons": {"name":"n_FSGenPositron_forFS2GenPhotons", "title":"Number of final state gen positrons for events with 2 FS photons", "bin":7,"xmin":-2.5 ,"xmax":4.5}, - # "FSGenElectron_e": {"name":"FSGenElectron_e", "title":"Final state gen electrons energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "FSGenElectron_p": {"name":"FSGenElectron_p", "title":"Final state gen electrons p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "FSGenElectron_pt": {"name":"FSGenElectron_pt", "title":"Final state gen electrons p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "FSGenElectron_pz": {"name":"FSGenElectron_pz", "title":"Final state gen electrons p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "FSGenElectron_eta": {"name":"FSGenElectron_eta", "title":"Final state gen electrons #eta", "bin":60, "xmin":-3,"xmax":3}, - # "FSGenElectron_theta": {"name":"FSGenElectron_theta", "title":"Final state gen electrons #theta", "bin":64, "xmin":0,"xmax":3.2}, - # "FSGenElectron_phi": {"name":"FSGenElectron_phi", "title":"Final state gen electrons #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "FSGenElectron_e": {"name":"FSGenElectron_e", "title":"Final state gen electrons energy [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectron_p": {"name":"FSGenElectron_p", "title":"Final state gen electrons p [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectron_pt": {"name":"FSGenElectron_pt", "title":"Final state gen electrons p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectron_pz": {"name":"FSGenElectron_pz", "title":"Final state gen electrons p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectron_eta": {"name":"FSGenElectron_eta", "title":"Final state gen electrons #eta", "bin":60, "xmin":-3,"xmax":3}, + "FSGenElectron_theta": {"name":"FSGenElectron_theta", "title":"Final state gen electrons #theta", "bin":64, "xmin":0,"xmax":3.2}, + "FSGenElectron_phi": {"name":"FSGenElectron_phi", "title":"Final state gen electrons #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + + "FSGenElectronPositron_e": {"name":"FSGenElectronPositron_e", "title":"Final state gen e energy [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_p": {"name":"FSGenElectronPositron_p", "title":"Final state gen e p [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_pt": {"name":"FSGenElectronPositron_pt", "title":"Final state gen e p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_pz": {"name":"FSGenElectronPositron_pz", "title":"Final state gen e p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_py": {"name":"FSGenElectronPositron_py", "title":"Final state gen e p_{y} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_px": {"name":"FSGenElectronPositron_px", "title":"Final state gen e p_{x} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "FSGenElectronPositron_eta": {"name":"FSGenElectronPositron_eta", "title":"Final state gen e #eta", "bin":60, "xmin":-3,"xmax":3}, + "FSGenElectronPositron_theta": {"name":"FSGenElectronPositron_theta", "title":"Final state gen e #theta", "bin":64, "xmin":0,"xmax":3.2}, + "FSGenElectronPositron_phi": {"name":"FSGenElectronPositron_phi", "title":"Final state gen e #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, # "FSGenPositron_e": {"name":"FSGenPositron_e", "title":"Final state gen positrons energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, # "FSGenPositron_p": {"name":"FSGenPositron_p", "title":"Final state gen positrons p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -614,7 +913,7 @@ # "FSGenAntiNeutrino_eta": {"name":"FSGenAntiNeutrino_eta", "title":"Final state gen anti-neutrinos #eta", "bin":60, "xmin":-3,"xmax":3}, # "FSGenAntiNeutrino_theta": {"name":"FSGenAntiNeutrino_theta", "title":"Final state gen anti-neutrinos #theta", "bin":64, "xmin":0,"xmax":3.2}, # "FSGenAntiNeutrino_phi": {"name":"FSGenAntiNeutrino_phi", "title":"Final state gen anti-neutrinos #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, - + "FSGenALP_p": {"name":"FSGenALP_p", "title":"Final state gen ALP p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "FSGenPhoton_e": {"name":"FSGenPhoton_e", "title":"Final state gen photons energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "FSGenPhoton_p": {"name":"FSGenPhoton_p", "title":"Final state gen photons p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "FSGenPhoton_pt": {"name":"FSGenPhoton_pt", "title":"Final state gen photons p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -660,9 +959,9 @@ # # "FSGen_a1a2_invMass": {"name":"FSGen_a1a2_invMass", "title":"Gen FS photons m_{12} [GeV]", "bin":105,"xmin":-5, "xmax":100}, # # "FSGen_aaa_invMass": {"name":"FSGen_aaa_invMass", "title":"Gen FS m_{#gamma #gamma #gamma} [GeV]", "bin":105,"xmin":-5, "xmax":100}, - "FSGenALP_mass": {"name":"FSGenALP_mass", "title":"FS gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":10}, + "FSGenALP_mass": {"name":"FSGenALP_mass", "title":"FS gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - "GenALP_mass": {"name":"GenALP_mass", "title":"Gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":10}, + "GenALP_mass": {"name":"GenALP_mass", "title":"Gen ALP mass [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "GenALP_e": {"name":"GenALP_e", "title":"Gen ALP energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "GenALP_p": {"name":"GenALP_p", "title":"Gen ALP p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "GenALP_pt": {"name":"GenALP_pt", "title":"Gen ALP p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -670,20 +969,22 @@ "GenALP_eta": {"name":"GenALP_eta", "title":"Gen ALP #eta", "bin":60, "xmin":-3,"xmax":3}, "GenALP_theta": {"name":"GenALP_theta", "title":"Gen ALP #theta", "bin":64, "xmin":0,"xmax":3.2}, "GenALP_phi": {"name":"GenALP_phi", "title":"Gen ALP #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, - "GenALP_lifetime_xy": {"name":"GenALP_lifetime_xy", "title":"Gen ALP #tau_{xy} [s]", "bin":100,"xmin":0 ,"xmax":10E-15}, - "GenALP_lifetime_xyz": {"name":"GenALP_lifetime_xyz", "title":"Gen ALP #tau_{xyz} [s]", "bin":100,"xmin":0 ,"xmax":50E-15}, - "GenALP_Lxy": {"name":"GenALP_Lxy", "title":"Gen ALP L_{xy} [mm]", "bin":100,"xmin":0 ,"xmax":10}, - "GenALP_Lxyz": {"name":"GenALP_Lxyz", "title":"Gen ALP L_{xyz} [mm]", "bin":100,"xmin":0 ,"xmax":5E5}, + "GenALP_beta": {"name":"GenALP_beta", "title":"Gen #beta_{ALP} ", "bin":150,"xmin":0 ,"xmax":1.5}, + "GenALP_lifetime_xy": {"name":"GenALP_lifetime_xy", "title":"Gen ALP #tau_{xy} [s]", "bin":100,"xmin":0 ,"xmax":1E-11}, + "GenALP_lifetime_xyz": {"name":"GenALP_lifetime_xyz", "title":"Gen ALP #tau_{xyz} [s]", "bin":100,"xmin":0 ,"xmax":1E-11}, + "GenALP_Lxy": {"name":"GenALP_Lxy", "title":"Gen ALP L_{xy} [mm]", "bin":100,"xmin":0 ,"xmax":100}, + "GenALP_Lxyz": {"name":"GenALP_Lxyz", "title":"Gen ALP L_{xyz} [mm]", "bin":200,"xmin":0 ,"xmax":100}, "GenALP_vertex_x": {"name":"GenALP_vertex_x", "title":"Gen ALP production vertex x [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, "GenALP_vertex_y": {"name":"GenALP_vertex_y", "title":"Gen ALP production vertex y [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, "GenALP_vertex_z": {"name":"GenALP_vertex_z", "title":"Gen ALP production vertex z [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, + "GenALP_px_if_FSGenPhoton0_px_greaterthan_0": {"name": "GenALP_px_if_FSGenPhoton0_px_greaterthan_0", "title": "Gen ALP p_{x} if FS gen photon_{0} p_{x} > 0", "bin":100, "xmin":-55, "xmax":50}, "FSGenPhoton1_px_if_GenALP_px_neg": {"name": "FSGenPhoton1_px_if_GenALP_px_neg", "title": "FS gen photon_{1} p_{x} if gen ALP p_{x} < 0", "bin":100, "xmin":-55, "xmax":50}, "FSGenPhoton2_px_if_GenALP_px_neg": {"name": "FSGenPhoton2_px_if_GenALP_px_neg", "title": "FS gen photon_{2} p_{x} if gen ALP p_{x} < 0", "bin":100, "xmin":-55, "xmax":50}, # "GenALP_deltaR": {"name":"GenALP_deltaR", "title":"Gen ALP #DeltaR", "bin":60,"xmin":0,"xmax":5}, - "n_GenALP": {"name":"n_GenALP", "title":"Number of gen ALPs", "bin":100,"xmin":-0.5,"xmax":4.5}, + "n_GenALP": {"name":"n_GenALP", "title":"Number of gen ALPs", "bin":5,"xmin":-0.5,"xmax":4.5}, "n_GenALPPhoton1": {"name":"n_GenALPPhoton1", "title":"Number of gen photon_{1}","bin":100,"xmin":-0.5,"xmax":4.5}, "n_GenALPPhoton2": {"name":"n_GenALPPhoton2", "title":"Number of gen photon_{2}","bin":100,"xmin":-0.5,"xmax":4.5}, "GenALP_time": {"name":"GenALP_time", "title":"Gen ALP time [s]", "bin":100,"xmin":0,"xmax":5E-24}, @@ -698,7 +999,8 @@ "GenALPPhotons_deltaR": {"name":"GenALPPhotons_deltaR", "title":"Gen ALP photons #DeltaR", "bin":100, "xmin":0, "xmax":8}, # "GenALPPhotons_deltaR_2": {"name":"GenALPPhotons_deltaR_2", "title":"Gen ALP photons #DeltaR (from ROOT)", "bin":100, "xmin":0, "xmax":8}, - # "FSGenPhotons_delta_r": {"name":"FSGenPhotons_delta_r", "title":"Final state gen photons #DeltaR", "bin":100, "xmin":0, "xmax":20}, + "FSGenPhotons_delta_r": {"name":"FSGenPhotons_delta_r", "title":"Final state gen photons #DeltaR", "bin":100, "xmin":0, "xmax":7}, + "FSGenPhotons_min_delta_r": {"name":"FSGenPhotons_min_delta_r", "title":"Final state gen photons minimum #DeltaR", "bin":100, "xmin":0, "xmax":7}, "GenALPPhoton1_e": {"name":"GenALPPhoton1_e", "title":"Gen photon_{1} energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, "GenALPPhoton2_e": {"name":"GenALPPhoton2_e", "title":"Gen photon_{2} energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -718,13 +1020,13 @@ "GenALPPhoton1_time": {"name":"GenALPPhoton1_time", "title":"Gen photon_{1} time [s]", "bin":100, "xmin":0, "xmax":0.1E-12}, "GenALPPhoton2_time": {"name":"GenALPPhoton2_time", "title":"Gen photon_{2} time [s]", "bin":100, "xmin":0, "xmax":250E-14}, - "GenALP_observed_lifetime_xyz": {"name":"GenALP_observed_lifetime_xyz", "title":"Gen ALP #tau_{xyz, lab}", "bin":100, "xmin":0, "xmax":1E-12}, + "GenALP_observed_lifetime_xyz": {"name":"GenALP_observed_lifetime_xyz", "title":"Gen ALP #tau_{xyz, lab} [s]", "bin":100, "xmin":0, "xmax":1E-12}, "GenALPPhoton1_vertex_x": {"name":"GenALPPhoton1_vertex_x", "title":"Gen photon_{1} production vertex x [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, "GenALPPhoton1_vertex_y": {"name":"GenALPPhoton1_vertex_y", "title":"Gen photon_{1} production vertex y [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, "GenALPPhoton1_vertex_z": {"name":"GenALPPhoton1_vertex_z", "title":"Gen photon_{1} production vertex z [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, - "GenALP_aa_invMass": {"name":"GenALP_aa_invMass", "title":"Gen m_{#gamma #gamma} (from ALP) [GeV]", "bin":100,"xmin":0, "xmax":10}, + "GenALP_aa_invMass": {"name":"GenALP_aa_invMass", "title":"Gen m_{#gamma#gamma} (from ALP) [GeV]", "bin":100,"xmin":0, "xmax":50}, # #reco variables "n_RecoTracks": {"name":"n_RecoTracks", "title":"Total number of reco tracks", "bin":5,"xmin":-0.5 ,"xmax":4.5}, @@ -754,22 +1056,31 @@ "RecoALPPhoton1_charge": {"name":"RecoALPPhoton1_charge", "title":"Reco photon_{1} (from ALP) charge", "bin":3, "xmin":-1.5,"xmax":1.5}, "RecoALPPhoton2_charge": {"name":"RecoALPPhoton2_charge", "title":"Reco photon_{2} (from ALP) charge", "bin":3, "xmin":-1.5,"xmax":1.5}, - "RecoALPPhotons_deltaEta": {"name":"RecoALPPhotons_deltaEta", "title":"Reco ALP photons #Delta#eta", "bin":60, "xmin":-2, "xmax":8}, - "RecoALPPhotons_deltaPhi": {"name":"RecoALPPhotons_deltaPhi", "title":"Reco ALP photons #Delta#phi", "bin":60, "xmin":-2, "xmax":8}, - "RecoALPPhotons_deltaR": {"name":"RecoALPPhotons_deltaR", "title":"Reco ALP photons #DeltaR", "bin":60, "xmin":-3, "xmax":8}, - "RecoALPPhotons_deltaR2": {"name":"RecoALPPhotons_deltaR2", "title":"Reco ALP photons #DeltaR_{2}", "bin":60, "xmin":-3, "xmax":8}, + "RecoALPPhotons_deltaEta": {"name":"RecoALPPhotons_deltaEta", "title":"Reco photons (from ALP) #Delta#eta", "bin":60, "xmin":-2, "xmax":8}, + "RecoALPPhotons_deltaPhi": {"name":"RecoALPPhotons_deltaPhi", "title":"Reco photons (from ALP) #Delta#phi", "bin":60, "xmin":-2, "xmax":8}, + "RecoALPPhotons_deltaR": {"name":"RecoALPPhotons_deltaR", "title":"Reco photons (from ALP) #DeltaR", "bin":60, "xmin":-3, "xmax":8}, + # "RecoALPPhotons_deltaR2": {"name":"RecoALPPhotons_deltaR2", "title":"Reco ALP photons #DeltaR_{2}", "bin":60, "xmin":-3, "xmax":8}, "n_RecoALPPhoton1": {"name":"n_RecoALPPhoton1", "title":"Number of reco photon_{1} (from ALP)", "bin":5, "xmin":-0.5, "xmax":4.5}, "n_RecoALPPhoton2": {"name":"n_RecoALPPhoton2", "title":"Number of reco photon_{2} (from ALP)", "bin":5, "xmin":-0.5, "xmax":4.5}, # "RecoALPPhoton1_time": {"name":"RecoALPPhoton1_time", "title":"Reco photon_{1} (from ALP) time", "bin":100, "xmin":0, "xmax":2E-24}, # "RecoALPPhoton2_time": {"name":"RecoALPPhoton2_time", "title":"Reco photon_{2} (from ALP) time", "bin":100, "xmin":0, "xmax":2E-24}, - # "RecoALP_aa_invMass": {"name":"RecoALP_aa_invMass", "title":"Reco m_{#gamma #gamma} (from ALP) [GeV]", "bin":100,"xmin":0, "xmax":100}, + + "Reco_aa_invMass": {"name":"Reco_aa_invMass", "title":" Reco photon m_{#gamma#gamma} [GeV]", "bin":100,"xmin":0, "xmax":100}, + "Reco_aa_p": {"name":"Reco_aa_p", "title":"Reco photon p_{#gamma#gamma} [GeV]", "bin":60,"xmin":0, "xmax":60}, + + "RecoALP_aa_invMass": {"name":"RecoALP_aa_invMass", "title":"Reco m_{#gamma#gamma} (from ALP) [GeV]", "bin":100,"xmin":0, "xmax":100}, + "RecoALP_aa_p": {"name":"RecoALP_aa_p", "title":"Reco p_{#gamma#gamma} (from ALP) [GeV]", "bin":60,"xmin":0, "xmax":60}, + "RecoALP_aa_energy": {"name":"RecoALP_aa_energy", "title":"Reco energy_{#gamma#gamma} (from ALP) [GeV]", "bin":60,"xmin":0, "xmax":60}, "n_RecoJets": {"name":"n_RecoJets", "title":"Total number of reco jets", "bin":5,"xmin":-0.5 ,"xmax":4.5}, "n_RecoPhotons": {"name":"n_RecoPhotons", "title":"Total number of reco photons", "bin":9,"xmin":-0.5 ,"xmax":8.5}, - "n_RecoElectrons": {"name":"n_RecoElectrons", "title":"Total number of reco electrons", "bin":5,"xmin":-0.5 ,"xmax":4.5}, + "n_RecoElectrons": {"name":"n_RecoElectrons", "title":"Total number of reco electrons", "bin":7,"xmin":-0.5 ,"xmax":6.5}, "n_RecoMuons": {"name":"n_RecoMuons", "title":"Total number of reco muons", "bin":5,"xmin":-0.5 ,"xmax":4.5}, + + # "RecoPhotons": {"name": "RecoPhotons", "title": "Total number of reco photons (all events combined)", "bin":8, "xmin":0, "xmax":8}, + # "RecoJet_e": {"name":"RecoJet_e", "title":"Reco jet energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, # "RecoJet_p": {"name":"RecoJet_p", "title":"Reco jet p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -780,13 +1091,13 @@ # "RecoJet_phi": {"name":"RecoJet_phi", "title":"Reco jet #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, # "RecoJet_charge": {"name":"RecoJet_charge", "title":"Reco jet charge", "bin":3, "xmin":-1.5,"xmax":1.5}, - # "RecoElectron_e": {"name":"RecoElectron_e", "title":"Reco electron energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "RecoElectron_p": {"name":"RecoElectron_p", "title":"Reco electron p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "RecoElectron_pt": {"name":"RecoElectron_pt", "title":"Reco electron p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "RecoElectron_pz": {"name":"RecoElectron_pz", "title":"Reco electron p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, - # "RecoElectron_eta": {"name":"RecoElectron_eta", "title":"Reco electron #eta", "bin":60, "xmin":-3,"xmax":3}, - # "RecoElectron_theta": {"name":"RecoElectron_theta", "title":"Reco electron #theta", "bin":64, "xmin":0,"xmax":3.2}, - # "RecoElectron_phi": {"name":"RecoElectron_phi", "title":"Reco electron #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "RecoElectron_e": {"name":"RecoElectron_e", "title":"Reco electron energy [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "RecoElectron_p": {"name":"RecoElectron_p", "title":"Reco electron p [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "RecoElectron_pt": {"name":"RecoElectron_pt", "title":"Reco electron p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "RecoElectron_pz": {"name":"RecoElectron_pz", "title":"Reco electron p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":90}, + "RecoElectron_eta": {"name":"RecoElectron_eta", "title":"Reco electron #eta", "bin":60, "xmin":-3,"xmax":3}, + "RecoElectron_theta": {"name":"RecoElectron_theta", "title":"Reco electron #theta", "bin":64, "xmin":0,"xmax":3.2}, + "RecoElectron_phi": {"name":"RecoElectron_phi", "title":"Reco electron #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, # "RecoElectron_charge": {"name":"RecoElectron_charge", "title":"Reco electron charge", "bin":3, "xmin":-1.5,"xmax":1.5}, "RecoPhoton_e": {"name":"RecoPhoton_e", "title":"Reco photon energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, @@ -796,7 +1107,7 @@ "RecoPhoton_eta": {"name":"RecoPhoton_eta", "title":"Reco photon #eta", "bin":60, "xmin":-3,"xmax":3}, "RecoPhoton_theta": {"name":"RecoPhoton_theta", "title":"Reco photon #theta", "bin":64, "xmin":0,"xmax":3.2}, "RecoPhoton_phi": {"name":"RecoPhoton_phi", "title":"Reco photon #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, - "RecoPhoton_charge": {"name":"RecoPhoton_charge", "title":"Reco photon charge", "bin":3, "xmin":-1.5,"xmax":1.5}, + "RecoPhoton_charge": {"name":"RecoPhoton_charge", "title":"Charge of reco photons", "bin":3, "xmin":-1.5,"xmax":1.5}, # "RecoPhoton_y": {"name":"RecoPhoton_y", "title":"Reco photon rapidity", "bin":100, "xmin":-5, "xmax":5}, @@ -810,7 +1121,7 @@ # "RecoPhotons_ALP_delta_phi":{"name": "RecoPhotons_ALP_delta_phi", "title": "Reco photons #Delta#phi (from ALP)", "bin":100, "xmin": -4, "xmax": 4}, # "RecoPhotons_ALP_delta_eta":{"name": "RecoPhotons_ALP_delta_eta", "title": "Reco photons #Delta#eta (from ALP)", "bin":100, "xmin": -4, "xmax": 4}, - # "RecoPhoton_reference_point_x": {"name": "RecoPhoton_reference_point_x", "title": "Reco photons reference point x", "bin": 100, "xmin": -1, "xmax": 1}, + # "RecoPhoton_reference_point_x": {"name": "RecoPhoton_reference_point_x", "title": "Reco photons reference point x", "bin": 200, "xmin": -100, "xmax": 100}, "RecoPhoton0_e": {"name":"RecoPhoton0_e", "title":"Reco photon_{0} energy [GeV]", "bin":100, "xmin":-3.2, "xmax": 50}, "RecoPhoton1_e": {"name":"RecoPhoton1_e", "title":"Reco photon_{1} energy [GeV]", "bin":100, "xmin":-3.2, "xmax": 50}, @@ -876,4 +1187,120 @@ "GenMinusRecoALP_DecayVertex_z": {"name":"GenMinusRecoALP_DecayVertex_z", "title":"Gen ALP decay vertex z - Reco ALP decay vertex z [mm]", "bin":100,"xmin":-1000 ,"xmax":1000}, # "CalorimeterHitsTime": {"name":"CalorimeterHitsTime", "title":"Calorimeter hits time", "bin":100,"xmin":0,"xmax":2E-8} + + + +######## obj selection: threshold for photons eta<2.5 ####### + "FSGenPhoton_eta_obj_sel_eta": {"name":"FSGenPhoton_eta_obj_sel_eta", "title":"Final state gen photons #eta", "bin":60, "xmin":-3,"xmax":3}, + "FSGenPhoton_theta_obj_sel_eta": {"name":"FSGenPhoton_theta_obj_sel_eta", "title":"Final state gen photons #theta", "bin":64, "xmin":0,"xmax":3.2}, + "FSGenPhoton_phi_obj_sel_eta": {"name":"FSGenPhoton_phi_obj_sel_eta", "title":"Final state gen photons #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "FSGenPhotons_delta_eta_obj_sel_eta":{"name": "FSGenPhotons_delta_eta_obj_sel_eta", "title": "Final state gen photons #Delta#eta", "bin":100, "xmin":0, "xmax":10}, + "FSGenPhotons_delta_phi_obj_sel_eta":{"name": "FSGenPhotons_delta_phi_obj_sel_eta", "title": "Final state gen photons #Delta#phi", "bin":100, "xmin":0, "xmax":10}, + "FSGenPhotons_delta_r_obj_sel_eta": {"name": "FSGenPhotons_delta_r_obj_sel_eta", "title": "Final state gen photons #DeltaR", "bin":100, "xmin":0, "xmax":7}, + "FSGenPhotons_min_delta_r_obj_sel_eta": {"name": "FSGenPhotons_min_delta_r_obj_sel_eta", "title": "Final state gen photons minimum #DeltaR", "bin":100, "xmin":0, "xmax": 7}, + "FSGenPhoton_pt_obj_sel_eta": {"name":"FSGenPhoton_pt_obj_sel_eta", "title":"Final state gen photons p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "FSGenPhoton_e_obj_sel_eta": {"name":"FSGenPhoton_e_obj_sel_eta", "title":"Final state gen photons energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "FSGenPhoton_p_obj_sel_eta": {"name":"FSGenPhoton_p_obj_sel_eta", "title":"Final state gen photons p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "n_FSGenPhoton_obj_sel_eta": {"name":"n_FSGenPhoton_obj_sel_eta", "title":"Number of final state gen photons", "bin":9,"xmin":-0.5 ,"xmax":8.5}, + "FSGenPhoton_pz_obj_sel_eta": {"name":"FSGenPhoton_pz_obj_sel_eta", "title":"Final state gen photons p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton0_e_obj_sel_eta": {"name":"FSGenPhoton0_e_obj_sel_eta", "title":"Final state gen photon_{0} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton1_e_obj_sel_eta": {"name":"FSGenPhoton1_e_obj_sel_eta", "title":"Final state gen photon_{1} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton2_e_obj_sel_eta": {"name":"FSGenPhoton2_e_obj_sel_eta", "title":"Final state gen photon_{3} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton0_p_obj_sel_eta": {"name":"FSGenPhoton0_p_obj_sel_eta", "title":"Final state gen photon_{0} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton1_p_obj_sel_eta": {"name":"FSGenPhoton1_p_obj_sel_eta", "title":"Final state gen photon_{1} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton2_p_obj_sel_eta": {"name":"FSGenPhoton2_p_obj_sel_eta", "title":"Final state gen photon_{3} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton0_pt_obj_sel_eta": {"name":"FSGenPhoton0_pt_obj_sel_eta", "title":"Final state gen photon_{0} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton1_pt_obj_sel_eta": {"name":"FSGenPhoton1_pt_obj_sel_eta", "title":"Final state gen photon_{1} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton2_pt_obj_sel_eta": {"name":"FSGenPhoton2_pt_obj_sel_eta", "title":"Final state gen photon_{3} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton0_pz_obj_sel_eta": {"name":"FSGenPhoton0_pz_obj_sel_eta", "title":"Final state gen photon_{0} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton1_pz_obj_sel_eta": {"name":"FSGenPhoton1_pz_obj_sel_eta", "title":"Final state gen photon_{1} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "FSGenPhoton2_pz_obj_sel_eta": {"name":"FSGenPhoton2_pz_obj_sel_eta", "title":"Final state gen photon_{3} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + + "FSGen_aa_invMass_obj_sel_eta": {"name":"FSGen_aa_invMass_obj_sel_eta", "title":" Gen photon m_{#gamma#gamma} [GeV]", "bin":100,"xmin":0, "xmax":100}, + "FSGen_aa_p_obj_sel_eta": {"name":"FSGen_aa_p_obj_sel_eta", "title":" Gen photon p_{#gamma#gamma} [GeV]", "bin":100,"xmin":0, "xmax":100}, + + + "RecoPhoton_eta_obj_sel_eta": {"name":"RecoPhoton_eta_obj_sel_eta", "title":"Reco photon #eta", "bin":60, "xmin":-3,"xmax":3}, + "RecoPhoton_theta_obj_sel_eta": {"name":"RecoPhoton_theta_obj_sel_eta", "title":"Reco photon #theta", "bin":64, "xmin":0,"xmax":3.2}, + "RecoPhoton_phi_obj_sel_eta": {"name":"RecoPhoton_phi_obj_sel_eta", "title":"Reco photon #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "RecoPhotons_delta_eta_obj_sel_eta":{"name": "RecoPhotons_delta_eta_obj_sel_eta", "title": "Reco photons #Delta#eta", "bin":100, "xmin":0, "xmax":10}, + "RecoPhotons_delta_phi_obj_sel_eta":{"name": "RecoPhotons_delta_phi_obj_sel_eta", "title": "Reco photons #Delta#phi", "bin":100, "xmin":0, "xmax":10}, + "RecoPhotons_delta_r_obj_sel_eta": {"name": "RecoPhotons_delta_r_obj_sel_eta", "title": "Reco photons #DeltaR", "bin":100, "xmin":0, "xmax":7}, + "RecoPhotons_min_delta_r_obj_sel_eta": {"name": "RecoPhotons_min_delta_r_obj_sel_eta", "title": "Reco photons minimum #DeltaR", "bin":100, "xmin":0, "xmax": 7}, + "RecoPhoton_pt_obj_sel_eta": {"name":"RecoPhoton_pt_obj_sel_eta", "title":"Reco photon p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoPhoton_e_obj_sel_eta": {"name":"RecoPhoton_e_obj_sel_eta", "title":"Reco photon energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoPhoton_p_obj_sel_eta": {"name":"RecoPhoton_p_obj_sel_eta", "title":"Reco photon p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "n_RecoPhotons_obj_sel_eta": {"name":"n_RecoPhotons_obj_sel_eta", "title":"Total number of reco photons", "bin":9,"xmin":-0.5 ,"xmax":8.5, "ymin":10e-4}, + "RecoPhoton_charge_obj_sel_eta": {"name":"RecoPhoton_charge_obj_sel_eta", "title":"Charge of reco photons", "bin":3, "xmin":-1.5,"xmax":1.5}, + + "RecoPhoton_diphoton_delta_r_obj_sel_eta": {"name": "RecoPhoton_diphoton_delta_r_obj_sel_eta", "title": "Reco #DeltaR between diphoton and photon_{0}", "bin":100, "xmin":0, "xmax":7}, + + + "RecoPhoton_pz_obj_sel_eta": {"name":"RecoPhoton_pz_obj_sel_eta", "title":"Reco photon p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton0_e_obj_sel_eta": {"name":"RecoPhoton0_e_obj_sel_eta", "title":"Reco photon_{0} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton1_e_obj_sel_eta": {"name":"RecoPhoton1_e_obj_sel_eta", "title":"Reco photon_{1} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton2_e_obj_sel_eta": {"name":"RecoPhoton2_e_obj_sel_eta", "title":"Reco photon_{2} energy [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton0_p_obj_sel_eta": {"name":"RecoPhoton0_p_obj_sel_eta", "title":"Reco photon_{0} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton1_p_obj_sel_eta": {"name":"RecoPhoton1_p_obj_sel_eta", "title":"Reco photon_{1} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton2_p_obj_sel_eta": {"name":"RecoPhoton2_p_obj_sel_eta", "title":"Reco photon_{2} p [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton0_pt_obj_sel_eta": {"name":"RecoPhoton0_pt_obj_sel_eta", "title":"Reco photon_{0} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton1_pt_obj_sel_eta": {"name":"RecoPhoton1_pt_obj_sel_eta", "title":"Reco photon_{1} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton2_pt_obj_sel_eta": {"name":"RecoPhoton2_pt_obj_sel_eta", "title":"Reco photon_{2} p_{T} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton0_pz_obj_sel_eta": {"name":"RecoPhoton0_pz_obj_sel_eta", "title":"Reco photon_{0} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton1_pz_obj_sel_eta": {"name":"RecoPhoton1_pz_obj_sel_eta", "title":"Reco photon_{1} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + "RecoPhoton2_pz_obj_sel_eta": {"name":"RecoPhoton2_pz_obj_sel_eta", "title":"Reco photon_{2} p_{z} [GeV]", "bin":100,"xmin":-3.2 ,"xmax":50}, + + "Reco_aa_invMass_obj_sel_eta": {"name":"Reco_aa_invMass_obj_sel_eta", "title":"Reco photon m_{#gamma#gamma} [GeV]", "bin":100,"xmin":0, "xmax":100}, + "Reco_aa_p_obj_sel_eta": {"name":"Reco_aa_p_obj_sel_eta", "title":"Reco photon p_{#gamma#gamma} [GeV]", "bin":60,"xmin":0, "xmax":60}, + "Reco_beta_ALP_obj_sel_eta": {"name":"Reco_beta_ALP_obj_sel_eta", "title":"Reco #beta_{ALP} [GeV]", "bin":150,"xmin":0, "xmax":1.5}, + + # "RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta": {"name":"RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta", "title":"Calorimeter hit position x for photon_{0} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + # "RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta": {"name":"RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta", "title":"Calorimeter hit position y for photon_{0} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + # "RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta": {"name":"RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta", "title":"Calorimeter hit position z for photon_{0} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + # "RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta": {"name":"RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta", "title":"Calorimeter hit position x for photon_{1} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + # "RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta": {"name":"RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta", "title":"Calorimeter hit position y for photon_{1} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + # "RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta": {"name":"RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta", "title":"Calorimeter hit position z for photon_{1} [mm]", "bin":600,"xmin":-3000 ,"xmax":3000}, + + # "RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta": {"name":"RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta", "title":"Length of trajectory of prompt photon [mm]", "bin":450,"xmin":0 ,"xmax":4500}, + # "max_dist_ALP_to_calorimeter_obj_sel_eta": {"name":"max_dist_ALP_to_calorimeter_obj_sel_eta", "title":"Length of trajectory of displaced photon from ALP decay vertex [mm]", "bin":550,"xmin":0 ,"xmax":5500}, + # "RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta": {"name":"RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta", "title":"Total length of trajectory of displaced photon & ALP [mm]", "bin":550,"xmin":0 ,"xmax":5500}, + # "RecoPhoton0_time2calorimeter_obj_sel_eta": {"name":"RecoPhoton0_time2calorimeter_obj_sel_eta", "title":"Reco t calorimeter hit [s]", "bin":100,"xmin":0 ,"xmax":0.2E-8}, + # "RecoPhoton1_time2calorimeter_obj_sel_eta_new": {"name":"RecoPhoton1_time2calorimeter_obj_sel_eta_new", "title":"Reco t calorimeter hit [s]", "bin":100,"xmin":0 ,"xmax":0.2E-8}, + # "Reco_deltaT_CaloriHit_obj_sel_eta_new": {"name":"Reco_deltaT_CaloriHit_obj_sel_eta_new", "title":"Reco#Deltat between calorimeter hits [s]", "bin":100,"xmin":0 ,"xmax":0.2E-8}, + + + + + "RecoPhoton_pidx_min_delta_r_obj_sel_eta": {"name":"RecoPhoton_pidx_min_delta_r_obj_sel_eta", "title":"Reco photon indices of mindeltaR [GeV]", "bin":15,"xmin":0, "xmax":15}, + "RecoPhoton1_pz_obj_sel_eta_v2": {"name":"RecoPhoton1_pz_obj_sel_eta_v2", "title":"Reco photon_{1} p_{z} [GeV]", "bin":100,"xmin":-3.2, "xmax":50}, + "RecoPhoton2_pz_obj_sel_eta_v2": {"name":"RecoPhoton2_pz_obj_sel_eta_v2", "title":"Reco photon_{2} p_{z} [GeV]", "bin":100,"xmin":-3.2, "xmax":50}, + "Reco_aa_invMass_obj_sel_eta_v2":{"name":"Reco_aa_invMass_obj_sel_eta_v2", "title":"Reco photon m_{#gamma#gamma} [GeV]", "bin":100,"xmin":0, "xmax":100}, + "Reco_aa_p_obj_sel_eta_v2":{"name":"Reco_aa_p_obj_sel_eta_v2", "title":"Reco photon p_{#gamma#gamma} [GeV]", "bin":60,"xmin":0, "xmax":60}, + + + # "verify_deltaR": {"name": "verify_deltaR", "title": "Reco photons #DeltaR", "bin":100, "xmin":0, "xmax":7}, + + # # alp photons with obj sel + "RecoALPPhoton1_e_obj_sel_eta": {"name":"RecoALPPhoton1_e_obj_sel_eta", "title":"Reco photon_{1} (from ALP) energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton2_e_obj_sel_eta": {"name":"RecoALPPhoton2_e_obj_sel_eta", "title":"Reco photon_{2} (from ALP) energy [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton1_p_obj_sel_eta": {"name":"RecoALPPhoton1_p_obj_sel_eta", "title":"Reco photon_{1} (from ALP) p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton2_p_obj_sel_eta": {"name":"RecoALPPhoton2_p_obj_sel_eta", "title":"Reco photon_{2} (from ALP) p [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton1_pt_obj_sel_eta": {"name":"RecoALPPhoton1_pt_obj_sel_eta", "title":"Reco photon_{1} (from ALP) p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton2_pt_obj_sel_eta": {"name":"RecoALPPhoton2_pt_obj_sel_eta", "title":"Reco photon_{2} (from ALP) p_{T} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton1_pz_obj_sel_eta": {"name":"RecoALPPhoton1_pz_obj_sel_eta", "title":"Reco photon_{1} (from ALP) p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton2_pz_obj_sel_eta": {"name":"RecoALPPhoton2_pz_obj_sel_eta", "title":"Reco photon_{2} (from ALP) p_{z} [GeV]", "bin":100,"xmin":0 ,"xmax":50}, + "RecoALPPhoton1_eta_obj_sel_eta": {"name":"RecoALPPhoton1_eta_obj_sel_eta", "title":"Reco photon_{1} (from ALP) #eta", "bin":60, "xmin":-3,"xmax":3}, + "RecoALPPhoton2_eta_obj_sel_eta": {"name":"RecoALPPhoton2_eta_obj_sel_eta", "title":"Reco photon_{2} (from ALP) #eta", "bin":60, "xmin":-3,"xmax":3}, + "RecoALPPhoton1_phi_obj_sel_eta": {"name":"RecoALPPhoton1_phi_obj_sel_eta", "title":"Reco photon_{1} (from ALP) #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "RecoALPPhoton2_phi_obj_sel_eta": {"name":"RecoALPPhoton2_phi_obj_sel_eta", "title":"Reco photon_{2} (from ALP) #phi", "bin":64, "xmin":-3.2,"xmax":3.2}, + "RecoALPPhotons_deltaEta_obj_sel_eta": {"name":"RecoALPPhotons_deltaEta_obj_sel_eta", "title":"Reco ALP photons #Delta#eta", "bin":60, "xmin":-2, "xmax":8}, + "RecoALPPhotons_deltaPhi_obj_sel_eta": {"name":"RecoALPPhotons_deltaPhi_obj_sel_eta", "title":"Reco ALP photons #Delta#phi", "bin":60, "xmin":-2, "xmax":8}, + "RecoALPPhotons_deltaR_obj_sel_eta": {"name":"RecoALPPhotons_deltaR_obj_sel_eta", "title":"Reco ALP photons #DeltaR", "bin":60, "xmin":-3, "xmax":8}, + "n_RecoALPPhoton1_obj_sel_eta": {"name":"n_RecoALPPhoton1_obj_sel_eta", "title":"Number of reco photon_{1} (from ALP)", "bin":5, "xmin":-0.5, "xmax":4.5}, + "n_RecoALPPhoton2_obj_sel_eta": {"name":"n_RecoALPPhoton2_obj_sel_eta", "title":"Number of reco photon_{2} (from ALP)", "bin":5, "xmin":-0.5, "xmax":4.5}, + "RecoALP_aa_invMass_obj_sel_eta": {"name":"RecoALP_aa_invMass_obj_sel_eta", "title":"Reco m_{#gamma#gamma} (from ALP) [GeV]", "bin":100,"xmin":0, "xmax":100}, + "RecoALP_aa_p_obj_sel_eta": {"name":"RecoALP_aa_p_obj_sel_eta", "title":"Reco photon (from ALP) p_{#gamma#gamma} [GeV]", "bin":60,"xmin":0, "xmax":60}, + + + } diff --git a/examples/FCCee/bsm/LLPs/ALPs/analysis_plots.py b/examples/FCCee/bsm/LLPs/ALPs/analysis_plots.py index 05020d2427b..c515dbb37fd 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/analysis_plots.py +++ b/examples/FCCee/bsm/LLPs/ALPs/analysis_plots.py @@ -1,11 +1,14 @@ import ROOT + # global parameters -intLumi = 150.0e+06 #in pb-1 +intLumi = 205.0e+06 #in pb-1 ###If scaleSig=0 or scaleBack=0, we don't apply any additional scaling, on top of the normalization to cross section and integrated luminosity, as defined in finalSel.py -###If scaleSig or scaleBack is not defined, plots will be normalized to 1 -# scaleSig = 1. +###If scaleSig or scaleBack is equal to -1, plots will be normalized to 1 +scaleSig = -1. +scaleBkg = -1. + # scaleBack = 1. ana_tex = 'e^{+}e^{-} #rightarrow Z #rightarrow #gamma ALP #rightarrow 3#gamma' #ana_tex = '' @@ -13,7 +16,10 @@ delphesVersion = '' energy = 91 collider = 'FCC-ee' -inputDir = './final_samecYY/' + +inputDir = "/eos/user/e/ebakhish/final_output/cut_flow_4sel/" + + #formats = ['png','pdf'] # formats = ['pdf'] formats = ['png'] @@ -21,11 +27,14 @@ yaxis = ['log'] # yaxis = ['lin','log'] stacksig = ['nostack'] -outdir = './plots_samecYY2/' +#outdir = './plots_output/' +# outdir = './plots_output/testing/' + splitLeg = True variables = [ #gen variables + # "Calorimeterhit_time", "All_n_GenALP", "AllGenALP_mass", "AllGenALP_e", @@ -44,13 +53,24 @@ # # "n_FSGenElectron_forFS2GenPhotons", # # "n_FSGenPositron_forFS2GenPhotons", - # "FSGenElectron_e", - # "FSGenElectron_p", - # "FSGenElectron_pt", - # "FSGenElectron_pz", - # "FSGenElectron_eta", - # "FSGenElectron_theta", - # "FSGenElectron_phi", + "FSGenElectron_e", + "FSGenElectron_p", + "FSGenElectron_pt", + "FSGenElectron_pz", + "FSGenElectron_eta", + "FSGenElectron_theta", + "FSGenElectron_phi", + + # "n_FSGenElectronPositron", + # "FSGenElectronPositron_e", + # "FSGenElectronPositron_p", + # "FSGenElectronPositron_pt", + # "FSGenElectronPositron_px", + # "FSGenElectronPositron_py", + # "FSGenElectronPositron_pz", + # "FSGenElectronPositron_eta", + # "FSGenElectronPositron_theta", + # "FSGenElectronPositron_phi", # "FSGenPositron_e", # "FSGenPositron_p", @@ -92,7 +112,7 @@ # "FSGen_Lxyz", # "FSGen_lifetime_xy", # "FSGen_lifetime_xyz", - + "FSGenALP_p", "FSGenPhoton0_e", "FSGenPhoton1_e", "FSGenPhoton2_e", @@ -129,6 +149,7 @@ "GenALP_eta", "GenALP_theta", "GenALP_phi", + "GenALP_beta", "GenALP_lifetime_xy", "GenALP_lifetime_xyz", "GenALP_Lxy", @@ -162,7 +183,8 @@ "GenALPPhoton1_vertex_y", "GenALPPhoton1_vertex_z", - # "GenALP_aa_invMass", + "GenALP_aa_invMass", + # #reco variables "n_RecoTracks", @@ -183,7 +205,9 @@ "GenALPPhoton2_time", # "GenALPPhotons_deltaR_2", - # "FSGenPhotons_delta_r", + "FSGenPhotons_delta_r", + "FSGenPhotons_min_delta_r", + "GenALP_observed_lifetime_xyz", @@ -228,13 +252,13 @@ # "RecoJet_phi", # "RecoJet_charge", - # "RecoElectron_e", - # "RecoElectron_p", - # "RecoElectron_pt", - # "RecoElectron_pz", - # "RecoElectron_eta", - # "RecoElectron_theta", - # "RecoElectron_phi", + "RecoElectron_e", + "RecoElectron_p", + "RecoElectron_pt", + "RecoElectron_pz", + "RecoElectron_eta", + "RecoElectron_theta", + "RecoElectron_phi", # "RecoElectron_charge", "RecoPhoton_e", @@ -277,6 +301,12 @@ "RecoPhoton1_pz", "RecoPhoton2_pz", + "RecoALP_aa_invMass", + "RecoALP_aa_p", + "RecoALP_aa_energy", + "Reco_aa_invMass", + "Reco_aa_p", + "RecoPhoton1_px_if_RecoPhoton2_px_pos", "RecoPhoton1_pz_if_RecoPhoton2_pz_pos", @@ -308,6 +338,109 @@ "GenMinusRecoALP_DecayVertex_z", # "CalorimeterHitsTime", + +##### OBJECT SELECTION: FSGenPhotons and RecoPhotons with selection: eta<2.5 as threshold #### + "FSGenPhoton_eta_obj_sel_eta", + "FSGenPhoton_theta_obj_sel_eta", + "FSGenPhoton_phi_obj_sel_eta", + "FSGenPhotons_delta_eta_obj_sel_eta", + "FSGenPhotons_delta_phi_obj_sel_eta", + "FSGenPhotons_delta_r_obj_sel_eta", + "FSGenPhotons_min_delta_r_obj_sel_eta", + "FSGenPhoton_pt_obj_sel_eta", + "FSGenPhoton_e_obj_sel_eta", + "FSGenPhoton_p_obj_sel_eta", + "n_FSGenPhoton_obj_sel_eta", + "FSGenPhoton_pz_obj_sel_eta", + "FSGenPhoton0_e_obj_sel_eta", + "FSGenPhoton1_e_obj_sel_eta", + "FSGenPhoton2_e_obj_sel_eta", + "FSGenPhoton0_p_obj_sel_eta", + "FSGenPhoton1_p_obj_sel_eta", + "FSGenPhoton2_p_obj_sel_eta", + "FSGenPhoton0_pt_obj_sel_eta", + "FSGenPhoton1_pt_obj_sel_eta", + "FSGenPhoton2_pt_obj_sel_eta", + "FSGenPhoton0_pz_obj_sel_eta", + "FSGenPhoton1_pz_obj_sel_eta", + "FSGenPhoton2_pz_obj_sel_eta", + "FSGen_aa_invMass_obj_sel_eta", + "FSGen_aa_p_obj_sel_eta", + + "RecoPhoton_eta_obj_sel_eta", + "RecoPhoton_theta_obj_sel_eta", + "RecoPhoton_phi_obj_sel_eta", + "RecoPhotons_delta_eta_obj_sel_eta", + "RecoPhotons_delta_phi_obj_sel_eta", + "RecoPhotons_delta_r_obj_sel_eta", + "RecoPhotons_min_delta_r_obj_sel_eta", + "RecoPhoton_pt_obj_sel_eta", + "RecoPhoton_e_obj_sel_eta", + "RecoPhoton_p_obj_sel_eta", + "n_RecoPhotons_obj_sel_eta", + "RecoPhoton_charge_obj_sel_eta", + "RecoPhoton_diphoton_delta_r_obj_sel_eta", + "RecoPhoton_pz_obj_sel_eta", + "RecoPhoton0_e_obj_sel_eta", + "RecoPhoton1_e_obj_sel_eta", + "RecoPhoton2_e_obj_sel_eta", + "RecoPhoton0_p_obj_sel_eta", + "RecoPhoton1_p_obj_sel_eta", + "RecoPhoton2_p_obj_sel_eta", + "RecoPhoton0_pt_obj_sel_eta", + "RecoPhoton1_pt_obj_sel_eta", + "RecoPhoton2_pt_obj_sel_eta", + "RecoPhoton0_pz_obj_sel_eta", + "RecoPhoton1_pz_obj_sel_eta", + "RecoPhoton2_pz_obj_sel_eta", + + # "RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta", + # "RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta", + # "RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta", + # "RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta", + # "RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta", #newversion + # "RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta", #newversion + # "RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta", #newversion + # "max_dist_ALP_to_calorimeter_obj_sel_eta", + # "RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta", #newversion + # "RecoPhoton0_time2calorimeter_obj_sel_eta", + # "RecoPhoton1_time2calorimeter_obj_sel_eta_new", + # "Reco_deltaT_CaloriHit_obj_sel_eta_new", + + "Reco_aa_invMass_obj_sel_eta", + "Reco_aa_p_obj_sel_eta", + + "RecoPhoton_pidx_min_delta_r_obj_sel_eta", + "RecoPhoton1_pz_obj_sel_eta_v2", + "RecoPhoton2_pz_obj_sel_eta_v2", + # "verify_deltaR", + "Reco_aa_invMass_obj_sel_eta_v2", + "Reco_aa_p_obj_sel_eta_v2", + + + "RecoALPPhoton1_e_obj_sel_eta", + "RecoALPPhoton2_e_obj_sel_eta", + "RecoALPPhoton1_p_obj_sel_eta", + "RecoALPPhoton2_p_obj_sel_eta", + "RecoALPPhoton1_pt_obj_sel_eta", + "RecoALPPhoton2_pt_obj_sel_eta", + "RecoALPPhoton1_pz_obj_sel_eta", + "RecoALPPhoton2_pz_obj_sel_eta", + "RecoALPPhoton1_eta_obj_sel_eta", + "RecoALPPhoton2_eta_obj_sel_eta", + "RecoALPPhoton1_phi_obj_sel_eta", + "RecoALPPhoton2_phi_obj_sel_eta", + "RecoALPPhotons_deltaEta_obj_sel_eta", + "RecoALPPhotons_deltaPhi_obj_sel_eta", + "RecoALPPhotons_deltaR_obj_sel_eta", + "n_RecoALPPhoton1_obj_sel_eta", + "n_RecoALPPhoton2_obj_sel_eta", + "RecoALP_aa_invMass_obj_sel_eta", + "RecoALP_aa_p_obj_sel_eta", + "Reco_beta_ALP_obj_sel_eta", + + + ] @@ -321,8 +454,13 @@ # "sel1+2", # "seltest", # "seldeltaR", - # "selp", - # "selall", + + + # "sel_0electrons", + # "sel_2", + # "sel_3", + # "sel_4", + ] extralabel = {} @@ -337,6 +475,21 @@ # extralabel['seldeltaR'] = "3 reco photons and reco photons min #DeltaR < 1" # extralabel["selp"] = "3 reco photons and RecoPhoton0 momentum > 44" # extralabel["selall"] = "all selections" +# extralabel["selbkg"] = "Selection: FS gen photons min #DeltaR>0.4&photons t momentum >10GeV " + + +# extralabel["sel_3photon"] = "Exactly 3 reconstructed photons" +# extralabel["sel_3photon"] = "Selection 1" +# extralabel["sel_mindeltaR"] = "Reco photons min #DeltaR < 1" +extralabel["sel_0electrons"] = "Exactly 0 reconstructed electrons" +extralabel["sel_2"] = "Selection 1 & 2" +extralabel["sel_3"] = "Selection 1 & 2 & 3" +extralabel["sel_4"] = "Selection 1 & 2 & 3 & 4" + + +color_palette_petroff_6 = ["#5790fc", "#f89c20", "#e42536", "#964a8b", "#9c9ca1", "#7a21dd"] +color_palette_petroff_8 = ["#1845fb", "#ff5e02", "#c91f16", "#c849a9", "#adad7d", "#86c8dd", "#578dff", "#656364"] +color_palette_petroff_10 = ["#3f90da", "#ffa90e", "#bd1f01", "#94a4a2", "#832db6", "#a96b59", "#e76300", "#b9ac70", "#717581", "#92dadd"] colors = {} # colors['ALP_Z_aa_0.316.GeV_cYY_0.00006'] = ROOT.kRed @@ -373,14 +526,14 @@ # colors['ALP_Z_aa_2.GeV_cYY_1.0'] = ROOT.kBlue # colors['ALP_Z_aa_3.GeV_cYY_1.0'] = ROOT.kViolet # colors['ALP_Z_aa_4.GeV_cYY_1.0'] = ROOT.kViolet -# colors['ALP_Z_aa_5.GeV_cYY_1.0'] = ROOT.kCyan -# colors['ALP_Z_aa_8.GeV_cYY_1.0'] = ROOT.kCyan +# colors['ALP_Z_aa_5.GeV_cYY_1.0'] = ROOT.kGreen +# colors['ALP_Z_aa_8.GeV_cYY_1.0'] = ROOT.kViolet -colors['ALP_Z_aa_0.6.GeV_cYY_1.0'] = ROOT.kOrange -colors['ALP_Z_aa_0.8.GeV_cYY_1.0'] = ROOT.kAzure -colors['ALP_Z_aa_1.GeV_cYY_1.0'] = ROOT.kCyan -colors['ALP_Z_aa_1.2.GeV_cYY_1.0'] = ROOT.kGreen -colors['ALP_Z_aa_1.4.GeV_cYY_1.0'] = ROOT.kMagenta +# # colors['ALP_Z_aa_0.6.GeV_cYY_1.0'] = ROOT.kOrange +# colors['ALP_Z_aa_0.8.GeV_cYY_1.0'] = ROOT.kAzure +# colors['ALP_Z_aa_1.GeV_cYY_1.0'] = ROOT.kCyan +# colors['ALP_Z_aa_1.2.GeV_cYY_1.0'] = ROOT.kGreen +# colors['ALP_Z_aa_1.4.GeV_cYY_1.0'] = ROOT.kMagenta # colors['ALP_Z_aa_3.GeV_cYY_0.1'] = ROOT.kRed # colors['ALP_Z_aa_3.GeV_cYY_0.3'] = ROOT.kBlue @@ -418,6 +571,30 @@ # colors['ee_aaa'] = ROOT.kYellow # colors['ee_aaaa'] = ROOT.kCyan +###for my analysis### + +# colors['ALP_Z_aa_10p0GeV_cYY1p6']=ROOT.TColor.GetColor(color_palette_petroff_10[2]) +# colors['ALP_Z_aa_3p0GeV_cYY1p6']=ROOT.TColor.GetColor(color_palette_petroff_8[0]) +# colors['ALP_Z_aa_1p0GeV_cYY1p0']=ROOT.TColor.GetColor(color_palette_petroff_10[9]) +# colors['ALP_Z_aa_0p3GeV_cYY0p4']=ROOT.TColor.GetColor(color_palette_petroff_10[4]) +# colors['ALP_Z_aa_0p03GeV_cYY0p4']=ROOT.TColor.GetColor(color_palette_petroff_10[4]) +# colors['ALP_Z_aa_1p0GeV_cYY0p4']=ROOT.TColor.GetColor(color_palette_petroff_8[2]) +# colors['ALP_Z_aa_0p1GeV_cYY0p4']=ROOT.TColor.GetColor(color_palette_petroff_10[4]) +# colors['ALP_Z_aa_1p0GeV_cYY0p002']=ROOT.TColor.GetColor(color_palette_petroff_8[0]) +# colors['ALP_Z_aa_1p0GeV_cYY0p0002']=ROOT.TColor.GetColor(color_palette_petroff_10[8]) +# colors['ALP_Z_aa_0p1GeV_cYY1p6']=ROOT.TColor.GetColor(color_palette_petroff_10[8]) + + +#backgrounds +colors['background_ee_aa1'] = ROOT.TColor.GetColor(color_palette_petroff_10[0]) +colors['background_ee_aaa1'] = ROOT.TColor.GetColor(color_palette_petroff_10[1]) +colors['background_ee_aaaa1'] = ROOT.TColor.GetColor(color_palette_petroff_10[3]) +colors['background_ee_ee'] = ROOT.TColor.GetColor(color_palette_petroff_10[6]) +colors['background_ee_eea1'] = ROOT.TColor.GetColor(color_palette_petroff_10[7]) +colors['background_ee_eeaa1'] = ROOT.TColor.GetColor(color_palette_petroff_10[5]) +colors['background_ee_eeaaa1'] = ROOT.TColor.GetColor(color_palette_petroff_10[8]) + + plots = {} plots['ALP'] = {'signal':{ # 'ALP_Z_aa_0.316.GeV_cYY_0.00006':['ALP_Z_aa_0.316.GeV_cYY_0.00006'], @@ -448,47 +625,87 @@ # 'ALP_Z_aa_1.GeV_cYY_1.2':['ALP_Z_aa_1.GeV_cYY_1.2'], # 'ALP_Z_aa_1.GeV_cYY_1.4':['ALP_Z_aa_1.GeV_cYY_1.4'], - # 'ALP_Z_aa_0.5.GeV_cYY_1.0':['ALP_Z_aa_0.5.GeV_cYY_1.0'], - # 'ALP_Z_aa_1.GeV_cYY_1.0':['ALP_Z_aa_1.GeV_cYY_1.0'], - # 'ALP_Z_aa_1.5.GeV_cYY_1.0':['ALP_Z_aa_1.5.GeV_cYY_1.0'], - # 'ALP_Z_aa_2.GeV_cYY_1.0':['ALP_Z_aa_2.GeV_cYY_1.0'], - # 'ALP_Z_aa_3.GeV_cYY_1.0':['ALP_Z_aa_3.GeV_cYY_1.0'], - # 'ALP_Z_aa_4.GeV_cYY_1.0':['ALP_Z_aa_4.GeV_cYY_1.0'], - # 'ALP_Z_aa_5.GeV_cYY_1.0':['ALP_Z_aa_5.GeV_cYY_1.0'], - # 'ALP_Z_aa_8.GeV_cYY_1.0':['ALP_Z_aa_8.GeV_cYY_1.0'], - - 'ALP_Z_aa_0.6.GeV_cYY_1.0':['ALP_Z_aa_0.6.GeV_cYY_1.0'], - 'ALP_Z_aa_0.8.GeV_cYY_1.0':['ALP_Z_aa_0.8.GeV_cYY_1.0'], - 'ALP_Z_aa_1.GeV_cYY_1.0':['ALP_Z_aa_1.GeV_cYY_1.0'], - 'ALP_Z_aa_1.2.GeV_cYY_1.0':['ALP_Z_aa_1.2.GeV_cYY_1.0'], - 'ALP_Z_aa_1.4.GeV_cYY_1.0':['ALP_Z_aa_1.4.GeV_cYY_1.0'], - - # 'ALP_Z_aa_3.GeV_cYY_0.1':['ALP_Z_aa_3.GeV_cYY_0.1'], - # 'ALP_Z_aa_3.GeV_cYY_0.3':['ALP_Z_aa_3.GeV_cYY_0.3'], - # 'ALP_Z_aa_3.GeV_cYY_0.5':['ALP_Z_aa_3.GeV_cYY_0.5'], - # 'ALP_Z_aa_3.GeV_cYY_0.7':['ALP_Z_aa_3.GeV_cYY_0.7'], - # 'ALP_Z_aa_3.GeV_cYY_0.9':['ALP_Z_aa_3.GeV_cYY_0.9'], - - # 'ALP_Z_aa_5.GeV_cYY_0.1':['ALP_Z_aa_5.GeV_cYY_0.1'], - # 'ALP_Z_aa_5.GeV_cYY_0.3':['ALP_Z_aa_5.GeV_cYY_0.3'], - # 'ALP_Z_aa_5.GeV_cYY_0.5':['ALP_Z_aa_5.GeV_cYY_0.5'], - # 'ALP_Z_aa_5.GeV_cYY_0.7':['ALP_Z_aa_5.GeV_cYY_0.7'], - # 'ALP_Z_aa_5.GeV_cYY_0.9':['ALP_Z_aa_5.GeV_cYY_0.9'], - - # 'ALP_Z_aa_0.5GeV_cYY_0.5':['ALP_Z_aa_0.5GeV_cYY_0.5'], - # 'ALP_Z_aa_0.7GeV_cYY_0.5':['ALP_Z_aa_0.7GeV_cYY_0.5'], - # 'ALP_Z_aa_1.GeV_cYY_0.5':['ALP_Z_aa_1.GeV_cYY_0.5'], - # 'ALP_Z_aa_3.GeV_cYY_0.5':['ALP_Z_aa_3.GeV_cYY_0.5'], - # 'ALP_Z_aa_5.GeV_cYY_0.5':['ALP_Z_aa_5.GeV_cYY_0.5'], - # 'ALP_Z_aa_7.GeV_cYY_0.5':['ALP_Z_aa_7.GeV_cYY_0.5'], - # 'ALP_Z_aa_10.GeV_cYY_0.5':['ALP_Z_aa_10.GeV_cYY_0.5'], - # 'ALP_Z_aa_15.GeV_cYY_0.5':['ALP_Z_aa_15.GeV_cYY_0.5'], - # 'ALP_Z_aa_20.GeV_cYY_0.5':['ALP_Z_aa_20.GeV_cYY_0.5'], - # 'ALP_Z_aa_25.GeV_cYY_0.5':['ALP_Z_aa_25.GeV_cYY_0.5'], - # 'ALP_Z_aa_30.GeV_cYY_0.5':['ALP_Z_aa_30.GeV_cYY_0.5'], - - # 'ee_Z_ALPga_gagaga':['ee_Z_ALPga_gagaga'], + # 'ALP_Z_aa_0.5.GeV_cYY_1.0':['ALP_Z_aa_0.5.GeV_cYY_1.0'], + # 'ALP_Z_aa_0.8.GeV_cYY_1.0':['ALP_Z_aa_0.8.GeV_cYY_1.0'], + # 'ALP_Z_aa_1.GeV_cYY_1.0':['ALP_Z_aa_1.GeV_cYY_1.0'], + # # 'ALP_Z_aa_1.5.GeV_cYY_1.0':['ALP_Z_aa_1.5.GeV_cYY_1.0'], + # # 'ALP_Z_aa_2.GeV_cYY_1.0':['ALP_Z_aa_2.GeV_cYY_1.0'], + # # 'ALP_Z_aa_3.GeV_cYY_1.0':['ALP_Z_aa_3.GeV_cYY_1.0'], + # # 'ALP_Z_aa_4.GeV_cYY_1.0':['ALP_Z_aa_4.GeV_cYY_1.0'], + # 'ALP_Z_aa_5.GeV_cYY_1.0':['ALP_Z_aa_5.GeV_cYY_1.0'], + # 'ALP_Z_aa_8.GeV_cYY_1.0':['ALP_Z_aa_8.GeV_cYY_1.0'], + + + + ### my signals ### + # 'ALP_Z_aa_0p5GeV_cYY1p0':['ALP_Z_aa_0p5GeV_cYY1p0'], + # 'ALP_Z_aa_0p8GeV_cYY1p0':['ALP_Z_aa_0p8GeV_cYY1p0'], + # 'ALP_Z_aa_1p0GeV_cYY1p0':['ALP_Z_aa_1p0GeV_cYY1p0'], + # 'ALP_Z_aa_5p0GeV_cYY1p0':['ALP_Z_aa_5p0GeV_cYY1p0'], + # 'ALP_Z_aa_8p0GeV_cYY1p0':['ALP_Z_aa_8p0GeV_cYY1p0'], + + # 'ALP_Z_aa_0p001GeV_cYY1p0':['ALP_Z_aa_0p001GeV_cYY1p0'], + # 'ALP_Z_aa_0p01GeV_cYY1p0':['ALP_Z_aa_0p01GeV_cYY1p0'], + # 'ALP_Z_aa_0p1GeV_cYY1p0':['ALP_Z_aa_0p1GeV_cYY1p0'], + # 'ALP_Z_aa_0p5GeV_cYY1p0':['ALP_Z_aa_0p5GeV_cYY1p0'], + # 'ALP_Z_aa_0p8GeV_cYY1p0':['ALP_Z_aa_0p8GeV_cYY1p0'], + # 'ALP_Z_aa_1p0GeV_cYY1p0':['ALP_Z_aa_1p0GeV_cYY1p0'], + # 'ALP_Z_aa_3p0GeV_cYY1p0':['ALP_Z_aa_3p0GeV_cYY1p0'], + # 'ALP_Z_aa_5p0GeV_cYY1p0':['ALP_Z_aa_5p0GeV_cYY1p0'], + # 'ALP_Z_aa_10p0GeV_cYY1p0':['ALP_Z_aa_10p0GeV_cYY1p0'], + # 'ALP_Z_aa_20p0GeV_cYY1p0':['ALP_Z_aa_20p0GeV_cYY1p0'], + # 'ALP_Z_aa_30p0GeV_cYY1p0':['ALP_Z_aa_30p0GeV_cYY1p0'], + + + # 'ALP_Z_aa_1p0GeV_cYY0p001':['ALP_Z_aa_1p0GeV_cYY0p001'], + # 'ALP_Z_aa_1p0GeV_cYY0p01':['ALP_Z_aa_1p0GeV_cYY0p01'], + # 'ALP_Z_aa_1p0GeV_cYY0p1':['ALP_Z_aa_1p0GeV_cYY0p1'], + # 'ALP_Z_aa_1p0GeV_cYY0p4':['ALP_Z_aa_1p0GeV_cYY0p4'], + # 'ALP_Z_aa_1p0GeV_cYY0p7':['ALP_Z_aa_1p0GeV_cYY0p7'], + # 'ALP_Z_aa_1p0GeV_cYY1p0':['ALP_Z_aa_1p0GeV_cYY1p0'], + # 'ALP_Z_aa_1p0GeV_cYY1p3':['ALP_Z_aa_1p0GeV_cYY1p3'], + # 'ALP_Z_aa_1p0GeV_cYY1p6':['ALP_Z_aa_1p0GeV_cYY1p6'], + + + + # 'ALP_Z_aa_30p0GeV_cYY1p6':['ALP_Z_aa_30p0GeV_cYY1p6'], + # 'ALP_Z_aa_10p0GeV_cYY1p6':['ALP_Z_aa_10p0GeV_cYY1p6'], + # 'ALP_Z_aa_3p0GeV_cYY1p6':['ALP_Z_aa_3p0GeV_cYY1p6'], + # 'ALP_Z_aa_1p0GeV_cYY1p6':['ALP_Z_aa_1p0GeV_cYY1p6'], + # 'ALP_Z_aa_0p1GeV_cYY1p6':['ALP_Z_aa_0p1GeV_cYY1p6'], + + # 'ALP_Z_aa_1p0GeV_cYY1p0':['ALP_Z_aa_1p0GeV_cYY1p0'], + # 'ALP_Z_aa_0p1GeV_cYY1p0':['ALP_Z_aa_0p1GeV_cYY1p0'], + + # 'ALP_Z_aa_30p0GeV_cYY0p4':['ALP_Z_aa_30p0GeV_cYY0p4'], + # 'ALP_Z_aa_10p0GeV_cYY0p4':['ALP_Z_aa_10p0GeV_cYY0p4'], + # 'ALP_Z_aa_3p0GeV_cYY0p4':['ALP_Z_aa_3p0GeV_cYY0p4'], + # 'ALP_Z_aa_1p0GeV_cYY0p4':['ALP_Z_aa_1p0GeV_cYY0p4'], + # 'ALP_Z_aa_0p3GeV_cYY0p4':['ALP_Z_aa_0p3GeV_cYY0p4'], + # 'ALP_Z_aa_0p03GeV_cYY0p4':['ALP_Z_aa_0p03GeV_cYY0p4'], + # 'ALP_Z_aa_0p1GeV_cYY0p4':['ALP_Z_aa_0p1GeV_cYY0p4'], + + # 'ALP_Z_aa_10p0GeV_cYY0p03':['ALP_Z_aa_10p0GeV_cYY0p03'], + # 'ALP_Z_aa_0p1GeV_cYY0p03':['ALP_Z_aa_0p1GeV_cYY0p03'], + + # 'ALP_Z_aa_30p0GeV_cYY0p002':['ALP_Z_aa_30p0GeV_cYY0p002'], + # 'ALP_Z_aa_10p0GeV_cYY0p002':['ALP_Z_aa_10p0GeV_cYY0p002'], + # 'ALP_Z_aa_3p0GeV_cYY0p002':['ALP_Z_aa_3p0GeV_cYY0p002'], + # 'ALP_Z_aa_1p0GeV_cYY0p002':['ALP_Z_aa_1p0GeV_cYY0p002'], + # 'ALP_Z_aa_0p1GeV_cYY0p002':['ALP_Z_aa_0p1GeV_cYY0p002'], + # 'ALP_Z_aa_0p03GeV_cYY0p002':['ALP_Z_aa_0p03GeV_cYY0p002'], + + # 'ALP_Z_aa_30p0GeV_cYY0p0002':['ALP_Z_aa_30p0GeV_cYY0p0002'], + # 'ALP_Z_aa_1p0GeV_cYY0p0002':['ALP_Z_aa_1p0GeV_cYY0p0002'], + + # 'ALP_Z_aa_30p0GeV_cYY0p00001':['ALP_Z_aa_30p0GeV_cYY0p00001'], + + # 'ALP_Z_aa_10p0GeV_cYY0p0002':['ALP_Z_aa_10p0GeV_cYY0p0002'], + # 'ALP_Z_aa_10p0GeV_cYY0p00005':['ALP_Z_aa_10p0GeV_cYY0p00005'], + }, + + 'backgrounds':{ # 'p8_ee_Zee_ecm91':['p8_ee_Zee_ecm91'], # 'ee_gaga_1million':['ee_gaga_1million'], @@ -499,6 +716,15 @@ # 'ee_aa':['ee_aa'], # 'ee_aaa':['ee_aaa'], # 'ee_aaaa':['ee_aaaa'], + + + 'background_ee_aa1':['background_ee_aa1'], + 'background_ee_aaa1':['background_ee_aaa1'], + 'background_ee_aaaa1':['background_ee_aaaa1'], + 'background_ee_ee':['background_ee_ee'], + 'background_ee_eea1':['background_ee_eea1'], + 'background_ee_eeaa1':['background_ee_eeaa1'], + 'background_ee_eeaaa1':['background_ee_eeaaa1'], }, } @@ -523,62 +749,77 @@ # legend['ALP_Z_aa_1.GeV_cYY_0.7'] = 'm_{ALP} = 1 GeV, c_{YY} = 0.7' # legend['ALP_Z_aa_1.GeV_cYY_0.9'] = 'm_{ALP} = 1 GeV, c_{YY} = 0.9' -# legend['ALP_Z_aa_0.5.GeV_cYY_0.6'] = 'm_{ALP} = 0.5 GeV, c_{#gamma#gamma} = 0.6' -# legend['ALP_Z_aa_0.5.GeV_cYY_1.2'] = 'm_{ALP} = 0.5 GeV, c_{#gamma#gamma} = 1.2' - -# legend['ALP_Z_aa_1.GeV_cYY_0.6'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.6' -# legend['ALP_Z_aa_1.GeV_cYY_0.8'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.8' -# legend['ALP_Z_aa_1.GeV_cYY_1.0'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.0' -# legend['ALP_Z_aa_1.GeV_cYY_1.2'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.2' -# legend['ALP_Z_aa_1.GeV_cYY_1.4'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.4' - -# legend['ALP_Z_aa_0.5.GeV_cYY_1.0'] = 'm_{ALP} = 0.5 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_1.GeV_cYY_1.0'] = 'm_{ALP} = 1 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_1.5.GeV_cYY_1.0'] = 'm_{ALP} = 1.5 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_2.GeV_cYY_1.0'] = 'm_{ALP} = 2 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_3.GeV_cYY_1.0'] = 'm_{ALP} = 3 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_4.GeV_cYY_1.0'] = 'm_{ALP} = 4 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_5.GeV_cYY_1.0'] = 'm_{ALP} = 5 GeV, c_{YY} = 1.0' -# legend['ALP_Z_aa_8.GeV_cYY_1.0'] = 'm_{ALP} = 8 GeV, c_{YY} = 1.0' - -legend['ALP_Z_aa_0.6.GeV_cYY_1.0'] = 'm_{ALP} = 0.6 GeV, c_{#gamma#gamma} = 1.0' -legend['ALP_Z_aa_0.8.GeV_cYY_1.0'] = 'm_{ALP} = 0.8 GeV, c_{#gamma#gamma} = 1.0' -legend['ALP_Z_aa_1.GeV_cYY_1.0'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.0' -legend['ALP_Z_aa_1.2.GeV_cYY_1.0'] = 'm_{ALP} = 1.2 GeV, c_{#gamma#gamma} = 1.0' -legend['ALP_Z_aa_1.4.GeV_cYY_1.0'] = 'm_{ALP} = 1.4 GeV, c_{#gamma#gamma} = 1.0' - -# legend['ALP_Z_aa_3.GeV_cYY_0.1'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.1' -# legend['ALP_Z_aa_3.GeV_cYY_0.3'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.3' -# legend['ALP_Z_aa_3.GeV_cYY_0.5'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_3.GeV_cYY_0.7'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.7' -# legend['ALP_Z_aa_3.GeV_cYY_0.9'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.9' - -# legend['ALP_Z_aa_5.GeV_cYY_0.1'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.1' -# legend['ALP_Z_aa_5.GeV_cYY_0.3'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.3' -# legend['ALP_Z_aa_5.GeV_cYY_0.5'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_5.GeV_cYY_0.7'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.7' -# legend['ALP_Z_aa_5.GeV_cYY_0.9'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.9' - -# legend['ALP_Z_aa_0.5GeV_cYY_0.5'] = 'm_{ALP} = 0.5 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_0.7GeV_cYY_0.5'] = 'm_{ALP} = 0.7 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_1.GeV_cYY_0.5'] = 'm_{ALP} = 1 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_3.GeV_cYY_0.5'] = 'm_{ALP} = 3 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_5.GeV_cYY_0.5'] = 'm_{ALP} = 5 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_7.GeV_cYY_0.5'] = 'm_{ALP} = 7 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_10.GeV_cYY_0.5'] = 'm_{ALP} = 10 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_15.GeV_cYY_0.5'] = 'm_{ALP} = 15 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_20.GeV_cYY_0.5'] = 'm_{ALP} = 20 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_25.GeV_cYY_0.5'] = 'm_{ALP} = 25 GeV, c_{YY} = 0.5' -# legend['ALP_Z_aa_30.GeV_cYY_0.5'] = 'm_{ALP} = 30 GeV, c_{YY} = 0.5' - -# legend['ee_Z_ALPga_gagaga'] = 'm_{ALP} = 1 GeV, c_{YY} = 0.5' - -# legend['p8_ee_Zee_ecm91'] = 'e^{+}e^{-} #rightarrow Z #rightarrow ee' -# legend['ee_gaga_1million'] = 'e^{+}e^{-} #rightarrow YY' -# legend['test1'] = 'e^{+}e^{-} #rightarrow YY' -# legend['test4'] = 'e^{+}e^{-} #rightarrow YYY' -# legend['ee_gammagamma'] = 'e^{+}e^{-} #rightarrow YY (spring2021)' -# legend['ee_gaga_test'] = 'e^{+}e^{-} #rightarrow YY' -# legend['ee_aa'] = 'e^{+}e^{-} #rightarrow #gamma#gamma' -# legend['ee_aaa'] = 'e^{+}e^{-} #rightarrow #gamma#gamma#gamma' -# legend['ee_aaaa'] = 'e^{+}e^{-} #rightarrow #gamma#gamma#gamma#gamma' + + +### my legend ### +# legend['ALP_Z_aa_0p5GeV_cYY1p0'] = 'm_{ALP} = 0.5 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p8GeV_cYY1p0'] = 'm_{ALP} = 0.8 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_1p0GeV_cYY1p0'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_5p0GeV_cYY1p0'] = 'm_{ALP} = 5 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_8p0GeV_cYY1p0'] = 'm_{ALP} = 8 GeV, c_{#gamma#gamma} = 1.0' + +# legend['ALP_Z_aa_0p001GeV_cYY1p0'] = 'm_{ALP} = 0.001 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p01GeV_cYY1p0'] = 'm_{ALP} = 0.01 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p1GeV_cYY1p0'] = 'm_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p5GeV_cYY1p0'] = 'm_{ALP} = 0.5 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p8GeV_cYY1p0'] = 'm_{ALP} = 0.8 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_1p0GeV_cYY1p0'] = 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_3p0GeV_cYY1p0'] = 'm_{ALP} = 3 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_5p0GeV_cYY1p0'] = 'm_{ALP} = 5 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_10p0GeV_cYY1p0'] = 'm_{ALP} = 10 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_20p0GeV_cYY1p0'] = 'm_{ALP} = 20 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_30p0GeV_cYY1p0'] = 'm_{ALP} = 30 GeV, c_{#gamma#gamma} = 1.0' + + +# legend['ALP_Z_aa_1p0GeV_cYY0p001']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.001' +# legend['ALP_Z_aa_1p0GeV_cYY0p01']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.01' +# legend['ALP_Z_aa_1p0GeV_cYY0p1']= 'm_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.1' +# legend['ALP_Z_aa_1p0GeV_cYY0p4']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_1p0GeV_cYY0p7']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 0.7' +# legend['ALP_Z_aa_1p0GeV_cYY1p0']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_1p0GeV_cYY1p3']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.3' +# legend['ALP_Z_aa_1p0GeV_cYY1p6']='m_{ALP} = 1 GeV, c_{#gamma#gamma} = 1.6' + + +# legend['ALP_Z_aa_30p0GeV_cYY1p6']='m_{ALP} = 30.0 GeV, c_{#gamma#gamma} = 1.6' +# legend['ALP_Z_aa_10p0GeV_cYY1p6']='m_{ALP} = 10.0 GeV, c_{#gamma#gamma} = 1.6' +# legend['ALP_Z_aa_3p0GeV_cYY1p6']='m_{ALP} = 3.0 GeV, c_{#gamma#gamma} = 1.6' +# legend['ALP_Z_aa_1p0GeV_cYY1p6']='m_{ALP} = 1.0 GeV, c_{#gamma#gamma} = 1.6' +# legend['ALP_Z_aa_0p1GeV_cYY1p6']='m_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 1.6' + +# legend['ALP_Z_aa_1p0GeV_cYY1p0']='m_{ALP} = 1.0 GeV, c_{#gamma#gamma} = 1.0' +# legend['ALP_Z_aa_0p1GeV_cYY1p0']='m_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 1.0' + +# legend['ALP_Z_aa_30p0GeV_cYY0p4']='m_{ALP} = 30.0 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_10p0GeV_cYY0p4']='m_{ALP} = 10.0 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_3p0GeV_cYY0p4']='m_{ALP} = 3.0 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_1p0GeV_cYY0p4']='m_{ALP} = 1.0 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_0p3GeV_cYY0p4']='m_{ALP} = 0.3 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_0p03GeV_cYY0p4']='m_{ALP} = 0.03 GeV, c_{#gamma#gamma} = 0.4' +# legend['ALP_Z_aa_0p1GeV_cYY0p4']='m_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 0.4' + +# legend['ALP_Z_aa_0p1GeV_cYY0p03']='m_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 0.03' + +# legend['ALP_Z_aa_30p0GeV_cYY0p002']='m_{ALP} = 30.0 GeV, c_{#gamma#gamma} = 0.002' +# legend['ALP_Z_aa_10p0GeV_cYY0p002']='m_{ALP} = 10.0 GeV, c_{#gamma#gamma} = 0.002' +# legend['ALP_Z_aa_3p0GeV_cYY0p002']='m_{ALP} = 3.0 GeV, c_{#gamma#gamma} = 0.002' +# legend['ALP_Z_aa_1p0GeV_cYY0p002']='m_{ALP} = 1.0 GeV, c_{#gamma#gamma} = 0.002' +# legend['ALP_Z_aa_0p03GeV_cYY0p002']='m_{ALP} = 0.03 GeV, c_{#gamma#gamma} = 0.002' +# legend['ALP_Z_aa_0p1GeV_cYY0p002']='m_{ALP} = 0.1 GeV, c_{#gamma#gamma} = 0.002' + +# legend['ALP_Z_aa_30p0GeV_cYY0p0002']='m_{ALP} = 30.0 GeV, c_{#gamma#gamma} = 0.0002' +# legend['ALP_Z_aa_1p0GeV_cYY0p0002']='m_{ALP} = 1.0 GeV, c_{#gamma#gamma} = 0.0002' + +# legend['ALP_Z_aa_30p0GeV_cYY0p00001']='m_{ALP} = 30.0 GeV, c_{#gamma#gamma} = 0.00001' + +# legend['ALP_Z_aa_10p0GeV_cYY0p0002']='m_{ALP} = 10.0 GeV, c_{#gamma#gamma} = 0.0002' +# legend['ALP_Z_aa_10p0GeV_cYY0p00005']='m_{ALP} = 10.0 GeV, c_{#gamma#gamma} = 0.00005' + + +legend['background_ee_aa1'] = 'e^{+}e^{-} #rightarrow #gamma#gamma' +legend['background_ee_aaa1'] = 'e^{+}e^{-} #rightarrow #gamma#gamma#gamma' +legend['background_ee_aaaa1'] = 'e^{+}e^{-} #rightarrow #gamma#gamma#gamma#gamma' +legend['background_ee_ee'] = 'e^{+}e^{-} #rightarrow ee' +legend['background_ee_eea1'] = 'e^{+}e^{-} #rightarrow ee#gamma' +legend['background_ee_eeaa1'] = 'e^{+}e^{-} #rightarrow ee#gamma#gamma' +legend['background_ee_eeaaa1'] = 'e^{+}e^{-} #rightarrow ee#gamma#gamma#gamma' diff --git a/examples/FCCee/bsm/LLPs/ALPs/analysis_stage1_new.py b/examples/FCCee/bsm/LLPs/ALPs/analysis_stage1_new.py index 7aaee193102..e5940e3bc89 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/analysis_stage1_new.py +++ b/examples/FCCee/bsm/LLPs/ALPs/analysis_stage1_new.py @@ -16,7 +16,7 @@ #privately-produced signals - # 'ALP_Z_aa_0.01.GeV_cYY_0.00006':{}, + # 'ALP_Z_aa_0.01.GeV_cYY_0.00006':{}, #10 000 events generated for this paragraph # 'ALP_Z_aa_0.01.GeV_cYY_0.00019':{}, # 'ALP_Z_aa_0.01.GeV_cYY_0.0006':{}, # 'ALP_Z_aa_0.01.GeV_cYY_0.0019':{}, @@ -124,7 +124,7 @@ # 'ALP_Z_aa_1.GeV_cYY_0.6':{}, # 'ALP_Z_aa_1.GeV_cYY_0.8':{}, - 'ALP_Z_aa_1.GeV_cYY_1.0':{}, + # 'ALP_Z_aa_1.GeV_cYY_1.0':{}, # 'ALP_Z_aa_1.GeV_cYY_1.2':{}, # 'ALP_Z_aa_1.GeV_cYY_1.4':{}, @@ -133,9 +133,10 @@ # 'ALP_Z_aa_1.5.GeV_cYY_1.0':{}, # 'ALP_Z_aa_2.GeV_cYY_1.0':{}, # 'ALP_Z_aa_2.1.GeV_cYY_1.0':{}, - # 'ALP_Z_aa_3.GeV_cYY_1.0':{}, + #'ALP_Z_aa_3.GeV_cYY_1.0':{}, # 'ALP_Z_aa_4.GeV_cYY_1.0':{}, # 'ALP_Z_aa_5.GeV_cYY_1.0':{}, + # 'ALP_5GeV_1p0_bug_new':{}, # 'ALP_Z_aa_8.GeV_cYY_1.0':{}, # 'ALP_Z_aa_0.6.GeV_cYY_1.0':{}, @@ -172,6 +173,138 @@ #test #'p8_ee_Zee_ecm91':{'fraction':0.000001}, + + + ######### private samples, 1Mio events ######## + # 'ALP_Z_aa_0p5GeV_cYY1p0':{}, + # 'ALP_Z_aa_0p8GeV_cYY1p0':{}, + # 'ALP_Z_aa_1p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_5p0GeV_cYY1p0':{}, + # 'ALP_Z_aa_8p0GeV_cYY1p0':{}, + + + +###################################### + + # 'ALP_Z_aa_30p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_10p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_3p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_1p0GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p3GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p1GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p03GeV_cYY1p6': {}, + # 'ALP_Z_aa_0p01GeV_cYY1p6': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p4': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p4': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p1': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p1': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p03': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p03': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p009': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p009': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p002': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p002': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p0007': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p0007': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p0002': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p0002': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p00005': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p00005': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p00001': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p00001': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p000004': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p000004': {}, + + # 'ALP_Z_aa_30p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_10p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_3p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_1p0GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p3GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p1GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p03GeV_cYY0p000001': {}, + # 'ALP_Z_aa_0p01GeV_cYY0p000001': {}, + + +######### backgrounds, 1Mio events ######## + # 'background_ee_aa1':{}, + # 'background_ee_aaa1':{}, + # 'background_ee_aaaa1':{}, + # 'background_ee_ee':{}, + # 'background_ee_eea1':{}, + # 'background_ee_eeaa1':{}, + # 'background_ee_eeaaa1':{}, + + } #Production tag. This points to the yaml files for getting sample statistics @@ -186,14 +319,17 @@ # inputDir = "./root_files_for_input/" # inputDir = "./" # inputDir = "/eos/experiment/fcc/ee/generation/DelphesEvents/winter2023/IDEA/wzp6_gaga_ee_60_ecm240/" -inputDir = "/eos/experiment/fcc/ee/analyses_storage/BSM/LLPs/ALPs_3photons/ALP_sample_creation/" +#inputDir = "/eos/experiment/fcc/ee/analyses_storage/BSM/LLPs/ALPs_3photons/ALP_sample_creation/" +inputDir = "/eos/user/e/ebakhish/MG/Pythia_Output/" +# inputDir = "./ALP_sample_creation/" + + #Optional: output directory, default is local dir # outputDir = "./stage1_ee_gaga_1million/" -outputDir = "./stage1_sensitivity/" # outputDir = "./stage1_FSGenALP/" #outputDir = "/eos/user/j/jalimena/FCCeeLLP/" -#outputDir = "output_stage1/" +outputDir = "/eos/user/e/ebakhish/stage1_output/final_signals/" #outputDirEos = "/eos/experiment/fcc/ee/analyses/case-studies/bsm/LLPs/ALPs_3photons/winter2023/output_stage1/" #outputDirEos = "/eos/user/j/jalimena/FCCeeLLP/" @@ -203,11 +339,12 @@ nCPUS = 4 #Optional running on HTCondor, default is False -runBatch = False -#runBatch = True +# runBatch = False +runBatch = True #Optional batch queue name when running on HTCondor, default is workday batchQueue = "longlunch" +# batchQueue = "espresso" #Optional computing account when running on HTCondor, default is group_u_FCC.local_gen compGroup = "group_u_FCC.local_gen" @@ -216,6 +353,16 @@ class RDFanalysis(): def analysers(df): + try: + df = df.Alias("MCRecoAssociations0", "_MCRecoAssociations_from.index") + except: + df = df.Alias("MCRecoAssociations0", "_RecoMCLink_from.index") + + try: + df = df.Alias("MCRecoAssociations1", "_MCRecoAssociations_to.index") + except: + df = df.Alias("MCRecoAssociations1", "_RecoMCLink_to.index") + df2 = (df #Access the various objects and their properties with the following syntax: .Define("", "") @@ -230,17 +377,25 @@ def analysers(df): # Following code is written specifically for the ALP study #################################################################################################### .Alias("Particle1", "_Particle_daughters.index") - .Alias("MCRecoAssociations0", "_MCRecoAssociations_rec.index") - .Alias("MCRecoAssociations1", "_MCRecoAssociations_sim.index") + #this part of the analysis changed in pythia/delphes,which changes how the output looks + # .Alias("MCRecoAssociations0", "_MCRecoAssociations_rec.index") + # .Alias("MCRecoAssociations1", "_MCRecoAssociations_sim.index") + ##### .Alias("MCRecoAssociations0", "_MCRecoAssociations_from.index") + ##### .Alias("MCRecoAssociations1", "_MCRecoAssociations_to.index") + # .Alias("MCRecoAssociations0", "_RecoMCLink_from.index") #use this for newly produces samples since trees in pythia output root changed again + # .Alias("MCRecoAssociations1", "_RecoMCLink_to.index") ##### Added branch for MCParticle; finding PID of the MC particle for ALP .Define("GenALP_PID", "MCParticle::sel_pdgID(9000005, false)(Particle)") - .Define("GenALP_decay", "MCParticle::get_list_of_particles_from_decay(0, GenALP_PID, Particle1)") + .Define("Calorimeterhit_time", "CalorimeterHits.time") + + + # .Define("GenALP_decay", "MCParticle::get_list_of_particles_from_decay(0, GenALP_PID, Particle1)") .Define("All_n_GenALP", "MCParticle::get_n(GenALP_PID)") .Define("AllGenALP_mass", "MCParticle::get_mass(GenALP_PID)") #finding the generator mass of the ALP through separate ALP branch - .Define("AllGenALP_e", "MCParticle::get_e(GenALP_PID)") + .Define("AllGenALP_e", "MCParticle::get_e(GenALP_PID)") #energy of the ALP .Define("AllGenALP_p", "MCParticle::get_p(GenALP_PID)") .Define("AllGenALP_pt", "MCParticle::get_pt(GenALP_PID)") #finding the pt of the ALP thorugh separate ALP branch .Define("AllGenALP_px", "MCParticle::get_px(GenALP_PID)") @@ -258,13 +413,27 @@ def analysers(df): .Define("FSGenElectron_e", "MCParticle::get_e(FSGenElectron)") .Define("FSGenElectron_p", "MCParticle::get_p(FSGenElectron)") .Define("FSGenElectron_pt", "MCParticle::get_pt(FSGenElectron)") - .Define("FSGenElectron_px", "MCParticle::get_px(FSGenElectron)") - .Define("FSGenElectron_py", "MCParticle::get_py(FSGenElectron)") + # .Define("FSGenElectron_px", "MCParticle::get_px(FSGenElectron)") + # .Define("FSGenElectron_py", "MCParticle::get_py(FSGenElectron)") .Define("FSGenElectron_pz", "MCParticle::get_pz(FSGenElectron)") .Define("FSGenElectron_eta", "MCParticle::get_eta(FSGenElectron)") .Define("FSGenElectron_theta", "MCParticle::get_theta(FSGenElectron)") .Define("FSGenElectron_phi", "MCParticle::get_phi(FSGenElectron)") + #all final state gen electrons and positrons + .Define("GenElectronPositron_PID", "MCParticle::sel_pdgID(11, true)(Particle)") + .Define("FSGenElectronPositron", "MCParticle::sel_genStatus(1)(GenElectronPositron_PID)") #gen status==1 means final state particle (FS) + .Define("n_FSGenElectronPositron", "MCParticle::get_n(FSGenElectronPositron)") + .Define("FSGenElectronPositron_e", "MCParticle::get_e(FSGenElectronPositron)") + .Define("FSGenElectronPositron_p", "MCParticle::get_p(FSGenElectronPositron)") + .Define("FSGenElectronPositron_pt", "MCParticle::get_pt(FSGenElectronPositron)") + .Define("FSGenElectronPositron_px", "MCParticle::get_px(FSGenElectronPositron)") + .Define("FSGenElectronPositron_py", "MCParticle::get_py(FSGenElectronPositron)") + .Define("FSGenElectronPositron_pz", "MCParticle::get_pz(FSGenElectronPositron)") + .Define("FSGenElectronPositron_eta", "MCParticle::get_eta(FSGenElectronPositron)") + .Define("FSGenElectronPositron_theta", "MCParticle::get_theta(FSGenElectronPositron)") + .Define("FSGenElectronPositron_phi", "MCParticle::get_phi(FSGenElectronPositron)") + #all final state gen positrons .Define("GenPositron_PID", "MCParticle::sel_pdgID(-11, false)(Particle)") .Define("FSGenPositron", "MCParticle::sel_genStatus(1)(GenPositron_PID)") #gen status==1 means final state particle (FS) @@ -279,33 +448,33 @@ def analysers(df): .Define("FSGenPositron_theta", "MCParticle::get_theta(FSGenPositron)") .Define("FSGenPositron_phi", "MCParticle::get_phi(FSGenPositron)") - #all final state gen neutrinos - .Define("GenNeutrino_PID", "MCParticle::sel_pdgID(12, false)(Particle)") - .Define("FSGenNeutrino", "MCParticle::sel_genStatus(1)(GenNeutrino_PID)") #gen status==1 means final state particle (FS) - .Define("n_FSGenNeutrino", "MCParticle::get_n(FSGenNeutrino)") - .Define("FSGenNeutrino_e", "MCParticle::get_e(FSGenNeutrino)") - .Define("FSGenNeutrino_p", "MCParticle::get_p(FSGenNeutrino)") - .Define("FSGenNeutrino_pt", "MCParticle::get_pt(FSGenNeutrino)") - .Define("FSGenNeutrino_px", "MCParticle::get_px(FSGenNeutrino)") - .Define("FSGenNeutrino_py", "MCParticle::get_py(FSGenNeutrino)") - .Define("FSGenNeutrino_pz", "MCParticle::get_pz(FSGenNeutrino)") - .Define("FSGenNeutrino_eta", "MCParticle::get_eta(FSGenNeutrino)") - .Define("FSGenNeutrino_theta", "MCParticle::get_theta(FSGenNeutrino)") - .Define("FSGenNeutrino_phi", "MCParticle::get_phi(FSGenNeutrino)") - - #all final state gen anti-neutrinos - .Define("GenAntiNeutrino_PID", "MCParticle::sel_pdgID(-12, false)(Particle)") - .Define("FSGenAntiNeutrino", "MCParticle::sel_genStatus(1)(GenAntiNeutrino_PID)") #gen status==1 means final state particle (FS) - .Define("n_FSGenAntiNeutrino", "MCParticle::get_n(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_e", "MCParticle::get_e(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_p", "MCParticle::get_p(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_pt", "MCParticle::get_pt(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_px", "MCParticle::get_px(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_py", "MCParticle::get_py(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_pz", "MCParticle::get_pz(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_eta", "MCParticle::get_eta(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_theta", "MCParticle::get_theta(FSGenAntiNeutrino)") - .Define("FSGenAntiNeutrino_phi", "MCParticle::get_phi(FSGenAntiNeutrino)") + # #all final state gen neutrinos + # .Define("GenNeutrino_PID", "MCParticle::sel_pdgID(12, false)(Particle)") + # .Define("FSGenNeutrino", "MCParticle::sel_genStatus(1)(GenNeutrino_PID)") #gen status==1 means final state particle (FS) + # .Define("n_FSGenNeutrino", "MCParticle::get_n(FSGenNeutrino)") + # .Define("FSGenNeutrino_e", "MCParticle::get_e(FSGenNeutrino)") + # .Define("FSGenNeutrino_p", "MCParticle::get_p(FSGenNeutrino)") + # .Define("FSGenNeutrino_pt", "MCParticle::get_pt(FSGenNeutrino)") + # .Define("FSGenNeutrino_px", "MCParticle::get_px(FSGenNeutrino)") + # .Define("FSGenNeutrino_py", "MCParticle::get_py(FSGenNeutrino)") + # .Define("FSGenNeutrino_pz", "MCParticle::get_pz(FSGenNeutrino)") + # .Define("FSGenNeutrino_eta", "MCParticle::get_eta(FSGenNeutrino)") + # .Define("FSGenNeutrino_theta", "MCParticle::get_theta(FSGenNeutrino)") + # .Define("FSGenNeutrino_phi", "MCParticle::get_phi(FSGenNeutrino)") + + # #all final state gen anti-neutrinos + # .Define("GenAntiNeutrino_PID", "MCParticle::sel_pdgID(-12, false)(Particle)") + # .Define("FSGenAntiNeutrino", "MCParticle::sel_genStatus(1)(GenAntiNeutrino_PID)") #gen status==1 means final state particle (FS) + # .Define("n_FSGenAntiNeutrino", "MCParticle::get_n(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_e", "MCParticle::get_e(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_p", "MCParticle::get_p(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_pt", "MCParticle::get_pt(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_px", "MCParticle::get_px(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_py", "MCParticle::get_py(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_pz", "MCParticle::get_pz(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_eta", "MCParticle::get_eta(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_theta", "MCParticle::get_theta(FSGenAntiNeutrino)") + # .Define("FSGenAntiNeutrino_phi", "MCParticle::get_phi(FSGenAntiNeutrino)") #all final state gen photons .Define("GenPhoton_PID", "MCParticle::sel_pdgID(22, false)(Particle)") @@ -321,6 +490,7 @@ def analysers(df): .Define("FSGenPhoton_theta", "MCParticle::get_theta(FSGenPhoton)") .Define("FSGenPhoton_phi", "MCParticle::get_phi(FSGenPhoton)") + # Number of final state electrons and positrons when the number of final state photons is only 2 # Returns -2 if the number of final state photons != 2, and therefore will be shown as -2 in the plots # .Define("n_FSGenElectron_forFS2GenPhotons", "if (n_FSGenPhoton == 2) {return (n_FSGenElectron); } else {return (-2); }") @@ -337,27 +507,27 @@ def analysers(df): # Calculating the lifetime of the ALP # Definition: t = Lxy * branchGenPtcl.At(i).Mass / (branchGenPtcl.At(i).PT * 1000 * 3E8) - .Define("FSGen_lifetime_xy", "return ( FSGen_Lxy.at(0) * AllGenALP_mass / (AllGenALP_pt * 3E8 * 1000))" ) - .Define("FSGen_lifetime_xyz", "return ( FSGen_Lxy.at(0) * AllGenALP_mass / (AllGenALP_p * 3E8 * 1000))" ) + # .Define("FSGen_lifetime_xy", "return ( FSGen_Lxy.at(0) * AllGenALP_mass / (AllGenALP_pt * 3E8 * 1000))" ) + # .Define("FSGen_lifetime_xyz", "return ( FSGen_Lxy.at(0) * AllGenALP_mass / (AllGenALP_p * 3E8 * 1000))" ) # Separating the three first final state photons # Returns -2 if the number of final state photons != 2, and therefore will be shown as -2 in the plots - .Define("FSGenPhoton0_e", "return FSGenPhoton_e.at(0)") + .Define("FSGenPhoton0_e", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_e.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_e", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_e.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_e", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_e.at(2);} else {return (-2.0f); }") - .Define("FSGenPhoton0_p", "return FSGenPhoton_p.at(0)") + .Define("FSGenPhoton0_p", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_p.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_p", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_p.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_p", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_p.at(2);} else {return (-2.0f); }") - .Define("FSGenPhoton0_pt", "return FSGenPhoton_pt.at(0)") + .Define("FSGenPhoton0_pt", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_pt.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_pt", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_pt.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_pt", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_pt.at(2);} else {return (-2.0f); }") - .Define("FSGenPhoton0_px", "return FSGenPhoton_px.at(0)") + .Define("FSGenPhoton0_px", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_px.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_px", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_px.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_px", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_px.at(2);} else {return (-2.0f); }") - .Define("FSGenPhoton0_py", "return FSGenPhoton_py.at(0)") + .Define("FSGenPhoton0_py", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_py.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_py", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_py.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_py", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_py.at(2);} else {return (-2.0f); }") - .Define("FSGenPhoton0_pz", "return FSGenPhoton_pz.at(0)") + .Define("FSGenPhoton0_pz", "if (n_FSGenPhoton >= 1) {return FSGenPhoton_pz.at(0);} else {return (-2.0f); }") .Define("FSGenPhoton1_pz", "if (n_FSGenPhoton >= 2) {return FSGenPhoton_pz.at(1);} else {return (-2.0f); }") .Define("FSGenPhoton2_pz", "if (n_FSGenPhoton >= 3) {return FSGenPhoton_pz.at(2);} else {return (-2.0f); }") @@ -407,7 +577,7 @@ def analysers(df): .Define("n_FSGenALP", "MCParticle::get_n( FSGenALP )") - # Kinematics of final state ALP (attempt Merlin) + # Kinematics of final state ALP (attempt Merlin) (ALP defined with PID, FS Pythia status) .Define("FSGenALP_mass", "MCParticle::get_mass( FSGenALP )") .Define("FSGenALP_e", "MCParticle::get_e( FSGenALP )") .Define("FSGenALP_p", "MCParticle::get_p( FSGenALP )") @@ -420,7 +590,7 @@ def analysers(df): .Define("FSGenALP_phi", "MCParticle::get_phi( FSGenALP )") .Define("FSGenALP_genStatus", "MCParticle::get_genStatus( FSGenALP )") - # Kinematics of the mother particle ALP + # Kinematics of the mother particle ALP (defined with 2 daughter photons) .Define("GenALP_mass", "MCParticle::get_mass( GenALP )") .Define("GenALP_e", "MCParticle::get_e( GenALP )") .Define("GenALP_p", "MCParticle::get_p( GenALP )") @@ -433,12 +603,14 @@ def analysers(df): .Define("GenALP_phi", "MCParticle::get_phi( GenALP )") .Define("GenALP_genStatus", "MCParticle::get_genStatus( GenALP )") + .Define("GenALP_beta", "return GenALP_p / GenALP_e") + .Define("GenALP_px_if_FSGenPhoton0_px_greaterthan_0", "if (FSGenPhoton0_px > 0) {return GenALP_px[0];} else {return -50.0f;}") .Define("FSGenPhoton1_px_if_GenALP_px_neg", "if (GenALP_px[0] < 0) {return FSGenPhoton1_px;} else {return -50.0f;}") .Define("FSGenPhoton2_px_if_GenALP_px_neg", "if (GenALP_px[0] < 0) {return FSGenPhoton2_px;} else {return -50.0f;}") .Define("n_GenALP", "MCParticle::get_n( GenALP )") - .Define("GenALP_time", "MCParticle::get_time( GenALP )") + .Define("GenALP_time", "MCParticle::get_time( GenALP )") #time at which ALP decays from Z .Define("GenALP_pdg", "MCParticle::get_pdg( GenALP )") .Define("GenALP_endPoint_x", "MCParticle::get_endPoint_x") @@ -475,6 +647,7 @@ def analysers(df): # .Define("GenALPPhotons_deltaR_2", "MCParticle::get_ALP_delta_r(GenALPPhoton1, GenALPPhoton2)") .Define("FSGenPhotons_delta_r", "MCParticle::get_delta_r(FSGenPhoton)") + .Define("FSGenPhotons_min_delta_r", "MCParticle::get_min_delta_r(FSGenPhoton)") .Define("GenALPPhoton1_time", "MCParticle::get_time( GenALPPhoton1 )") .Define("GenALPPhoton2_time", "MCParticle::get_time( GenALPPhoton2 )") @@ -534,7 +707,7 @@ def analysers(df): # Now we reconstruct the ALP reco decay vertex using the reco'ed tracks # First the full object, of type Vertexing::FCCAnalysesVertex - .Define("RecoALPDecayVertexObject", "VertexFitterSimple::VertexFitter_Tk( 2, RecoALPTracks)" ) + .Define("RecoALPDecayVertexObject", "VertexFitterSimple::VertexFitter_Tk( 2, RecoALPTracks)" ) #tk=track # from which we extract the edm4hep::VertexData object, which contains the vertex position in mm .Define("RecoALPDecayVertex", "VertexingUtils::get_VertexData( RecoALPDecayVertexObject )") @@ -570,8 +743,12 @@ def analysers(df): .Define("RecoALPPhotons_deltaEta", "return abs(RecoALPPhoton1_eta - RecoALPPhoton2_eta)") .Define("RecoALPPhotons_deltaPhi", "return RecoALPPhoton1_phi - RecoALPPhoton2_phi") - .Define("RecoALPPhotons_deltaR", "return sqrt(RecoALPPhotons_deltaEta*RecoALPPhotons_deltaEta + RecoALPPhotons_deltaPhi*RecoALPPhotons_deltaPhi)") - .Define("RecoALPPhotons_deltaR2", "ReconstructedParticle::get_delta_r(RecoALPPhoton1)") + # .Define("RecoALPPhotons_deltaR", "return sqrt(RecoALPPhotons_deltaEta*RecoALPPhotons_deltaEta + RecoALPPhotons_deltaPhi*RecoALPPhotons_deltaPhi)") + # .Define("RecoALPPhotons_deltaR", "ReconstructedParticle::get_delta_r(RecoALPPhoton1.at(0), RecoALPPhoton2.at(0))") + .Define("RecoALPPhotons_deltaR", + "if (RecoALPPhoton1.size() > 0 && RecoALPPhoton2.size() > 0) { " + "return ReconstructedParticle::get_delta_r(RecoALPPhoton1.at(0), RecoALPPhoton2.at(0)); " + "} else { return -2.0f; }") #if statement needed otherwise sometimes we have empty containers leading to an out of bounds request .Define("n_RecoALPPhoton1", "ReconstructedParticle::get_n( RecoALPPhoton1 )") .Define("n_RecoALPPhoton2", "ReconstructedParticle::get_n( RecoALPPhoton2 )") @@ -579,12 +756,14 @@ def analysers(df): # .Define("RecoALPPhoton2_time", "ReconstructedParticle::get_time( RecoALPPhoton2 )") # add dxy, dz, dxyz, and uncertainties - # aa invariant mass + # aa invariant mass of ALP photons (matched to gen level) .Define("RecoALP_aa_energy", "return (RecoALPPhoton1_e + RecoALPPhoton2_e)") .Define("RecoALP_aa_px", "return (RecoALPPhoton1_px + RecoALPPhoton2_px)") .Define("RecoALP_aa_py", "return (RecoALPPhoton1_py + RecoALPPhoton2_py)") .Define("RecoALP_aa_pz", "return (RecoALPPhoton1_pz + RecoALPPhoton2_pz)") .Define("RecoALP_aa_invMass", "return sqrt(RecoALP_aa_energy*RecoALP_aa_energy - RecoALP_aa_px*RecoALP_aa_px - RecoALP_aa_py*RecoALP_aa_py - RecoALP_aa_pz*RecoALP_aa_pz )") + .Define("RecoALP_aa_p", "return sqrt(RecoALP_aa_px*RecoALP_aa_px + RecoALP_aa_py*RecoALP_aa_py + RecoALP_aa_pz*RecoALP_aa_pz)") + #gen-reco .Define("GenMinusRecoALPPhoton1_e", "GenALPPhoton1_e-RecoALPPhoton1_e") @@ -635,7 +814,7 @@ def analysers(df): #OBJECT SELECTION: Consider only those objects that have pt > certain threshold #.Define("selected_jets", "ReconstructedParticle::sel_pt(0.)(Jet)") #select only jets with a pt > 50 GeV #.Define("selected_electrons", "ReconstructedParticle::sel_pt(0.)(electrons)") #select only electrons with a pt > 20 GeV - #.Define("selected_photons", "ReconstructedParticle::sel_pt(0.)(photons)") #select only photons with a pt > 20 GeV + # .Define("selected_photons", "ReconstructedParticle::sel_pt(10.0)(photons)") #select only photons with a pt > 10 GeV #.Define("selected_muons", "ReconstructedParticle::sel_pt(0.)(muons)") #.Define("n_selJets", "ReconstructedParticle::get_n(selected_jets)") @@ -644,27 +823,37 @@ def analysers(df): #.Define("n_selMuons", "ReconstructedParticle::get_n(selected_muons)") #SIMPLE VARIABLES: Access the basic kinematic variables of the (selected) jets, works analogously for electrons, muons - .Define("RecoJet_e", "ReconstructedParticle::get_e(Jet)") - .Define("RecoJet_p", "ReconstructedParticle::get_p(Jet)") #momentum p - .Define("RecoJet_pt", "ReconstructedParticle::get_pt(Jet)") #transverse momentum pt - .Define("RecoJet_px", "ReconstructedParticle::get_px(Jet)") - .Define("RecoJet_py", "ReconstructedParticle::get_py(Jet)") - .Define("RecoJet_pz", "ReconstructedParticle::get_pz(Jet)") - .Define("RecoJet_eta", "ReconstructedParticle::get_eta(Jet)") #pseudorapidity eta - .Define("RecoJet_theta", "ReconstructedParticle::get_theta(Jet)") - .Define("RecoJet_phi", "ReconstructedParticle::get_phi(Jet)") #polar angle in the transverse plane phi - .Define("RecoJet_charge", "ReconstructedParticle::get_charge(Jet)") + # .Define("RecoJet_e", "ReconstructedParticle::get_e(Jet)") + # .Define("RecoJet_p", "ReconstructedParticle::get_p(Jet)") #momentum p + # .Define("RecoJet_pt", "ReconstructedParticle::get_pt(Jet)") #transverse momentum pt + # .Define("RecoJet_px", "ReconstructedParticle::get_px(Jet)") + # .Define("RecoJet_py", "ReconstructedParticle::get_py(Jet)") + # .Define("RecoJet_pz", "ReconstructedParticle::get_pz(Jet)") + # .Define("RecoJet_eta", "ReconstructedParticle::get_eta(Jet)") #pseudorapidity eta + # .Define("RecoJet_theta", "ReconstructedParticle::get_theta(Jet)") + # .Define("RecoJet_phi", "ReconstructedParticle::get_phi(Jet)") #polar angle in the transverse plane phi + # .Define("RecoJet_charge", "ReconstructedParticle::get_charge(Jet)") .Define("RecoElectron_e", "ReconstructedParticle::get_e(RecoElectrons)") .Define("RecoElectron_p", "ReconstructedParticle::get_p(RecoElectrons)") .Define("RecoElectron_pt", "ReconstructedParticle::get_pt(RecoElectrons)") - .Define("RecoElectron_px", "ReconstructedParticle::get_px(RecoElectrons)") - .Define("RecoElectron_py", "ReconstructedParticle::get_py(RecoElectrons)") + # .Define("RecoElectron_px", "ReconstructedParticle::get_px(RecoElectrons)") + # .Define("RecoElectron_py", "ReconstructedParticle::get_py(RecoElectrons)") .Define("RecoElectron_pz", "ReconstructedParticle::get_pz(RecoElectrons)") .Define("RecoElectron_eta", "ReconstructedParticle::get_eta(RecoElectrons)") #pseudorapidity eta .Define("RecoElectron_theta", "ReconstructedParticle::get_theta(RecoElectrons)") .Define("RecoElectron_phi", "ReconstructedParticle::get_phi(RecoElectrons)") #polar angle in the transverse plane phi - .Define("RecoElectron_charge", "ReconstructedParticle::get_charge(RecoElectrons)") + # .Define("RecoElectron_charge", "ReconstructedParticle::get_charge(RecoElectrons)") + + # .Define("RecoElectronPositron_e", "ReconstructedParticle::get_e(RecoElectronPositrons)") + # .Define("RecoElectronPositron_p", "ReconstructedParticle::get_p(RecoElectronPositrons)") + # .Define("RecoElectronPositron_pt", "ReconstructedParticle::get_pt(RecoElectronPositrons)") + # # .Define("RecoElectronPositron_px", "ReconstructedParticle::get_px(RecoElectronPositrons)") + # # .Define("RecoElectronPositron_py", "ReconstructedParticle::get_py(RecoElectronPositrons)") + # .Define("RecoElectronPositron_pz", "ReconstructedParticle::get_pz(RecoElectronPositrons)") + # .Define("RecoElectronPositron_eta", "ReconstructedParticle::get_eta(RecoElectronPositrons)") #pseudorapidity eta + # .Define("RecoElectronPositron_theta", "ReconstructedParticle::get_theta(RecoElectronPositrons)") + # .Define("RecoElectronPositron_phi", "ReconstructedParticle::get_phi(RecoElectronPositrons)") #polar angle in the transverse plane phi .Define("RecoPhoton_e", "ReconstructedParticle::get_e(RecoPhotons)") .Define("RecoPhoton_p", "ReconstructedParticle::get_p(RecoPhotons)") @@ -687,29 +876,56 @@ def analysers(df): # .Define("RecoPhotons_ALP_delta_phi", "ReconstructedParticle::get_ALP_delta_phi(RecoALPPhoton1, RecoALPPhoton2)") # .Define("RecoPhotons_ALP_delta_eta", "ReconstructedParticle::get_ALP_delta_eta(RecoALPPhoton1, RecoALPPhoton2)") - .Define("RecoPhoton_y", "ReconstructedParticle::get_y(RecoPhotons)") + # .Define("RecoPhoton_y", "ReconstructedParticle::get_y(RecoPhotons)") # .Define("RecoPhoton_time", "ReconstructedParticle::get_time(RecoPhotons)") - .Define("RecoPhoton_reference_point_x", "ReconstructedParticle::get_reference_point_x(RecoPhotons)") - - .Define("RecoPhoton0_e", "if (n_RecoPhotons ==3) {return RecoPhoton_e.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_e", "if (n_RecoPhotons ==3) {return RecoPhoton_e.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_e", "if (n_RecoPhotons ==3) {return RecoPhoton_e.at(2);} else {return (-2.0f); }") - .Define("RecoPhoton0_p", "if (n_RecoPhotons ==3) {return RecoPhoton_p.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_p", "if (n_RecoPhotons ==3) {return RecoPhoton_p.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_p", "if (n_RecoPhotons ==3) {return RecoPhoton_p.at(2);} else {return (-2.0f); }") - .Define("RecoPhoton0_pt", "if (n_RecoPhotons ==3) {return RecoPhoton_pt.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_pt", "if (n_RecoPhotons ==3) {return RecoPhoton_pt.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_pt", "if (n_RecoPhotons ==3) {return RecoPhoton_pt.at(2);} else {return (-2.0f); }") - .Define("RecoPhoton0_px", "if (n_RecoPhotons ==3) {return RecoPhoton_px.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_px", "if (n_RecoPhotons ==3) {return RecoPhoton_px.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_px", "if (n_RecoPhotons ==3) {return RecoPhoton_px.at(2);} else {return (-2.0f); }") - .Define("RecoPhoton0_py", "if (n_RecoPhotons ==3) {return RecoPhoton_py.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_py", "if (n_RecoPhotons ==3) {return RecoPhoton_py.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_py", "if (n_RecoPhotons ==3) {return RecoPhoton_py.at(2);} else {return (-2.0f); }") - .Define("RecoPhoton0_pz", "if (n_RecoPhotons ==3) {return RecoPhoton_pz.at(0);} else {return (-2.0f); }") - .Define("RecoPhoton1_pz", "if (n_RecoPhotons ==3) {return RecoPhoton_pz.at(1);} else {return (-2.0f); }") - .Define("RecoPhoton2_pz", "if (n_RecoPhotons ==3) {return RecoPhoton_pz.at(2);} else {return (-2.0f); }") + # .Define("RecoPhoton_reference_point_x", "ReconstructedParticle::get_reference_point_x(RecoPhotons)") + + .Define("RecoPhoton0_e", "if (n_RecoPhotons >= 1) {return RecoPhoton_e.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_e", "if (n_RecoPhotons >= 2) {return RecoPhoton_e.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_e", "if (n_RecoPhotons >= 3) {return RecoPhoton_e.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_p", "if (n_RecoPhotons >= 1) {return RecoPhoton_p.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_p", "if (n_RecoPhotons >= 2) {return RecoPhoton_p.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_p", "if (n_RecoPhotons >= 3) {return RecoPhoton_p.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_pt", "if (n_RecoPhotons >= 1) {return RecoPhoton_pt.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_pt", "if (n_RecoPhotons >= 2) {return RecoPhoton_pt.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_pt", "if (n_RecoPhotons >= 3) {return RecoPhoton_pt.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_px", "if (n_RecoPhotons >= 1) {return RecoPhoton_px.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_px", "if (n_RecoPhotons >= 2) {return RecoPhoton_px.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_px", "if (n_RecoPhotons >= 3) {return RecoPhoton_px.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_py", "if (n_RecoPhotons >= 1) {return RecoPhoton_py.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_py", "if (n_RecoPhotons >= 2) {return RecoPhoton_py.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_py", "if (n_RecoPhotons >= 3) {return RecoPhoton_py.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_pz", "if (n_RecoPhotons >= 1) {return RecoPhoton_pz.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_pz", "if (n_RecoPhotons >= 2) {return RecoPhoton_pz.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_pz", "if (n_RecoPhotons >= 3) {return RecoPhoton_pz.at(2);} else {return (-2.0f); }") + # .Define("RecoPhoton0_e", "return RecoPhoton_e.at(0)") + # .Define("RecoPhoton1_e", "return RecoPhoton_e.at(1)") + # .Define("RecoPhoton2_e", "return RecoPhoton_e.at(2)") + # .Define("RecoPhoton0_p", "return RecoPhoton_p.at(0)") + # .Define("RecoPhoton1_p", "return RecoPhoton_p.at(1)") + # .Define("RecoPhoton2_p", "return RecoPhoton_p.at(2)") + # .Define("RecoPhoton0_pt", "return RecoPhoton_pt.at(0)") + # .Define("RecoPhoton1_pt", "return RecoPhoton_pt.at(1)") + # .Define("RecoPhoton2_pt", "return RecoPhoton_pt.at(2)") + # .Define("RecoPhoton0_px", "return RecoPhoton_px.at(0)") + # .Define("RecoPhoton1_px", "return RecoPhoton_px.at(1)") + # .Define("RecoPhoton2_px", "return RecoPhoton_px.at(2)") + # .Define("RecoPhoton0_py", "return RecoPhoton_py.at(0)") + # .Define("RecoPhoton1_py", "return RecoPhoton_py.at(1)") + # .Define("RecoPhoton2_py", "return RecoPhoton_py.at(2)") + # .Define("RecoPhoton0_pz", "return RecoPhoton_pz.at(0)") + # .Define("RecoPhoton1_pz", "return RecoPhoton_pz.at(1)") + # .Define("RecoPhoton2_pz", "return RecoPhoton_pz.at(2)") + + # invariant mass of diphoton (photon with indices 1 & 2) + .Define("Reco_aa_energy", "return (RecoPhoton1_e + RecoPhoton2_e)") + .Define("Reco_aa_px", "return (RecoPhoton1_px + RecoPhoton2_px)") + .Define("Reco_aa_py", "return (RecoPhoton1_py + RecoPhoton2_py)") + .Define("Reco_aa_pz", "return (RecoPhoton1_pz + RecoPhoton2_pz)") + .Define("Reco_aa_invMass", "if (Reco_aa_energy != -4.0f && Reco_aa_px != -4.0f && Reco_aa_py != -4.0f && Reco_aa_pz != -4.0f) { return sqrt(Reco_aa_energy*Reco_aa_energy - Reco_aa_px*Reco_aa_px - Reco_aa_py*Reco_aa_py - Reco_aa_pz*Reco_aa_pz); } else { return -2.0f; }") + .Define("Reco_aa_p", "if (Reco_aa_px != -4.0f && Reco_aa_py != -4.0f && Reco_aa_pz != -4.0f) { return sqrt(Reco_aa_px*Reco_aa_px + Reco_aa_py*Reco_aa_py + Reco_aa_pz*Reco_aa_pz); } else { return -2.0f; }") + .Define("RecoPhoton1_px_if_RecoPhoton2_px_pos", "if (RecoPhoton2_px > 0) {return RecoPhoton1_px;} else {return -50.0f;}") .Define("RecoPhoton1_pz_if_RecoPhoton2_pz_pos", "if (RecoPhoton2_pz > 0) {return RecoPhoton1_pz;} else {return -50.0f;}") @@ -739,6 +955,281 @@ def analysers(df): # .Define("RecoMissingEnergy_phi", "ReconstructedParticle::get_phi(MissingET)") # .Define("CalorimeterHitsTime", "CalorimeterHits.time") + + + ######## OBJECT SELECTION: FSGenPhotons and RecoPhotons with object selection of eta < 2.5 ######## + .Define("FSGenPhoton_obj_sel", "MCParticle::sel_pt(0.0)(FSGenPhoton)") #select only fs gen photons with a pt > 0 GeV + .Define("FSGenPhoton_obj_sel_eta", "MCParticle::sel_eta(2.5)(FSGenPhoton_obj_sel)") #select only photons with eta<2.5 + + .Define("RecoPhotons_obj_sel", "ReconstructedParticle::sel_pt(0.0)(RecoPhotons)") #select only reco photons with a pt > 0 GeV + .Define("RecoPhotons_obj_sel_eta", "ReconstructedParticle::sel_eta(2.5)(RecoPhotons_obj_sel)") #select only photons with eta<2.5 + + #GEN LEVEL + .Define("FSGenPhoton_eta_obj_sel_eta", "MCParticle::get_eta(FSGenPhoton_obj_sel_eta)") #pseudorapidity eta + .Define("FSGenPhoton_theta_obj_sel_eta", "MCParticle::get_theta(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_phi_obj_sel_eta", "MCParticle::get_phi(FSGenPhoton_obj_sel_eta)") #polar angle in the transverse plane phi + .Define("FSGenPhotons_delta_eta_obj_sel_eta", "MCParticle::get_delta_eta(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhotons_delta_phi_obj_sel_eta", "MCParticle::get_delta_phi(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhotons_delta_r_obj_sel_eta", "MCParticle::get_delta_r(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhotons_min_delta_r_obj_sel_eta", "MCParticle::get_min_delta_r(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_pt_obj_sel_eta", "MCParticle::get_pt(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_e_obj_sel_eta", "MCParticle::get_e(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_p_obj_sel_eta", "MCParticle::get_p(FSGenPhoton_obj_sel_eta)") + .Define("n_FSGenPhoton_obj_sel_eta", "MCParticle::get_n(FSGenPhoton_obj_sel_eta)") #count how many photons are in the event in total + + .Define("FSGenPhoton_pz_obj_sel_eta", "MCParticle::get_pz(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_py_obj_sel_eta", "MCParticle::get_py(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton_px_obj_sel_eta", "MCParticle::get_px(FSGenPhoton_obj_sel_eta)") + .Define("FSGenPhoton0_e_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_e_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_e_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_e_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_e_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_e_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("FSGenPhoton0_p_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_p_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_p_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_p_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_p_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_p_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("FSGenPhoton0_pt_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_pt_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_pt_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_pt_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_pt_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_pt_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("FSGenPhoton0_pz_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_pz_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_pz_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_pz_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_pz_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_pz_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("FSGenPhoton0_py_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_py_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_py_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_py_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_py_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_py_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("FSGenPhoton0_px_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 1) {return FSGenPhoton_px_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("FSGenPhoton1_px_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 2) {return FSGenPhoton_px_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("FSGenPhoton2_px_obj_sel_eta", "if (n_FSGenPhoton_obj_sel_eta >= 3) {return FSGenPhoton_px_obj_sel_eta.at(2);} else {return (-2.0f); }") + + # invariant mass of photons + .Define("FSGen_aa_energy_obj_sel_eta", "return (FSGenPhoton1_e_obj_sel_eta + FSGenPhoton2_e_obj_sel_eta)") + .Define("FSGen_aa_px_obj_sel_eta", "return (FSGenPhoton1_px_obj_sel_eta + FSGenPhoton2_px_obj_sel_eta)") + .Define("FSGen_aa_py_obj_sel_eta", "return (FSGenPhoton1_py_obj_sel_eta + FSGenPhoton2_py_obj_sel_eta)") + .Define("FSGen_aa_pz_obj_sel_eta", "return (FSGenPhoton1_pz_obj_sel_eta + FSGenPhoton2_pz_obj_sel_eta)") + .Define("FSGen_aa_invMass_obj_sel_eta", "if (FSGen_aa_energy_obj_sel_eta != -4.0f && FSGen_aa_px_obj_sel_eta != -4.0f && FSGen_aa_py_obj_sel_eta != -4.0f && FSGen_aa_pz_obj_sel_eta != -4.0f) { return sqrt(FSGen_aa_energy_obj_sel_eta*FSGen_aa_energy_obj_sel_eta - FSGen_aa_px_obj_sel_eta*FSGen_aa_px_obj_sel_eta - FSGen_aa_py_obj_sel_eta*FSGen_aa_py_obj_sel_eta - FSGen_aa_pz_obj_sel_eta*FSGen_aa_pz_obj_sel_eta); } else { return -2.0f; }") #invariant mass of the two photons + .Define("FSGen_aa_p_obj_sel_eta", "if (FSGen_aa_px_obj_sel_eta != -4.0f && FSGen_aa_py_obj_sel_eta != -4.0f && FSGen_aa_pz_obj_sel_eta != -4.0f) { return sqrt(FSGen_aa_px_obj_sel_eta*FSGen_aa_px_obj_sel_eta + FSGen_aa_py_obj_sel_eta*FSGen_aa_py_obj_sel_eta + FSGen_aa_pz_obj_sel_eta*FSGen_aa_pz_obj_sel_eta); } else { return -2.0f; }") + + + + #RECO LEVEL + .Define("RecoPhoton_eta_obj_sel_eta", "ReconstructedParticle::get_eta(RecoPhotons_obj_sel_eta)") #pseudorapidity eta + .Define("RecoPhoton_theta_obj_sel_eta", "ReconstructedParticle::get_theta(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_phi_obj_sel_eta", "ReconstructedParticle::get_phi(RecoPhotons_obj_sel_eta)") #polar angle in the transverse plane phi + .Define("RecoPhotons_delta_eta_obj_sel_eta", "ReconstructedParticle::get_delta_eta(RecoPhotons_obj_sel_eta)") + .Define("RecoPhotons_delta_phi_obj_sel_eta", "ReconstructedParticle::get_delta_phi(RecoPhotons_obj_sel_eta)") + .Define("RecoPhotons_delta_r_obj_sel_eta", "ReconstructedParticle::get_delta_r(RecoPhotons_obj_sel_eta)") + .Define("RecoPhotons_min_delta_r_obj_sel_eta", "ReconstructedParticle::get_min_delta_r(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_pt_obj_sel_eta", "ReconstructedParticle::get_pt(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_e_obj_sel_eta", "ReconstructedParticle::get_e(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_p_obj_sel_eta", "ReconstructedParticle::get_p(RecoPhotons_obj_sel_eta)")\ + .Define("n_RecoPhotons_obj_sel_eta", "ReconstructedParticle::get_n(RecoPhotons_obj_sel_eta)") #count how many photons are in the event in total + .Define("RecoPhoton_charge_obj_sel_eta", "ReconstructedParticle::get_charge(RecoPhotons_obj_sel_eta)") + + .Define("RecoPhoton_diphoton_delta_r_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) { return ReconstructedParticle::get_diphoton_deltaR(RecoPhotons_obj_sel_eta.at(0), RecoPhotons_obj_sel_eta.at(1), RecoPhotons_obj_sel_eta.at(2)); } else { return (-2.0f); }") + + .Define("RecoPhoton_pz_obj_sel_eta", "ReconstructedParticle::get_pz(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_py_obj_sel_eta", "ReconstructedParticle::get_py(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton_px_obj_sel_eta", "ReconstructedParticle::get_px(RecoPhotons_obj_sel_eta)") + .Define("RecoPhoton0_e_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_e_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_e_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_e_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_e_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_e_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_p_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_p_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_p_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_p_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_p_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_p_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_pt_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_pt_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_pt_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_pt_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_pt_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_pt_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_pz_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_pz_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_pz_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_pz_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_pz_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_pz_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_py_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_py_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_py_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_py_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_py_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_py_obj_sel_eta.at(2);} else {return (-2.0f); }") + .Define("RecoPhoton0_px_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_px_obj_sel_eta.at(0);} else {return (-2.0f); }") + .Define("RecoPhoton1_px_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return RecoPhoton_px_obj_sel_eta.at(1);} else {return (-2.0f); }") + .Define("RecoPhoton2_px_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_px_obj_sel_eta.at(2);} else {return (-2.0f); }") + + + # invariant mass of photons calculated with indices photon1&photon2 + .Define("Reco_aa_energy_obj_sel_eta", "return (RecoPhoton1_e_obj_sel_eta + RecoPhoton2_e_obj_sel_eta)") + .Define("Reco_aa_px_obj_sel_eta", "return (RecoPhoton1_px_obj_sel_eta + RecoPhoton2_px_obj_sel_eta)") + .Define("Reco_aa_py_obj_sel_eta", "return (RecoPhoton1_py_obj_sel_eta + RecoPhoton2_py_obj_sel_eta)") + .Define("Reco_aa_pz_obj_sel_eta", "return (RecoPhoton1_pz_obj_sel_eta + RecoPhoton2_pz_obj_sel_eta)") + .Define("Reco_aa_invMass_obj_sel_eta", "if (Reco_aa_energy_obj_sel_eta != -4.0f && Reco_aa_px_obj_sel_eta != -4.0f && Reco_aa_py_obj_sel_eta != -4.0f && Reco_aa_pz_obj_sel_eta != -4.0f) { return sqrt(Reco_aa_energy_obj_sel_eta*Reco_aa_energy_obj_sel_eta - Reco_aa_px_obj_sel_eta*Reco_aa_px_obj_sel_eta - Reco_aa_py_obj_sel_eta*Reco_aa_py_obj_sel_eta - Reco_aa_pz_obj_sel_eta*Reco_aa_pz_obj_sel_eta); } else { return -2.0f; }") + .Define("Reco_aa_p_obj_sel_eta", "if (Reco_aa_px_obj_sel_eta != -4.0f && Reco_aa_py_obj_sel_eta != -4.0f && Reco_aa_pz_obj_sel_eta != -4.0f) { return sqrt(Reco_aa_px_obj_sel_eta*Reco_aa_px_obj_sel_eta + Reco_aa_py_obj_sel_eta*Reco_aa_py_obj_sel_eta + Reco_aa_pz_obj_sel_eta*Reco_aa_pz_obj_sel_eta); } else { return -2.0f; }") + + .Define("Reco_beta_ALP_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) { return Reco_aa_p_obj_sel_eta/Reco_aa_energy_obj_sel_eta; } else { return -2.0f; }") + + + # test the new fucntion that picks the photons with mindeltaR + .Define("RecoPhoton_pidx_min_delta_r_obj_sel_eta", "ReconstructedParticle::get_pidx_min_delta_r(RecoPhotons_obj_sel_eta)") #photon index of mindeltaR + + # .Define("verify_deltaR", + # "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[0] != -1) { " + # "return ReconstructedParticle::get_delta_r(RecoPhotons_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[0]), RecoPhotons_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[1]));" + # "} else { return -2.0f; }") + + .Define("RecoPhoton1_pz_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[0] != -1) { " + "return RecoPhoton_pz_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoPhoton2_pz_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[1] != -1) { " + "return RecoPhoton_pz_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[1]); " + "} else { return -2.0f; }") + .Define("RecoPhoton1_py_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[0] != -1) { " + "return RecoPhoton_py_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoPhoton2_py_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[1] != -1) { " + "return RecoPhoton_py_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[1]); " + "} else { return -2.0f; }") + .Define("RecoPhoton1_px_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[0] != -1) { " + "return RecoPhoton_px_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoPhoton2_px_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[1] != -1) { " + "return RecoPhoton_px_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[1]); " + "} else { return -2.0f; }") + .Define("RecoPhoton1_e_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[0] != -1) { " + "return RecoPhoton_e_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoPhoton2_e_obj_sel_eta_v2", + "if (RecoPhoton_pidx_min_delta_r_obj_sel_eta.size() > 1 && RecoPhoton_pidx_min_delta_r_obj_sel_eta[1] != -1) { " + "return RecoPhoton_e_obj_sel_eta.at(RecoPhoton_pidx_min_delta_r_obj_sel_eta[1]); " + "} else { return -2.0f; }") + + + # invariant mass of photons calculated with photons that have the smallest angular separation (mindeltaR) v2 + .Define("Reco_aa_energy_obj_sel_eta_v2", "return (RecoPhoton1_e_obj_sel_eta_v2 + RecoPhoton2_e_obj_sel_eta_v2)") + .Define("Reco_aa_px_obj_sel_eta_v2", "return (RecoPhoton1_px_obj_sel_eta_v2 + RecoPhoton2_px_obj_sel_eta_v2)") + .Define("Reco_aa_py_obj_sel_eta_v2", "return (RecoPhoton1_py_obj_sel_eta_v2 + RecoPhoton2_py_obj_sel_eta_v2)") + .Define("Reco_aa_pz_obj_sel_eta_v2", "return (RecoPhoton1_pz_obj_sel_eta_v2 + RecoPhoton2_pz_obj_sel_eta_v2)") + .Define("Reco_aa_invMass_obj_sel_eta_v2", "if (Reco_aa_energy_obj_sel_eta_v2 != -4.0f && Reco_aa_px_obj_sel_eta_v2 != -4.0f && Reco_aa_py_obj_sel_eta_v2 != -4.0f && Reco_aa_pz_obj_sel_eta_v2 != -4.0f) { return sqrt(Reco_aa_energy_obj_sel_eta_v2*Reco_aa_energy_obj_sel_eta_v2 - Reco_aa_px_obj_sel_eta_v2*Reco_aa_px_obj_sel_eta_v2 - Reco_aa_py_obj_sel_eta_v2*Reco_aa_py_obj_sel_eta_v2 - Reco_aa_pz_obj_sel_eta_v2*Reco_aa_pz_obj_sel_eta_v2); } else { return -2.0f; }") + .Define("Reco_aa_p_obj_sel_eta_v2", "if (Reco_aa_px_obj_sel_eta_v2 != -4.0f && Reco_aa_py_obj_sel_eta_v2 != -4.0f && Reco_aa_pz_obj_sel_eta_v2 != -4.0f) { return sqrt(Reco_aa_px_obj_sel_eta_v2*Reco_aa_px_obj_sel_eta_v2 + Reco_aa_py_obj_sel_eta_v2*Reco_aa_py_obj_sel_eta_v2 + Reco_aa_pz_obj_sel_eta_v2*Reco_aa_pz_obj_sel_eta_v2); } else { return -2.0f; }") + + + #RECO ALP (MATCHED TO GEN) with object selection eta ---- + .Define("RecoALPPhoton1_obj_sel", "ReconstructedParticle::sel_pt(0.0)(RecoALPPhoton1)") #select only reco photons with a pt > 0 GeV + .Define("RecoALPPhoton1_obj_sel_eta", "ReconstructedParticle::sel_eta(2.5)(RecoALPPhoton1_obj_sel)") #select only photons with eta<2.5 + .Define("RecoALPPhoton2_obj_sel", "ReconstructedParticle::sel_pt(0.0)(RecoALPPhoton2)") #select only reco photons with a pt > 0 GeV + .Define("RecoALPPhoton2_obj_sel_eta", "ReconstructedParticle::sel_eta(2.5)(RecoALPPhoton2_obj_sel)") #select only photons with eta<2.5 + + .Define("RecoALPPhoton1_e_obj_sel_eta", "ReconstructedParticle::get_e( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_e_obj_sel_eta", "ReconstructedParticle::get_e( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_p_obj_sel_eta", "ReconstructedParticle::get_p( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_p_obj_sel_eta", "ReconstructedParticle::get_p( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_pt_obj_sel_eta", "ReconstructedParticle::get_pt( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_pt_obj_sel_eta", "ReconstructedParticle::get_pt( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_px_obj_sel_eta", "ReconstructedParticle::get_px( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_px_obj_sel_eta", "ReconstructedParticle::get_px( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_py_obj_sel_eta", "ReconstructedParticle::get_py( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_py_obj_sel_eta", "ReconstructedParticle::get_py( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_pz_obj_sel_eta", "ReconstructedParticle::get_pz( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_pz_obj_sel_eta", "ReconstructedParticle::get_pz( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_eta_obj_sel_eta", "ReconstructedParticle::get_eta( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_eta_obj_sel_eta", "ReconstructedParticle::get_eta( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhoton1_phi_obj_sel_eta", "ReconstructedParticle::get_phi( RecoALPPhoton1_obj_sel_eta )") + .Define("RecoALPPhoton2_phi_obj_sel_eta", "ReconstructedParticle::get_phi( RecoALPPhoton2_obj_sel_eta)") + .Define("RecoALPPhotons_deltaEta_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return abs(RecoALPPhoton1_eta_obj_sel_eta.at(0) - RecoALPPhoton2_eta_obj_sel_eta.at(0)); " + "} else { return -2.0f; }") + .Define("RecoALPPhotons_deltaPhi_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return abs(RecoALPPhoton1_phi_obj_sel_eta.at(0) - RecoALPPhoton2_phi_obj_sel_eta.at(0)); " + "} else { return -2.0f; }") + # .Define("RecoALPPhotons_deltaR_obj_sel_eta", + # "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + # "return sqrt(RecoALPPhotons_deltaEta_obj_sel_eta*RecoALPPhotons_deltaEta_obj_sel_eta + RecoALPPhotons_deltaPhi_obj_sel_eta*RecoALPPhotons_deltaPhi_obj_sel_eta); " + # "} else { return -2.0f; }") + .Define("RecoALPPhotons_deltaR_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return ReconstructedParticle::get_delta_r(RecoALPPhoton1_obj_sel_eta.at(0), RecoALPPhoton2_obj_sel_eta.at(0)); " + "} else { return -2.0f; }") + .Define("n_RecoALPPhoton1_obj_sel_eta", "ReconstructedParticle::get_n( RecoALPPhoton1_obj_sel_eta )") + .Define("n_RecoALPPhoton2_obj_sel_eta", "ReconstructedParticle::get_n( RecoALPPhoton2_obj_sel_eta)") + + # # # aa invariant mass + .Define("RecoALP_aa_energy_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return (RecoALPPhoton1_e_obj_sel_eta[0] + RecoALPPhoton2_e_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoALP_aa_px_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return (RecoALPPhoton1_px_obj_sel_eta[0] + RecoALPPhoton2_px_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoALP_aa_py_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return (RecoALPPhoton1_py_obj_sel_eta[0] + RecoALPPhoton2_py_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoALP_aa_pz_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0) { " + "return (RecoALPPhoton1_pz_obj_sel_eta[0] + RecoALPPhoton2_pz_obj_sel_eta[0]); " + "} else { return -2.0f; }") + .Define("RecoALP_aa_invMass_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0 && RecoALP_aa_energy_obj_sel_eta != -2.0f && RecoALP_aa_px_obj_sel_eta != -2.0f && RecoALP_aa_py_obj_sel_eta != -2.0f && RecoALP_aa_pz_obj_sel_eta != -2.0f) { " + "return sqrt(RecoALP_aa_energy_obj_sel_eta*RecoALP_aa_energy_obj_sel_eta - RecoALP_aa_px_obj_sel_eta*RecoALP_aa_px_obj_sel_eta - RecoALP_aa_py_obj_sel_eta*RecoALP_aa_py_obj_sel_eta - RecoALP_aa_pz_obj_sel_eta*RecoALP_aa_pz_obj_sel_eta ); " + "} else { return -2.0f; }") + .Define("RecoALP_aa_p_obj_sel_eta", + "if (RecoALPPhoton1_obj_sel_eta.size() > 0 && RecoALPPhoton2_obj_sel_eta.size() > 0 && RecoALP_aa_energy_obj_sel_eta != -2.0f && RecoALP_aa_px_obj_sel_eta!= -2.0f && RecoALP_aa_py_obj_sel_eta != -2.0f && RecoALP_aa_pz_obj_sel_eta != -2.0f) { " + "return sqrt(RecoALP_aa_px_obj_sel_eta*RecoALP_aa_px_obj_sel_eta + RecoALP_aa_py_obj_sel_eta*RecoALP_aa_py_obj_sel_eta + RecoALP_aa_pz_obj_sel_eta*RecoALP_aa_pz_obj_sel_eta); " + "} else { return -2.0f; }") + + +##### Calorimeter timing variable attempt - self constructed + .Define("RecoPhoton_prompt_calorimeter_hit_obj_sel_eta", "ReconstructedParticle::get_prompt_photon_calorimeter_hits(RecoPhotons_obj_sel_eta)") #for prompt photon coming from interaction point + .Define("RecoPhoton0_prompt_calorimeter_hit_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton_prompt_calorimeter_hit_obj_sel_eta.at(0);} else {return std::vector{-2.,0.0,0.0}; }") + + .Define("RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton0_prompt_calorimeter_hit_obj_sel_eta[0];} else {return (-9000.0f); }") + .Define("RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton0_prompt_calorimeter_hit_obj_sel_eta[1];} else {return (-9000.0f); }") + .Define("RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return RecoPhoton0_prompt_calorimeter_hit_obj_sel_eta[2];} else {return (-9000.0f); }") + + .Define("RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 1) {return sqrt(RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta*RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta + RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta*RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta + RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta*RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta);} else {return (-9000.0f); }") + + + #calculatingn the time of flight for prompt photon + .Define("RecoPhoton0_time2calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 2) {return static_cast(RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta/(2.997*10e11)); } else {return (-2.0f); }") + + + # displaced photon coordinates of hit point + .Define("RecoPhoton_displaced_calorimeter_hit_obj_sel_eta", "ReconstructedParticle::get_displaced_photon_calorimeter_hits(RecoPhotons_obj_sel_eta, GenALPPhoton1_vertex_x[0], GenALPPhoton1_vertex_y[0], GenALPPhoton1_vertex_z[0])") + .Define("RecoPhoton1_displaced_calorimeter_hit_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_displaced_calorimeter_hit_obj_sel_eta.at(1);} else {return std::vector{-2.,0.0,0.0}; }") + .Define("RecoPhoton2_displaced_calorimeter_hit_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton_displaced_calorimeter_hit_obj_sel_eta.at(2);} else {return std::vector{-2.,0.0,0.0}; }") +# #coordinates of calormiter hit point + .Define("RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_obj_sel_eta[0];} else {return (-9000.0f); }") + .Define("RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_obj_sel_eta[1];} else {return (-9000.0f); }") + .Define("RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_obj_sel_eta[2];} else {return (-9000.0f); }") + .Define("RecoPhoton2_displaced_calorimeter_hit_x_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_obj_sel_eta[0];} else {return (-9000.0f); }") + .Define("RecoPhoton2_displaced_calorimeter_hit_y_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_obj_sel_eta[1];} else {return (-9000.0f); }") + .Define("RecoPhoton2_displaced_calorimeter_hit_z_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_obj_sel_eta[2];} else {return (-9000.0f); }") + + #vector between calorihit and alp decay vertex + .Define("RecoPhoton1_dist_x_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta-GenALPPhoton1_vertex_x[0];} else {return (-2.0f); }") + .Define("RecoPhoton1_dist_y_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta-GenALPPhoton1_vertex_y[0];} else {return (-2.0f); }") + .Define("RecoPhoton1_dist_z_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta-GenALPPhoton1_vertex_z[0];} else {return (-2.0f); }") + .Define("RecoPhoton2_dist_x_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_x_obj_sel_eta-GenALPPhoton1_vertex_x[0];} else {return (-2.0f); }") + .Define("RecoPhoton2_dist_y_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_y_obj_sel_eta-GenALPPhoton1_vertex_y[0];} else {return (-2.0f); }") + .Define("RecoPhoton2_dist_z_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton2_displaced_calorimeter_hit_z_obj_sel_eta-GenALPPhoton1_vertex_z[0];} else {return (-2.0f); }") + + #distance between calorihit and alp decay vertex + .Define("RecoPhoton1_dist_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return sqrt( RecoPhoton1_dist_x_ALP_to_calorimeter_obj_sel_eta*RecoPhoton1_dist_x_ALP_to_calorimeter_obj_sel_eta+ RecoPhoton1_dist_y_ALP_to_calorimeter_obj_sel_eta*RecoPhoton1_dist_y_ALP_to_calorimeter_obj_sel_eta + RecoPhoton1_dist_z_ALP_to_calorimeter_obj_sel_eta*RecoPhoton1_dist_z_ALP_to_calorimeter_obj_sel_eta);} else {return (-2.0f); }") + .Define("RecoPhoton2_dist_ALP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return sqrt( RecoPhoton2_dist_x_ALP_to_calorimeter_obj_sel_eta*RecoPhoton2_dist_x_ALP_to_calorimeter_obj_sel_eta+ RecoPhoton2_dist_y_ALP_to_calorimeter_obj_sel_eta*RecoPhoton2_dist_y_ALP_to_calorimeter_obj_sel_eta + RecoPhoton2_dist_z_ALP_to_calorimeter_obj_sel_eta*RecoPhoton2_dist_z_ALP_to_calorimeter_obj_sel_eta);} else {return (-2.0f); }") + #taking the photon from the ALP with the maximum distance to the calorimeter + .Define("max_dist_ALP_to_calorimeter_obj_sel_eta", "max(RecoPhoton1_dist_ALP_to_calorimeter_obj_sel_eta, RecoPhoton2_dist_ALP_to_calorimeter_obj_sel_eta)" ) + + # total path length from interaction point to calorimeter + .Define("RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta", "if (n_RecoPhotons_obj_sel_eta >= 3) {return max_dist_ALP_to_calorimeter_obj_sel_eta + GenALP_Lxyz[0];} else {return (-2.0f); }") + + # calculatingn the time of flight (assumig speed of light for ALP) + .Define("RecoPhoton1_time2calorimeter_obj_sel_eta_new", "if (n_RecoPhotons_obj_sel_eta >= 3) {return static_cast(RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta/(2.997*10e11)); } else {return (-2.0f); }") + .Define("Reco_deltaT_CaloriHit_obj_sel_eta_new", "if (n_RecoPhotons_obj_sel_eta >= 3) {return RecoPhoton1_time2calorimeter_obj_sel_eta_new - RecoPhoton0_time2calorimeter_obj_sel_eta; } else {return (-2.0f); }") + +####end of calorimeter timing variable + + + ) return df2 @@ -746,6 +1237,7 @@ def output(): branchList = [ # "CalorimeterHitsTime", ######## Monte-Carlo particles ####### + "Calorimeterhit_time", "All_n_GenALP", "AllGenALP_mass", "AllGenALP_e", @@ -759,22 +1251,32 @@ def output(): "AllGenALP_phi", "AllGenALP_genStatus", "n_FSGenElectron", - # "FSGenElectron_e", - # "FSGenElectron_p", - # "FSGenElectron_pt", + "FSGenElectron_e", + "FSGenElectron_p", + "FSGenElectron_pt", # "FSGenElectron_px", # "FSGenElectron_py", - # "FSGenElectron_pz", - # "FSGenElectron_eta", - # "FSGenElectron_theta", - # "FSGenElectron_phi", + "FSGenElectron_pz", + "FSGenElectron_eta", + "FSGenElectron_theta", + "FSGenElectron_phi", "FSGenPhoton_vertex_x", "FSGenPhoton_vertex_y", "FSGenPhoton_vertex_z", + "n_FSGenElectronPositron", + "FSGenElectronPositron_e", + "FSGenElectronPositron_p", + "FSGenElectronPositron_pt", + "FSGenElectronPositron_px", + "FSGenElectronPositron_py", + "FSGenElectronPositron_pz", + "FSGenElectronPositron_eta", + "FSGenElectronPositron_theta", + "FSGenElectronPositron_phi", # # "n_FSGenElectron_forFS2GenPhotons", # # "n_FSGenPositron_forFS2GenPhotons", - # "FSGen_Lxy", - # "FSGen_Lxyz", + "FSGen_Lxy", + "FSGen_Lxyz", # "FSGen_lifetime_xy", # "FSGen_lifetime_xyz", # "n_FSGenPositron", @@ -857,6 +1359,7 @@ def output(): "GenALP_theta", "GenALP_phi", "GenALP_genStatus", + "GenALP_beta", "GenALP_px_if_FSGenPhoton0_px_greaterthan_0", "FSGenPhoton1_px_if_GenALP_px_neg", @@ -869,6 +1372,7 @@ def output(): # "GenALPPhotons_deltaR_2", "FSGenPhotons_delta_r", + "FSGenPhotons_min_delta_r", "GenALPPhoton1_time", "GenALPPhoton2_time", @@ -965,9 +1469,14 @@ def output(): "RecoALPPhotons_deltaEta", "RecoALPPhotons_deltaPhi", "RecoALPPhotons_deltaR", - "RecoALPPhotons_deltaR2", + # "RecoALPPhotons_deltaR2", + + "RecoALP_aa_invMass", + "RecoALP_aa_p", + "RecoALP_aa_energy", + "Reco_aa_invMass", + "Reco_aa_p", - # "RecoALP_aa_invMass", "GenMinusRecoALPPhoton1_e", "GenMinusRecoALPPhoton2_e", # "GenMinusRecoALPPhoton1_p", @@ -1024,10 +1533,10 @@ def output(): # "RecoPhotons_ALP_delta_phi", # "RecoPhotons_ALP_delta_eta", - "RecoPhoton_y", + # "RecoPhoton_y", # "RecoPhoton_time", - "RecoPhoton_reference_point_x", + # "RecoPhoton_reference_point_x", "RecoPhoton0_e", "RecoPhoton1_e", @@ -1053,15 +1562,15 @@ def output(): "RecoALPPhotons_delta_R3", - # "RecoElectron_e", - # "RecoElectron_p", - # "RecoElectron_pt", + "RecoElectron_e", + "RecoElectron_p", + "RecoElectron_pt", # "RecoElectron_px", # "RecoElectron_py", - # "RecoElectron_pz", - # "RecoElectron_eta", - # "RecoElectron_theta", - # "RecoElectron_phi", + "RecoElectron_pz", + "RecoElectron_eta", + "RecoElectron_theta", + "RecoElectron_phi", # "RecoElectron_charge", # "RecoMuon_e", # "RecoMuon_p", @@ -1082,6 +1591,121 @@ def output(): # "RecoMissingEnergy_eta", # "RecoMissingEnergy_theta", # "RecoMissingEnergy_phi", + + ##### OBJECT SELECTION: FSGenPhotons and RecoPhotons with selection: p_t>10 GeV as threshold #### + "FSGenPhoton_eta_obj_sel_eta", + "FSGenPhoton_theta_obj_sel_eta", + "FSGenPhoton_phi_obj_sel_eta", + "FSGenPhotons_delta_eta_obj_sel_eta", + "FSGenPhotons_delta_phi_obj_sel_eta", + "FSGenPhotons_delta_r_obj_sel_eta", + "FSGenPhotons_min_delta_r_obj_sel_eta", + "FSGenPhoton_pt_obj_sel_eta", + "FSGenPhoton_e_obj_sel_eta", + "FSGenPhoton_p_obj_sel_eta", + "n_FSGenPhoton_obj_sel_eta", + "FSGenPhoton_pz_obj_sel_eta", + "FSGenPhoton0_e_obj_sel_eta", + "FSGenPhoton1_e_obj_sel_eta", + "FSGenPhoton2_e_obj_sel_eta", + "FSGenPhoton0_p_obj_sel_eta", + "FSGenPhoton1_p_obj_sel_eta", + "FSGenPhoton2_p_obj_sel_eta", + "FSGenPhoton0_pt_obj_sel_eta", + "FSGenPhoton1_pt_obj_sel_eta", + "FSGenPhoton2_pt_obj_sel_eta", + "FSGenPhoton0_pz_obj_sel_eta", + "FSGenPhoton1_pz_obj_sel_eta", + "FSGenPhoton2_pz_obj_sel_eta", + "FSGen_aa_invMass_obj_sel_eta", + "FSGen_aa_p_obj_sel_eta", + + + "RecoPhoton_diphoton_delta_r_obj_sel_eta", + "RecoPhoton_eta_obj_sel_eta", + "RecoPhoton_theta_obj_sel_eta", + "RecoPhoton_phi_obj_sel_eta", + "RecoPhotons_delta_eta_obj_sel_eta", + "RecoPhotons_delta_phi_obj_sel_eta", + "RecoPhotons_delta_r_obj_sel_eta", + "RecoPhotons_min_delta_r_obj_sel_eta", + "RecoPhoton_pt_obj_sel_eta", + "RecoPhoton_e_obj_sel_eta", + "RecoPhoton_p_obj_sel_eta", + "n_RecoPhotons_obj_sel_eta", + "RecoPhoton_charge_obj_sel_eta", + "RecoPhoton_pz_obj_sel_eta", + "RecoPhoton0_e_obj_sel_eta", + "RecoPhoton1_e_obj_sel_eta", + "RecoPhoton2_e_obj_sel_eta", + "RecoPhoton0_p_obj_sel_eta", + "RecoPhoton1_p_obj_sel_eta", + "RecoPhoton2_p_obj_sel_eta", + "RecoPhoton0_pt_obj_sel_eta", + "RecoPhoton1_pt_obj_sel_eta", + "RecoPhoton2_pt_obj_sel_eta", + "RecoPhoton0_pz_obj_sel_eta", + "RecoPhoton1_pz_obj_sel_eta", + "RecoPhoton2_pz_obj_sel_eta", + "Reco_aa_invMass_obj_sel_eta", + "Reco_aa_p_obj_sel_eta", + "Reco_beta_ALP_obj_sel_eta", + + + # "RecoPhoton0_prompt_calorimeter_hit_x_obj_sel_eta", + # "RecoPhoton0_prompt_calorimeter_hit_y_obj_sel_eta", + # "RecoPhoton0_prompt_calorimeter_hit_z_obj_sel_eta", + # "RecoPhoton0_prompt_dist_calorimeter_obj_sel_eta", + + # "RecoPhoton1_displaced_calorimeter_hit_x_obj_sel_eta", #newversion + # "RecoPhoton1_displaced_calorimeter_hit_y_obj_sel_eta", #newversion + # "RecoPhoton1_displaced_calorimeter_hit_z_obj_sel_eta", #newversion + # "max_dist_ALP_to_calorimeter_obj_sel_eta", + # "RecoPhoton1_total_dist_IP_to_calorimeter_obj_sel_eta", #newversion + + # "RecoPhoton0_time2calorimeter_obj_sel_eta", + # "RecoPhoton1_time2calorimeter_obj_sel_eta_new", + # "Reco_deltaT_CaloriHit_obj_sel_eta_new", + + + + "RecoPhoton_pidx_min_delta_r_obj_sel_eta", + "RecoPhoton1_pz_obj_sel_eta_v2", + "RecoPhoton2_pz_obj_sel_eta_v2", + "Reco_aa_invMass_obj_sel_eta_v2", + "Reco_aa_p_obj_sel_eta_v2", + + # "verify_deltaR", + + + # #RECO ALP (MATCHED TO GEN) + "RecoALPPhoton1_e_obj_sel_eta", + "RecoALPPhoton2_e_obj_sel_eta", + "RecoALPPhoton1_p_obj_sel_eta", + "RecoALPPhoton2_p_obj_sel_eta", + "RecoALPPhoton1_pt_obj_sel_eta", + "RecoALPPhoton2_pt_obj_sel_eta", + "RecoALPPhoton1_px_obj_sel_eta", + "RecoALPPhoton2_px_obj_sel_eta", + "RecoALPPhoton1_py_obj_sel_eta", + "RecoALPPhoton2_py_obj_sel_eta", + "RecoALPPhoton1_pz_obj_sel_eta", + "RecoALPPhoton2_pz_obj_sel_eta", + "RecoALPPhoton1_eta_obj_sel_eta", + "RecoALPPhoton2_eta_obj_sel_eta", + "RecoALPPhoton1_phi_obj_sel_eta", + "RecoALPPhoton2_phi_obj_sel_eta", + "RecoALPPhotons_deltaEta_obj_sel_eta", + "RecoALPPhotons_deltaPhi_obj_sel_eta", + "RecoALPPhotons_deltaR_obj_sel_eta", + "n_RecoALPPhoton1_obj_sel_eta", + "n_RecoALPPhoton2_obj_sel_eta", + "RecoALP_aa_energy_obj_sel_eta", + "RecoALP_aa_px_obj_sel_eta", + "RecoALP_aa_py_obj_sel_eta", + "RecoALP_aa_pz_obj_sel_eta", + "RecoALP_aa_invMass_obj_sel_eta", + "RecoALP_aa_p_obj_sel_eta", ] return branchList diff --git a/examples/FCCee/bsm/LLPs/ALPs/plots_flavor.py b/examples/FCCee/bsm/LLPs/ALPs/plots_flavor.py index 3002a597a49..9c7923d3e25 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/plots_flavor.py +++ b/examples/FCCee/bsm/LLPs/ALPs/plots_flavor.py @@ -1,4 +1,5 @@ import ROOT +#plots_flavor # global parameters intLumi = 1 diff --git a/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity.py b/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity.py index 281ba0df0a1..6d074dafdc8 100644 --- a/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity.py +++ b/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity.py @@ -4,6 +4,8 @@ import os import pandas as pd import matplotlib.pyplot as plt +import math +from math import log10 class Plotting: def __init__(self,ana_text,energy,intLumi,output_dir): @@ -20,16 +22,18 @@ def __init__(self,ana_text,energy,intLumi,output_dir): def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot_pred=False): #Set bins for the plots - logBins = 14 - stopBin = 3.38 + logBins = 13 + stopBin = 12 # startBin = 0.0000107 - startBin = 0.000000338 + startBin = 0.0000005 logWidth = [] for i in range(0,logBins): logWidth.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBin)+((ROOT.TMath.Log10(stopBin)-ROOT.TMath.Log10(startBin))/logBins)*i)) logArray = array.array('d',logWidth) print(logArray) + + # linBins = 10 # linBins0 = 10 # linWidth = [0,5,10,20,30,40,50,60,70,80] @@ -37,9 +41,9 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot # linArray = array.array('d', linWidth) # linArray0 = array.array('d', linWidth0) - logBinMass = 8 - stopBinMass = 178 - startBinMass = 0.0178 + logBinMass = 9 + stopBinMass = 200 + startBinMass = 0.005 logWidthMass = [] for i in range(0,logBinMass): logWidthMass.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBinMass)+((ROOT.TMath.Log10(stopBinMass)-ROOT.TMath.Log10(startBinMass))/logBinMass)*i)) @@ -51,6 +55,7 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot ROOT.gPad.SetLogx(1) ROOT.gPad.SetLogy(1) ROOT.gPad.SetLogz(1) + # ROOT.gPad.SetLogz(0) ROOT.gPad.SetRightMargin(0.2) ROOT.gStyle.SetOptStat(0) @@ -59,13 +64,14 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot # h0.GetZaxis().SetRangeUser(zrange[0],zrange[1]) # h0.Draw() - h = ROOT.TH2F(histo_name,r";m_{a} [GeV];c_{\gamma\gamma}", logBinMass-1, logMassArray, logBins-1, logArray) + h = ROOT.TH2F(histo_name,r";m_{a} [GeV];c_{\gamma\gamma}/ \Lambda [TeV^{-1}]", logBinMass-1, logMassArray, logBins-1, logArray) h.GetZaxis().SetTitle(func_text) h.GetZaxis().SetTitleOffset(1.5) h.GetXaxis().SetTitleOffset(1.4) h.GetZaxis().SetRangeUser(zrange[0],zrange[1]) for m,v,z in zip(mN,Ve,Z): h.Fill(m,v,z) + # h.Fill(m,v,log10(z)) if zrange: h.SetMinimum(zrange[0]) h.SetMaximum(zrange[1]) @@ -82,9 +88,9 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot Text.SetNDC(ROOT.kTRUE) Text.SetTextSize(0.04) # Text.DrawLatex(0.62, 0.83, func_text) - Text.DrawLatex(0.48, 0.83, self.s_tex) - Text.DrawLatex(0.48, 0.78, self.lumi_tex) - Text.DrawLatex(0.48, 0.73, self.ana_tex) + Text.DrawLatex(0.40, 0.83, self.s_tex) + Text.DrawLatex(0.40, 0.78, self.lumi_tex) + Text.DrawLatex(0.40, 0.73, self.ana_tex) # c.Modified() # c.Update() @@ -126,9 +132,10 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot leg.Draw() leg = ROOT.TLegend(0.14,0.23,0.34,0.37) + # leg = ROOT.TLegend(0,0,0,0) leg.SetFillColor(0) leg.SetFillStyle(0) - leg.SetLineColor(1) + leg.SetLineColor(0) leg.SetShadowColor(0) leg.SetTextSize(0.035) leg.SetTextFont(42) @@ -145,49 +152,55 @@ def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot # hS.GetZaxis().SetRangeUser(zrange[0],zrange[1]) # for m,v,s in zip(mN,Ve,S): # hS.Fill(m,v**2,s) - # x[0] = 3 - # hS.SetContour(1,x) - # hS.SetLineColor(3) - # hS.SetLineWidth(2) - # hS.Draw("cont3 C") + # x[0] = 3 + # hS.SetContour(1,x) + # hS.SetLineColor(3) + # hS.SetLineWidth(2) + # hS.Draw("cont3 C") # leg.AddEntry(hS,"3 signal event") # Text.SetTextColor(3) # Text.DrawLatex(0.67,0.41,"#bf{3 signal event}") - x[0] = 0.0001 + + #this corresponds to approxiamtely 95% confidence level + x[0] = 2.0 h1 = h.Clone() h1.SetContour(1,x) h1.SetLineWidth(3) - h1.SetLineColor(5) - # Text.SetTextColor(2) - # Text.DrawLatex(0.3,0.6,"#bf{s = 0.01}") + h1.SetLineColor(2) h1.DrawCopy("cont3 C same") - leg.AddEntry(h1,"s = 0.0001","l") + leg.AddEntry(h1,"s = 2.0","l") - x[0] = 0.01 - h2 = h.Clone() - h2.SetContour(1,x) - h2.SetLineWidth(3) - h2.SetLineColor(3) - # Text.SetTextColor(2) - # Text.DrawLatex(0.3,0.6,"#bf{s = 0.01}") - h2.DrawCopy("cont3 C same") - leg.AddEntry(h2,"s = 0.01","l") - - h22 = h.Clone() - x[0] = 0.05 - h22.SetContour(1,x) - h22.SetLineWidth(3) - h22.SetLineColor(4) - # Text.SetTextColor(3) - # Text.DrawLatex(0.3,0.7,"#bf{s = 0.05}") - h22.DrawCopy("cont3 C same") - leg.AddEntry(h22,"s = 0.05","l") leg.Draw() c.Modified() c.Update() + + + # projection of L=c*tau=2500mm (proper decay length) on the sensitivity plot (optional) + + # tau_target = 2.5/(299792458) #length divided my speed of light (meters) + # alpha = 1/137 + # hbar = 6.58e-25 # GeV s + # fa = 6.33 # GeV + + # C_target = [] + # for mass in mN: + # C = np.sqrt((64 * np.pi**3 * hbar * fa**2) / (alpha**2 * tau_target * mass**3)) + # C_target.append(C) + + # C_target_array = array.array('d', C_target) + # graph = ROOT.TGraph(len(mN), array.array('d', mN), C_target_array) + # graph.SetLineColor(1) # Color of the dashed line + # graph.SetLineStyle(2) # Dashed line style + # graph.SetLineWidth(2) + # graph.Draw("same L") + + # Text.SetTextSize(0.035) + # Text.SetTextFont(42) + # Text.DrawLatex(0.15, 0.25, "---- c#tau = 2500 mm") + c.SaveAs(os.path.join(self.output_dir, out_name)) def drawFigureWithNumbers(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[]): @@ -534,6 +547,7 @@ def func1(self,S,B): else: ret.append(s/ROOT.Math.sqrt(s+B)) # print(s/ROOT.Math.sqrt(s+B)) + # print("S: ", s) return ret ### returns S/sqrt(S+B+DeltaB) ### @@ -555,6 +569,21 @@ def func3(self,S,B,DeltaB): ret.append(s/ROOT.Math.sqrt(B+DeltaB)) return ret + + ### returns sqrt(2((s+B)*ln(1+s/B)-s)) ### + def func4(self,S,B): + ret = [] + for s in S: + if s == 0: + ret.append(0) + else: + # s = np.float64(ROOT.Math.sqrt(2*((s+B)*ROOT.Math.log(1+s/B)-s))) + s = np.float64(ROOT.Math.sqrt(2*((s+B)*ROOT.Math.log1p(s/B)-s))) + ret.append(s) + return ret + + + ### returns decay length approximation ### def func_L(self,mN,Ve): ret = [] @@ -594,7 +623,7 @@ def get_pred(self): ana_tex = 'e^{+}e^{-} #rightarrow Z #rightarrow #gamma ALP #rightarrow 3#gamma' collider = 'FCC-ee' energy = 91 - intLumi = 150 + intLumi = 205 output_dir = "plots_sensitivity/" plotting = Plotting(ana_tex,energy,intLumi,output_dir) @@ -606,11 +635,8 @@ def get_pred(self): # Background # # Ztautau + Zee + Zbb + Zcc + Zuds # B = 6.64e+04 + 0 + 1.72e+03 + 0 + 0 - B = 0.00e+00 + 7.16e+06 + 1.39e+03 - DeltaB = 3.84e+04 + 3.94e+06 + 1.72e+03 + 1.23e+03 + 2.79e+03 + B = 9.16e+07 + 2.16e+04 + 1.19e+04 + 2.00e+02 - B_d0cut = 7.47e+06 + 0 + 1.72e+03 + 0 + 0 - print("DeltaB: ", DeltaB) # Signal # # mN = [5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -621,28 +647,68 @@ def get_pred(self): # 50, 50, 50, 50, 50, 50, 50, 50, 50, # 60, 60, 60, 60, 60, 60, 60, 60, 60, # 70, 70, 70, 70, 70, 70, 70, 70, 70] - mN = [0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, - 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, - 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6] - # Ve = [2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6, - # 2e-4, 1e-4, 5e-5, 3e-5, 2e-5, 1e-5, 6e-6, 3e-6, 2e-6] - Ve = [0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, - 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6] + # mN = [0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, 0.0316, + # 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + # 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, 0.316, + # 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + # 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, 3.16, + # 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + # 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6, 31.6] + # mN = [ + # 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, + # 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, + # 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + # 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, + # 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + # 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, + # 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, + # 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0 + # ] + + # Ve = [ + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001, + # 1.6, 0.4, 0.1, 0.03, 0.009, 0.002, 0.0007, 0.0002, 0.00005, 0.00001, 0.000004, 0.000001 + # ] + + # Ve = [ + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # 0.000001, 0.000004, 0.00001, 0.00005, 0.0002, 0.0007, 0.002, 0.009, 0.03, 0.1, 0.4, 1.6, + # ] + + # Divide each element by 6.33 + # Ve_divided = [v / 1 for v in Ve] #c_yy/LAMBDA [TeV-1] + + # Ve = [0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6, + # 0.0000006, 0.0000019, 0.000006, 0.000019, 0.00006, 0.00019, 0.0006, 0.0019, 0.006, 0.019, 0.06, 0.19, 0.6] + + + #after all selection + # S = [0, 0, 0, 0, 0, 0, 0, 0, 2.51e+00, 1.45e+01 , 1.76e+02, 1.12e+05, + # 0,0,0,0,0,0,0, 6.69e-02, 2.48e+00, 3.25e+02, 8.85e+04, 1.98e+07, + # 0,0,0,0,0, 2.70e-04, 2.75e-02, 8.47e+00, 1.04e+03, 1.22e+05, 1.29e+07, 2.68e+08, + # 0,0,0,0, 3.30e-04, 5.41e-02, 3.84e+00, 1.52e+03, 1.14e+05, 2.03e+06, 3.32e+07, 5.31e+08, + # 0,0,0, 2.65e-04, 7.07e-02, 1.03e+01, 4.92e+02, 1.83e+04, 2.03e+05, 2.26e+06, 3.62e+07, 5.78e+08, + # 0, 9.26e-07, 3.80e-05, 2.41e-02, 4.52e+00, 1.09e+02, 8.85e+02, 1.79e+04, 1.99e+05, 2.21e+06, 3.54e+07, 5.67e+08, + # 4.74e-07, 1.17e-04, 4.14e-03, 4.53e-01, 6.69e+00, 8.15e+01, 6.65e+02, 1.35e+04, 1.49e+05, 1.66e+06, 2.66e+07, 4.25e+08, + # 9.48e-07, 7.02e-05, 5.66e-04, 1.55e-02, 2.48e-01, 3.07e+00, 2.49e+01, 5.05e+02, 5.56e+03, 6.21e+04, 9.95e+05, 1.58e+07] + # S = [2.19e+01, 2.36e+00, 1.04e-01, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, # 8.92e+02, 1.84e+02, 1.87e+01, 2.09e+00, 4.51e-01, 3.71e-02, 3.37e-03, 2.17e-04, 5.07e-05, @@ -665,73 +731,74 @@ def get_pred(self): # 5.94e-02, 9.45e-01, 8.92e+00, 8.82e+01, 8.86e+02, 8.85e+03, 8.87e+04, 8.84e+05, 8.83e+06, 8.82e+07, # 3.58e-03, 3.57e-02, 3.54e-01, 3.54e+00, 3.54e+01, 3.60e+02, 3.52e+03, 3.52e+04, 3.58e+05, 3.53e+06] -# Removing the bottom left corner weirdness: - S = [0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 1.46e+00, 1.34e+04, 9.17e+05, - 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 1.46e-04, 2.08e+02, 2.48e+04, 2.01e+06, 5.39e+07, - 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 2.96e-02, 4.15e+00, 5.59e+02, 4.61e+04, 1.09e+06, 1.15e+07, 1.15e+08, - 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 8.87e-04, 6.38e-02, 8.21e+00, 6.35e+02, 1.23e+04, 1.24e+05, 1.23e+06, 1.24e+07, 1.23e+08, - 0.00e+00, 0.00e+00, 5.90e-06, 8.72e-04, 9.63e-02, 6.60e+00, 1.21e+02, 1.20e+03, 1.20e+04, 1.21e+05, 1.20e+06, 1.21e+07, 1.20e+08, - 8.56e-08, 1.10e-05, 8.89e-04, 5.94e-02, 9.45e-01, 8.92e+00, 8.82e+01, 8.86e+02, 8.85e+03, 8.87e+04, 8.84e+05, 8.83e+06, 8.82e+07, - 1.81e-07, 1.15e-05, 3.00e-04, 3.58e-03, 3.57e-02, 3.54e-01, 3.54e+00, 3.54e+01, 3.60e+02, 3.52e+03, 3.52e+04, 3.58e+05, 3.53e+06] - - S_d0cut = [2.19e+01, 2.36e+00, 1.04e-01, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, - 8.92e+02, 1.84e+02, 1.87e+01, 2.09e+00, 4.51e-01, 3.71e-02, 3.37e-03, 2.17e-04, 5.07e-05, - 3.48e+00, 2.30e+02, 3.71e+01, 2.10e+01, 1.13e+01, 3.28e+00, 1.22e+00, 1.89e-01, 4.84e-02, - 3.38e+01, 8.66e+01, 5.20e+01, 2.50e+01, 1.24e+01, 3.39e+00, 1.24e+00, 1.91e-01, 4.87e-02, - 3.43e-02, 3.44e+00, 1.37e+01, 1.21e+01, 7.75e+00, 2.63e+00, 1.04e+00, 2.68e-01, 1.12e-01, - 1.00e-06, 1.00e-06, 5.36e-01, 2.20e+00, 2.67e+00, 1.56e+00, 7.29e-01, 2.12e-01, 8.93e-02, - 1.00e-06, 1.00e-06, 1.00e-06, 2.00e-02, 2.30e-01, 5.02e-01, 3.52e-01, 1.32e-01, 6.43e-02, - 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 4.75e-04, 5.80e-01, 7.03e-02, 5.23e-02, 3.12e-02] + + # S = [0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 1.46e+00, 1.34e+04, 9.17e+05, + # 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 1.46e-04, 2.08e+02, 2.48e+04, 2.01e+06, 5.39e+07, + # 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 2.96e-02, 4.15e+00, 5.59e+02, 4.61e+04, 1.09e+06, 1.15e+07, 1.15e+08, + # 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 8.87e-04, 6.38e-02, 8.21e+00, 6.35e+02, 1.23e+04, 1.24e+05, 1.23e+06, 1.24e+07, 1.23e+08, + # 0.00e+00, 0.00e+00, 5.90e-06, 8.72e-04, 9.63e-02, 6.60e+00, 1.21e+02, 1.20e+03, 1.20e+04, 1.21e+05, 1.20e+06, 1.21e+07, 1.20e+08, + # 8.56e-08, 1.10e-05, 8.89e-04, 5.94e-02, 9.45e-01, 8.92e+00, 8.82e+01, 8.86e+02, 8.85e+03, 8.87e+04, 8.84e+05, 8.83e+06, 8.82e+07, + # 1.81e-07, 1.15e-05, 3.00e-04, 3.58e-03, 3.57e-02, 3.54e-01, 3.54e+00, 3.54e+01, 3.60e+02, 3.52e+03, 3.52e+04, 3.58e+05, 3.53e+06] + + + # S_d0cut = [2.19e+01, 2.36e+00, 1.04e-01, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, + # 8.92e+02, 1.84e+02, 1.87e+01, 2.09e+00, 4.51e-01, 3.71e-02, 3.37e-03, 2.17e-04, 5.07e-05, + # 3.48e+00, 2.30e+02, 3.71e+01, 2.10e+01, 1.13e+01, 3.28e+00, 1.22e+00, 1.89e-01, 4.84e-02, + # 3.38e+01, 8.66e+01, 5.20e+01, 2.50e+01, 1.24e+01, 3.39e+00, 1.24e+00, 1.91e-01, 4.87e-02, + # 3.43e-02, 3.44e+00, 1.37e+01, 1.21e+01, 7.75e+00, 2.63e+00, 1.04e+00, 2.68e-01, 1.12e-01, + # 1.00e-06, 1.00e-06, 5.36e-01, 2.20e+00, 2.67e+00, 1.56e+00, 7.29e-01, 2.12e-01, 8.93e-02, + # 1.00e-06, 1.00e-06, 1.00e-06, 2.00e-02, 2.30e-01, 5.02e-01, 3.52e-01, 1.32e-01, 6.43e-02, + # 1.00e-06, 1.00e-06, 1.00e-06, 1.00e-06, 4.75e-04, 5.80e-01, 7.03e-02, 5.23e-02, 3.12e-02] #No selection - S0 = [2.97e+03, 7.43e+02, 1.86e+02, 6.69e+01, 2.97e+01, 7.43e+00, 2.68e+00, 6.69e-01, 2.97e-01, - 2.53e+03, 6.33e+02, 1.58e+02, 5.70e+01, 2.53e+01, 6.33e+00, 2.28e+00, 5.70e-01, 2.53e-01, - 2.26e+03, 5.65e+02, 1.41e+02, 5.08e+01, 2.26e+01, 5.65e+00, 2.03e+00, 5.08e-01, 2.26e-01, - 2.00e+03, 5.01e+02, 1.25e+02, 4.51e+01, 2.00e+01, 5.01e+00, 1.80e+00, 4.51e-01, 2.00e-01, - 1.71e+03, 4.29e+02, 1.07e+02, 3.86e+01, 1.71e+01, 4.29e+00, 1.54e+00, 3.86e-01, 1.71e-01, - 1.37e+03, 3.42e+02, 8.55e+01, 3.08e+01, 1.37e+01, 3.42e+00, 1.23e+00, 3.08e-01, 1.37e-01, - 9.86e+02, 2.46e+02, 6.16e+01, 2.22e+01, 9.86e+00, 2.46e+00, 8.87e-01, 2.22e-01, 9.86e-02, - 5.94e+02, 1.48e+02, 3.71e+01, 1.34e+01, 5.94e+00, 1.48e+00, 5.35e-01, 1.34e-01, 5.94e-02] - - # 2 reco e - S1 = [2.42e+01, 2.51e+00, 1.04e-01, 2.67e-03, 1.19e-03, 7.94e-01, 2.82e-01, 7.31e-02, 3.24e-02, - 9.91e+02, 1.98e+02, 2.00e+01, 2.22e+00, 4.86e-01, 3.85e-02, 3.78e-03, 2.39e-04, 5.07e-05, - 1.54e+03, 3.85e+02, 9.63e+01, 3.47e+01, 1.51e+01, 2.58e+00, 3.57e-01, 2.50e-02, 5.23e-03, - 1.54e+03, 3.85e+02, 9.63e+01, 3.47e+01, 1.54e+01, 3.85e+00, 1.38e+00, 2.10e-01, 5.34e-02, - 1.36e+03, 3.39e+02, 8.49e+01, 3.07e+01, 1.36e+01, 3.39e+00, 1.22e+00, 3.00e-01, 1.24e-01, - 1.10e+03, 2.74e+02, 6.87e+01, 2.47e+01, 1.10e+01, 2.75e+00, 9.90e-01, 2.47e-01, 9.92e-02, - 7.88e+02, 1.97e+02, 4.92e+01, 1.78e+01, 7.88e+00, 1.97e+00, 7.11e-01, 1.77e-01, 7.14e-02, - 4.75e+02, 1.19e+02, 2.97e+01, 1.07e+01, 4.75e+00, 1.19e+00, 4.28e-01, 1.07e-01, 4.75e-02] - - # vetoes - S2 = [2.42e+01, 2.51e+00, 1.04e-01, 2.67e-03, 1.19e-03, 7.88e-01, 2.80e-01, 7.25e-02, 3.21e-02, - 9.81e+02, 1.97e+02, 1.98e+01, 2.20e+00, 4.81e-01, 3.80e-02, 3.78e-03, 2.39e-04, 5.07e-05, - 1.51e+03, 3.78e+02, 9.46e+01, 3.42e+01, 1.48e+01, 2.53e+00, 3.50e-01, 2.47e-02, 5.12e-03, - 1.50e+03, 3.77e+02, 9.42e+01, 3.39e+01, 1.50e+01, 3.76e+00, 1.34e+00, 2.03e-01, 5.18e-02, - 1.32e+03, 3.30e+02, 8.25e+01, 2.98e+01, 1.32e+01, 3.30e+00, 1.19e+00, 2.91e-01, 1.20e-01, - 1.06e+03, 2.66e+02, 6.64e+01, 2.39e+01, 1.06e+01, 2.67e+00, 9.57e-01, 2.39e-01, 9.57e-02, - 7.59e+02, 1.90e+02, 4.74e+01, 1.71e+01, 7.59e+00, 1.90e+00, 6.85e-01, 1.71e-01, 6.89e-02, - 4.56e+02, 1.14e+02, 2.84e+01, 1.02e+01, 4.56e+00, 1.14e+00, 4.11e-01, 1.02e-01, 4.55e-02] - - # missing energy gt 10 GeV - S3 = [2.23e+01, 2.39e+00, 1.04e-01, 1.34e-03, 5.94e-04, 7.25e-01, 2.59e-01, 6.74e-02, 2.95e-02, - 9.36e+02, 1.88e+02, 1.90e+01, 2.12e+00, 4.56e-01, 3.78e-02, 3.47e-03, 2.39e-04, 5.07e-05, - 1.44e+03, 3.61e+02, 9.02e+01, 3.26e+01, 1.41e+01, 2.41e+00, 3.35e-01, 2.35e-02, 4.89e-03, - 1.42e+03, 3.56e+02, 8.89e+01, 3.20e+01, 1.42e+01, 3.54e+00, 1.27e+00, 1.92e-01, 4.90e-02, - 1.25e+03, 3.12e+02, 7.80e+01, 2.81e+01, 1.25e+01, 3.12e+00, 1.12e+00, 2.75e-01, 1.13e-01, - 1.02e+03, 2.55e+02, 6.39e+01, 2.30e+01, 1.02e+01, 2.56e+00, 9.21e-01, 2.30e-01, 9.06e-02, - 7.40e+02, 1.85e+02, 4.62e+01, 1.67e+01, 7.40e+00, 1.85e+00, 6.68e-01, 1.67e-01, 6.52e-02, - 4.49e+02, 1.12e+02, 2.81e+01, 1.01e+01, 4.49e+00, 1.12e+00, 4.05e-01, 1.01e-01, 4.49e-02] - - # d0 gt 0.5 mm - S4 = [2.19e+01, 2.36e+00, 1.04e-01, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, - 8.92e+02, 1.84e+02, 1.87e+01, 2.09e+00, 4.51e-01, 3.71e-02, 3.37e-03, 2.17e-04, 5.07e-05, - 6.56e+02, 2.71e+02, 8.15e+01, 3.12e+01, 1.38e+01, 2.39e+00, 3.31e-01, 2.33e-02, 4.83e-03, - 3.38e+01, 8.66e+01, 5.20e+01, 2.50e+01, 1.24e+01, 3.39e+00, 1.24e+00, 1.91e-01, 4.87e-02, - 3.43e-02, 3.44e+00, 1.37e+01, 1.21e+01, 7.75e+00, 2.63e+00, 1.04e+00, 2.68e-01, 1.12e-01, - 0.00e+00, 0.00e+00, 5.36e-01, 2.20e+00, 2.67e+00, 1.56e+00, 7.29e-01, 2.12e-01, 8.93e-02, - 0.00e+00, 0.00e+00, 0.00e+00, 2.00e-02, 2.30e-01, 5.02e-01, 3.52e-01, 1.32e-01, 6.43e-02, - 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 4.75e-04, 5.80e-01, 7.03e-02, 5.23e-02, 3.12e-02] + # S0 = [2.97e+03, 7.43e+02, 1.86e+02, 6.69e+01, 2.97e+01, 7.43e+00, 2.68e+00, 6.69e-01, 2.97e-01, + # 2.53e+03, 6.33e+02, 1.58e+02, 5.70e+01, 2.53e+01, 6.33e+00, 2.28e+00, 5.70e-01, 2.53e-01, + # 2.26e+03, 5.65e+02, 1.41e+02, 5.08e+01, 2.26e+01, 5.65e+00, 2.03e+00, 5.08e-01, 2.26e-01, + # 2.00e+03, 5.01e+02, 1.25e+02, 4.51e+01, 2.00e+01, 5.01e+00, 1.80e+00, 4.51e-01, 2.00e-01, + # 1.71e+03, 4.29e+02, 1.07e+02, 3.86e+01, 1.71e+01, 4.29e+00, 1.54e+00, 3.86e-01, 1.71e-01, + # 1.37e+03, 3.42e+02, 8.55e+01, 3.08e+01, 1.37e+01, 3.42e+00, 1.23e+00, 3.08e-01, 1.37e-01, + # 9.86e+02, 2.46e+02, 6.16e+01, 2.22e+01, 9.86e+00, 2.46e+00, 8.87e-01, 2.22e-01, 9.86e-02, + # 5.94e+02, 1.48e+02, 3.71e+01, 1.34e+01, 5.94e+00, 1.48e+00, 5.35e-01, 1.34e-01, 5.94e-02] + + # # 2 reco e + # S1 = [2.42e+01, 2.51e+00, 1.04e-01, 2.67e-03, 1.19e-03, 7.94e-01, 2.82e-01, 7.31e-02, 3.24e-02, + # 9.91e+02, 1.98e+02, 2.00e+01, 2.22e+00, 4.86e-01, 3.85e-02, 3.78e-03, 2.39e-04, 5.07e-05, + # 1.54e+03, 3.85e+02, 9.63e+01, 3.47e+01, 1.51e+01, 2.58e+00, 3.57e-01, 2.50e-02, 5.23e-03, + # 1.54e+03, 3.85e+02, 9.63e+01, 3.47e+01, 1.54e+01, 3.85e+00, 1.38e+00, 2.10e-01, 5.34e-02, + # 1.36e+03, 3.39e+02, 8.49e+01, 3.07e+01, 1.36e+01, 3.39e+00, 1.22e+00, 3.00e-01, 1.24e-01, + # 1.10e+03, 2.74e+02, 6.87e+01, 2.47e+01, 1.10e+01, 2.75e+00, 9.90e-01, 2.47e-01, 9.92e-02, + # 7.88e+02, 1.97e+02, 4.92e+01, 1.78e+01, 7.88e+00, 1.97e+00, 7.11e-01, 1.77e-01, 7.14e-02, + # 4.75e+02, 1.19e+02, 2.97e+01, 1.07e+01, 4.75e+00, 1.19e+00, 4.28e-01, 1.07e-01, 4.75e-02] + + # # vetoes + # S2 = [2.42e+01, 2.51e+00, 1.04e-01, 2.67e-03, 1.19e-03, 7.88e-01, 2.80e-01, 7.25e-02, 3.21e-02, + # 9.81e+02, 1.97e+02, 1.98e+01, 2.20e+00, 4.81e-01, 3.80e-02, 3.78e-03, 2.39e-04, 5.07e-05, + # 1.51e+03, 3.78e+02, 9.46e+01, 3.42e+01, 1.48e+01, 2.53e+00, 3.50e-01, 2.47e-02, 5.12e-03, + # 1.50e+03, 3.77e+02, 9.42e+01, 3.39e+01, 1.50e+01, 3.76e+00, 1.34e+00, 2.03e-01, 5.18e-02, + # 1.32e+03, 3.30e+02, 8.25e+01, 2.98e+01, 1.32e+01, 3.30e+00, 1.19e+00, 2.91e-01, 1.20e-01, + # 1.06e+03, 2.66e+02, 6.64e+01, 2.39e+01, 1.06e+01, 2.67e+00, 9.57e-01, 2.39e-01, 9.57e-02, + # 7.59e+02, 1.90e+02, 4.74e+01, 1.71e+01, 7.59e+00, 1.90e+00, 6.85e-01, 1.71e-01, 6.89e-02, + # 4.56e+02, 1.14e+02, 2.84e+01, 1.02e+01, 4.56e+00, 1.14e+00, 4.11e-01, 1.02e-01, 4.55e-02] + + # # missing energy gt 10 GeV + # S3 = [2.23e+01, 2.39e+00, 1.04e-01, 1.34e-03, 5.94e-04, 7.25e-01, 2.59e-01, 6.74e-02, 2.95e-02, + # 9.36e+02, 1.88e+02, 1.90e+01, 2.12e+00, 4.56e-01, 3.78e-02, 3.47e-03, 2.39e-04, 5.07e-05, + # 1.44e+03, 3.61e+02, 9.02e+01, 3.26e+01, 1.41e+01, 2.41e+00, 3.35e-01, 2.35e-02, 4.89e-03, + # 1.42e+03, 3.56e+02, 8.89e+01, 3.20e+01, 1.42e+01, 3.54e+00, 1.27e+00, 1.92e-01, 4.90e-02, + # 1.25e+03, 3.12e+02, 7.80e+01, 2.81e+01, 1.25e+01, 3.12e+00, 1.12e+00, 2.75e-01, 1.13e-01, + # 1.02e+03, 2.55e+02, 6.39e+01, 2.30e+01, 1.02e+01, 2.56e+00, 9.21e-01, 2.30e-01, 9.06e-02, + # 7.40e+02, 1.85e+02, 4.62e+01, 1.67e+01, 7.40e+00, 1.85e+00, 6.68e-01, 1.67e-01, 6.52e-02, + # 4.49e+02, 1.12e+02, 2.81e+01, 1.01e+01, 4.49e+00, 1.12e+00, 4.05e-01, 1.01e-01, 4.49e-02] + + # # d0 gt 0.5 mm + # S4 = [2.19e+01, 2.36e+00, 1.04e-01, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, + # 8.92e+02, 1.84e+02, 1.87e+01, 2.09e+00, 4.51e-01, 3.71e-02, 3.37e-03, 2.17e-04, 5.07e-05, + # 6.56e+02, 2.71e+02, 8.15e+01, 3.12e+01, 1.38e+01, 2.39e+00, 3.31e-01, 2.33e-02, 4.83e-03, + # 3.38e+01, 8.66e+01, 5.20e+01, 2.50e+01, 1.24e+01, 3.39e+00, 1.24e+00, 1.91e-01, 4.87e-02, + # 3.43e-02, 3.44e+00, 1.37e+01, 1.21e+01, 7.75e+00, 2.63e+00, 1.04e+00, 2.68e-01, 1.12e-01, + # 0.00e+00, 0.00e+00, 5.36e-01, 2.20e+00, 2.67e+00, 1.56e+00, 7.29e-01, 2.12e-01, 8.93e-02, + # 0.00e+00, 0.00e+00, 0.00e+00, 2.00e-02, 2.30e-01, 5.02e-01, 3.52e-01, 1.32e-01, 6.43e-02, + # 0.00e+00, 0.00e+00, 0.00e+00, 0.00e+00, 4.75e-04, 5.80e-01, 7.03e-02, 5.23e-02, 3.12e-02] #Predictions # pred_Ve = [5e-9,5e-10,8e-11,2.5e-11,1.5e-11,2e-11,3e-11,1e-10,6e-10,3e-9,2e-8,4e-7] @@ -747,37 +814,19 @@ def get_pred(self): ## Figure func_text1 = "s = #frac{n_{S}}{#sqrt{n_{S}+n_{B}}}" - out_name = "figureMerlin2.png" - plotting.drawFigure(mN,Ve,plotting.func1(S,B),func_text1,out_name,"histo1",zrange=[1e-10,1e+5],plot_pred=False) - - # out_name = "figure0lim.pdf" - # plotting.drawFigureWithLimit(mN,Ve,plotting.func1(S4,B),func_text1,out_name,histo_name="histo11",zrange=[1e-11,10],plot_pred=False) - ## Figure - # func_text2 = "s = #frac{S}{#sqrt{S+B+#Delta B}}" - # out_name = "figure1.pdf" - # plotting.drawFigure(mN,Ve,plotting.func2(S,B,DeltaB),func_text2,out_name,"histo2",zrange=[1e-11,10],plot_pred=True) - - # out_name = "figure1limzoom.pdf" - # plotting.drawFigureWithLimitZoom(mN,Ve,plotting.func2(S4,B,DeltaB),func_text2,out_name,histo_name="histo21",zrange=[1e-8,10],plot_pred=True) - # # plotting.drawFigureWithLimitZoom(mN,Ve,plotting.func2(S4,B,DeltaB),func_text2,out_name,histo_name="histo21",zrange=[1e-8,10],plot_pred=True) + out_name = "sensitivity_cuts.png" + plotting.drawFigure(mN,Ve,plotting.func1(S,B),func_text1,out_name,"histo1",zrange=[1e-11,1e+5],plot_pred=False) + - # out_name = "figure1lim.pdf" - # plotting.drawFigureWithLimit(mN,Ve,plotting.func2(S4,B,DeltaB),func_text2,out_name,S1,histo_name="histo22",zrange=[1e-8,10],plot_pred=True) + func_text2 = "s = #sqrt{2((n_{S}+n_{B})ln(1+#frac{n_{S}}{n_{B}}) - n_{S})}" + out_name2 = "sensitivity_cuts_new_formula.png" + plotting.drawFigure(mN,Ve,plotting.func4(S,B),func_text2,out_name2,"histo2",zrange=[1e-11,1e+5],plot_pred=False) - # out_name = "figure1num.pdf" - # plotting.drawFigureWithNumbers(mN,Ve,plotting.func2(S4,B,DeltaB),func_text2,out_name,"histo23",zrange=[1e-8,10]) - - - ## Figure - # func_text3 = "s = #frac{S}{#sqrt{B+#Delta B}}" - # out_name = "figureMerlin.pdf" - # plotting.drawFigure(mN,Ve,plotting.func3(S,B,DeltaB),func_text1,out_name,"histo3",zrange=[1e-10,0.1]) - - ## Figure Signal no cuts - # func_text4 = "S" - # out_name = "signal_nocut.pdf" - # plotting.drawFigureWithNumbers(mN,Ve,S0,func_text4,out_name,"histo4",zrange=[1e-5,1e4]) + + # func_text5 = "s = #frac{n_{S}}{#sqrt{n_{S}+n_{B}}}" + # out_name = "sensitivity_nocut.png" + # plotting.drawFigure(mN,Ve,plotting.func1(S0,B0),func_text5,out_name,"histo5",zrange=[1e-12,1e+5]) ## Figure Signal Exactly 2 reco e # out_name = "signal_2RecoE.pdf" @@ -805,4 +854,5 @@ def get_pred(self): ## Table - # plotting.saveTab(mN,Ve,S,plotting.func1(S,B),func_text1,plotting.func2(S,B,DeltaB),func_text2) + plotting.saveTab(mN,Ve,S,plotting.func1(S,B),func_text1,plotting.func4(S,B),func_text2) + diff --git a/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity_part2_other_colliders.py b/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity_part2_other_colliders.py new file mode 100644 index 00000000000..4d493ddbbea --- /dev/null +++ b/examples/FCCee/bsm/LLPs/ALPs/sensitivity_analysis/plot_sensitivity_part2_other_colliders.py @@ -0,0 +1,1395 @@ +import ROOT +import numpy as np +import array +import os +import pandas as pd +import matplotlib.pyplot as plt +from math import log10 + +# use this script to overlay results at certain sensitivity (95% Confidence level limit would be s~2) value over results from other collider searches +# need mass, coupling, and sensitivity arrays as input + +class Plotting: + def __init__(self,ana_text,energy,intLumi,output_dir): + self.ana_tex = ana_tex + self.s_tex = "" + self.lumi_tex = "" + self.col_tex = " Collider Constraints" + + if not os.path.exists(output_dir): + os.mkdir(output_dir) + self.output_dir = output_dir + + ### Figure ### + def drawFigure(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[],plot_pred=False): + + #copy bin settings from plot_sensitivity_.py here! + + logBins = 13 + stopBin = 12 + # startBin = 0.0000107 + startBin = 0.0000005 + logWidth = [] + for i in range(0,logBins): + logWidth.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBin)+((ROOT.TMath.Log10(stopBin)-ROOT.TMath.Log10(startBin))/logBins)*i)) + logArray = array.array('d',logWidth) + print(logArray) + + logBinMass = 9 + stopBinMass = 200 + startBinMass = 0.005 + logWidthMass = [] + for i in range(0,logBinMass): + logWidthMass.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBinMass)+((ROOT.TMath.Log10(stopBinMass)-ROOT.TMath.Log10(startBinMass))/logBinMass)*i)) + logMassArray = array.array('d',logWidthMass) + print(logMassArray) + + c = ROOT.TCanvas("c_"+histo_name,"canvas title") + c.cd() + ROOT.gPad.SetLogx(1) + ROOT.gPad.SetLogy(1) + ROOT.gPad.SetLogz(1) + # ROOT.gPad.SetLogz(0) + ROOT.gPad.SetRightMargin(0.2) + ROOT.gStyle.SetOptStat(0) + + # h = ROOT.TH2F(histo_name,r";m_{a} [GeV];c_{\gamma\gamma}/ \Lambda [TeV^{-1}]", logBinMass-1, logMassArray, logBins-1, logArray) + h = ROOT.TH2F(histo_name,r";m_{a} [GeV];g_{a\gamma\gamma} [TeV^{-1}]", logBinMass-1, logMassArray, logBins-1, logArray) + h.GetZaxis().SetTitle(func_text) + h.GetZaxis().SetTitleOffset(1.5) + h.GetXaxis().SetTitleOffset(1.4) + h.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + for m,v,z in zip(mN,Ve,Z): + h.Fill(m,v,z) + # h.Fill(m,v,log10(z)) + if zrange: + h.SetMinimum(zrange[0]) + h.SetMaximum(zrange[1]) + h.Draw("same COLZ") + # h.GetXaxis().SetRangeUser(0,31.6) + + ## Print text in figure + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.04) + Text.SetTextAlign(12) + Text.DrawLatex(0.090, 0.92, self.col_tex) + Text.SetNDC(ROOT.kTRUE) + Text.SetTextSize(0.04) + # Text.DrawLatex(0.62, 0.83, func_text) + Text.DrawLatex(0.40, 0.83, self.s_tex) + Text.DrawLatex(0.40, 0.78, self.lumi_tex) + Text.DrawLatex(0.40, 0.73, self.ana_tex) + + # c.Modified() + # c.Update() + + if (plot_pred): + x4,y4,x1,y1 = self.get_pred() + # X = np.power(10,x) + # Y = np.power(10,y) + X4 = array.array('d',x4) + Y4 = array.array('d',y4) + X1 = array.array('d',x1) + Y1 = array.array('d',y1) + + c.cd() + gr4 = ROOT.TGraph(len(X4),X4,Y4) + gr4.SetLineColor(2) + gr4.SetLineWidth(2) + gr4.Draw("same L") + gr4.GetXaxis().SetRangeUser(0,90) + + gr1 = ROOT.TGraph(len(X1),X1,Y1) + gr1.SetLineColor(1) + gr1.SetLineWidth(2) + gr1.Draw("same L") + gr1.GetXaxis().SetRangeUser(0,90) + + c.Modified() + c.Update() + + leg = ROOT.TLegend(0.56,0.13,0.73,0.17) + leg.SetFillColor(0) + leg.SetFillStyle(0) + leg.SetLineColor(0) + leg.SetShadowColor(10) + leg.SetTextSize(0.035) + leg.SetTextFont(42) + leg.AddEntry(gr1, "Theoretical prediction") + leg.AddEntry(gr4, "Theoretical prediction") + leg.Draw() + + leg = ROOT.TLegend(0.14,0.23,0.34,0.37) + # leg = ROOT.TLegend(0,0,0,0) + leg.SetFillColor(0) + leg.SetFillStyle(0) + leg.SetLineColor(0) + leg.SetShadowColor(0) + leg.SetTextSize(0.035) + leg.SetTextFont(42) + + c.Modified() + c.Update() + + x = array.array('d') + x.append(0.01) + +### draw 2 sigma projection from my analysis ####### + x[0] = 2.0 + h1 = h.Clone() + h1.SetContour(1,x) + h1.SetLineWidth(2) + h1.SetLineStyle(2) + h1.SetLineColor(1) + h1.DrawCopy("cont3 C same") + Text.SetTextSize(0.03) + Text.DrawLatex(0.5, 0.59, "FCC-ee") + + leg.Draw() + c.Modified() + c.Update() + +##### implement other experimental constraints, UNITS: mass[GeV], coupling[TeV-1] ######## + + ######### + Graph0_fx1= [ + 1e-06, 1.023293e-06, 1.047129e-06, 1.071519e-06, 1.096478e-06, 1.122018e-06, 1.148154e-06, 1.174898e-06, 1.202264e-06, + 1.230269e-06, 1.258925e-06, 1.28825e-06, 1.318257e-06, 1.348963e-06, 1.380384e-06, 1.412538e-06, 1.44544e-06, 1.479108e-06, + 1.513561e-06, 1.548817e-06, 1.584893e-06, 1.62181e-06, 1.659587e-06, 1.698244e-06, 1.737801e-06, 1.778279e-06, 1.819701e-06, + 1.862087e-06, 1.905461e-06, 1.949845e-06, 1.995262e-06, 2.041738e-06, 2.089296e-06, 2.137962e-06, 2.187762e-06, 2.238721e-06, + 2.290868e-06, 2.344229e-06, 2.398833e-06, 2.454709e-06, 2.511886e-06, 2.570396e-06, 2.630268e-06, 2.691535e-06, 2.754229e-06, + 2.818383e-06, 2.884032e-06, 2.951209e-06, 3.019952e-06, 3.090295e-06, 3.162278e-06, 3.235937e-06, 3.311311e-06, 3.388442e-06, + 3.467369e-06, 3.548134e-06, 3.630781e-06, 3.715352e-06, 3.801894e-06, 3.890451e-06, 3.981072e-06, 4.073803e-06, 4.168694e-06, + 4.265795e-06, 4.365158e-06, 4.466836e-06, 4.570882e-06, 4.677351e-06, 4.786301e-06, 4.897788e-06, 5.011872e-06, 5.128614e-06, + 5.248075e-06, 5.370318e-06, 5.495409e-06, 5.623413e-06, 5.754399e-06, 5.888437e-06, 6.025596e-06, 6.16595e-06, 6.309573e-06, + 6.456542e-06, 6.606934e-06, 6.76083e-06, 6.91831e-06, 7.079458e-06, 7.24436e-06, 7.413102e-06, 7.585776e-06, 7.762471e-06, + 7.943282e-06, 8.128305e-06, 8.317638e-06, 8.51138e-06, 8.709636e-06, 8.912509e-06, 9.120108e-06, 9.332543e-06, 9.549926e-06, + 9.772372e-06, 1e-05, 1.023293e-05, 1.047129e-05, 1.071519e-05, 1.096478e-05, 1.122018e-05, 1.148154e-05, 1.174898e-05, + 1.202264e-05, 1.230269e-05, 1.258925e-05, 1.28825e-05, 1.318257e-05, 1.348963e-05, 1.380384e-05, 1.412538e-05, 1.44544e-05, + 1.479108e-05, 1.513561e-05, 1.548817e-05, 1.584893e-05, 1.62181e-05, 1.659587e-05, 1.698244e-05, 1.737801e-05, 1.778279e-05, + 1.819701e-05, 1.862087e-05, 1.905461e-05, 1.949845e-05, 1.995262e-05, 2.041738e-05, 2.089296e-05, 2.137962e-05, 2.187762e-05, + 2.238721e-05, 2.290868e-05, 2.344229e-05, 2.398833e-05, 2.454709e-05, 2.511886e-05, 2.570396e-05, 2.630268e-05, 2.691535e-05, + 2.754229e-05, 2.818383e-05, 2.884032e-05, 2.951209e-05, 3.019952e-05, 3.090295e-05, 3.162278e-05, 3.235937e-05, 3.311311e-05, + 3.388442e-05, 3.467369e-05, 3.548134e-05, 3.630781e-05, 3.715352e-05, 3.801894e-05, 3.890451e-05, 3.981072e-05, 4.073803e-05, + 4.168694e-05, 4.265795e-05, 4.365158e-05, 4.466836e-05, 4.570882e-05, 4.677351e-05, 4.786301e-05, 4.897788e-05, 5.011872e-05, + 5.128614e-05, 5.248075e-05, 5.370318e-05, 5.495409e-05, 5.623413e-05, 5.754399e-05, 5.888437e-05, 6.025596e-05, 6.16595e-05, + 6.309573e-05, 6.456542e-05, 6.606934e-05, 6.76083e-05, 6.91831e-05, 7.079458e-05, 7.24436e-05, 7.413102e-05, 7.585776e-05, + 7.762471e-05, 7.943282e-05, 8.128305e-05, 8.317638e-05, 8.51138e-05, 8.709636e-05, 8.912509e-05, 9.120108e-05, 9.332543e-05, + 9.549926e-05, 9.772372e-05, 0.0001, 0.0001023293, 0.0001047129, 0.0001071519, 0.0001096478, 0.0001122018, 0.0001148154, + 0.0001174898, 0.0001202264, 0.0001230269, 0.0001258925, 0.000128825, 0.0001318257, 0.0001348963, 0.0001380384, 0.0001412538, + 0.000144544, 0.0001479108, 0.0001513561, 0.0001548817, 0.0001584893, 0.000162181, 0.0001659587, 0.0001698244, 0.0001737801, + 0.0001778279, 0.0001819701, 0.0001862087, 0.0001905461, 0.0001949845, 0.0001995262, 0.0002041738, 0.0002089296, 0.0002137962, + 0.0002187762, 0.0002238721, 0.0002290868, 0.0002344229, 0.0002398833, 0.0002454709, 0.0002511886, 0.0002570396, 0.0002630268, + 0.0002691535, 0.0002754229, 0.0002818383, 0.0002884032, 0.0002951209, 0.0003019952, 0.0003090295, 0.0003162278, 0.0003235937, + 0.0003311311, 0.0003388442, 0.0003467369, 0.0003548134, 0.0003630781, 0.0003715352, 0.0003801894, 0.0003890451, 0.0003981072, + 0.0004073803, 0.0004168694, 0.0004265795, 0.0004365158, 0.0004466836, 0.0004570882, 0.0004677351, 0.0004786301, 0.0004897788, + 0.0005011872, 0.0005128614, 0.0005248075, 0.0005370318, 0.0005495409, 0.0005623413, 0.0005754399, 0.0005888437, 0.0006025596, + 0.000616595, 0.0006309573, 0.0006456542, 0.0006606934, 0.000676083, 0.000691831, 0.0007079458, 0.000724436, 0.0007413102, + 0.0007585776, 0.0007762471, 0.0007943282, 0.0008128305, 0.0008317638, 0.000851138, 0.0008709636, 0.0008912509, 0.0009120108, + 0.0009332543, 0.0009549926, 0.0009772372, 0.001, 0.001023293, 0.001047129, 0.001071519, 0.001096478, 0.001122018, + 0.001148154, 0.001174898, 0.001202264, 0.001230269, 0.001258925, 0.00128825, 0.001318257, 0.001348963, 0.001380384, + 0.001412538, 0.00144544, 0.001479108, 0.001513561, 0.001548817, 0.001584893, 0.00162181, 0.001659587, 0.001698244, + 0.001737801, 0.001778279, 0.001819701, 0.001862087, 0.001905461, 0.001949845, 0.001995262, 0.002041738, 0.002089296, + 0.002137962, 0.002187762, 0.002238721, 0.002290868, 0.002344229, 0.002398833, 0.002454709, 0.002511886, 0.002570396, + 0.002630268, 0.002691535, 0.002754229, 0.002818383, 0.002884032, 0.002951209, 0.003019952, 0.003090295, 0.003162278, + 0.003235937, 0.003311311, 0.003388442, 0.003467369, 0.003548134, 0.003630781, 0.003715352, 0.003801894, 0.003890451, + 0.003981072, 0.004073803, 0.004168694, 0.004265795, 0.004365158, 0.004466836, 0.004570882, 0.004677351, 0.004786301, + 0.004897788, 0.005011872, 0.005128614, 0.005248075, 0.005370318, 0.005495409, 0.005623413, 0.005754399, 0.005888437, + 0.006025596, 0.00616595, 0.006309573, 0.006456542, 0.006606934, 0.00676083, 0.00691831, 0.007079458, 0.00724436, + 0.007413102, 0.007585776, 0.007762471, 0.007943282, 0.008128305, 0.008317638, 0.00851138, 0.008709636, 0.008912509, + 0.009120108, 0.009332543, 0.009549926, 0.009772372, 0.01, 0.01023293, 0.01047129, 0.01071519, 0.01096478, + 0.01122018, 0.01148154, 0.01174898, 0.01202264, 0.01230269, 0.01258925, 0.0128825, 0.01318257, 0.01348963, + 0.01380384, 0.01412538, 0.0144544, 0.01479108, 0.01513561, 0.01548817, 0.01584893, 0.0162181, 0.01659587, + 0.01698244, 0.01737801, 0.01778279, 0.01819701, 0.01862087, 0.01905461, 0.01949845, 0.01995262, 0.02041738, + 0.02089296, 0.02137962, 0.02187762, 0.02238721, 0.02290868, 0.02344229, 0.02398833, 0.02454709, 0.02511886, + 0.02570396, 0.02630268, 0.02691535, 0.02754229, 0.02818383, 0.02884032, 0.02951209, 0.03019952, 0.03090295, + 0.03162278, 0.03235937, 0.03311311, 0.03388442, 0.03467369, 0.03548134, 0.03630781, 0.03715352, 0.03801894, + 0.03890451, 0.03981072, 0.04073803, 0.04168694, 0.04265795, 0.04365158, 0.04466836, 0.04570882, 0.04677351, + 0.04786301, 0.04897788, 0.05011872, 0.05128614, 0.05248075, 0.05370318, 0.05495409, 0.05623413, 0.05754399, + 0.05888437, 0.06025596, 0.0616595, 0.06309573, 0.06456542, 0.06606934, 0.0676083, 0.0691831, 0.07079458, + 0.0724436, 0.07413102, 0.07585776, 0.07762471, 0.07943282, 0.08128305, 0.08317638, 0.0851138, 0.08709636, + 0.08912509, 0.09120108, 0.09332543, 0.09549926, 0.09772372, 0.1, 0.1023293, 0.1047129, 0.1071519, + 0.1096478, 0.1122018, 0.1148154, 0.1174898, 0.1202264, 0.1230269, 0.1258925, 0.128825, 0.1318257, + 0.1348963, 0.1380384, 0.1412538, 0.144544, 0.1479108, 0.1513561, 0.1548817, 0.1584893, 0.162181, + 0.1659587, 0.1698244, 0.1737801, 0.1778279, 0.1819701, 0.1862087, 0.1905461, 0.1949845, 0.1995262, + 0.2041738, 0.2089296, 0.2137962, 0.2187762, 0.2238721, 0.2290868, 0.2344229, 0.2398833, 0.2454709, + 0.2511886, 0.2570396, 0.2630268, 0.2691535, 0.2754229, 0.2818383, 0.2884032, 0.2951209, 0.3019952, + 0.3090295, 0.3162278, 0.3235937, 0.3311311, 0.3388442, 0.3467369, 0.3548134, 0.3477013, 0.3362214, + 0.3257165, 0.3151548, 0.3065947, 0.2963714, 0.2857129, 0.2759987, 0.2671579, 0.2586002, 0.2503167, + 0.2422985, 0.2340604, 0.2261024, 0.2188598, 0.2118492, 0.2050632, 0.197725, 0.1918325, 0.1857549, + 0.1792933, 0.1728773, 0.1677253, 0.1624114, 0.1567618, 0.1509704, 0.146118, 0.1410224, 0.1357246, + 0.1280002, 0.1233232, 0.1190113, 0.1162351, 0.1112662, 0.0007560707] + Graph0_fy1 = [ + 7.557203e-06, 7.557203e-06, 7.557203e-06, 7.557203e-06, 7.557202e-06, 7.557202e-06, 7.557202e-06, 7.557202e-06, 7.557202e-06, + 7.557202e-06, 7.557202e-06, 7.557202e-06, 7.557202e-06, 7.557202e-06, 7.557201e-06, 7.557201e-06, 7.557201e-06, 7.557201e-06, + 7.557201e-06, 7.557201e-06, 7.557201e-06, 7.557201e-06, 7.5572e-06, 7.5572e-06, 7.5572e-06, 7.5572e-06, 7.5572e-06, + 7.5572e-06, 7.5572e-06, 7.557199e-06, 7.557199e-06, 7.557199e-06, 7.557199e-06, 7.557199e-06, 7.557198e-06, 7.557198e-06, + 7.557198e-06, 7.557198e-06, 7.557198e-06, 7.557198e-06, 7.557197e-06, 7.557197e-06, 7.557197e-06, 7.557197e-06, 7.557196e-06, + 7.557196e-06, 7.557196e-06, 7.557196e-06, 7.557195e-06, 7.557195e-06, 7.557195e-06, 7.557195e-06, 7.557194e-06, 7.557194e-06, + 7.557194e-06, 7.557194e-06, 7.557193e-06, 7.557193e-06, 7.557193e-06, 7.557192e-06, 7.557192e-06, 7.557192e-06, 7.557191e-06, + 7.557191e-06, 7.557191e-06, 7.55719e-06, 7.55719e-06, 7.557189e-06, 7.557189e-06, 7.557189e-06, 7.557188e-06, 7.557188e-06, + 7.557187e-06, 7.557187e-06, 7.557186e-06, 7.557186e-06, 7.557185e-06, 7.557185e-06, 7.557185e-06, 7.557184e-06, 7.557183e-06, + 7.557183e-06, 7.557182e-06, 7.557182e-06, 7.557181e-06, 7.557181e-06, 7.55718e-06, 7.557179e-06, 7.557179e-06, 7.557178e-06, + 7.557178e-06, 7.557177e-06, 7.557176e-06, 7.557175e-06, 7.557175e-06, 7.557174e-06, 7.557173e-06, 7.557172e-06, 7.557172e-06, + 7.557171e-06, 7.55717e-06, 7.557169e-06, 7.557168e-06, 7.557167e-06, 7.557167e-06, 7.557166e-06, 7.557165e-06, 7.557164e-06, + 7.557163e-06, 7.557162e-06, 7.557161e-06, 7.55716e-06, 7.557158e-06, 7.557157e-06, 7.557156e-06, 7.557155e-06, 7.557154e-06, + 7.557153e-06, 7.557151e-06, 7.55715e-06, 7.557149e-06, 7.557147e-06, 7.557146e-06, 7.557145e-06, 7.557143e-06, 7.557142e-06, + 7.55714e-06, 7.557139e-06, 7.557137e-06, 7.557135e-06, 7.557134e-06, 7.557132e-06, 7.55713e-06, 7.557129e-06, 7.557127e-06, + 7.557125e-06, 7.557123e-06, 7.557121e-06, 7.557119e-06, 7.557117e-06, 7.557115e-06, 7.557113e-06, 7.557111e-06, 7.557108e-06, + 7.557106e-06, 7.557104e-06, 7.557101e-06, 7.557099e-06, 7.557096e-06, 7.557094e-06, 7.557091e-06, 7.557089e-06, 7.557086e-06, + 7.557083e-06, 7.55708e-06, 7.557077e-06, 7.557074e-06, 7.557071e-06, 7.557068e-06, 7.557065e-06, 7.557061e-06, 7.557058e-06, + 7.557055e-06, 7.557051e-06, 7.557047e-06, 7.557044e-06, 7.55704e-06, 7.557036e-06, 7.557032e-06, 7.557028e-06, 7.557024e-06, + 7.55702e-06, 7.557015e-06, 7.557011e-06, 7.557006e-06, 7.557002e-06, 7.556997e-06, 7.556992e-06, 7.556987e-06, 7.556982e-06, + 7.556977e-06, 7.556971e-06, 7.556966e-06, 7.55696e-06, 7.556954e-06, 7.556949e-06, 7.556943e-06, 7.556936e-06, 7.55693e-06, + 7.556924e-06, 7.556917e-06, 7.55691e-06, 7.556903e-06, 7.556896e-06, 7.556889e-06, 7.556882e-06, 7.556874e-06, 7.556867e-06, + 7.556859e-06, 7.55685e-06, 7.556842e-06, 7.556834e-06, 7.556825e-06, 7.556816e-06, 7.556807e-06, 7.556798e-06, 7.556788e-06, + 7.556778e-06, 7.556769e-06, 7.556758e-06, 7.556748e-06, 7.556737e-06, 7.556726e-06, 7.556715e-06, 7.556704e-06, 7.556692e-06, + 7.55668e-06, 7.556668e-06, 7.556655e-06, 7.556642e-06, 7.556629e-06, 7.556616e-06, 7.556602e-06, 7.556588e-06, 7.556573e-06, + 7.556559e-06, 7.556544e-06, 7.556528e-06, 7.556512e-06, 7.556496e-06, 7.55648e-06, 7.556463e-06, 7.556445e-06, 7.556428e-06, + 7.55641e-06, 7.556391e-06, 7.556372e-06, 7.556353e-06, 7.556333e-06, 7.556312e-06, 7.556292e-06, 7.55627e-06, 7.556248e-06, + 7.556226e-06, 7.556203e-06, 7.55618e-06, 7.556156e-06, 7.556132e-06, 7.556107e-06, 7.556081e-06, 7.556055e-06, 7.556028e-06, + 7.556e-06, 7.555972e-06, 7.555944e-06, 7.555914e-06, 7.555884e-06, 7.555853e-06, 7.555822e-06, 7.55579e-06, 7.555757e-06, + 7.555723e-06, 7.555688e-06, 7.555653e-06, 7.555617e-06, 7.55558e-06, 7.555542e-06, 7.555503e-06, 7.555463e-06, 7.555423e-06, + 7.555381e-06, 7.555339e-06, 7.555295e-06, 7.555251e-06, 7.555205e-06, 7.555159e-06, 7.555111e-06, 7.555062e-06, 7.555012e-06, + 7.554961e-06, 7.554909e-06, 7.554856e-06, 7.554801e-06, 7.554745e-06, 7.554687e-06, 7.554629e-06, 7.554569e-06, 7.554507e-06, + 7.554445e-06, 7.55438e-06, 7.554315e-06, 7.554247e-06, 7.554178e-06, 7.554108e-06, 7.554036e-06, 7.553962e-06, 7.553886e-06, + 7.553809e-06, 7.55373e-06, 7.553649e-06, 7.553566e-06, 7.553482e-06, 7.553395e-06, 7.553306e-06, 7.553215e-06, 7.553122e-06, + 7.553027e-06, 7.55293e-06, 7.552831e-06, 7.552729e-06, 7.552625e-06, 7.552518e-06, 7.552409e-06, 7.552297e-06, 7.552183e-06, + 7.552066e-06, 7.551946e-06, 7.551824e-06, 7.551699e-06, 7.551571e-06, 7.55144e-06, 7.551305e-06, 7.551168e-06, 7.551028e-06, + 7.550884e-06, 7.550737e-06, 7.550586e-06, 7.550432e-06, 7.550275e-06, 7.550114e-06, 7.549949e-06, 7.54978e-06, 7.549607e-06, + 7.54943e-06, 7.549249e-06, 7.549064e-06, 7.548875e-06, 7.548681e-06, 7.548483e-06, 7.54828e-06, 7.548073e-06, 7.54786e-06, + 7.547643e-06, 7.547421e-06, 7.547193e-06, 7.54696e-06, 7.546722e-06, 7.546479e-06, 7.546229e-06, 7.545974e-06, 7.545713e-06, + 7.545683e-06, 7.545658e-06, 7.545638e-06, 7.545625e-06, 7.545619e-06, 7.54562e-06, 7.545629e-06, 7.545646e-06, 7.545672e-06, + 7.545707e-06, 7.545752e-06, 7.545808e-06, 7.545876e-06, 7.545956e-06, 7.546048e-06, 7.546155e-06, 7.546276e-06, 7.546413e-06, + 7.546567e-06, 7.546738e-06, 7.54693e-06, 7.547143e-06, 7.547378e-06, 7.547635e-06, 7.547917e-06, 7.548224e-06, 7.548559e-06, + 7.548922e-06, 7.549316e-06, 7.549742e-06, 7.550207e-06, 7.550709e-06, 7.551251e-06, 7.551833e-06, 7.55246e-06, 7.553133e-06, + 7.553855e-06, 7.554628e-06, 7.555457e-06, 7.556342e-06, 7.557307e-06, 7.558339e-06, 7.559444e-06, 7.560625e-06, 7.561887e-06, + 7.563233e-06, 7.564669e-06, 7.566199e-06, 7.567829e-06, 7.569564e-06, 7.571388e-06, 7.573325e-06, 7.57538e-06, 7.577559e-06, + 7.579869e-06, 7.582022e-06, 7.584314e-06, 7.586751e-06, 7.589343e-06, 7.592096e-06, 7.59463e-06, 7.597341e-06, 7.600238e-06, + 7.603333e-06, 7.606635e-06, 7.609548e-06, 7.612677e-06, 7.616036e-06, 7.619638e-06, 7.623497e-06, 7.626757e-06, 7.63028e-06, + 7.634082e-06, 7.638177e-06, 7.642585e-06, 7.646121e-06, 7.649976e-06, 7.654168e-06, 7.65872e-06, 7.663652e-06, 7.66718e-06, + 7.671058e-06, 7.675309e-06, 7.679955e-06, 7.685022e-06, 7.688265e-06, 7.691921e-06, 7.696018e-06, 7.700584e-06, 7.705651e-06, + 7.707929e-06, 7.710618e-06, 7.713746e-06, 7.717342e-06, 7.721438e-06, 7.722058e-06, 7.723143e-06, 7.724725e-06, 7.72684e-06, + 7.729525e-06, 7.726916e-06, 7.724636e-06, 7.722711e-06, 7.721166e-06, 7.72003e-06, 7.713264e-06, 7.706842e-06, 7.700793e-06, + 7.695146e-06, 7.689933e-06, 7.676382e-06, 7.662853e-06, 7.649359e-06, 7.63591e-06, 7.622521e-06, 7.601533e-06, 7.580556e-06, + 7.559605e-06, 7.538692e-06, 7.517832e-06, 7.487377e-06, 7.456497e-06, 7.425188e-06, 7.393452e-06, 7.361287e-06, 7.322462e-06, + 7.283249e-06, 7.24365e-06, 7.203669e-06, 7.16331e-06, 7.116962e-06, 7.069846e-06, 7.021963e-06, 6.973318e-06, 6.923916e-06, + 6.874199e-06, 6.823728e-06, 6.77251e-06, 6.720553e-06, 6.667867e-06, 6.619007e-06, 6.569093e-06, 6.518131e-06, 6.466132e-06, + 6.413107e-06, 6.370277e-06, 6.326187e-06, 6.280838e-06, 6.234233e-06, 6.186378e-06, 6.154783e-06, 6.121789e-06, 6.087376e-06, + 6.051528e-06, 6.01423e-06, 5.997531e-06, 5.979227e-06, 5.959259e-06, 5.937571e-06, 5.914111e-06, 5.917912e-06, 5.920684e-06, + 5.922346e-06, 5.922813e-06, 5.921999e-06, 5.949269e-06, 5.976112e-06, 6.002414e-06, 6.028053e-06, 6.052895e-06, 6.11101e-06, + 6.171187e-06, 6.233501e-06, 6.298028e-06, 6.364844e-06, 6.460056e-06, 6.560446e-06, 6.666419e-06, 6.778421e-06, 6.896947e-06, + 7.043501e-06, 7.202509e-06, 7.375705e-06, 7.56518e-06, 7.773478e-06, 7.989268e-06, 8.227799e-06, 8.49313e-06, 8.790406e-06, + 9.126268e-06, 9.445892e-06, 9.809146e-06, 1.022645e-05, 1.071207e-05, 1.128613e-05, 1.17643e-05, 1.231935e-05, 1.297351e-05, + 1.375914e-05, 1.472561e-05, 1.546451e-05, 1.634708e-05, 1.742497e-05, 1.878011e-05, 2.055207e-05, 2.095895e-05, 2.279629e-05, + 2.477919e-05, 2.687463e-05, 2.910346e-05, 3.182399e-05, 3.479914e-05, 3.782291e-05, 4.093752e-05, 4.432921e-05, 4.800191e-05, + 5.195473e-05, 5.646918e-05, 6.146157e-05, 6.646093e-05, 7.19338e-05, 7.789355e-05, 8.448367e-05, 9.208893e-05, 9.967826e-05, + 0.0001090911, 0.0001198895, 0.000130682, 0.0001414519, 0.0001548096, 0.0001708641, 0.0001871445, 0.000203922, 0.0002241463, + 0.0002635206, 0.000290739, 0.0003173385, 0.0003427407, 0.0003806252, 100] + graph0 = ROOT.TGraph(len(Graph0_fx1), array.array('d', Graph0_fx1), array.array('d', Graph0_fy1)) + graph0.SetLineColor(ROOT.kBlack) + graph0.SetLineWidth(1) + graph0.SetLineStyle(1) + graph0.Draw("same L") + # leg.AddEntry(graph0, "graph0 limits", "l") + + graph0_fill = ROOT.TGraphAsymmErrors(len(Graph0_fx1) * 2) + for i in range(len(Graph0_fx1)): + graph0_fill.SetPoint(i, Graph0_fx1[i], Graph0_fy1[i]) + graph0_fill.SetPoint(len(Graph0_fx1) + i, Graph0_fx1[len(Graph0_fx1) - 1 - i], 10) + graph0_fill.SetFillColorAlpha(ROOT.kBlue, 0.3) + graph0_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.15, 0.3, "SN1897A") + +######### + Graph1_fx2 = [9.926283e-07, 4.139678e-06, 9.622557e-06, 1.477971e-05, 2.517841e-05, 3.286317e-05, 3.754483e-05, 4.103085e-05, + 4.517356e-05, 5.010389e-05, 5.598504e-05, 6.118323e-05, 6.637116e-05, 7.25337e-05, 8.045017e-05, 8.989334e-05, + 0.0001011909, 0.0001940518, 0.0006339523, 0.001252237, 0.002663483, 0.004340424, 0.007178623, 0.01152648, + 0.01482351, 0.0197821, 0.0280092, 0.03710298, 0.04238863, 0.04701501, 0.05214632, 0.05532617, + 0.06320788, 0.06706225, 0.07115167, 0.07438156, 0.0789173, 0.08435145, 0.09015978, 0.09565767, + 0.1030039, 0.1109142, 0.1239332, 0.1324671, 0.1344419, 0.1426401, 0.1513382, 0.1605667, + 0.170358, 0.1780913, 0.1794139, 0.1794139, 0.1780913, 0.1741817, 0.1716231, 0.1666182, + 0.1558842, 0.1436994, 0.1324671, 0.1159491, 0.09708375, 0.08753049, 0.07328896, 0.06320788, + 0.05138033, 0.0463244, 0.04115247, 0.03655796, 0.03083717, 0.02679295, 0.02362617, 0.0197821, + 0.01744397, 0.01460577, 0.0127845, 0.01152648, 0.01008918, 0.009096386] + Graph1_fy2 = [0.2173581, 0.2159205, 0.2144925, 0.2159205, 0.2144925, 0.2088742, 0.203403, 0.1980751, + 0.1928868, 0.1865922, 0.1781232, 0.168914, 0.1580692, 0.1469423, 0.1347979, 0.1236571, + 0.1112012, 0.05881017, 0.01781232, 0.009296077, 0.004333987, 0.002652352, 0.00160181, 0.0009933863, + 0.0007771233, 0.0005803484, 0.0004055731, 0.000308968, 0.0002652352, 0.000243314, 0.0002144925, 0.0002020577, + 0.0001757749, 0.000160181, 0.0001459705, 0.0001384237, 0.0001356953, 0.0001330207, 0.000132141, 0.000131267, + 0.0001330207, 0.0001356953, 0.0001412069, 0.0001479207, 0.0001498969, 0.0001559853, 0.0001612474, 0.0001677969, + 0.0001734575, 0.0001805029, 0.000189085, 0.000203403, 0.0002385182, 0.0002760083, 0.0003069246, 0.0003551667, + 0.0004510022, 0.0005881017, 0.0007771233, 0.001172639, 0.001865922, 0.002369408, 0.003770239, 0.005394963, + 0.008757157, 0.01104658, 0.01440461, 0.01853581, 0.02687787, 0.03647201, 0.0494908, 0.07369451, + 0.09738064, 0.1412069, 0.1916111, 0.233817, 0.3151803, 0.3923376] + graph1 = ROOT.TGraph(len(Graph1_fx2), array.array('d', Graph1_fx2), array.array('d', Graph1_fy2)) + graph1.SetLineColor(ROOT.kBlack) + graph1.SetLineWidth(1) + graph1.SetLineStyle(1) + graph1.Draw("same L") + + graph1_fill = ROOT.TGraphAsymmErrors(len(Graph1_fx2) * 2) + for i in range(len(Graph1_fx2)): + graph1_fill.SetPoint(i, Graph1_fx2[i], Graph1_fy2[i]) + graph1_fill.SetPoint(len(Graph1_fx2) + i, Graph1_fx2[len(Graph1_fx2) - 1 - i], 10) + graph1_fill.SetFillColorAlpha(ROOT.kPink, 0.3) + graph1_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.025) + Text.SetTextAlign(12) + Text.DrawLatex(0.24, 0.41, "MiniBooNE") +######## + graph_beam_dump_fx3 = [9.1e-09, 1.895116e-05, 0.001631669, 0.01042563, 0.04920926, 0.07981204, 0.1058209, 0.1402963, + 0.1822861, 0.2465613, 0.3203136, 0.3996865, 0.460068, 0.4885369, 0.4982229, 0.4881062, + 0.3676458, 0.3063647, 0.2086284, 0.16705, 0.1540606, 0.1392689, 0.1337404, 0.1364232, + 0.1336618, 0.1183597, 0.0891612, 0.06196334, 0.05062949, 0.04764798, 0.04484937, 0.04394873, + 0.05059147, 0.05372732, 0.04755779, 0.03882337, 0.03108609, 0.02590789, 0.01531674, 0.001763355] + graph_beam_dump_fy3 = [1038, 0.5539958, 0.007223809, 0.001256105, 0.0003679144, 0.0002628106, 0.0002184166, + 0.0001877323, 0.0001668793, 0.0001508591, 0.0001434352, 0.0001410427, 0.0001534181, 0.0001815217, + 0.0002336181, 0.0002858702, 0.0006855497, 0.001299081, 0.003446178, 0.005519289, 0.00698483, + 0.008264333, 0.009454735, 0.0108166, 0.01279802, 0.01981883, 0.04443521, 0.1065608, + 0.1595593, 0.1887878, 0.2053525, 0.2233706, 0.2349317, 0.2642883, 0.5008127, + 1.201007, 1.923494, 3.407748, 11.83183, 1003.74] + graph_beam_dump = ROOT.TGraph(len(graph_beam_dump_fx3), array.array('d', graph_beam_dump_fx3), array.array('d', graph_beam_dump_fy3)) + graph_beam_dump.SetLineColor(ROOT.kBlack) + graph_beam_dump.SetLineWidth(1) + graph_beam_dump.SetLineStyle(1) + graph_beam_dump.Draw("same L") + + graph_beam_dump_fill = ROOT.TGraphAsymmErrors(len(graph_beam_dump_fx3) * 2) + for i in range(len(graph_beam_dump_fx3)): + graph_beam_dump_fill.SetPoint(i, graph_beam_dump_fx3[i], graph_beam_dump_fy3[i]) + graph_beam_dump_fill.SetPoint(len(graph_beam_dump_fx3) + i, graph_beam_dump_fx3[len(graph_beam_dump_fx3) - 1 - i], 10) + graph_beam_dump_fill.SetFillColorAlpha(ROOT.kPink+5, 0.9) + graph_beam_dump_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.2, 0.65, "Beam Dump") +######## + + BES_x = [ + 0.18119112637913522, 0.18119112637913522, 0.19278487213724557, 0.20725180256459332, + 0.21824535318714502, 0.23706077954609793, 0.24452750783793738, 0.25485025527998692, + 0.2656087782946684, 0.2656087782946684, 0.2739746859038931, 0.28260409538446313, + 0.29453424888145304, 0.31015764580773103, 0.3334324444662899, 0.3475083206065409, + 0.3584538267087762, 0.3697440845672412, 0.3813899528642432, 0.39749035888875496, + 0.4057936763609068, 0.4185750024399612, 0.42731876452989686, 0.4407780685736044, + 0.4593855484441116, 0.46898181654357904, 0.4887799197913393, 0.5948545316308272, + 0.6010354833740515, 0.6072806594989053, 0.6199663611713033, 0.6329170589775406, + 0.652852114112782, 0.6734150657750801, 0.6946256908873456, 0.716504389288312, + 0.7467516768721905, 0.7782758560143895, 0.7945335371603284, 0.8111308307896856, + 0.8366791038285112, 0.8630320735087295, 0.9871617693433563, 1.0182545073571744, + 1.0503265766085049, 1.072267222010321, 1.1060405354125898, 1.1291450095142412, + 1.1527321211923802, 1.1647098085681846, 1.2138781222005944, 1.2521117690114858, + 1.3049697630875132, 1.3185293053001235, 1.360059161425436, 1.4028970877945087, + 1.4621204956333003, 1.492663250661941, 1.5396778219682746, 1.60467543895964, + 1.6552180699348745, 1.6724169353225784, 1.7430181441345603, 1.7979181698364847, + 1.8545473874187198, 1.973212971853082, 1.973212971853082, 2.0565123083486514, + 2.16559880066363, 2.2108367641943655, 2.280471722146727, 2.328109306988256, + 2.4014380105480266, 2.555097090352502, 2.6084714221795287, 2.690630720751544, + 2.7753777993867984, 2.804215902376766, 2.8333536532864904, 2.8333536532864904 + ] + + BES_y = [ + 1000.0, 0.35743040182210554, 0.226933922423698, 0.3044801565216784, + 0.2570739242174629, 0.3298946266497849, 0.3044801565216784, 0.3418606622417573, + 0.35743040182210554, 0.387264543967058, 0.387264543967058, 0.3298946266497849, + 0.31834743424044, 0.226933922423698, 0.43480834671045176, 0.3044801565216784, + 0.31552435092698915, 0.28102357003190713, 0.4233430715452093, 0.43869869680400594, + 0.45461130584956437, 0.46278276443654284, 0.36385507205937133, 0.6377378104085134, + 0.31834743424044, 0.5289373746757314, 22.693392242369787, 22.693392242369787, + 0.6434438263329, 0.45461130584956437, 0.5195978093668763, 0.4233430715452093, + 0.41958889408813055, 0.4085249341540685, 0.37039522320550034, 0.43869869680400594, + 0.5782144953330174, 0.47956895791546184, 0.543262429113739, 0.39422547112067985, + 0.5530273566116772, 0.5991876627386628, 0.8330984471157825, 0.3211957764582235, + 0.8330984471157825, 0.4925569821274561, 0.6099578242126444, 0.543262429113739, + 0.6787681725049676, 0.427130838662495, 0.6209215750833859, 0.5384448149805664, + 0.45461130584956437, 0.6154152849454997, 0.6787681725049676, 0.5481231477680994, + 0.5481231477680994, 0.47956895791546184, 0.5104231548477183, 0.6099578242126444, + 0.4925569821274561, 0.8257105869619041, 0.5680048329036978, 0.6492008955541087, + 0.6848412983853341, 0.6848412983853341, 0.8788346197806902, 0.8257105869619041, + 0.8183882418475046, 1.2003383315165677, 1.447243427939046, 1.3965860453217986, + 1.6989245075674565, 1.9417850833297625, 2.925168381300394, 2.6758770258749373, + 3.855436024040321, 7.932676233086428, 11.128116495286323, 1000.0] + + graph_BES = ROOT.TGraph(len(BES_x), array.array('d', BES_x), array.array('d', BES_y)) + graph_BES.SetLineColor(ROOT.kBlack) + graph_BES.SetLineWidth(1) + graph_BES.SetLineStyle(1) + graph_BES.Draw("same L") + + graph_BES_fill = ROOT.TGraphAsymmErrors(len(BES_x) * 2) + for i in range(len(BES_x)): + graph_BES_fill.SetPoint(i, BES_x[i], BES_y[i]) + graph_BES_fill.SetPoint(len(BES_x) + i, BES_x[len(BES_x) - 1 - i], 100) + graph_BES_fill.SetFillColorAlpha(ROOT.kRed-3, 0.8) + graph_BES_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.38, 0.80, "BESIII") + +######## + + belle2_x = [ + 0.1959624406366636, 0.1959624406366636, 0.19958101823535353, 0.2088133109993106, + 0.22017615776253527, 0.22780345796968776, 0.23155993320607147, 0.23515433117639738, + 0.24081936296776393, 0.24462599113855997, 0.24988855342816764, 0.2568419475131062, + 0.25932569546521208, 0.2702727983167405, 0.2825535213902853, 0.28552327792903113, + 0.28777106123931074, 0.29117595910438085, 0.2951992911728107, 0.3034135009753782, + 0.31124550896279496, 0.3141881569328557, 0.3222441377946832, 0.3302846056585354, + 0.3406178984621618, 0.3563912647477405, 0.36552563715996, 0.3744362545184658, + 0.38615087696209586, 0.3982320033896222, 0.40064832722605026, 0.4079399216349404, + 0.4160161609259208, 0.4192912500539193, 0.4275922186241886, 0.4305362176167574, + 0.43508164231414956, 0.4406406749094878, 0.4454382955344024, 0.4464374097128646, + 0.4524793321987158, 0.4590599138316871, 0.46794430349179506, 0.48475171430910623, + 0.48665607867058164, 0.4885679243952234, 0.4904872808738351, 0.49434864423394144, + 0.4982404061947459, 0.5016005783184107, 0.50479487941406673, 0.5121044341615505, + 0.51642515765345824, 0.5400372530240875, 0.5452595947569971, 0.5474016664802227, + 0.5548100027117796, 0.5573016618772821, 0.5670629907488601, 0.5769952926281613, + 0.5867728069987199, 0.6085295632999017, 0.6122904819658073, 0.6224045726527799, + 0.6378451636382504, 0.6479275728705859, 0.6530283856489068, 0.6685730280226339, + 0.6738363722409849, 0.6745573041595106, 0.6791411521607499, 0.6848711965320052, + 0.7062980946837515, 0.7121686174816599, 0.7248138885840328, 0.7403236439951193, + 0.7490831293444946, 0.7520259290772151, 0.7579462566404841, 0.7639131920095465, + 0.7669142521712332, 0.7756503719780049, 0.7944599297266827, 0.7982066764628992, + 0.8070179462906176, 0.8101883450135509, 0.812733629263458, 0.8165665564620693, + 0.8211531411372905, 0.8262281454794348, 0.8327326303304163, 0.8392883217681147, + 0.8458956229166111, 0.8660312636218365, 0.8679197469925214, 0.8870325622142833, + 0.896258029370163, 0.9233066213423827, 0.9293599392898054, 0.9348418498589886, + 0.951482358789799, 0.9672806396257281, 0.9722235433463398, 0.9818002325597515, + 0.9856572697146091, 0.9918600711320552, 1.0068614056853479, 1.0376514879122454, + 1.059116921192294, 1.0660606290779316, 1.0805983506848652, 1.117417554399726, + 1.1206084394003878, 1.1395397618098364, 1.1586876507517333, 1.1874323336818676, + 1.2062020593243716, 1.2228687904693906, 1.2338144676274729, 1.2416576151967046, + 1.2648060392241123, 1.2868153865618262, 1.327818255500595, 1.3336154982063503, + 1.3551681585994513, 1.3809139690071309, 1.3863389386796637, 1.3893620143373313, + 1.4082527781368167, 1.4233198265069168, 1.463416827310678, 1.4645648417366185, + 1.4671773158446858, 1.5041378358211646, 1.5331144952714624, 1.539942228482286, + 1.5655112152027621, 1.581551942823102, 1.5977570288588147, 1.6153944011278603, + 1.6409289169512453, 1.6409289169512453, 1.643790884592812, 1.6538471373486555, + 1.6538471373486555, 1.6603443346864386, 1.6625157342933178, 1.6932151998339496, 1.7499098189510326, 1.7817572816379945, 1.8213114396299267, + 1.8602843337769449, 1.8602843337769449, 1.8690576072866755, 1.9422722938527858, + 1.9477194443951974, 1.9575628413619313, 1.972973763776217, 2.004160531388568, + 2.0215228861284034, 2.0278736938073223, 2.0367273723366818, 2.055087971152087, + 2.072078930144136, 2.1007099394953427, 2.1200167263909826, 2.1255654713800223, + 2.1292727005818963, 2.133915830981006, 2.1447002284353755, 2.1535277999765267, + 2.1591642538969727, 2.1715132308764653, 2.2525576163188305, 2.2543246922404337, + 2.2583459309878225, 2.2869678715366616, 2.3352945019707117, 2.3610734268918033, + 2.362925630791749, 2.3753108442984624, 2.3801942061206727, 2.3815277736182466, + 2.4097059330102177, 2.4382174954703946, 2.4382174954703946, 2.4477961196749887, + 2.4477961196749887, 2.4516380974817905, 2.4593401532746077, 2.461545181624342, + 2.4864883973668156, 2.575796957541979, 2.575796957541979, 2.576919344816471, + 2.596074930861096, 2.606273703618605, 2.616512542617845, 2.6474710341768, + 2.6893195703404512, 2.698708712686232, 2.719615774776228, 2.807845443810871, + 2.829950219898555, 2.829950219898555, 2.8602281625450325, 2.86343409913398, + 2.9239422169800444, 2.961633144725826, 3.02500693821342, 3.0607987222148685, + 3.149494662200926, 3.162457960791766, 3.162457960791766, 3.168249685843062, + 3.2335081062193794, 3.2462110578918576, 3.258963913562066, 3.310478308783822, + 3.3911796399199944, 3.448645113358148, 3.471470920100509, 3.5049023981654687, + 3.6039994809689813, 3.6473228017102127, 3.6609678483906126, 3.6657556649782605, + 3.6673529948833694, 3.7530150584346685, 3.793700165864412, 3.84611972544027, + 3.941534129785918, 3.999131150009749, 4.019567122188667, 4.1233241458732815, + 4.155785034054422, 4.1612199729407306, 4.2139586561698565, 4.266641489060231, + 4.284842915425195, 4.390280385897528, 4.459677484156972, 4.494786315530835, + 4.530171541340111, 4.540050114991589, 4.559871933454971, 4.674520165019539, + 4.692884183849135, 4.712999948315826, 4.753066957308992, 4.952828833545711, + 4.957686024857026, 5.065757687841646, 5.095638500900043, 5.095638500900043, + 5.188376512462798, 5.253883526513368, 5.404314216607954, 5.410371736393267, + 5.456359651049724, 5.475409279074056, 5.526763368125402, 5.700312367156487, + 5.719216985318024, 5.782476418904235, 5.838617881759344, 5.922056722818963, + 5.925927892737215, 5.965558660062328, 6.109304235955679, 6.156851100158552, + 6.215466750766924, 6.216627327903115, 6.297232721284292, 6.321971624141855, + 6.321971624141855, 6.366746818712132, 6.39677298739698, 6.530725746275692, + 6.664428693074482, 6.704934252951204, 6.773635149514214, 6.891505624607789, + 7.083268527666294, 7.139031591519444, 7.175110874968431, 7.204643582488439, + 7.223500381813887, 7.2424065352644825, 7.257567079789366, 7.337682147375858, + 7.366508492832312, 7.494695771400671, 7.535948583888171, 7.555313434499263, + 7.556660062125559, 7.586346670113334, 7.601233679850007, 7.631095396881279, 7.661074426730718, 7.782172918861744, + 7.812745462132977, 7.874251336486276, 7.874251336486276, 7.905185613098089, + 7.936241416116491, 7.998719512931877, 7.998719512931877, 8.049055943511748, + 8.101297182773472, 8.173082091597801, 8.286013885067869, 8.31204519095616, + 8.318565785506021, 8.327889794956927, 8.412277582508389, 8.50990453785006, + 8.516580348180077, 8.516580348180077, 8.516580348180077, 8.550038037174151, + 8.574016829683952, 8.617348250693739, 8.74212958542058, 8.787951231268398, + 8.822475010434494, 8.822475010434494, 8.829396024594995, 8.843254345270191, + 8.857134417495708, 9.048596636619236, 9.06796903051056, 9.119831754991266, + 9.125034313630821, 9.139356658142065, 9.200993191608759, 9.273428052556404, + 9.369146242978043, 9.393668220856909, 9.430571580773403, 9.430571580773403, + 9.467619916852758, 9.542153797913279, 9.542153797913279, 9.542153797913279, + 9.542153797913279, 9.579640488703764, 9.617274447293053, 9.617274447293053, + 9.617274447293053 + ] + belle2_y = [ + 1000.0, 1.0491985625291193, 1.0954740035779536, 1.1938363375869647, + 1.233009919128386, 1.2010853693953292, 1.1259790845371744, 1.045236362636679, + 0.9650533015489358, 0.8960118098305127, 0.8531603819401711, 0.842468018810943, + 0.9189601949935082, 0.967839282455371, 0.9621597655562784, 0.9045761859496802, + 0.8523000216352727, 0.8010219138342718, 0.7440505580545104, 0.7110241032601151, + 0.7114726110969073, 0.763153204819901, 0.8343112722274636, 0.8736937336488372, + 0.8313852287692002, 0.8231807174552581, 0.896173258171774, 0.96644528810601, + 0.9982113960201227, 0.9383067562232839, 0.8847186426755627, 0.8368203250705466, + 0.8025387032347802, 0.7810698686714671, 0.8277234597089318, 0.8899784471168265, + 0.9636633198922929, 1.0421649992107265, 1.1203131168474288, 1.1974553680735695, + 1.2773293419462083, 1.397179704095597, 1.4935537941659122, 1.4785603790393974, + 1.384705223005894, 1.2989902678186382, 1.2144897743732994, 1.132489573053918, + 1.0619788147659898, 0.9875676509402377, 0.9225494842733351, 0.8536985481086396, + 0.7926949640148198, 0.7975395964539911, 0.8720162765333921, 0.9286195954953535, + 0.998301323582095, 1.0783286850568475, 1.152801507125186, 1.219752674523522, + 1.2921432582600656, 1.2870316960699691, 1.2057686878962758, 1.133101857985536, + 1.196247807235789, 1.0738307567460296, 1.0060050600868191, 1.1203131168474288, + 1.0678883435586393, 1.2206320391719933, 1.341163155056943, 1.4334437734507838, + 1.4960674370515484, 1.3654364427646134, 1.4359252390712253, 1.4785603790393974, + 1.376347971754192, 1.2902821637237809, 1.2114302422504269, 1.1354861145605156, + 1.0630508368165274, 0.9886753876779788, 0.8815999298269112, 0.942780414049678, + 1.0179167744795029, 1.2645065503253876, 1.090756066220318, 0.967839282455371, + 1.2031645943405775, 1.3380094865190813, 1.4588030319770704, 1.5472382301772575, + 1.64379637733832, 1.586761668840463, 1.4425403996852718, 1.3351625577640177, + 1.2502347116327018, 1.4129309577715619, 1.336660185409763, 1.2408097534540334, + 1.1345318104907518, 1.0323971537722118, 0.9569157754825564, 1.1842389729787774, + 1.1184308039074455, 1.2837894169661264, 1.3747618424605505, 1.2483090240957035, + 1.3176906208317409, 1.4072401538457748, 1.5345183082676461, 1.584095644514752, + 1.4285685731162169, 1.322129685400841, 1.233787691090033, 1.1598501319559746, + 1.0979329285468564, 1.2144897743732994, 1.3262795451941943, 1.4802188534226688, + 1.624014313858017, 1.7332152291812059, 1.589432180070566, 1.4612581895195684, + 1.6840863334215495, 1.694312186844375, 1.7552127011299572, 1.5533210335144313, + 1.3981589926705413, 1.2977426639458928, 1.3708045116170718, 1.2805553057837248, + 1.509391318082992, 1.6487794298858595, 1.7346731119233997, 1.496570673054685, + 1.604470315165381, 1.346813205493228, 1.2430025355085249, 1.4777318388015746, + 1.3570433460130915, 1.2773293419462083, 1.6697988608705436, 1.8164685820456434, + 1.4417320439476422, 1.9599985381589064, 1.5112383833713384,2.0836292314348774, 2.071053693541916, 1.9827892969108145, 1.86005220246876, + 1.7419809406061977, 1.5086992507648896, 1.598008056044983, 1.7581667145282107, + 1.8850174525128368, 1.657327114870784, 1.566875335248414, 1.813721577915448, + 1.910455458357076, 2.0378887418298014, 2.2037575027201387, 2.4216386489625628, + 2.6444818446919698, 2.8059743415159285, 2.0215059591396772, 2.4037871844563336, + 2.204993113754203, 2.562403084744311, 1.7238723375475938, 1.8616167733079164, + 1.5011074212844238, 1.5896751765707648, 1.7184146318780656, 1.8091524662220662, + 1.96754113583079, 1.5921071857564954, 2.087135968061549, 1.7855779810498449, + 1.6857863463213688, 1.9252906455058361, 1.4892545138735027, 1.586761668840463, + 1.4200768360391523, 2.0836292314348774, 1.668863156407662, 1.7700325677475074, + 1.5708325630387865, 1.9085288803355942, 2.392495739207705, 2.208880974709955, + 2.63523366305802, 2.2099424896462458, 2.0836292314348774, 2.387672799658608, + 2.5753624019815525, 1.954650021107645, 1.822894449056671, 2.136854514083202, + 2.239872918771111, 2.4200103251093195, 2.618406262937238, 2.367681646353266, + 2.1694400950872123, 2.0420051409490757, 1.9289942374908877, 1.8183022291457436, + 2.0766334239898654, 2.251958286483361, 2.440443307509758, 2.64559380528256, + 2.2866286823259923, 2.1548967142447184, 2.0215059591396772, 2.49102676505848, + 2.7876325184252337, 2.375657943323942, 2.555947901082043, 3.0062564884251464, + 2.8181338204140574, 2.6392460366022807, 2.440443307509758, 2.2537261756870332, + 2.6709240372415743, 2.4681535341965696, 2.1118489327737753, 2.8487635457401907, + 2.2663943822734973, 2.4302053415334183, 2.631174715906087, 2.9160121406140212, + 3.1274336268782696, 3.4962867884826307, 3.2685753361467807, 3.4857200744198022, + 3.2892518495367656, 3.0882385860524215, 2.820165516927698, 2.618406262937238, + 2.488514716219293, 2.6080481649737347, 2.7722061915715634, 3.0789051028255574, + 3.3226066716562364, 3.538874939710684, 3.8883205807983584, 3.347844568793447, + 3.565755570051846, 3.0854072738627724, 2.8595624147979446, 2.8344284640077206, + 3.08997011126245, 3.3860613109854888, 3.6915947927891805, 3.1195550231670715, + 4.018610929725608, 4.269399475385473, 3.643031323204402, 3.8864528804428283, + 3.383689670010964, 2.9886150423312236, 3.146650318375532, 3.1353321284261714, + 3.4779134735767616, 3.8436270894399373, 4.126019269210447, 4.590060570055965, + 4.297490900407763, 4.917134245828666, 4.0963908840136905, 3.752618870958143, + 4.516051037730497, 3.5084022619436845, 5.488753692162859, 5.245122296783269, + 3.7597247096740546, 4.857959604046295, 4.131672841432947, 4.370892635463194, + 4.77446991493334, 4.418398981643229, 5.314372175043587, 5.639620022695176, + 6.0408895016186995, 6.38558691467099, 5.275449954686576, 6.818401239542937, + 5.686041963613112, 4.9287238584014795, 7.185681135875055, 7.721911478616272, + 4.729792794426762, 6.2265331905316905, 5.330482318714972, 8.35058699179407, + 5.743701555196795, 7.280551668099255, 6.772692392274857, 5.1080293041316695, 8.983630831258792, 5.3655553647609395, + 7.69598507818147, 6.446725702273264, 5.6006360649127574, 6.010491526022586, + 8.259178521989279, 7.179239599799722, 6.615111042596347, 9.062530088126842, + 9.954059902814956, 10.763641894487077, 7.67014572591361, 8.334517794803096, + 7.200195731736927, 6.715986996157237, 9.188799902552417, 11.733394560045369, + 9.891487846225781, 8.259178521989279, 7.813343627169218, 10.311849554579186, + 10.89239822751409, 12.617481380840352, 9.59254026512723, 10.41641737831217, + 11.697933102561169, 11.038593826201388, 14.356870376341277, 13.323993762163335, + 12.553989755807902, 15.638158833190956, 13.270329260305106, 18.42848107948798, + 16.97452952051438, 14.26542241052364, 20.09840922242564, 21.44521637269911, + 22.805446444779293, 16.176129906251564, 18.143357592796408, 17.077599682271186, + 19.27562601680008, 29.44722065560075, 27.717463183965584, 26.08931329511967, + 24.577458258995898, 20.72103426849034, 23.114312762194448, 21.756556263890982, + 1000.0 + ] + + belle2 = ROOT.TGraph(len(belle2_x), array.array('d', belle2_x), array.array('d', belle2_y)) + belle2.SetLineColor(ROOT.kBlack) + belle2.SetLineWidth(1) + belle2.SetLineStyle(1) + belle2.Draw("same L") + + belle2_fill = ROOT.TGraphAsymmErrors(len(belle2_x) * 2) + for i in range(len(belle2_x)): + belle2_fill.SetPoint(i, belle2_x[i], belle2_y[i]) + belle2_fill.SetPoint(len(belle2_x) + i, belle2_x[len(belle2_x) - 1 - i], 100) + belle2_fill.SetFillColorAlpha(ROOT.kCyan-8, 0.9) + belle2_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.4, 0.88, "BelleII") + + +######## + graph_BaBar_fx4 = [ + 1e-29, 0.001019479, 0.0122436, 0.0152962, 0.01693919, 0.01858548, 0.02039176, 0.02311182, 0.0255943, 0.02795182, 0.02955145, + 0.0306684, 0.03124261, 0.03153374, 0.03124261, 0.03081096, 0.02982681, 0.0278225, 0.0255943, 0.02247759, 0.02186077, 0.02155874, + 0.02058178, 0.02011002, 0.02135971, 0.02237359, 0.02300488, 0.02343561, 0.02343561, 0.02311182, 0.0227925, 0.02206448, 0.02126088, + 0.02039176, 0.01849949, 0.01662787, 0.01565503, 0.01407119, 0.01318664, 0.01190762, 0.001663355] + graph_BaBar_fy4 = [0.1657787, 0.1657787, 0.1665839, 0.167393, 0.1682061, 0.1706691, 0.1723311, 0.1774148, 0.1844272, + 0.1973723, 0.2091889, 0.2282535, 0.2466536, 0.2852455, 0.3298756, 0.3778094, 0.4327084, 0.5675974, + 0.730244, 1.05536, 1.162755, 1.24437, 1.357776, 1.397831, 1.503212, 1.63228, 1.763862, + 1.981389, 2.161964, 2.452236, 2.701779, 3.185654, 3.684088, 4.648791, 5.86611, 8.315059, + 9.996124, 12.49203, 15.76315, 19.50903, 1003.745] + + graph_BaBar = ROOT.TGraph(len(graph_BaBar_fx4), array.array('d', graph_BaBar_fx4), array.array('d', graph_BaBar_fy4)) + graph_BaBar.SetLineColor(ROOT.kBlack) + graph_BaBar.SetLineWidth(1) + graph_BaBar.SetLineStyle(1) + graph_BaBar.Draw("same L") + + graph_BaBar_fill = ROOT.TGraphAsymmErrors(len(graph_BaBar_fx4) * 2) + for i in range(len(graph_BaBar_fx4)): + graph_BaBar_fill.SetPoint(i, graph_BaBar_fx4[i], graph_BaBar_fy4[i]) + graph_BaBar_fill.SetPoint(len(graph_BaBar_fx4) + i, graph_BaBar_fx4[len(graph_BaBar_fx4) - 1 - i], 10) + graph_BaBar_fill.SetFillColorAlpha(ROOT.kSpring-6, 0.9) + graph_BaBar_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.15, 0.8, "BaBar") +######### + Graph2_fx5 = [0.1126882, 0.1145603, 0.1223648, 0.1442822, 0.1466792, 0.1566719, 0.1619207, 0.1701254, 0.1973195] + Graph2_fy5 = [1.389495, 0.9236709, 1.389495, 1.373824, 1.070426, 1.389495, 0.7616815, 1.389495, 1.389495] + + graph2 = ROOT.TGraph(len(Graph2_fx5), array.array('d', Graph2_fx5), array.array('d', Graph2_fy5)) + graph2.SetLineColor(ROOT.kBlack) + graph2.SetLineWidth(1) + graph2.SetLineStyle(1) + graph2.Draw("same L") + + + graph2_fill = ROOT.TGraphAsymmErrors(len(Graph2_fx5) * 2) + for i in range(len(Graph2_fx5)): + graph2_fill.SetPoint(i, Graph2_fx5[i], Graph2_fy5[i]) + graph2_fill.SetPoint(len(Graph2_fx5) + i, Graph2_fx5[len(Graph2_fx5) - 1 - i], 10) + graph2_fill.SetFillColorAlpha(ROOT.kRed, 0.4) + graph2_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.025) + Text.SetTextAlign(12) + Text.DrawLatex(0.32, 0.88, "PrimEx") + + ######## + Graph4_fx7 = [0.008, 0.0141, 0.0249, 0.035, 0.464, 9.7, 9.9] + Graph4_fy7 = [40, 12.4, 3.95, 1.39, 1.43, 1.39, 40] + + graph4 = ROOT.TGraph(len(Graph4_fx7), array.array('d', Graph4_fx7), array.array('d', Graph4_fy7)) + graph4.SetLineColor(ROOT.kBlack) + graph4.SetLineWidth(1) + graph4.SetLineStyle(1) + graph4.Draw("same L") + + graph4_fill = ROOT.TGraphAsymmErrors(len(Graph4_fx7) * 2) + for i in range(len(Graph4_fx7)): + graph4_fill.SetPoint(i, Graph4_fx7[i], Graph4_fy7[i]) + graph4_fill.SetPoint(len(Graph4_fx7) + i, Graph4_fx7[len(Graph4_fx7) - 1 - i], 10) + graph4_fill.SetFillColorAlpha(ROOT.kBlue, 0.3) + graph4_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.25, 0.88, "Opal") + ###### + Graph5_fx8=[6.074941, 6.074941, 7.163057, 8.038737, 8.874045, 10.12434, 12.13609, 14.07601, 16.05922, + 17.15327, 18.32186, 20.22569, 23.07536, 24.24462, 25.89631, 27.20851, 28.58721, 30.53474, + 32.08198, 67.3387, 96.75841, 98.36585, 89.10674, 80.71918, 70.75085, 66.23829, 59.02278, + 60.00332] + Graph5_fy8=[0.244998, 0.1212673, 0.1132889, 0.08629002, 0.1022945, 0.1082637, 0.05934703, 0.05358757, 0.07278954, + 0.06140127, 0.05736153, 0.05801587, 0.06647527, 0.07616815, 0.07196857, 0.07703703, 0.07115686, 0.07616815, + 0.06800053, 0.1704226, 0.3327879, 0.5419886, 0.4676821, 0.5481713, 0.4222948, 0.4676821, 0.4175319, + 0.352207] + + graph5 = ROOT.TGraph(len(Graph5_fx8), array.array('d', Graph5_fx8), array.array('d', Graph5_fy8)) + graph5.SetLineColor(ROOT.kBlack) + graph5.SetLineWidth(1) + graph5.SetLineStyle(1) + graph5.Draw("same L") + + graph5_fill = ROOT.TGraphAsymmErrors(len(Graph5_fx8) * 2) + for i in range(len(Graph5_fx8)): + graph5_fill.SetPoint(i, Graph5_fx8[i], Graph5_fy8[i]) + graph5_fill.SetPoint(len(Graph5_fx8) + i, Graph5_fx8[len(Graph5_fx8) - 1 - i], 100) + graph5_fill.SetFillColorAlpha(ROOT.kOrange-2, 0.8) + graph5_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.70, 0.72, "ATLAS") + + ###### + lhcpp_x = [ + 10.066939677721151, 10.572169574493294, 10.951754350832815, 11.42562333543785, + 12.636568306159786, 14.207080215791218, 15.5928743626282, 16.706326675134289, + 18.461039759404617, 19.78556443761565, 20.96360581367906, 21.09242888969442, + 24.272216344202442, 24.84178794252616, 25.901226702276054, 27.322454715234547, + 28.63020619019907, 29.298922942189095, 29.99048672274574, 32.903445623126575, + 34.5862161566683, 36.83236152225321, 37.667610747905426, 39.814527907377884, + 42.100445758804276, 43.10951873690042, 48.144400096959915, 51.10186379032315, + 51.10186379032315, 51.86056175091642, 55.667382121524254, 56.6013960205313, + 62.603432306737656, 70.07645349729695, 71.9366209159912, 77.56310250274167, + 80.67647193253116, 83.94373273207214, 90.91189064728789, 98.17445600117621, + 98.67500247823907, 99.68414628286124, 100.59330080592282, 101.76710211409274, + 103.22892804826068, 105.3801733100775, 115.36364395567548, 122.19279028869269, + 124.6127112969844, 130.3573178204611, 131.1976271356153, 137.53869281496527, + 145.6132620737443, 154.94438529134488, 162.61566573181116, 185.28326042296045, + 196.40188801745526, 203.79471067879144, 209.76517821365375, 219.2758839273067, + 235.93298452621545, 255.62894836290414, 258.2340275978526, 267.64631269226526, + 270.62675552158844, 287.4933583033771, 304.3037832506208, 304.44194790490594, + 307.72817911362933, 312.2170163759553, 312.2170163759553, 339.65223973304596, + 370.9501922797532, 415.57217700627954, 439.21339581372437, 466.2642538595493, + 510.68123895785156, 512.2861156591045, 563.1222569426213, 595.1362332418176, + 637.3893664399816, 642.4040336192155, 655.6021442195424, 739.5843082983323, + 748.7318962715353, 750.5647513736589, 774.8041850834962, 829.3660100323145, + 889.1458379952189, 909.9285582174146, 938.3964508584962, 973.7616459147034, + 979.9775935638108, 1069.1341579847213, 1169.9753623199202, 1292.349365399862, + 1396.8098428226938, 1533.5856994589087, 1583.0737716954404, 1677.1483808722534, + 1735.1238398374849, 1899.4077051052866, 1980.0187795695898, 2086.8856817715078, + 2104.8205011228135, 2138.5379505826355, 2141.153863157146, 2159.555066478679, + 2172.3869184886306, 2363.2541206209375, 2408.906403175089, 2570.905130847331, + 2719.460522072081, 2719.460522072081 + ] + + lhcpp_y = [ + 0.22042727184567177, 0.23400245125744328, 0.2475824195229793, 0.2598583028325841, + 0.24503414392292266, 0.24184486904288029, 0.22951003010025838, 0.21073874511478552, + 0.21315826737018293, 0.21123412523374645, 0.28058935953723243, 0.2500704859932493, + 0.28620108757019207, 0.25906133217904544, 0.2440862387583176, 0.22286078996927564, + 0.2499571181514326, 0.27247702618217744, 0.2976442025454617, 0.2930611921069403, + 0.3384832333370232, 0.29178636318048665, 0.3649421347065954, 0.40113362523575767, + 0.30221569216921094, 0.3354085425739843, 0.2939694793624723, 0.3206824622165081, + 0.29046619809294935, 0.403584887063134, 0.2824811984093711, 0.3082324499255513, + 0.4655955385662949, 0.45745321218441124, 0.42207870057308673, 0.4422276655934426, + 0.37498800217912546, 0.3451483421183605, 0.47157826773584587, 0.3820018327927766, + 0.33582581661051466, 0.30041779537602945, 0.27874575465723265, 0.25593397092035986, + 0.23213224685889082, 0.21196523514529497, 0.24120883237800867, 0.2746195101056385, + 0.25831067793822307, 0.23819490350618, 0.2143281095195386, 0.20247882910938268, + 0.22141624156139632, 0.21132271799724316, 2.0893698660891125, 1.8839212580016582, + 0.08346377625369351, 0.07521269643936741, 0.06895975631817627, 0.06384055774269168, + 0.06273296153241589, 0.0626473741399321, 0.0566329337578635, 0.04806969767122761, + 0.05224675982345219, 0.05572328777712988, 0.05223990078665673, 0.044658853888378006, + 0.047933981587443675, 0.040846031019776464, 0.03729996172062628, 0.04811066715111359, + 0.045230297123167343, 0.042155479080785987, 0.03974737480268318, 0.03780468635685288, + 0.0348992508421743, 0.03686734568308306, 0.04020945815254834, 0.04226779760558433, + 0.034854265845816086, 0.03834772078616978, 0.04207399049104344, 0.040175722121741134, + 0.03635057850591439, 0.031161407258736306, 0.033910450312081866, 0.038253354911818983, + 0.034708452215041835, 0.03170456094368903, 0.02967533919811586, 0.036455163771214894, + 0.0343132332401163, 0.037528759366372135, 0.038567264839541064, 0.037561557042111156, + 0.03934294362755164, 0.03577601367035817, 0.039116059902088236, 0.04348205770916996, + 0.04811221080547963, 0.0516415404760608, 0.054213988338626906, 0.05597337135992708, + 0.06261631844523674, 0.07753743865952285, 0.06693201400626979, 0.07081669437424211, + 0.08453073574392732, 0.08537897553488168, 0.07859795124950025, 0.08709009294495427, + 0.0803730878204091, 1000.0 + ] + # lhcpp = ROOT.TGraph(len(lhcpp_x), array.array('d', lhcpp_x), array.array('d', lhcpp_y)) + # lhcpp.SetLineColor(ROOT.kGray) + # lhcpp.SetLineWidth(2) + # lhcpp.SetLineStyle(2) + + # lhcpp_fill = ROOT.TGraphAsymmErrors(len(lhcpp_x) * 2) + # for i in range(len(lhcpp_x)): + # lhcpp_fill.SetPoint(i, lhcpp_x[i], lhcpp_y[i]) + # lhcpp_fill.SetPoint(len(lhcpp_x) + i, lhcpp_x[len(lhcpp_x) - 1 - i], 10) + # lhcpp_fill.SetFillColorAlpha(ROOT.kBlue+1, 0.6) + # lhcpp_fill.Draw("F") + + # Text = ROOT.TLatex() + # Text.SetNDC() + # Text.SetTextAlign(31) + # Text.SetTextSize(0.03) + # Text.SetTextAlign(12) + # Text.DrawLatex(0.68, 0.8, "LHC (pp) ") + + + ##### + graph_cms_ALP_data_fx9 = [4.9584, 5.2, 6, 9, 11, 14, 16, 22, 30, 90, 117.5] + graph_cms_ALP_data_fy9 = [1.45, 0.52, 0.24951, 0.10256, 0.11053, 0.1072, 0.13549, 0.13778, 0.17619, 0.83797, 1.45] + + graph_cms_ALP_data = ROOT.TGraph(len(graph_cms_ALP_data_fx9), array.array('d', graph_cms_ALP_data_fx9), array.array('d', graph_cms_ALP_data_fy9)) + graph_cms_ALP_data.SetLineColor(ROOT.kBlack) + graph_cms_ALP_data.SetLineWidth(1) + graph_cms_ALP_data.SetLineStyle(1) + graph_cms_ALP_data.Draw("same L") + + graph_cms_ALP_data_fill = ROOT.TGraphAsymmErrors(len(graph_cms_ALP_data_fx9) * 2) + for i in range(len(graph_cms_ALP_data_fx9)): + graph_cms_ALP_data_fill.SetPoint(i, graph_cms_ALP_data_fx9[i], graph_cms_ALP_data_fy9[i]) + graph_cms_ALP_data_fill.SetPoint(len(graph_cms_ALP_data_fx9) + i, graph_cms_ALP_data_fx9[len(graph_cms_ALP_data_fx9) - 1 - i], 10) + graph_cms_ALP_data_fill.SetFillColorAlpha(ROOT.kViolet+1, 0.7) + graph_cms_ALP_data_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.64, 0.79, "CMS ") + ##### + ########## + graph_atlas_3g_fx1002 = [ + 9.9733, 10.18, 10.18, 10.18, 11.282, 10.828, 12, 12.763, 13.857, 14.738, 15.357, 15.676, 16.333, 16.673, 17.733, 18.861, + 19.652, 20.477, 20.902, 21.336, 21.779, 22.232, 22.693, 23.646, 24.137, 24.638, 25.15, 26.205, 26.749, 26.749, 27.872, 28.451, + 29.041, 28.451, 29.041, 29.645, 30.889, 31.53, 32.853, 33.535, 34.232, 34.943, 34.943, 35.668, 36.409, 37.165, 37.937, 37.937, + 38.725, 38.725, 38.725, 39.529, 40.35, 40.35, 41.188, 42.043, 42.916, 42.916, 43.808, 43.808, 44.717, 43.808, 44.717, 45.646, + 45.646, 46.594, 46.594, 47.561, 48.549, 47.561, 48.549, 49.557, 49.557, 50.586, 50.586, 51.637, 52.709, 51.637, 52.709, 52.709, + 52.709, 53.804, 53.804, 54.921, 54.921, 57.226, 57.226, 58.414, 58.414, 59.627, 59.627, 60.866, 9.9733, 9.9733] + graph_atlas_3g_fy1002 = [ + 0.2651, 0.24571, 0.23122, 0.22091, 0.25717, 0.242, 0.2651, 0.242, 0.23835, 0.24947, 0.24571, 0.23122, 0.2143, 0.20788, + 0.2143, 0.21758, 0.20788, 0.21107, 0.23122, 0.24947, 0.26916, 0.29041, 0.30396, 0.28603, 0.2651, 0.24571, 0.242, 0.242, + 0.23122, 0.21758, 0.2143, 0.23122, 0.2651, 0.24947, 0.29041, 0.31813, 0.29486, 0.29041, 0.29937, 0.30396, 0.323, 0.33807, + 0.323, 0.29937, 0.27747, 0.27747, 0.30861, 0.29041, 0.3485, 0.32795, 0.38177, 0.4057, 0.41822, 0.38762, 0.32795, 0.30396, + 0.28603, 0.30396, 0.36476, 0.34325, 0.41822, 0.39355, 0.44442, 0.41191, 0.37034, 0.35384, 0.33807, 0.29041, 0.32795, 0.30396, + 0.3485, 0.34325, 0.323, 0.30396, 0.28603, 0.28603, 0.323, 0.30396, 0.3485, 0.39355, 0.37034, 0.42462, 0.45814, 0.43772, + 0.39958, 0.28172, 0.27747, 0.29486, 0.31813, 0.39958, 0.34325, 38.731, 38.731, 0.26916] + + + ######## + lep_x= [ + 9.833131321849156e-04, 1.0877793345353508e-03, 2.0331095461987812e-02, 3.985540353584985e-02, + 8.642962059901296e-02, 1.2943700794999456e-01, 1.9384487529774517e-01, 3.799975137981547e-01, + 7.967825779923375e-01, 1.787028780178467, 4.2870239270163307, 7.856872318161278, 8.403928302758406, + 10.284430981002579, 11.766452723726841, 20.160750691019646, 32.29499346322902, 48.364985252437515, + 67.71646448598962, 82.86902031935237, 88.63899998398608, 104.88332709729095, 108.4732811512906, + 108.4732811512906 + ] + lep_y = [ + 1108.6031784226853, 148.47105380678374, 7.339587321491047, 5.1162908344033345, + 5.029126239917851, 5.575305334261869, 6.620572143707679, 6.620572143707679, + 6.507779594408527, 6.620572143707679, 6.620572143707679, 6.620572143707679, + 1.6179132208557919, 1.1278174398833736, 0.8136689832915884, 0.8715624428380649, + 0.9176700696484231, 0.9335750868773566, 0.9497557691643735, 0.9829633229801215, + 1.0349643086084764, 1.1473647220774008, 1.3164458054677553, 1000.0 + ] + + graph_lep = ROOT.TGraph(len(lep_x), array.array('d', lep_x), array.array('d', lep_y)) + graph_lep.SetLineColor(ROOT.kBlack) + graph_lep.SetLineWidth(1) + graph_lep.SetLineStyle(1) + graph_lep.Draw("same L") + + graph_lep_fill = ROOT.TGraphAsymmErrors(len(lep_x) * 2) + for i in range(len(lep_x)): + graph_lep_fill.SetPoint(i, lep_x[i], lep_y[i]) + graph_lep_fill.SetPoint(len(lep_x) + i, lep_x[len(lep_x) - 1 - i], 100) + graph_lep_fill.SetFillColorAlpha(ROOT.kCyan+1, 1) + graph_lep_fill.Draw("F") + + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.03) + Text.SetTextAlign(12) + Text.DrawLatex(0.7, 0.88, "LEP") + ######## + + + +######### +######### + + +####### + # projection of L=c*tau=2500mm + # tau_target = 2.5/299792458 #length divided my speed of light (meters) + # alpha = 1/137 + # hbar = 6.58e-25 # GeV s + # fa = 6.33 # GeV + + # C_target = [] + # for mass in mN: + # C = np.sqrt((64 * np.pi**3 * hbar * fa**2) / (alpha**2 * tau_target * mass**3)) + # C_target.append(C) + + # C_target_array = array.array('d', C_target) + # graph = ROOT.TGraph(len(mN), array.array('d', mN), C_target_array) + # graph.SetLineColor(1) # Color of the dashed line + # graph.SetLineStyle(2) # Dashed line style + # graph.SetLineWidth(2) + # graph.Draw("same L") + + # Text.SetTextSize(0.035) + # Text.SetTextFont(42) + # Text.DrawLatex(0.15, 0.2, "---- c#tau = 2500 mm") + + c.SaveAs(os.path.join(self.output_dir, out_name)) + + c.Modified() + c.Update() + + def drawFigureWithNumbers(self,mN,Ve,Z,func_text,out_name,histo_name="histo",zrange=[]): + + #Set bins for the plots + logBins = 15 + stopBin = 1e-5 + startBin = 1e-12 + logWidth = [] + for i in range(0,logBins): + logWidth.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBin)+((ROOT.TMath.Log10(stopBin)-ROOT.TMath.Log10(startBin))/logBins)*i)) + logArray = array.array('d',logWidth) + + linBins = 10 + linBins0 = 10 + linWidth = [0,5,10,20,30,40,50,60,70,80] + linWidth0 = np.linspace(0,90,linBins0) + linArray = array.array('d', linWidth) + linArray0 = array.array('d', linWidth0) + + c = ROOT.TCanvas("c_"+histo_name,"canvas title") + c.cd() + # ROOT.gPad.SetLogx(1) + ROOT.gPad.SetLogy(1) + ROOT.gPad.SetLogz(1) + ROOT.gPad.SetRightMargin(0.15) + ROOT.gStyle.SetOptStat(0) + + # A base histogram to correctly set the bins + h0 = ROOT.TH2F("h0",r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins0-1, linArray0, logBins-1, logArray) + h0.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + h0.Draw() + + h = ROOT.TH2F(histo_name,r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins-1, linArray, logBins-1, logArray) + h.GetZaxis().SetTitle(func_text) + h.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + for m,v,z in zip(mN,Ve,Z): + h.Fill(m,v**2,z) + h.Draw("same COLZ text") + h.GetXaxis().SetRangeUser(0,90) + + ## Print text in figure + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.04) + Text.SetTextAlign(12) + Text.DrawLatex(0.090, 0.92, self.col_tex) + Text.SetNDC(ROOT.kTRUE) + Text.SetTextSize(0.04) + # Text.DrawLatex(0.62, 0.83, func_text) + Text.DrawLatex(0.56, 0.83, self.s_tex) + Text.DrawLatex(0.56, 0.78, self.lumi_tex) + Text.DrawLatex(0.56, 0.73, self.ana_tex) + + c.Modified() + c.Update() + + c.SaveAs(os.path.join(self.output_dir, out_name)) + + def drawFigureWithLimit(self,mN,Ve,Z,func_text,out_name,S=[],histo_name="histo",zrange=[],plot_pred=False): + + #Set bins for the plots + logBins = 15 + stopBin = 1e-5 + startBin = 1e-12 + logWidth = [] + for i in range(0,logBins): + logWidth.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBin)+((ROOT.TMath.Log10(stopBin)-ROOT.TMath.Log10(startBin))/logBins)*i)) + logArray = array.array('d',logWidth) + + linBins = 11 + linBins0 = 10 + linWidth = [0,5,10,20,30,40,50,60,70,80,90] + linWidth0 = np.linspace(0,90,linBins0) + linArray = array.array('d', linWidth) + linArray0 = array.array('d', linWidth0) + + c = ROOT.TCanvas("c_"+histo_name,"canvas title") + c.cd() + # ROOT.gPad.SetLogx(1) + ROOT.gPad.SetLogy(1) + ROOT.gPad.SetLogz(1) + ROOT.gPad.SetRightMargin(0.15) + ROOT.gStyle.SetOptStat(0) + + # A base histogram to correctly set the bins + h0 = ROOT.TH2F("h0",r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins0-1, linArray0, logBins-1, logArray) + h0.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + h0.Draw() + + h = ROOT.TH2F(histo_name,r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins-1, linArray, logBins-1, logArray) + h.GetZaxis().SetTitle(func_text) + h.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + for m,v,z in zip(mN,Ve,Z): + h.Fill(m,v**2,z) + # h.Draw("same COLZ text") + # h.DrawCopy("same COLZ") + h.GetXaxis().SetRangeUser(0,90) + + ## Print text in figure + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.04) + Text.SetTextAlign(12) + Text.DrawLatex(0.090, 0.92, self.col_tex) + Text.SetNDC(ROOT.kTRUE) + Text.SetTextSize(0.04) + # Text.DrawLatex(0.62, 0.83, func_text) + # Text.DrawLatex(0.56, 0.83, self.s_tex) + # Text.DrawLatex(0.56, 0.78, self.lumi_tex) + # Text.DrawLatex(0.56, 0.73, self.ana_tex) + + leg = ROOT.TLegend(0.28,0.73,0.63,0.87) + leg.SetFillColor(0) + leg.SetFillStyle(0) + leg.SetLineColor(0) + leg.SetShadowColor(10) + leg.SetTextSize(0.035) + leg.SetTextFont(42) + + c.Modified() + c.Update() + + if (plot_pred): + x4,y4,x1,y1 = self.get_pred() + # X = np.power(10,x) + # Y = np.power(10,y) + X4 = array.array('d',x4) + Y4 = array.array('d',y4) + X1 = array.array('d',x1) + Y1 = array.array('d',y1) + + c.cd() + gr4 = ROOT.TGraph(len(X4),X4,Y4) + gr4.SetLineColor(3) + gr4.SetLineWidth(3) + gr4.Draw("same L") + gr4.GetXaxis().SetRangeUser(0,90) + + gr1 = ROOT.TGraph(len(X1),X1,Y1) + gr1.SetLineColor(3) + gr1.SetLineWidth(3) + gr1.SetLineStyle(7) + gr1.Draw("same L") + gr1.GetXaxis().SetRangeUser(0,90) + + c.Modified() + c.Update() + + leg.AddEntry(gr1, "Prediction","l") + leg.AddEntry(gr4, "Prediction","l") + # leg.Draw() + # Text.SetTextColor(2) + # Text.SetTextSize(0.04) + # Text.DrawLatex(0.67,0.32,"#bf{Prediction}") + + x = array.array('d') + x.append(0.01) + # # 3 signal event contour + # if S: + # hS = ROOT.TH2F("hS",r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins-1, linArray, logBins-1, logArray) + # hS.GetZaxis().SetTitle(func_text) + # hS.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + # for m,v,s in zip(mN,Ve,S): + # hS.Fill(m,v**2,s) + # x[0] = 3 + # hS.SetContour(1,x) + # hS.SetLineColor(3) + # hS.SetLineWidth(2) + # hS.Draw("cont3 C") + # leg.AddEntry(hS,"3 signal event") + # Text.SetTextColor(3) + # Text.DrawLatex(0.67,0.41,"#bf{3 signal event}") + + x[0] = 0.01 + h.SetContour(1,x) + h.SetLineWidth(3) + h.SetLineColor(5) + # Text.SetTextColor(2) + # Text.DrawLatex(0.3,0.6,"#bf{s = 0.01}") + # h.DrawCopy("cont3 C same") + leg.AddEntry(h,"s = 0.01","l") + h22 = h.Clone() + x[0] = 0.05 + h22.SetContour(1,x) + h.SetLineWidth(3) + h22.SetLineColor(4) + # Text.SetTextColor(3) + # Text.DrawLatex(0.3,0.7,"#bf{s = 0.05}") + # h22.DrawCopy("cont3 C same") + leg.AddEntry(h22,"s = 0.05","l") + + leg.Draw() + c.Modified() + c.Update() + + c.SaveAs(os.path.join(self.output_dir, out_name)) + + def drawFigureWithLimitZoom(self,mN,Ve,Z,func_text,out_name,S=[],histo_name="histo",zrange=[],plot_pred=False): + + #Set bins for the plots + logBins = 10 + stopBin = 2.9e-7 + startBin = 2e-12 + logWidth = [] + for i in range(0,logBins): + logWidth.append(ROOT.Math.pow(10,ROOT.TMath.Log10(startBin)+((ROOT.TMath.Log10(stopBin)-ROOT.TMath.Log10(startBin))/logBins)*i)) + logArray = array.array('d',logWidth) + + linBins = 9 + linBins0 = 10 + linWidth = [5,10,20,30,40,50,60,70,80] + linWidth0 = np.linspace(0,80,linBins0) + linArray = array.array('d', linWidth) + linArray0 = array.array('d', linWidth0) + + c = ROOT.TCanvas("c_"+histo_name,"canvas title",360,250) + c.cd() + # ROOT.gPad.SetLogx(1) + ROOT.gPad.SetLogy(1) + ROOT.gPad.SetLogz(1) + ROOT.gPad.SetRightMargin(0.3) + ROOT.gStyle.SetOptStat(0) + + # A base histogram to correctly set the bins + # h0 = ROOT.TH2F("h0",r";m_{N};\left|V_{eN}\right|^{2}", linBins0-1, linArray0, logBins-1, logArray) + # h0.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + # h0.Draw() + + h = ROOT.TH2F(histo_name,r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins-1, linArray, logBins-1, logArray) + h.GetZaxis().SetTitle(func_text) + h.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + for m,v,z in zip(mN,Ve,Z): + h.Fill(m,v**2,z) + h.DrawCopy("COLZ") + h.GetXaxis().SetRangeUser(0,90) + + ## Print text in figure + Text = ROOT.TLatex() + Text.SetNDC() + Text.SetTextAlign(31) + Text.SetTextSize(0.04) + Text.SetTextAlign(12) + Text.DrawLatex(0.090, 0.92, self.col_tex) + Text.SetNDC(ROOT.kTRUE) + Text.SetTextSize(0.04) + # Text.DrawLatex(0.62, 0.83, func_text) + # Text.DrawLatex(0.47, 0.86, self.s_tex) + # Text.DrawLatex(0.47, 0.81, self.lumi_tex) + # Text.DrawLatex(0.47, 0.76, self.ana_tex) + + x = array.array('d') + x.append(0.01) + + # 3 signal event contour + if S: + hS = ROOT.TH2F("hS",r";m_{N} [GeV];\left|V_{eN}\right|^{2}", linBins-1, linArray, logBins-1, logArray) + hS.GetZaxis().SetTitle(func_text) + hS.GetZaxis().SetRangeUser(zrange[0],zrange[1]) + for m,v,s in zip(mN,Ve,S): + hS.Fill(m,v**2,s) + x[0] = 1 + hS.SetContour(1,x) + hS.SetLineColor(2) + hS.SetLineWidth(2) + hS.Draw("cont3 same") + Text.SetTextColor(3) + # Text.DrawLatex(0.67,0.41,"#bf{3 signal event}") + + x[0] = 0.01 + h.SetContour(1,x) + h.SetLineWidth(2) + h.SetLineColor(5) + Text.SetTextColor(5) + # Text.DrawLatex(0.3,0.6,"#bf{s = 0.01}") + h.DrawCopy("cont3 same") + x[0] = 0.05 + h.SetContour(1,x) + h.SetLineColor(4) + Text.SetTextColor(4) + # Text.DrawLatex(0.3,0.7,"#bf{s = 0.05}") + h.DrawCopy("cont3 same") + x[0] = 0.5 + h.SetContour(1,x) + h.SetLineColor(4) + # Text.SetTextColor(4) + # Text.DrawLatex(0.3,0.6,"#bf{s = 0.5}") + h.DrawCopy("cont3 same") + + if (plot_pred): + x4,y4,x1,y1 = self.get_pred() + # X = np.power(10,x) + # Y = np.power(10,y) + X4 = array.array('d',x4) + Y4 = array.array('d',y4) + X1 = array.array('d',x1) + Y1 = array.array('d',y1) + + c.cd() + gr4 = ROOT.TGraph(len(X4),X4,Y4) + gr4.SetLineColor(3) + gr4.SetLineWidth(2) + gr4.Draw("same L") + gr4.GetXaxis().SetRangeUser(0,90) + + gr1 = ROOT.TGraph(len(X1),X1,Y1) + gr1.SetLineColor(3) + gr1.SetLineWidth(2) + gr1.SetLineStyle(7) + gr1.Draw("same L") + gr1.GetXaxis().SetRangeUser(0,90) + + c.Modified() + c.Update() + + # leg = ROOT.TLegend(0.56,0.13,0.73,0.17) + # leg.SetFillColor(0) + # leg.SetFillStyle(0) + # leg.SetLineColor(0) + # leg.SetShadowColor(10) + # leg.SetTextSize(0.035) + # leg.SetTextFont(42) + # leg.AddEntry(gr, "Theoretical prediction") + # leg.Draw() + Text.SetTextColor(2) + Text.SetTextSize(0.04) + # Text.DrawLatex(0.67,0.32,"#bf{Prediction}") + + c.Modified() + c.Update() + + c.SaveAs(os.path.join(self.output_dir, out_name)) + + + ### returns S/sqrt(S+B) ### + def func1(self,S,B): + ret = [] + for s in S: + if s == 0: + ret.append(0) + # print(0) + else: + ret.append(s/ROOT.Math.sqrt(s+B)) + # print(s/ROOT.Math.sqrt(s+B)) + # print("S: ", s) + return ret + + ### returns S/sqrt(S+B+DeltaB) ### + def func2(self,S,B,DeltaB): + ret = [] + for s in S: + if s == 0: + ret.append(0) + # print(0) + else: + ret.append(s/ROOT.Math.sqrt(s+B+DeltaB)) + # print(s/ROOT.Math.sqrt(s+B+DeltaB)) + return ret + + ### returns S/sqrt(B+DeltaB) ### + def func3(self,S,B,DeltaB): + ret = [] + for s in S: + ret.append(s/ROOT.Math.sqrt(B+DeltaB)) + return ret + + ### returns decay length approximation ### + def func_L(self,mN,Ve): + ret = [] + for m,v in zip(mN,Ve): + ret.append(25*((1e-6/v)**2)*(np.power((100/m),5))) + return ret + + + ## Print tabular with all values ### + def saveTab(self,mN,Ve,S,Z,name1,Z2,name2): + f = open("sensitivityTabular.txt","w") + print('\n\n\n\\begin{table}[H] \n \\centering \n \\begin{tabular}{|c|c|c|c|c|} \hline \n $m_N$ & $|V_{eN}|^2$ & S & $',name1,'$ & $',name2,'$ \\\\ \\hline',file=f) + for m,v,s,z,z2 in zip(mN,Ve,S,Z,Z2): + print(f' {m} & {v**2:.2e} & {s:.3f} & {z:.3f} & {z2:.2e}\\\\', file=f) + print(' \\hline \n \\end{tabular} \n \\caption{Caption} \n \\label{tab:my_label} \n\\end{table}', file=f) + f.close() + + def get_pred(self): + # X: log(mN/GeV) + # pred_data = pd.read_csv("/afs/cern.ch/user/l/lrygaard/public/FCC_ee_data.csv",header=None, sep=",", names = ["X", "Y"]) + pred_data4 = pd.read_csv("HNLe-FCC-ee-IDEA-4-events.csv",header=None, sep='\t', names = ["X", "Y"]) + pred_data1 = pd.read_csv("HNLe-FCC-ee-IDEA-1-event.csv",header=None, sep='\t', names = ["X", "Y"]) + x4, y4, x1, y1 = [], [], [], [] + for i in range(len(pred_data4.index)): + x4.append(pred_data4.iloc[i]['X']) + y4.append(pred_data4.iloc[i]['Y']) + + for i in range(len(pred_data1.index)): + x1.append(pred_data1.iloc[i]['X']) + y1.append(pred_data1.iloc[i]['Y']) + + return x4,y4,x1,y1 + + +if __name__=="__main__": + + ana_tex = '' + collider = 'FCC-ee' + energy = 91 + intLumi = 205 + + output_dir = "plots_sensitivity/" + plotting = Plotting(ana_tex,energy,intLumi,output_dir) + + ### Values ### + + # Background # + B = 9.16e+07 + 2.16e+04 + 1.19e+04 + 2.00e+02 + + + # Signal # + + mN = [] + + Ve = [] + + # Divide each element by breaking scale facvot lambda (for my analysis lamdbda=1TeV) + # Ve_divided = [v / 1 for v in Ve] #c_yy/LAMBDA [TeV-1] + + + #after all selection + S = [] + + ## Figure + func_text1 = "s = #frac{n_{S}}{#sqrt{n_{S}+n_{B}}}" + + + + out_name = "compare_bounds.png" + plotting.drawFigure(mN,Ve,plotting.func1(S,B),func_text1,out_name,"histo1",zrange=[0,0],plot_pred=False) diff --git a/python/do_plots.py b/python/do_plots.py index 0a7bd8d2227..464bb936d4f 100644 --- a/python/do_plots.py +++ b/python/do_plots.py @@ -131,6 +131,9 @@ def load_hists(var: str, scale = determine_lumi_scaling(config, infile, config['scale_sig']) + if config['scale_sig'] == -1.: + if(hist.Integral() != 0): + scale = 1.0/hist.Integral() hist.Scale(scale) hist.Rebin(rebin) @@ -140,7 +143,31 @@ def load_hists(var: str, hist.Add(hsignal[s][0]) hsignal[s][0] = hist + hbackgrounds = {} + total_background_integral = 0.0 + + for b in backgrounds: + hbackgrounds[b] = [] + for filepathstem in backgrounds[b]: + infilepath = config['input_dir'] + filepathstem + '_' + sel + \ + '_histo.root' + if not os.path.isfile(infilepath): + LOGGER.info('File "%s" not found!\nSkipping it...', infilepath) + continue + + with ROOT.TFile(infilepath) as infile: + hist = copy.deepcopy(infile.Get(var)) + hist.SetDirectory(0) + + # print('hist.integral:', hist.Integral()) + + total_background_integral += hist.Integral() + + + # LOGGER.info('total_background_integral: %f', total_background_integral) + + for b in backgrounds: hbackgrounds[b] = [] for filepathstem in backgrounds[b]: @@ -157,6 +184,13 @@ def load_hists(var: str, scale = determine_lumi_scaling(config, infile, config['scale_bkg']) + + if config['scale_bkg'] == -1.: + if(total_background_integral != 0): + scale = 1.0/total_background_integral + else: + scale = 1.0 + hist.Scale(scale) hist.Rebin(rebin) @@ -258,10 +292,10 @@ def runPlots(config: dict[str, any], # Below are settings for separate signal and background legends if config['split_leg']: - legsize = 0.04 * (len(hsignal)) - legsize2 = 0.04 * (len(hbackgrounds)) - leg = ROOT.TLegend(0.15, 0.60 - legsize, 0.50, 0.62) - leg2 = ROOT.TLegend(0.60, 0.60 - legsize2, 0.88, 0.62) + legsize = 0.025 * (len(hsignal)) + legsize2 = 0.025 * (len(hbackgrounds)) + leg = ROOT.TLegend(0.15, 0.7 - legsize, 0.50, 0.72) + leg2 = ROOT.TLegend(0.60, 0.86- legsize2, 0.88, 0.88) if config['leg_position'][0] is not None and \ config['leg_position'][2] is not None: @@ -562,8 +596,8 @@ def drawStack(config, name, ylabel, legend, leftText, rightText, formats, canvas = ROOT.TCanvas(name, name, 800, 800) canvas.SetLogy(logY) canvas.SetTicks(1, 1) - canvas.SetLeftMargin(0.14) - canvas.SetRightMargin(0.08) + canvas.SetLeftMargin(0.13) + canvas.SetRightMargin(0.10) sumhistos = histos[0].Clone() iterh = iter(histos) @@ -701,6 +735,8 @@ def get_minmax_range(hists, xmin, xmax): if ymin <= 0 and logY: LOGGER.error('Log scale can\'t start at: %i', ymin) sys.exit(3) + # ymin=10e-8 + # ymax=10e4 h_dummy.SetMaximum(ymax) h_dummy.SetMinimum(ymin) @@ -714,49 +750,49 @@ def get_minmax_range(hists, xmin, xmax): latex.SetTextSize(0.04) text = '#it{' + leftText + '}' - latex.DrawLatex(0.90, 0.94, text) + latex.DrawLatex(0.94, 0.92, text) text = '#it{'+customLabel+'}' latex.SetTextAlign(12) latex.SetNDC(ROOT.kTRUE) - latex.SetTextSize(0.04) - latex.DrawLatex(0.18, 0.85, text) + latex.SetTextSize(0.03) + latex.DrawLatex(0.18, 0.89, text) rightText = re.split(",", rightText) text = '#bf{#it{' + rightText[0] + '}}' latex.SetTextAlign(12) latex.SetNDC(ROOT.kTRUE) - latex.SetTextSize(0.04) - latex.DrawLatex(0.18, 0.81, text) + latex.SetTextSize(0.03) + latex.DrawLatex(0.18, 0.86, text) rightText[1] = rightText[1].replace(" ", "") text = '#bf{#it{' + rightText[1] + '}}' - latex.SetTextSize(0.035) - latex.DrawLatex(0.18, 0.76, text) + latex.SetTextSize(0.03) + latex.DrawLatex(0.18, 0.83, text) text = '#bf{#it{' + ana_tex + '}}' - latex.SetTextSize(0.04) - latex.DrawLatex(0.18, 0.71, text) + latex.SetTextSize(0.03) + latex.DrawLatex(0.18, 0.80, text) text = '#bf{#it{' + extralab + '}}' latex.SetTextSize(0.025) - latex.DrawLatex(0.18, 0.66, text) + latex.DrawLatex(0.18, 0.77, text) - if config['scale_sig'] != 1.0: - text = '#bf{#it{Signal Scaling = ' + f'{config["scale_sig"]:.3g}' + \ - '}}' - latex.SetTextSize(0.025) - latex.DrawLatex(0.18, 0.63, text) + # if config['scale_sig'] != 1.0: + # text = '#bf{#it{Signal Scaling = ' + f'{config["scale_sig"]:.3g}' + \ + # '}}' + # latex.SetTextSize(0.025) + # latex.DrawLatex(0.18, 0.63, text) - if config['scale_bkg'] != 1.0: - text = '#bf{#it{Background Scaling = ' + \ - f'{config["scale_bkg"]:.3g}' + '}}' - latex.SetTextSize(0.025) - latex.DrawLatex(0.18, 0.63, text) + # if config['scale_bkg'] != 1.0: + # text = '#bf{#it{Background Scaling = ' + \ + # f'{config["scale_bkg"]:.3g}' + '}}' + # latex.SetTextSize(0.025) + # latex.DrawLatex(0.18, 0.63, text) canvas.RedrawAxis() - canvas.GetFrame().SetBorderSize(12) + canvas.GetFrame().SetBorderSize(5) canvas.Modified() canvas.Update() @@ -807,8 +843,8 @@ def get_minmax_range(hists, xmin, xmax): dy = 0 text = '#bf{#it{' + 'Process' + '}}' - latex.SetTextSize(0.035) - latex.DrawLatex(0.18, 0.45, text) + latex.SetTextSize(0.025) + latex.DrawLatex(0.18, 0.6, text) text = '#bf{#it{' + 'Yields' + '}}' latex.SetTextSize(0.035) @@ -982,7 +1018,7 @@ def run(args): if config['int_lumi_label'] is None: if config['int_lumi'] >= 1e6: int_lumi_label = config['int_lumi'] / 1e6 - config['int_lumi_label'] = f'L = {int_lumi_label:.2g} ab^{{-1}}' + config['int_lumi_label'] = f'L = {int_lumi_label:.5g} ab^{{-1}}' elif config['int_lumi'] >= 1e3: int_lumi_label = config['int_lumi'] / 1e3 config['int_lumi_label'] = f'L = {int_lumi_label:.2g} fb^{{-1}}' diff --git a/python/run_analysis.py b/python/run_analysis.py index 52e3a9b6605..68295eb7369 100644 --- a/python/run_analysis.py +++ b/python/run_analysis.py @@ -343,6 +343,8 @@ def run_rdf(rdf_module, if args.graph: generate_graph(dframe, args) + # print("out_file: ", out_file) + # print("branch_list: ", branch_list) dframe3.Snapshot("events", out_file, branch_list) except cppyy.gbl.std.runtime_error as err: LOGGER.error('%s\nDuring the execution of the analysis script an ' diff --git a/python/run_final_analysis.py b/python/run_final_analysis.py index 8b8a90c40bf..f42aea07507 100644 --- a/python/run_final_analysis.py +++ b/python/run_final_analysis.py @@ -152,7 +152,8 @@ def save_tables(results: dict[str, dict[str, any]], for name in cut_names: cut_labels[name] = f'{name}' - cut_labels['all_events'] = 'All events' + # cut_labels['all_events'] = 'All events' + cut_labels = dict([("all_events", "All events")] + list(cut_labels.items())) with open(outpath, 'w', encoding='utf-8') as outfile: # Printing the number of events in format of a LaTeX table