Fork me on GitHub

Changes in / [9666d3b:6f96f62] in git


Ignore:
Files:
2 added
9 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r9666d3b r6f96f62  
    12571257        external/fastjet/Voronoi.$(SrcSuf) \
    12581258        external/fastjet/internal/Voronoi.hh
     1259tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf): \
     1260        external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf)
    12591261tmp/external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(ObjSuf): \
    12601262        external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(SrcSuf)
     
    12871289tmp/external/fastjet/contribs/SoftKiller/SoftKiller.$(ObjSuf): \
    12881290        external/fastjet/contribs/SoftKiller/SoftKiller.$(SrcSuf)
    1289 tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf): \
    1290         external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(SrcSuf) \
    1291         external/fastjet/NNH.hh
    12921291tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf): \
    12931292        external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(SrcSuf) \
     
    14201419        external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh \
    14211420        external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh \
     1421        external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \
    14221422        external/fastjet/contribs/Nsubjettiness/Nsubjettiness.hh \
    14231423        external/fastjet/contribs/Nsubjettiness/Njettiness.hh \
    14241424        external/fastjet/contribs/Nsubjettiness/NjettinessPlugin.hh \
    14251425        external/fastjet/contribs/Nsubjettiness/ExtraRecombiners.hh \
    1426         external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \
    14271426        external/fastjet/tools/Filter.hh \
    14281427        external/fastjet/tools/Pruner.hh \
     
    14481447        external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh \
    14491448        external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh \
     1449        external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \
    14501450        external/fastjet/contribs/Nsubjettiness/Nsubjettiness.hh \
    14511451        external/fastjet/contribs/Nsubjettiness/Njettiness.hh \
     
    15051505        tmp/external/fastjet/TilingExtent.$(ObjSuf) \
    15061506        tmp/external/fastjet/Voronoi.$(ObjSuf) \
     1507        tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf) \
    15071508        tmp/external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(ObjSuf) \
    15081509        tmp/external/fastjet/contribs/Nsubjettiness/ExtraRecombiners.$(ObjSuf) \
     
    15181519        tmp/external/fastjet/contribs/RecursiveTools/SoftDrop.$(ObjSuf) \
    15191520        tmp/external/fastjet/contribs/SoftKiller/SoftKiller.$(ObjSuf) \
    1520         tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf) \
    15211521        tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf) \
    15221522        tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf) \
     
    18801880        @touch $@
    18811881
    1882 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh: \
    1883         external/fastjet/JetDefinition.hh \
    1884         external/fastjet/ClusterSequence.hh
    1885         @touch $@
    1886 
    18871882external/fastjet/RectangularGrid.hh: \
    18881883        external/fastjet/PseudoJet.hh \
     
    19031898        @touch $@
    19041899
    1905 <<<<<<< HEAD
    19061900
    19071901external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh: \
     
    19101904        @touch $@
    19111905
    1912 =======
    1913 >>>>>>> upstream/master
    19141906external/fastjet/contribs/Nsubjettiness/NjettinessPlugin.hh: \
    19151907        external/fastjet/ClusterSequence.hh \
  • README.md

    r9666d3b r6f96f62  
    55
    66More details can be found on the Delphes website http://cp3.irmp.ucl.ac.be/projects/delphes
    7 
    8 Quick start with Delphes
    9 ========================
    10 
    11 Commands to get the code:
    12 
    13 ```
    14    wget http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.1.tar.gz
    15 
    16    tar -zxf Delphes-3.4.1.tar.gz
    17 ```
    18 
    19 Commands to compile the code:
    20 
    21 ```
    22    cd Delphes-3.4.1
    23 
    24    make
    25 ```
    26 
    27 Finally, we can run Delphes:
    28 
    29 ```
    30    ./DelphesHepMC
    31 ```
    32 
    33 Command line parameters:
    34 
    35 ```
    36    ./DelphesHepMC config_file output_file [input_file(s)]
    37      config_file - configuration file in Tcl format
    38      output_file - output file in ROOT format,
    39      input_file(s) - input file(s) in HepMC format,
    40      with no input_file, or when input_file is -, read standard input.
    41 ```
    42 
    43 Let's simulate some Z->ee events:
    44 
    45 ```
    46    wget http://cp3.irmp.ucl.ac.be/downloads/z_ee.hep.gz
    47    gunzip z_ee.hep.gz
    48    ./DelphesSTDHEP cards/delphes_card_CMS.tcl delphes_output.root z_ee.hep
    49 ```
    50 
    51 or
    52 
    53 ```
    54    curl -s http://cp3.irmp.ucl.ac.be/downloads/z_ee.hep.gz | gunzip | ./DelphesSTDHEP cards/delphes_card_CMS.tcl delphes_output.root
    55 ```
    56 
    57 For more detailed documentation, please visit https://cp3.irmp.ucl.ac.be/projects/delphes/wiki/WorkBook
    58 
    59 Configure Delphes on lxplus.cern.ch
    60 ====================================
    61 
    62 ```
    63 git clone git://github.com/delphes/delphes.git Delphes
    64 
    65 cd Delphes
    66 
    67 source  /afs/cern.ch/sw/lcg/external/gcc/4.9.3/x86_64-slc6/setup.sh
    68 
    69 source /afs/cern.ch/sw/lcg/app/releases/ROOT/6.06.00/x86_64-slc6-gcc49-opt/root/bin/thisroot.sh
    70 
    71 make
    72 ```
    73 
    74 Simple analysis using TTree::Draw
    75 =================================
    76 
    77 Now we can start [ROOT](root.cern) and look at the data stored in the output ROOT file.
    78 
    79 Start ROOT and load Delphes shared library:
    80 
    81 ```
    82    root -l
    83    gSystem->Load("libDelphes");
    84 ```
    85 
    86 Open ROOT file and do some basic analysis using Draw or TBrowser:
    87 
    88 ```
    89    TFile::Open("delphes_output.root");
    90    Delphes->Draw("Electron.PT");
    91    TBrowser browser;
    92 ```
    93 
    94 Notes:
    95 * ```Delphes``` is the tree name. It can be learned e.g. from TBrowser.
    96 * ```Electron```is the branch name; ```PT``` is a variable (leaf) of this branch.
    97 
    98 Complete description of all branches can be found in [doc/RootTreeDescription.html](doc/RootTreeDescription.html).
    99 This information is also available [in the workbook](https://cp3.irmp.ucl.ac.be/projects/delphes/wiki/WorkBook/RootTreeDescription).
    100 
    101 Macro-based analysis
    102 ====================
    103 
    104 Analysis macro consists of histogram booking, event loop (histogram filling),
    105 histogram display.
    106 
    107 Start ROOT and load Delphes shared library:
    108 
    109 ```
    110    root -l
    111    gSystem->Load("libDelphes");
    112 ```
    113 
    114 Basic analysis macro:
    115 
    116 ```
    117 {
    118   // Create chain of root trees
    119   TChain chain("Delphes");
    120   chain.Add("delphes_output.root");
    121  
    122   // Create object of class ExRootTreeReader
    123   ExRootTreeReader *treeReader = new ExRootTreeReader(&chain);
    124   Long64_t numberOfEntries = treeReader->GetEntries();
    125  
    126   // Get pointers to branches used in this analysis
    127   TClonesArray *branchElectron = treeReader->UseBranch("Electron");
    128 
    129   // Book histograms
    130   TH1 *histElectronPT = new TH1F("electron pt", "electron P_{T}", 50, 0.0, 100.0);
    131 
    132   // Loop over all events
    133   for(Int_t entry = 0; entry < numberOfEntries; ++entry)
    134   {
    135 
    136     // Load selected branches with data from specified event
    137     treeReader->ReadEntry(entry);
    138  
    139     // If event contains at least 1 electron
    140     if(branchElectron->GetEntries() > 0)
    141     {
    142       // Take first electron
    143       Electron *electron = (Electron*) branchElectron->At(0);
    144      
    145       // Plot electron transverse momentum
    146       histElectronPT->Fill(electron->PT);
    147      
    148       // Print electron transverse momentum
    149       cout << electron->PT << endl;
    150     }
    151 
    152   }
    153 
    154   // Show resulting histograms
    155   histElectronPT->Draw();
    156 }
    157 ```
    158 
    159 More advanced macro-based analysis
    160 ==================================
    161 
    162 The 'examples' directory contains ROOT macros [Example1.C](examples/Example1.C), [Example2.C](examples/Example2.C) and [Example3.C](examples/Example3.C).
    163 
    164 Here are the commands to run these ROOT macros:
    165 
    166 ```
    167    root -l
    168    .X examples/Example1.C("delphes_output.root");
    169 ```
    170 
    171 or
    172 
    173 ```
    174    root -l examples/Example1.C'("delphes_output.root")'
    175 ```
  • cards/CMS_PhaseII/CMS_PhaseII_200PU_v03.tcl

    r9666d3b r6f96f62  
    603603
    604604  set PhiBins {}
    605   for {set i -45} {$i <= 45} {incr i} {
    606     add PhiBins [expr {$i * $pi/45.0}]
     605  for {set i -180} {$i <= 180} {incr i} {
     606    add PhiBins [expr {$i * $pi/180.0}]
    607607  }
    608608
    609609  # 0.02 unit in eta up to eta = 3
    610   for {set i 1} {$i <= 21} {incr i} {
    611     set eta [expr { -2.958 + $i * 0.0696}]
     610  for {set i 1} {$i <= 84} {incr i} {
     611    set eta [expr { -2.958 + $i * 0.0174}]
    612612    add EtaPhiBins $eta $PhiBins
    613613  }
    614614
    615   for {set i 1} {$i <= 21} {incr i} {
    616     set eta [expr { 1.4964 + $i * 0.0696}]
     615  for {set i 1} {$i <= 84} {incr i} {
     616    set eta [expr { 1.4964 + $i * 0.0174}]
    617617    add EtaPhiBins $eta $PhiBins
    618618  }
     
    13301330  # efficiency formula for electrons
    13311331  # efficiency for low pT leptons is set artifically to 100%. Analyzers should rescale according to proper lepton Id       
    1332     set EfficiencyFormula {
    1333                           (pt <= 4.0) * (0.00) +
    1334                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 4.0 && pt <= 6.0) * (0.018) +
    1335                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 6.0 && pt <= 8.0) * (0.252) +
    1336                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 8.0 && pt <= 10.0) * (0.480) +
    1337                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 10.0 && pt <= 20.0) * (0.681) +
    1338                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 20.0 && pt <= 35.0) * (0.792) +
    1339                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 35.0 && pt <= 50.0) * (0.862) +
    1340                           (abs(eta) > 0.0 && abs(eta) <= 0.5) * (pt > 50.0 && pt <= 14000.0) * (0.859) +
    1341                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 4.0 && pt <= 6.0) * (0.016) +
    1342                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 6.0 && pt <= 8.0) * (0.198) +
    1343                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 8.0 && pt <= 10.0) * (0.446) +
    1344                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 10.0 && pt <= 20.0) * (0.598) +
    1345                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 20.0 && pt <= 35.0) * (0.759) +
    1346                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 35.0 && pt <= 50.0) * (0.847) +
    1347                           (abs(eta) > 0.5 && abs(eta) <= 1.0) * (pt > 50.0 && pt <= 14000.0) * (0.872) +
    1348                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 4.0 && pt <= 6.0) * (0.005) +
    1349                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 6.0 && pt <= 8.0) * (0.029) +
    1350                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 8.0 && pt <= 10.0) * (0.108) +
    1351                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 10.0 && pt <= 20.0) * (0.289) +
    1352                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 20.0 && pt <= 35.0) * (0.570) +
    1353                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 35.0 && pt <= 50.0) * (0.743) +
    1354                           (abs(eta) > 1.0 && abs(eta) <= 1.45) * (pt > 50.0 && pt <= 14000.0) * (0.828) +
    1355                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 4.0 && pt <= 6.0) * (0.026) +
    1356                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 6.0 && pt <= 8.0) * (0.045) +
    1357                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 8.0 && pt <= 10.0) * (0.133) +
    1358                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 10.0 && pt <= 20.0) * (0.411) +
    1359                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 20.0 && pt <= 35.0) * (0.629) +
    1360                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 35.0 && pt <= 50.0) * (0.761) +
    1361                           (abs(eta) > 1.45 && abs(eta) <= 1.55) * (pt > 50.0 && pt <= 14000.0) * (0.752) +
    1362                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 4.0 && pt <= 6.0) * (0.061) +
    1363                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 6.0 && pt <= 8.0) * (0.191) +
    1364                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 8.0 && pt <= 10.0) * (0.337) +
    1365                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 10.0 && pt <= 20.0) * (0.475) +
    1366                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 20.0 && pt <= 35.0) * (0.605) +
    1367                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 35.0 && pt <= 50.0) * (0.713) +
    1368                           (abs(eta) > 1.55 && abs(eta) <= 2.0) * (pt > 50.0 && pt <= 14000.0) * (0.794) +
    1369                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 4.0 && pt <= 6.0) * (0.100) +
    1370                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 6.0 && pt <= 8.0) * (0.223) +
    1371                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 8.0 && pt <= 10.0) * (0.427) +
    1372                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 10.0 && pt <= 20.0) * (0.590) +
    1373                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 20.0 && pt <= 35.0) * (0.720) +
    1374                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 35.0 && pt <= 50.0) * (0.800) +
    1375                           (abs(eta) > 2.0 && abs(eta) <= 2.5) * (pt > 50.0 && pt <= 14000.0) * (0.840) +
    1376                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 4.0 && pt <= 6.0) * (0.049) +
    1377                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 6.0 && pt <= 8.0) * (0.152) +
    1378                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 8.0 && pt <= 10.0) * (0.436) +
    1379                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 10.0 && pt <= 20.0) * (0.679) +
    1380                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 20.0 && pt <= 35.0) * (0.778) +
    1381                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 35.0 && pt <= 50.0) * (0.830) +
    1382                           (abs(eta) > 2.5 && abs(eta) <= 3.0) * (pt > 50.0 && pt <= 14000.0) * (0.919) +
    1383                           (abs(eta) > 3.0) * (0.00)
    1384       }
     1332  set EfficiencyFormula {
     1333                                      (pt <= 4.0)  * (1.00) + \
     1334                         (abs(eta) <= 1.45 ) * (pt >  4.0 && pt <= 6.0)   * (0.50) + \
     1335                         (abs(eta) <= 1.45 ) * (pt >  6.0 && pt <= 8.0)   * (0.70) + \
     1336                         (abs(eta) <= 1.45 ) * (pt >  8.0 && pt <= 10.0)  * (0.85) + \
     1337                         (abs(eta) <= 1.45 ) * (pt > 10.0 && pt <= 30.0)  * (0.94) + \
     1338                         (abs(eta) <= 1.45 ) * (pt > 30.0 && pt <= 50.0)  * (0.97) + \
     1339                         (abs(eta) <= 1.45 ) * (pt > 50.0 && pt <= 70.0)  * (0.98) + \
     1340                         (abs(eta) <= 1.45 ) * (pt > 70.0 )  * (1.0) + \
     1341                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt >  4.0 && pt <= 10.0)   * (0.35) + \
     1342                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 10.0 && pt <= 30.0)   * (0.40) + \
     1343                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 30.0 && pt <= 70.0)   * (0.45) + \
     1344                         (abs(eta) > 1.45  && abs(eta) <= 1.55) * (pt > 70.0 )  * (0.55) + \
     1345                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt >  4.0 && pt <= 10.0)  * (0.75) + \
     1346                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 10.0 && pt <= 30.0)  * (0.85) + \
     1347                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 30.0 && pt <= 50.0)  * (0.95) + \
     1348                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 50.0 && pt <= 70.0)  * (0.95) + \
     1349                         (abs(eta) >= 1.55 && abs(eta) <= 2.0 ) * (pt > 70.0 )  * (1.0) + \
     1350                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt >  4.0 && pt <= 10.0)  * (0.65) + \
     1351                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 10.0 && pt <= 30.0)  * (0.75) + \
     1352                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 30.0 && pt <= 50.0)  * (0.90) + \
     1353                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 50.0 && pt <= 70.0)  * (0.90) + \
     1354                         (abs(eta) >= 2.0 && abs(eta) <= 2.5 ) * (pt > 70.0 )  * (0.90) + \
     1355                         (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 4.0 && pt <= 10.0) * (0.65) + \
     1356                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 10.0 && pt <= 30.0) * (0.75) + \
     1357                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 30.0 && pt <= 50.0) * (0.90) + \
     1358                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 50.0 && pt <= 70.0) * (0.90) + \
     1359                                          (abs(eta) > 2.5 && abs(eta) <= 4.0 ) * (pt > 70.0 ) * (0.90) + \
     1360                                          (abs(eta) > 4.0) * (0.00)
     1361
     1362  }
    13851363}
    13861364
  • cards/delphes_card_ATLAS_PileUp.tcl

    r9666d3b r6f96f62  
    360360}
    361361
     362
    362363####################
    363364# Energy flow merger
     
    377378
    378379module PdgCodeFilter EFlowFilter {
    379   set InputArray EFlowMerger/eflow
     380  set InputArray EFlowMergerAllTracks/eflow
    380381  set OutputArray eflow
    381382 
  • modules/Delphes.cc

    r9666d3b r6f96f62  
    7878Delphes::~Delphes()
    7979{
     80  if(fFactory) delete fFactory;
    8081  TFolder *folder = GetFolder();
    8182  if(folder)
     
    8485    delete folder;
    8586  }
    86   if(fFactory) delete fFactory;
    8787}
    8888
  • modules/StatusPidFilter.cc

    r9666d3b r6f96f62  
    5050
    5151using namespace std;
    52 
    53 namespace {
    54   // integer power (faster than TMath::Pow() + cast to integer)
    55   int ipow(int base, int exp)
    56   {
    57       int result = 1;
    58       while (exp)
    59       {
    60           if (exp & 1)
    61               result *= base;
    62           exp >>= 1;
    63           base *= base;
    64       }
    65 
    66       return result;
    67   }
    68 
    69   // standalone function to extract the i-th digit from a number (counting from 0 = rightmost, etc..)
    70   int digit(int val, int i)
    71   {
    72       int y    = ipow(10,i);
    73       int z    = val/y;
    74       int val2 = val / (y * 10);
    75       return (z - val2*10);
    76   }
    77 
    78   //  return the first two digits if this is a "fundamental" particle
    79   //  ID = 100 is a special case (internal generator ID's are 81-100)
    80   //  also, 101 and 102 are now used (by HepPID) for geantinos
    81   int fundamentalID(int pdgCode)
    82   {
    83       pdgCode = abs(pdgCode);
    84       if( ( digit(pdgCode, 9) == 1 ) && ( digit(pdgCode, 8) == 0 ) ) { return 0; }
    85       if( digit(pdgCode, 2) == 0 && digit(pdgCode, 3) == 0) {
    86           return pdgCode%10000;
    87       } else if( pdgCode <= 102 ) {
    88           return pdgCode;
    89       } else {
    90           return 0;
    91       }
    92   }
    93 
    94   bool hasBottom(int pdgCode)
    95   {
    96       if ( (pdgCode/10000000) > 0)
    97         return false;
    98       if (pdgCode <= 100)
    99         return false;
    100       if (fundamentalID(pdgCode) <= 100 && fundamentalID(pdgCode) > 0)
    101         return false;
    102       if( digit(pdgCode, 3) == 5 || digit(pdgCode, 2) == 5 || digit(pdgCode, 1) == 5 )
    103         return true;     
    104       return false;
    105   }
    106 
    107   bool isTauDaughter(int pdgCode, int M1, const TObjArray *fInputArray){
    108     //not needed, just to speed up the code - can be further refined but gives only negligible improvement:
    109     if ( pdgCode==15 || pdgCode<11 || (pdgCode > 22 && pdgCode < 100) || pdgCode>1000 )
    110       return false;
    111 
    112     if ( M1 < 0 )
    113       return false;
    114 
    115     Candidate *mother;
    116     mother = static_cast<Candidate*>(fInputArray->At( M1 ));
    117     if ( TMath::Abs(mother->PID) == 15 )
    118       return true;
    119 
    120     return false;
    121   }
    122 
    123 }
    124 
    12552
    12653//------------------------------------------------------------------------------
     
    190117    if(pdgCode > 22 && pdgCode < 43) pass = kTRUE;
    191118
    192     //Stable photons
    193     if(pdgCode == 22 && status==1) pass = kTRUE;
    194 
    195     // logic ported from HepPDF: http://lcgapp.cern.ch/project/simu/HepPDT/HepPDT.2.05.02/html/ParticleID_8cc-source.html#l00081
    196     bool is_b_hadron = hasBottom(pdgCode);
    197     bool is_b_quark  = (pdgCode == 5);
    198 
    199     bool is_tau_daughter = isTauDaughter(pdgCode, candidate->M1, fInputArray);
    200 
    201     if (is_b_hadron)
    202       pass = kTRUE;
    203 
    204     if (is_tau_daughter)
    205       pass = kTRUE;
    206 
    207     // fPTMin not applied to b_hadrons / b_quarks to allow for b-enriched sample stitching
    208     // fPTMin not applied to tau decay products to allow visible-tau four momentum determination
    209     if(!pass || (candidate->Momentum.Pt() < fPTMin && !(is_b_hadron || is_b_quark || is_tau_daughter)) ) continue;
     119    if(!pass || candidate->Momentum.Pt() < fPTMin) continue;
    210120
    211121    fOutputArray->Add(candidate);
  • modules/TreeWriter.cc

    r9666d3b r6f96f62  
    376376    rapidity = (cosTheta == 1.0 ? signz*999.9 : momentum.Rapidity());
    377377
    378     entry->P = p;
    379378    entry->PT  = pt;
    380379    entry->Eta = eta;
  • readers/DelphesROOT.cpp

    r9666d3b r6f96f62  
    126126    confReader = new ExRootConfReader;
    127127    confReader->ReadFile(argv[1]);
     128   
     129    maxEvents = confReader->GetInt("::MaxEvents", 0);
    128130
    129131    if(maxEvents < 0)
     
    176178      {
    177179   
     180        if(entry >= maxEvents) break;
    178181        treeReader->ReadEntry(entry);
    179 
     182       
    180183        // -- TBC need also to include event weights -- 
    181184       
Note: See TracChangeset for help on using the changeset viewer.