This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2019:groups:tools:adl [2019/06/24 19:24] sezen.sekmen |
2019:groups:tools:adl [2019/06/27 17:18] sezen.sekmen |
||
---|---|---|---|
Line 1: | Line 1: | ||
` ====== Analysis Description Language (ADL)====== | ` ====== Analysis Description Language (ADL)====== | ||
+ | |||
+ | // Members: **Sezen S** // | ||
Develop a domain-specific language capable of describing the contents of an LHC analysis in a standard and unambiguous way. | Develop a domain-specific language capable of describing the contents of an LHC analysis in a standard and unambiguous way. | ||
Line 5: | Line 7: | ||
[[https://www.dropbox.com/s/a9gn1iyg26h3qms/SekmenLHADL1906.pdf?dl=0|Link to Sezen's presentation]] | [[https://www.dropbox.com/s/a9gn1iyg26h3qms/SekmenLHADL1906.pdf?dl=0|Link to Sezen's presentation]] | ||
- | [[https://docs.google.com/document/d/1KrSarg4_c_Ph76SI8i9_b-wBEN6V90mWNLTaZq3y85E/edit?usp=sharing|Google doc for physics content of the language]] | + | HSF Gitter forum for discussions: {{https://gitter.im/HSF/ADL|}} |
- | Parsing/interpreting tools for the language: | + | **ADL-related projects/discussions in Les Houches:** |
+ | * Estimation of overlaps in analysis using analysis descriptions ([[2019:groups:tools:correlations|correlations exercise]], [[2019:groups:tools:adl#Quantifying overlaps between analysis search regions using ADLs|how to use ADLs]]) | ||
+ | * Recasting tools/methods comparison exercise with ADLs ([[2019:groups:tools:recastcmp|recast comparison exercise]], [[2019:groups:tools:adl#ADLs for recasting|ADL implementation]]) | ||
+ | * Questions for us to answer: | ||
+ | * What is the ideal physics content for an ADL? An inclusive list discussed at the [[https://indico.cern.ch/event/769263/|Fermilab ADL workshop]] is [[https://docs.google.com/document/d/1KrSarg4_c_Ph76SI8i9_b-wBEN6V90mWNLTaZq3y85E/edit?usp=sharing|in this googledoc]]. You are welcome to take a look and edit. | ||
+ | * What is the best syntax for expressing composite particles, like Zs, tops, Higgsses, etc.? How can we access information on the constituents? | ||
+ | * What is the minimal list of math and HEP functions/operators we need for describing the analysis? | ||
+ | * What are some challenging analysis descriptions to try? | ||
+ | * How can we benefit from an ADL in analysis combination / finding out non-overlapping regions? | ||
+ | |||
+ | Parsing/interpreting tools for the current ADL: | ||
* **adl2tnm** (transpiler: python script converts adl to generic c++ analysis code) ([[https://github.com/hbprosper/adl2tnm|github]]) | * **adl2tnm** (transpiler: python script converts adl to generic c++ analysis code) ([[https://github.com/hbprosper/adl2tnm|github]]) | ||
* **lhada2rivet** (transpiler: python script converts LHADA to c++ code for Rivet) ([[https://github.com/lhada-hep/lhada/tree/master/lhada2rivet.d|github]]) | * **lhada2rivet** (transpiler: python script converts LHADA to c++ code for Rivet) ([[https://github.com/lhada-hep/lhada/tree/master/lhada2rivet.d|github]]) | ||
Line 13: | Line 25: | ||
- | ==== Analysis description file for the CMS soft dilepton analysis for the recasting exercise ==== | + | ==== Quantifying overlaps between analysis search regions using ADLs ==== |
- | The ADL file and the external function fMtautau are given below. | + | Members: Sezen, Wolfgang (, Harrison) |
- | === The ADL file === | + | Find and visualize overlaps in a model-independent way, without generating events. Directly sample the event selection. Useful for analysis design phase, or quick comparisons within experiments (e.g. Run2 CMS SUSY pMSSM combination) |
- | The external function [[: | + | * Start from the analysis description, which lists objects and event selections. |
+ | * Construct a feature space from all mathematically orthogonal "basic" variables (e.g. MET, jet1.pt, jet2.pt, electron1.eta, ...). | ||
+ | * Randomly sample the feature space for each analysis based on cuts on the feature space components (jet1.pt > 100, MET > 299, etc.). | ||
+ | * Use the sampled points to compute values for "composite" variables such as HT(jets), dphi(jets), MT(lepton, MET), etc. | ||
+ | * Compare feature spaces between analyses, find and visualize overlaps and exclusions. | ||
+ | * As a very simple first step, we simply check if two analyses are disjoint in any of the basic variables. | ||
+ | |||
+ | ==== ADLs for recasting ==== | ||
+ | |||
+ | The ADL file and the external function fMtautau are given below for the CMS soft dilepton analysis considered in the LH19 [[2019:groups:tools:recastcmp|recasting comparison]] | ||
+ | |||
+ | === The ADL file === | ||
<file python> | <file python> | ||
Line 67: | Line 90: | ||
define dimuon = muons[0] + muons[1] | define dimuon = muons[0] + muons[1] | ||
define HT = sum(jets.pT) | define HT = sum(jets.pT) | ||
- | define MTl1 = | ||
- | define MTl2 = | ||
define MTl1 = sqrt( 2*leptons[0].pT * MET*(1-cos(MET.phi - leptons[0].phi ))) | define MTl1 = sqrt( 2*leptons[0].pT * MET*(1-cos(MET.phi - leptons[0].phi ))) | ||
define MTl2 = sqrt( 2*leptons[1].pT * MET*(1-cos(MET.phi - leptons[1].phi ))) | define MTl2 = sqrt( 2*leptons[1].pT * MET*(1-cos(MET.phi - leptons[1].phi ))) | ||
Line 89: | Line 110: | ||
region CharginoDimuonPreselection | region CharginoDimuonPreselection | ||
- | # This selection follows the cutflow table in the twiki | + | # This selection follows the chargino cutflow table in the twiki |
select size(muons) == 2 | select size(muons) == 2 | ||
select muons[0].pT [] 5 30 | select muons[0].pT [] 5 30 | ||
Line 105: | Line 126: | ||
region StopDimuonPreselection | region StopDimuonPreselection | ||
- | # This selection follows the cutflow table in the twiki | + | # This selection follows the stop cutflow table in the twiki |
select size(muons) == 2 | select size(muons) == 2 | ||
select muons[0].pT [] 5 30 | select muons[0].pT [] 5 30 | ||
Line 121: | Line 142: | ||
- | === The external function === | + | === The external function Mtautau === |
- | <file cpp :CMSSUS16048_Mtautau.h> | + | <file cpp> |
// Find m(tautau) for boosted taus with alligned decay products. | // Find m(tautau) for boosted taus with alligned decay products. |