Changeset 9666d3b in git
- Timestamp:
- Apr 11, 2018, 4:19:18 PM (7 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- 6ba7847
- Parents:
- 6f96f62 (diff), a670493 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 9 added
- 2 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r6f96f62 r9666d3b 1257 1257 external/fastjet/Voronoi.$(SrcSuf) \ 1258 1258 external/fastjet/internal/Voronoi.hh 1259 tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf): \1260 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf)1261 1259 tmp/external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(ObjSuf): \ 1262 1260 external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(SrcSuf) … … 1289 1287 tmp/external/fastjet/contribs/SoftKiller/SoftKiller.$(ObjSuf): \ 1290 1288 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 1291 1292 tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf): \ 1292 1293 external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(SrcSuf) \ … … 1419 1420 external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh \ 1420 1421 external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh \ 1421 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \1422 1422 external/fastjet/contribs/Nsubjettiness/Nsubjettiness.hh \ 1423 1423 external/fastjet/contribs/Nsubjettiness/Njettiness.hh \ 1424 1424 external/fastjet/contribs/Nsubjettiness/NjettinessPlugin.hh \ 1425 1425 external/fastjet/contribs/Nsubjettiness/ExtraRecombiners.hh \ 1426 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \ 1426 1427 external/fastjet/tools/Filter.hh \ 1427 1428 external/fastjet/tools/Pruner.hh \ … … 1447 1448 external/fastjet/plugins/CDFCones/fastjet/CDFMidPointPlugin.hh \ 1448 1449 external/fastjet/plugins/CDFCones/fastjet/CDFJetCluPlugin.hh \ 1449 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh \1450 1450 external/fastjet/contribs/Nsubjettiness/Nsubjettiness.hh \ 1451 1451 external/fastjet/contribs/Nsubjettiness/Njettiness.hh \ … … 1505 1505 tmp/external/fastjet/TilingExtent.$(ObjSuf) \ 1506 1506 tmp/external/fastjet/Voronoi.$(ObjSuf) \ 1507 tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf) \1508 1507 tmp/external/fastjet/contribs/Nsubjettiness/AxesDefinition.$(ObjSuf) \ 1509 1508 tmp/external/fastjet/contribs/Nsubjettiness/ExtraRecombiners.$(ObjSuf) \ … … 1519 1518 tmp/external/fastjet/contribs/RecursiveTools/SoftDrop.$(ObjSuf) \ 1520 1519 tmp/external/fastjet/contribs/SoftKiller/SoftKiller.$(ObjSuf) \ 1520 tmp/external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.$(ObjSuf) \ 1521 1521 tmp/external/fastjet/plugins/ATLASCone/ATLASConePlugin.$(ObjSuf) \ 1522 1522 tmp/external/fastjet/plugins/ATLASCone/Jet.$(ObjSuf) \ … … 1880 1880 @touch $@ 1881 1881 1882 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh: \ 1883 external/fastjet/JetDefinition.hh \ 1884 external/fastjet/ClusterSequence.hh 1885 @touch $@ 1886 1882 1887 external/fastjet/RectangularGrid.hh: \ 1883 1888 external/fastjet/PseudoJet.hh \ … … 1898 1903 @touch $@ 1899 1904 1905 <<<<<<< HEAD 1900 1906 1901 1907 external/fastjet/contribs/ValenciaPlugin/ValenciaPlugin.hh: \ … … 1904 1910 @touch $@ 1905 1911 1912 ======= 1913 >>>>>>> upstream/master 1906 1914 external/fastjet/contribs/Nsubjettiness/NjettinessPlugin.hh: \ 1907 1915 external/fastjet/ClusterSequence.hh \ -
README.md
r6f96f62 r9666d3b 5 5 6 6 More 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
r6f96f62 r9666d3b 603 603 604 604 set PhiBins {} 605 for {set i - 180} {$i <= 180} {incr i} {606 add PhiBins [expr {$i * $pi/ 180.0}]605 for {set i -45} {$i <= 45} {incr i} { 606 add PhiBins [expr {$i * $pi/45.0}] 607 607 } 608 608 609 609 # 0.02 unit in eta up to eta = 3 610 for {set i 1} {$i <= 84} {incr i} {611 set eta [expr { -2.958 + $i * 0.0 174}]610 for {set i 1} {$i <= 21} {incr i} { 611 set eta [expr { -2.958 + $i * 0.0696}] 612 612 add EtaPhiBins $eta $PhiBins 613 613 } 614 614 615 for {set i 1} {$i <= 84} {incr i} {616 set eta [expr { 1.4964 + $i * 0.0 174}]615 for {set i 1} {$i <= 21} {incr i} { 616 set eta [expr { 1.4964 + $i * 0.0696}] 617 617 add EtaPhiBins $eta $PhiBins 618 618 } … … 1330 1330 # efficiency formula for electrons 1331 1331 # 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) * (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 } 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 } 1363 1385 } 1364 1386 -
cards/delphes_card_ATLAS_PileUp.tcl
r6f96f62 r9666d3b 360 360 } 361 361 362 363 362 #################### 364 363 # Energy flow merger … … 378 377 379 378 module PdgCodeFilter EFlowFilter { 380 set InputArray EFlowMerger AllTracks/eflow379 set InputArray EFlowMerger/eflow 381 380 set OutputArray eflow 382 381 -
modules/Delphes.cc
r6f96f62 r9666d3b 78 78 Delphes::~Delphes() 79 79 { 80 if(fFactory) delete fFactory;81 80 TFolder *folder = GetFolder(); 82 81 if(folder) … … 85 84 delete folder; 86 85 } 86 if(fFactory) delete fFactory; 87 87 } 88 88 -
modules/StatusPidFilter.cc
r6f96f62 r9666d3b 51 51 using namespace std; 52 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 125 53 126 //------------------------------------------------------------------------------ 54 127 … … 117 190 if(pdgCode > 22 && pdgCode < 43) pass = kTRUE; 118 191 119 if(!pass || candidate->Momentum.Pt() < fPTMin) continue; 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; 120 210 121 211 fOutputArray->Add(candidate); -
modules/TreeWriter.cc
r6f96f62 r9666d3b 376 376 rapidity = (cosTheta == 1.0 ? signz*999.9 : momentum.Rapidity()); 377 377 378 entry->P = p; 378 379 entry->PT = pt; 379 380 entry->Eta = eta; -
readers/DelphesROOT.cpp
r6f96f62 r9666d3b 126 126 confReader = new ExRootConfReader; 127 127 confReader->ReadFile(argv[1]); 128 129 maxEvents = confReader->GetInt("::MaxEvents", 0);130 128 131 129 if(maxEvents < 0) … … 178 176 { 179 177 180 if(entry >= maxEvents) break;181 178 treeReader->ReadEntry(entry); 182 179 183 180 // -- TBC need also to include event weights -- 184 181
Note:
See TracChangeset
for help on using the changeset viewer.