User Tools

Site Tools


2015:groups:tools:lhaad

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
2015:groups:tools:lhaad [2015/06/18 08:51]
daniel.schmeier
2015:groups:tools:lhaad [2016/02/25 17:41]
philippe.gras
Line 1: Line 1:
 ===== Les Houches Analysis Description Accord ===== ===== Les Houches Analysis Description Accord =====
  
-People: S. Sekmen, H. Prosper, G. Unel, B. Fuks, J. Tattersall, D. Schmeier, C. Pollard, S. Kraml, S. Kulkarni, D. Morse, D. Majumder, N. Desai, D. Sengupta. N. De Filippis, J. Sonneveld ... etc. (add your name if interested)+People: S. Sekmen, H. Prosper, G. Unel, B. Fuks, J. Tattersall, D. Schmeier, C. Pollard, S. Kraml, S. Kulkarni, D. Morse, D. Majumder, N. Desai, D. Sengupta. N. De Filippis, J. Sonneveld, E. Conte, Ph. Gras ... etc. (add your name if interested) 
 + 
 +//If you are interested in contributing please subscribe to the [[https://​e-groups.cern.ch/​e-groups/​EgroupsSearch.do?​searchValue=houches-2015-topics-tools-lhada|Mailing list]]. You will be asked to log in with your CERN account. If you don't have a CERN account, please fill [[https://​account.cern.ch/​account/​Externals/​RegisterAccount.aspx|this form]] to create a lightweight account.//
  
 Goal: Prepare an SLHA-like easy to read and write accord for describing the flow of an LHC analysis. Goal: Prepare an SLHA-like easy to read and write accord for describing the flow of an LHC analysis.
Line 7: Line 9:
 First proposal made for a generic structure. ​ CM and MA authors will try to implement a single lepton stop search. First proposal made for a generic structure. ​ CM and MA authors will try to implement a single lepton stop search.
  
-Proposal by Daniel Schmeier & Jamie Tattersall +Proposal by Daniel Schmeier & Jamie Tattersall ​[[2015:groups:tools:lhaad:proposal1]]
- +
-<​code>​ +
-# These are the input objects for the analysis code. +
-# Syntax +
-#      name    type (see below) +
-# A well formulated comment behind each object should unambiguously state what this object is +
-# such that a _human_ knows what this object corresponds in his/her code +
-       +
-BLOCK ANALYSISINPUT +
-  jets      l<​jet> ​     #   ​pt>​20.anti-kt,​ R=0.4. Contains information about btags with effs (60%,​70%,​80%),​  +
-  elecs     ​l<​el> ​      # ​  ​Contains information about isolation to easily evaluate it later +
-  muons     ​l<​mu> ​      # ​  see elecs +
-  etmiss ​   v           # ​  https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​ETMiss +
-   +
-   +
-# All functions that have to be used later must be defined here +
-# Syntax ​Function_name ​  ​input_type_1 ​ input_type_2 ​  ​input_type_3 ... output_type +
-# Rules: +
-#        - input_types and output_type can be  +
-#           - '​s'​ for scalars/​numbers,​  +
-#           - '​v'​ for LorentzVectors, ​        +
-#           - '​b'​ for booleans +
-#           - '​c'​ for characters/​strings +
-#           - any of the objects defined in the '​object'​ block +
-#           - l<​type>​ to denote a list of objects of common type <​type>​. +
-#        - People are strongly encouraged to comment with a link to a resource where the exact definition +
-#          of that function can be found, in text definiton and maybe a working example in a programming language of choice +
-#        - 2 functions can have the same name if they have different input types +
- +
-BLOCK ANALYSISFUNCTIONS +
-  mT               ​v ​   v    s             # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​m_T +
-  amT2             ​v ​   v    s             # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​am_T2 +
-  mT2tau ​          ​v ​   v    s             # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​m_T2_tau +
-  mHadTop ​         ?    ?    ?             # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​m_had_top +
-  HTMissSig ​       ?    ?    ?             # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​LHA/​Definitions/​HTmisssig +
-   +
-  # s denotes the working point efficiency +
-  filter_no_bjets ​     l<​jet> ​ s      l<​jet> ​  # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​BJetDefinitionSource +
-  filter_bjets ​        ​l<​jet> ​ s      l<​jet> ​  # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​BJetDefinitionSource +
-  filter_taujets ​      ​l<​jet> ​ s      l<​jet> ​  # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​TauJetDefinitionSource +
-  filter_medium_elec ​  ​l<​elec>​ l<​elec> ​        # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​ElectronIDSource +
-  filter_tight_elec ​   l<​elec>​ l<​elec> ​        # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​ElectronIDSource +
-    +
-  #                    input             ​whichsource ​ dr       ​cut_pt ​  ​maxval ​  ​output +
-  filter_iso_abs ​      ​l<​el> ​ s    s   ​s ​  ​s ​  ​l<​el> ​    # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​Definitions/​Isolation +
-  filter_iso_rel ​      ​l<​el> ​ s    s   ​s ​  ​s ​  ​l<​el> ​    # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​Definitions/​Isolation +
-  filter_iso_abs ​      ​l<​mu> ​ s    s   ​s ​  ​s ​  ​l<​mu> ​    # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​Definitions/​Isolation +
-  filter_iso_rel ​      ​l<​mu> ​ s    s   ​s ​  ​s ​  ​l<​mu> ​    # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​Definitions/​Isolation +
-   +
-  trigger ​             l<​el> ​ l<​mu> ​ l<​jet> ​ v           # https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​Definitions/​SingleLepTrigger + EtMissTrigger +
-  dataquality ​         l<​jet>​ v                          # Tuned to a constant efficiency of 99.7%, see here: https://​twiki.cern.ch/​twiki/​bin/​view/​XXPublic/​EventCleaning/ ​  +
-   +
-# These functions are like normal functions, but as these are always needed one might find a  +
-#  way to globally use them without continuously redefining them +
-  sum               ​s ​  ​s ​  s +
-  diff              s   ​s ​  s +
-  prod              s   ​s ​  s +
-  quot              s   ​s ​  s +
-  pow               ​s ​  ​s ​  s +
-  random ​           s  +
-   +
-  overlap_removal ​  ​l<​v> ​  ​l<​v> ​  ​s ​    v +
-  delta_phi ​        ​v ​     v      s +
-  delta_r ​          ​v ​     v      s +
-  cut_pt ​           l<​v> ​  ​s ​     l<v>  +
-  cut_eta ​          ​l<​v> ​  ​s ​     s     ​l<​v>​ +
-  combine ​          ​l<​v> ​  ​l<​v> ​  ​l<​v>​ +
-  take_leading_n ​   l<​v> ​  ​s ​     l<​v>​ +
-          +
-   +
-   +
-# The Preselection block only trims existing objects or define new objects by applying functions on existing ones. +
-# Syntax: ​  ​new_object function parameter1 ​  ​parameter2 ​ ... +
-# Rules: +
-#     - each function must be defined in the function block +
-#     - parameters must match the parameter type definition in the function block   +
-#     - parameters must be numbers, strings, objects that have been defined in previous lines or in the '​object'​ block +
-#     - Every TLorentzVector function ​ "​Double_t Fun() const" can be accessed by v.fun (eg. v.m, v.pt, v.px, v.costheta +
-#         +
-#     - With vectors one can do +
-#        vectors.n ​  ​returns size +
-#        vectors.3 ​  ​returns the third(!) object in the list +
-#        vectors.8 ​  ​returns a zero object if vectors contains less than 8 entries +
-#     - Cut-Logic should make sure that the last rule does not produce rubbish (see mT example)  +
-#     - objects and functions can have the same name as the syntax does clearly distinguish between the two +
- +
-BLOCK ANALYSISPRESELECTION +
-  # Kinematic Cuts on the loose baseline and the signal objects +
-  jets        cut_pt ​          ​jets ​       20  +
-  jets        cut_eta ​         jets        -2.5       2.5 +
-  elecs_l ​    ​cut_pt ​          ​elecs ​      ​7 ​   +
-  elecs_l ​    ​cut_eta ​         elecs_l ​    ​-2.47 ​     2.47   +
-  elecs_m ​    ​filter_elecs_m ​  ​elecs_l +
-  elecs_m ​    ​cut_pt ​          ​elecs_m ​    ​10 ​  +
-  muons_l ​    ​cut_pt ​          ​muons ​      6  +
-  muons_l ​    ​cut_eta ​         muons       ​-2.4 ​      2.4 +
-  muons_m ​    ​cut_pt ​          ​muons ​      ​10 ​  +
-   +
-  # overlap removals between bjets, nonbjets and leptons +
-  nob_jets ​       filter_no_bjets ​  ​jets ​       70 +
-  b_jets ​         filter_bjets ​     jets        70 +
-  no_bjets ​       overlap_removal ​  ​no_bjets ​   elecs_m ​  0.2 +
-  elecs_m ​        ​overlap_removal ​  ​elecs_m ​    ​no_bjets ​ 0.4 +
-  elecs_m ​        ​overlap_removal ​  ​elecs_m ​    ​bjets ​    0.2 +
-  muons_m ​        ​overlap_removal ​  ​muons_m ​    ​jets ​     0.4 +
-  tau_jets_l ​     filter_taujets ​   "​loose" ​    ​jets ​   +
-  tau_jets ​       filter_taujets ​   "​tight" ​    ​jets ​   +
-  tau_jets ​       overlap_removal ​  ​elec_loose ​ 0.2 +
-   +
-  # choose signal leptons which have to pass isolation conditions +
-  elecs_t ​       cut_pt ​             elecs_m ​  25 +
-  elecs_t ​       filter_tight_elec ​  ​elecs_t ​   +
-  elecs_t ​       filter_iso_rel ​    "​tracks" ​     0.2    0.5   0.1 +
-  mus_mm ​        ​filter_iso_abs ​    "​tracks" ​     0.2    0.5   1.8 +
-   +
-  # combine electrons and muons to leptons +
-  leptons_l ​     combine ​           muons_l ​      ​muons_l +
-  leptons_l ​     cut_pt ​            ​leptons_l ​    10 +
-  leptons ​       combine ​           elecs_t ​      ​muons_m +
-  leptons ​       cut_pt ​            ​leptons ​      25 +
-   +
-  # find the leading 4 jets +
-  leading_jets ​  ​take_leading_n ​    ​jets ​         4 +
-  leading_bjets ​ filter_bjets ​      ​leading_jets ​ 70 +
- +
-  # Calculate some advanced kinematical quantities +
-  HT             ​sum ​        ​jets.1.pt ​  ​jets.2.pt +
-  HT             ​sum ​        ​HT ​         jets.3.pt +
-  HT             ​sum ​        ​HT ​         jets.4.pt +
-  sqrtHT ​        ​sqrt ​       HT +
-  EtoverHT ​      ​quot ​       etmiss.pt ​  ​sqrtHT +
-  dPhi_j1_miss ​  ​dPhi ​       jets.1 ​     etmiss +
-  dPhi_j2_miss ​  ​dPhi ​       jets.2 ​     etmiss +
-  mT             ​mT ​         etmiss ​     leptons.1 +
-  amT2           ​amT2 ​       ?           ? +
-  mHadTop ​       mHadTop ​    ? ​          ? +
-  mT2Tau ​        ​mT2Tau ​     ?           ? +
-  HTMissSig ​     HTMissSig ​  ? ​          ? +
-   +
-  # Find overall efficiency for event +
-  trigeff ​       trigger ​    ​elecs_l ​    ​muons_l ​  ​jets ​  ​etmiss +
-  cleaningeff ​   dataquality elecs_l ​    ​muons_l ​  ​jets ​  ​etmiss ​  +
-  eventeff ​      ​prod ​       trigeff ​    ​cleaningeff ​  +
-  trigrand ​      ​random +
-  .... +
-   +
-# CUT blocks contain combinations of boolean statements +
-# Syntax: +
-#    Variable ​  ​operator ​  ​Value +
-# Rules: +
-#    - operator: ​ <, <=, =, >, >=, != +
-#    - allowed Variables are:  +
-#       - input objects +
-#       - everything defined in the preselection block +
-#       - a preceeding CUT can be condidered as a Boolean +
-#    - functions cannot be used here. If the result of a function is needed, it must be evaluated in the preselection block +
-#    - there can be more than one condition in one CUT. Obviously this means that all conditions have to be fulfilled ​            +
- +
-CUT  common +
-  leptons.n ​  ​= ​  1 +
-  leptons_l.n =   1 +
-  jets.n ​     >=  4 +
-  etmiss.pt ​  > ​  100 +
-   +
-       +
-CUT leadjets_60to25 +
-  jets.1.pt ​  > 60 +
-  jets.2.pt ​  > 60 +
-  jets.3.pt ​  > 40 +
-  jets.4.pt ​  > 25 +
-   +
-CUT leadjets_80to25 +
-  jets.1.pt ​  > 80 +
-  jets.2.pt ​  > 60 +
-  jets.3.pt ​  > 40 +
-  jets.4.pt ​  > 25 +
-   +
-CUT leadjets_100to25 +
-  jets.1.pt ​  > 100 +
-  jets.2.pt ​  > 80 +
-  jets.3.pt ​  > 40 +
-  jets.4.pt ​  > 25 +
-   +
-CUT large-R-jet +
-  fat_jets.n >= 1 +
-  fat_jets.1.m > 75 +
-   +
-CUT dPhi12 +
-  fat_jets.n >= 2   +
-  dPhi_j1_miss ​  > 0.8 +
-  dPhi_j2_miss ​  > 0.8 +
-   +
-CUT tN_diag +
-  common ​         =  True +
-  leadjets_60to25 =  True +
-  leading_bjets.n >= 1 +
-  mT              > 100 +
-  mHadTop ​        > 130 +
-  mHadTop ​        < 205 +
-  taujets.n ​      = 0 +
-  dRbl            < 2.5 +
-  EtoverHT ​       > 5 +
-  dPhi12 ​         = True +
-   +
-  +
-CUT tN_med +
-  common ​         =  True +
-  leadjets_80to25 =  True +
-  leading_bjets.n >= 1 +
-  etmiss.pt ​      > 200 +
-  mT              > 140 +
-  amT2            > 170 +
-  mHadTop ​        > 130 +
-  mHadTop ​        < 195 +
-  HTMissSig ​      > 12.5 +
-  dPhi12 ​         = True +
-   +
-   +
-CUT tN_high +
-  common ​         =  True +
-  leadjets_80to25 =  True +
-  leading_bjets.n >= 1 +
-  etmiss.pt ​      > 320 +
-  mT              > 200 +
-  amT2            > 170 +
-  mT2tau ​         > 120 +
-  mHadTop ​        > 130 +
-  mHadTop ​        < 250 +
-  dRbl            < 3.0 +
-  HtMissSig ​      > 12.5 +
- +
-# Cuts are interpreted as "​remove event if it fails this". However, some conditions might just +
-# apply a weight to the event. These can be stated in the following block +
-# Syntax: +
-#      Cut   ​weight +
-# Rules: +
-#      - Cut must correspond to a CUT block +
-#      - weight must be a scalar, can be a variable though+
  
-BLOCK WEIGHTS +Proposal by Nishita Desai, Suchita Kulkarni & Devdatta Majumder [[2015:groups:tools:​lhaad:​proposal2]]
-  common ​  ​eventeff +
-   +
-      +
-   +
-# BINNING blocks simplify exclusive bin-cuts and easily identify orthogonal regios +
-# Syntax: +
-#    BINNING (somename) +
-#      Cut        (name of cut after which binning is applied) +
-#      Parameter ​ (parameter to bin) +
-#      New-Cutname1 ​  ​bin1_min ​  ​bin1_max +
-#      New-Cutname2 ​  ​bin2_min ​  ​bin2_max +
-#      ... +
-# Rules: +
-#    - Cut and Parameter must be valid, see above +
-#    - New-Cutname1 is a new Cut just like it was defined via a "CUT " block +
-#    - -inf and inf for "​everything less/more than"​ +
-#    - Bins don't have to be orthogonal. Still it is easy to automatically check orthogonality a posteriori +
-     +
-BINNING tN_diag_mT +
-  Cut       ​tN_diag +
-  Parameter mT +
-  tN_diag_g100 ​ 100   125 +
-  tN_diag_g120 ​ 125   150 +
-  tN_diag_g150 ​ 150   inf+
  
-BINNING tN_diag_Etmiss1 +Combined Proposal by ND, SK, DM, DS & JT: [[2015:​groups:​tools:​lhaad:​proposal]]
-  Cut       ​tN_diag_g100 +
-  Parameter mT +
-  tN_diag_g100_g60 ​  ​60 ​  90 +
-  tN_diag_g100_g90 ​  ​90 ​  120 +
-  tN_diag_g100_g120 ​ 120  150 +
-  tN_diag_g100_g140 ​ 150  inf+
  
-BINNING tN_diag_Etmiss2 +Proposal to use HEPDATA format for the experiment data section. HEPDATA (https://​hepdata.net/​) format has recently changed, both old and new formats are text file. New format: https://​github.com/​HEPData/​hepdata-submission (Old format: http://​hepdata.cedar.ac.uk/​submittingdata , see "​simple input file"​).
-  Cut                tN_diag_g125 +
-  Parameter ​         mT +
-  tN_diag_g125_g60 ​  ​60 ​  90 +
-  tN_diag_g125_g90 ​  ​90 ​  120 +
-  tN_diag_g125_g120 ​ 120  150 +
-  tN_diag_g125_g140 ​ 150  inf+
  
-BINNING tN_diag_Etmiss3 
-  Cut                tN_diag_g150 
-  Parameter ​         mT 
-  tN_diag_g150_g60 ​  ​60 ​  90 
-  tN_diag_g150_g90 ​  ​90 ​  120 
-  tN_diag_g150_g120 ​ 120  150 
-  tN_diag_g150_g140 ​ 150  inf 
  
 +Agreements:
 +  * Binned information should have a simple way to cut it
 +  * Cuts must not branch but instead can use a common '​predecessor'​
 +  * Syntax must not contain brackets to allow for an easy parsing
 +  * ...
  
-# Experimental Results are written in the following block +To Be Discussed Isues:   
-# Syntax: +  ​* Format 
-#    SRname ​ Obs   ​Bkg ​  ​Bkgerr1 ​  ​Bkgerr2 ​ Bkgerr3 ... +  ​* Definition of '​detector constructed'​ objects like jets, electrons, etc 
-# Rules: +  ​* How to enforce documentation of the used objects 
-#    Each SRname must correspond to a cut from above +  ​* How to enforce documentation of validation material 
-BLOCK ExpResults: +  ​...
-  ​tN_diag_g100_g60 ​  ​3452 ​  ​3452 ​  59 +
-  ​tN_diag_g100_g90 ​  ​1712 ​  ​1720 ​  ​161 ​   ​ +
-  ​tN_diag_g100_g120 ​ 313    295    50 +
-  ​tN_diag_g100_g140 ​ 201    235    34 +
-  ​tN_diag_g125_g60 ​  ​2018 ​  ​2018 ​  45  +
-  tN_diag_g125_g90 ​  ​768 ​   767    80 +
-  tN_diag_g125_g120 ​ 117    136    22 +
-  tN_diag_g125_g140 ​ 163    152    30 +
-  tN_diag_g150_g60 ​  ​2543 ​  ​2543 ​  ​50 ​  +
-  tN_diag_g150_g90 ​  ​647 ​   684    79 +
-  tN_diag_g150_g120 ​ 98     ​13 ​    101 +
-  tN_diag_g150_g140 ​ 217    236    29 +
-  tN_med ​            ​12 ​    13.0   2.2 +
-  tN_high ​           5      5.0    1.0+
  
-# Cutflows show events after consecutive evaluation of conditions +Suggestion
-# Syntax+  ​* AcronymLHADA (Les Houches Analysis Description Accordand not LHAAD 
-#    Parameter Operator Value   ​EventsAfterCut1 ​  ​Uncertainty ​  "​Description in LateX Format"​ +  ​* Information about benchmark points 
-# Rules: +  ​* Information about process generation needs to be added (merging parametersgenerated processlink SLHA file if neededlink to model files etc.)
-#    - Parameter operator Value combinations:​ See above +
-#    - Cuts are applied one after another +
-#    -  +
-    +
-CUT mHadTopRange +
-    mHadTop ​        > 130 +
-    mHadTop ​        < 205    +
-     +
-CUTFLOW ​ tN_diag_echannel ​  +
-    # Simplified Model, X -> Y Z +
-    # m_X = ... +
-    # m_Y = ... +
-    # m_Z = ... +
-    # HepData entry ​http://​hep.data/​link/​123 +
-    True             ​= ​ True     ​200000 ​  ​0 ​  "​Initial Events"​ +
-    trigrand ​        < ​ trigeff ​ 113762 ​  ? ​  "​Trigger"​ +
-    leptons_l.n ​     =  1        28785    ?   "​Lepton ​(exactly 1 baseline)" +
-    ​leptons.n ​       =  1        19875    ?   "​Lepton (exactly 1 signal)"​ +
-    ​jets.n ​         >=  3        17959    ?   "​At least 3 jets $\geq$ 25 GeV" +
-    jets.n ​         >=  4        13682    ?   "​At least 4 jets $\geq$ 25 GeV" +
-    jets.1.pt ​      >​= ​ 60       ​12804 ​   ?   "​jet1pt $\geq$ 60" +
-    jets.2.pt ​      >​= ​ 60       ​9489 ​    ? ​  "​jet2pt $\geq$ 60" +
-    jets.3.pt ​      >​= ​ 40       ​8556 ​    ? ​  "​jet3pt $\geq$ 40" +
-    leading_bjets.n >=  1        7192     ? ​  "​btag(70) >= 1" +
-    dPhi_j1_miss ​   >=  0.8      6611     ? ​  "​dPhi(jet1etmiss) >= 0.8" +
-    dPhi_j1_miss ​   >=  0.8      5147     ? ​  "​dPhi(jet2etmiss) >= 0.8" +
-    etmiss.pt ​      >​= ​ 150      1314     ? ​  "​Etmiss >= 150" +
-    EtoverHT ​       >=  5        1314     ? ​  "​Etmiss/​sqrtHT >= 5" +
-    mT              >=  140      446      ?   "​mT >= 140 GeV" +
-    mHadTopRange ​   =   ​True ​    ​283 ​     ?   "​mHadTop in 130205" +
-    taujets_l.n     ​= ​  ​0 ​       257      ?   "​veto on loose Taus"​ +
-</​code>​+
2015/groups/tools/lhaad.txt · Last modified: 2016/02/26 10:18 by daniel.schmeier