- Timestamp:
- Dec 21, 2014, 4:03:35 PM (10 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- d77b51d
- Parents:
- 7f12612 (diff), e5767b57 (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. - Location:
- modules
- Files:
-
- 1 deleted
- 71 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/AngularSmearing.cc
r7f12612 rd870fc5 1 /* 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 1 19 2 20 /** \class AngularSmearing 3 21 * 4 22 * Performs transverse angular resolution smearing. 5 *6 * $Date: 2014-06-17 16:58:53 +0100 $7 *8 *9 23 * 10 24 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/AngularSmearing.h
r7f12612 rd870fc5 1 /* 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 5 * This program is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 1 19 #ifndef AngularSmearing_h 2 20 #define AngularSmearing_h … … 5 23 * 6 24 * Performs transverse angular resolution smearing. 7 *8 * $Date: 2014-06-17 16:58:53 +0100 $9 *10 *11 25 * 12 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/BTagging.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * applies b-tagging efficiency (miss identification rate) formulas 24 24 * and sets b-tagging flags 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/BTagging.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 25 25 * applies b-tagging efficiency (miss identification rate) formulas 26 26 * and sets b-tagging flags 27 *28 * $Date$29 * $Revision$30 *31 27 * 32 28 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Calorimeter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 22 22 * Fills calorimeter towers, performs calorimeter resolution smearing, 23 23 * and creates energy flow objects (tracks, photons, and neutral hadrons). 24 *25 * $Date$26 * $Revision$27 *28 24 * 29 25 * \author P. Demin - UCL, Louvain-la-Neuve … … 86 82 { 87 83 ExRootConfParam param, paramEtaBins, paramPhiBins, paramFractions; 88 Long_t i, j, k, size, sizeEtaBins, sizePhiBins , sizeFractions;84 Long_t i, j, k, size, sizeEtaBins, sizePhiBins; 89 85 Double_t ecalFraction, hcalFraction; 90 86 TBinMap::iterator itEtaBin; … … 139 135 { 140 136 paramFractions = param[i*2 + 1]; 141 sizeFractions = paramFractions.GetSize();142 137 143 138 ecalFraction = paramFractions[0].GetDouble(); … … 146 141 fFractionMap[param[i*2].GetInt()] = make_pair(ecalFraction, hcalFraction); 147 142 } 143 148 144 /* 149 145 TFractionMap::iterator itFractionMap; … … 155 151 156 152 // read min E value for towers to be saved 157 fEcalEnergyMin = GetDouble("EcalTowerMinEnergy", 0.0); 158 fHcalEnergyMin = GetDouble("HcalTowerMinEnergy", 0.0); 159 160 fEcalSigmaMin = GetDouble("EcalTowerMinSignificance", 0.0); 161 fHcalSigmaMin = GetDouble("HcalTowerMinSignificance", 0.0); 162 163 153 fECalEnergyMin = GetDouble("ECalEnergyMin", 0.0); 154 fHCalEnergyMin = GetDouble("HCalEnergyMin", 0.0); 155 156 fECalEnergySignificanceMin = GetDouble("ECalEnergySignificanceMin", 0.0); 157 fHCalEnergySignificanceMin = GetDouble("HCalEnergySignificanceMin", 0.0); 158 159 // switch on or off the dithering of the center of calorimeter towers 160 fDitherTowerCenter = GetBool("DitherTowerCenter", true); 161 164 162 // read resolution formulas 165 163 fECalResolutionFormula->Compile(GetString("ECalResolutionFormula", "0")); … … 176 174 fTowerOutputArray = ExportArray(GetString("TowerOutputArray", "towers")); 177 175 fPhotonOutputArray = ExportArray(GetString("PhotonOutputArray", "photons")); 178 176 179 177 fEFlowTrackOutputArray = ExportArray(GetString("EFlowTrackOutputArray", "eflowTracks")); 180 178 fEFlowPhotonOutputArray = ExportArray(GetString("EFlowPhotonOutputArray", "eflowPhotons")); 181 179 fEFlowNeutralHadronOutputArray = ExportArray(GetString("EFlowNeutralHadronOutputArray", "eflowNeutralHadrons")); 182 183 184 180 } 185 181 … … 366 362 fTrackHCalTime = 0.0; 367 363 368 fTowerECal WeightTime = 0.0;369 fTowerHCal WeightTime= 0.0;370 364 fTowerECalTimeWeight = 0.0; 365 fTowerHCalTimeWeight = 0.0; 366 371 367 fTowerTrackHits = 0; 372 368 fTowerPhotonHits = 0; 373 369 374 370 fTowerTrackArray->Clear(); 375 371 } … … 384 380 position = track->Position; 385 381 386 382 387 383 ecalEnergy = momentum.E() * fTrackECalFractions[number]; 388 384 hcalEnergy = momentum.E() * fTrackHCalFractions[number]; … … 390 386 fTrackECalEnergy += ecalEnergy; 391 387 fTrackHCalEnergy += hcalEnergy; 392 388 393 389 fTrackECalTime += TMath::Sqrt(ecalEnergy)*position.T(); 394 390 fTrackHCalTime += TMath::Sqrt(hcalEnergy)*position.T(); 395 396 fTrackECal WeightTime+= TMath::Sqrt(ecalEnergy);397 fTrackHCal WeightTime+= TMath::Sqrt(hcalEnergy);391 392 fTrackECalTimeWeight += TMath::Sqrt(ecalEnergy); 393 fTrackHCalTimeWeight += TMath::Sqrt(hcalEnergy); 398 394 399 395 fTowerTrackArray->Add(track); … … 401 397 continue; 402 398 } 403 399 404 400 // check for photon and electron hits in current tower 405 401 if(flags & 2) ++fTowerPhotonHits; 406 402 407 403 particle = static_cast<Candidate*>(fParticleInputArray->At(number)); 408 404 momentum = particle->Momentum; … … 419 415 fTowerHCalTime += TMath::Sqrt(hcalEnergy)*position.T(); 420 416 421 fTowerECal WeightTime+= TMath::Sqrt(ecalEnergy);422 fTowerHCal WeightTime+= TMath::Sqrt(hcalEnergy);423 417 fTowerECalTimeWeight += TMath::Sqrt(ecalEnergy); 418 fTowerHCalTimeWeight += TMath::Sqrt(hcalEnergy); 419 424 420 425 421 fTower->AddCandidate(particle); … … 441 437 442 438 if(!fTower) return; 443 // cout<<"----------------------"<<endl;444 // cout<<"Finalize Tower"<<endl;445 // cout<<""<<endl;446 447 439 448 440 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerECalEnergy); 449 450 // ecalEnergy = gRandom->Gaus(fTowerECalEnergy, ecalSigma); 451 // if(ecalEnergy < 0.0) ecalEnergy = 0.0; 441 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerHCalEnergy); 452 442 453 443 ecalEnergy = LogNormal(fTowerECalEnergy, ecalSigma); 454 ecalTime = (fTowerECalWeightTime < 1.0E-09 ) ? 0 : fTowerECalTime/fTowerECalWeightTime;455 456 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerHCalEnergy);457 458 // hcalEnergy = gRandom->Gaus(fTowerHCalEnergy, hcalSigma);459 // if(hcalEnergy < 0.0) hcalEnergy = 0.0;460 461 444 hcalEnergy = LogNormal(fTowerHCalEnergy, hcalSigma); 462 hcalTime = (fTowerHCalWeightTime < 1.0E-09 ) ? 0 : fTowerHCalTime/fTowerHCalWeightTime; 463 464 445 446 ecalTime = (fTowerECalTimeWeight < 1.0E-09 ) ? 0.0 : fTowerECalTime/fTowerECalTimeWeight; 447 hcalTime = (fTowerHCalTimeWeight < 1.0E-09 ) ? 0.0 : fTowerHCalTime/fTowerHCalTimeWeight; 448 465 449 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy); 466 450 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, hcalEnergy); 467 451 468 ecalEnergy = (ecalEnergy < fEcalEnergyMin || ecalEnergy < fEcalSigmaMin*ecalSigma) ? 0 : ecalEnergy;469 hcalEnergy = (hcalEnergy < fHcalEnergyMin || hcalEnergy < fHcalSigmaMin*hcalSigma) ? 0 : hcalEnergy;452 if(ecalEnergy < fECalEnergyMin || ecalEnergy < fECalEnergySignificanceMin*ecalSigma) ecalEnergy = 0.0; 453 if(hcalEnergy < fHCalEnergyMin || hcalEnergy < fHCalEnergySignificanceMin*hcalSigma) hcalEnergy = 0.0; 470 454 471 455 energy = ecalEnergy + hcalEnergy; 472 time = (TMath::Sqrt(ecalEnergy)*ecalTime + TMath::Sqrt(hcalEnergy)*hcalTime)/(TMath::Sqrt(ecalEnergy) + TMath::Sqrt(hcalEnergy)); 473 474 // eta = fTowerEta; 475 // phi = fTowerPhi; 476 477 eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]); 478 phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]); 456 time = (TMath::Sqrt(ecalEnergy)*ecalTime + TMath::Sqrt(hcalEnergy)*hcalTime)/(TMath::Sqrt(ecalEnergy) + TMath::Sqrt(hcalEnergy)); 457 458 if(fDitherTowerCenter) 459 { 460 eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]); 461 phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]); 462 } 463 else 464 { 465 eta = fTowerEta; 466 phi = fTowerPhi; 467 } 479 468 480 469 pt = energy / TMath::CosH(eta); 481 470 482 // fTower->Position.SetXYZT(-time, 0.0, 0.0, time);483 471 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time); 484 472 fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); … … 491 479 fTower->Edges[3] = fTowerEdges[3]; 492 480 493 if( energy > 0.0)481 if(energy > 0.0) 494 482 { 495 483 if(fTowerPhotonHits > 0 && fTowerTrackHits == 0) … … 497 485 fPhotonOutputArray->Add(fTower); 498 486 } 499 487 500 488 fTowerOutputArray->Add(fTower); 501 489 } … … 511 499 512 500 ecalEnergy -= fTrackECalEnergy; 513 if(ecalEnergy < fEcalEnergyMin || ecalEnergy < fEcalSigmaMin*fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy)) ecalEnergy = 0.0;514 515 501 hcalEnergy -= fTrackHCalEnergy; 516 if(hcalEnergy < fHcalEnergyMin || hcalEnergy < fHcalSigmaMin*fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, hcalEnergy)) hcalEnergy = 0.0; 502 503 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy); 504 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, hcalEnergy); 505 506 if(ecalEnergy < fECalEnergyMin || ecalEnergy < fECalEnergySignificanceMin*ecalSigma) ecalEnergy = 0.0; 507 if(hcalEnergy < fHCalEnergyMin || hcalEnergy < fHCalEnergySignificanceMin*hcalSigma) hcalEnergy = 0.0; 517 508 518 509 energy = ecalEnergy + hcalEnergy; … … 527 518 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, ecalEnergy); 528 519 tower->Eem = ecalEnergy; 529 tower->Ehad = 0 ;520 tower->Ehad = 0.0; 530 521 531 522 fEFlowPhotonOutputArray->Add(tower); … … 539 530 540 531 tower->Momentum.SetPtEtaPhiE(pt, eta, phi, hcalEnergy); 541 tower->Eem = 0 ;532 tower->Eem = 0.0; 542 533 tower->Ehad = hcalEnergy; 543 534 544 535 fEFlowNeutralHadronOutputArray->Add(tower); 545 536 } 546 547 548 549 550 537 } 551 538 … … 561 548 a = TMath::Log(mean) - 0.5*b*b; 562 549 563 return TMath::Exp(a + b*gRandom->Gaus(0 , 1));550 return TMath::Exp(a + b*gRandom->Gaus(0.0, 1.0)); 564 551 } 565 552 else -
modules/Calorimeter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * Fills calorimeter towers, performs calorimeter resolution smearing, 25 25 * and creates energy flow objects (tracks, photons, and neutral hadrons). 26 *27 * $Date$28 * $Revision$29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve … … 63 59 Double_t fTowerECalEnergy, fTowerHCalEnergy; 64 60 Double_t fTrackECalEnergy, fTrackHCalEnergy; 65 61 66 62 Double_t fTowerECalTime, fTowerHCalTime; 67 63 Double_t fTrackECalTime, fTrackHCalTime; 68 69 Double_t fTowerECal WeightTime, fTowerHCalWeightTime;70 Double_t fTrackECal WeightTime, fTrackHCalWeightTime;71 64 65 Double_t fTowerECalTimeWeight, fTowerHCalTimeWeight; 66 Double_t fTrackECalTimeWeight, fTrackHCalTimeWeight; 67 72 68 Int_t fTowerTrackHits, fTowerPhotonHits; 73 69 74 Double_t fEcalEnergyMin; 75 Double_t fHcalEnergyMin; 76 77 Double_t fEcalSigmaMin; 78 Double_t fHcalSigmaMin; 70 Double_t fECalEnergyMin; 71 Double_t fHCalEnergyMin; 72 73 Double_t fECalEnergySignificanceMin; 74 Double_t fHCalEnergySignificanceMin; 75 76 Bool_t fDitherTowerCenter; 79 77 80 78 TFractionMap fFractionMap; //! … … 103 101 TObjArray *fTowerOutputArray; //! 104 102 TObjArray *fPhotonOutputArray; //! 105 103 106 104 TObjArray *fEFlowTrackOutputArray; //! 107 105 TObjArray *fEFlowPhotonOutputArray; //! -
modules/Cloner.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Clone candidate array 23 *24 * $Date$25 * $Revision$26 23 * 27 24 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/Cloner.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Clone candidate array 25 *26 * $Date$27 * $Revision$28 25 * 29 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/ConstituentFilter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Drops all input objects that are not constituents of any jet. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/ConstituentFilter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Drops all input objects that are not constituents of any jet. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Delphes.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 22 22 * Main Delphes module. 23 23 * Controls execution of all other modules. 24 *25 * $Date$26 * $Revision$27 *28 24 * 29 25 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Delphes.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * Main Delphes module. 25 25 * Controls execution of all other modules. 26 *27 * $Date$28 * $Revision$29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Efficiency.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Selects candidates from the InputArray according to the efficiency formula. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Efficiency.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Selects candidates from the InputArray according to the efficiency formula. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/EnergyScale.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Applies energy scale. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/EnergyScale.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Applies energy scale. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/EnergySmearing.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Performs energy resolution smearing. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/EnergySmearing.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Performs energy resolution smearing. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/ExampleModule.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Selects candidates from the InputArray according to the efficiency formula. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/ExampleModule.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Selects candidates from the InputArray according to the efficiency formula. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/FastJetFinder.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Finds jets using FastJet library. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve … … 241 237 Candidate *candidate, *constituent; 242 238 TLorentzVector momentum; 243 244 TLorentzVector constmomentum; 245 239 246 240 Double_t deta, dphi, detaMax, dphiMax; 247 Double_t time, weightTime, avTime;241 Double_t time, timeWeight; 248 242 Int_t number; 249 Double_t rho = 0 ;243 Double_t rho = 0.0; 250 244 PseudoJet jet, area; 251 245 vector<PseudoJet> inputList, outputList; … … 309 303 jet = *itOutputList; 310 304 if(fJetAlgorithm == 7) jet = join(jet.constituents()); 311 305 312 306 momentum.SetPxPyPzE(jet.px(), jet.py(), jet.pz(), jet.E()); 313 307 314 308 area.reset(0.0, 0.0, 0.0, 0.0); 315 309 if(fAreaDefinition) area = itOutputList->area_4vector(); … … 317 311 candidate = factory->NewCandidate(); 318 312 319 time =0;320 weightTime=0;313 time = 0.0; 314 timeWeight = 0.0; 321 315 322 316 inputList.clear(); 323 317 inputList = sequence->constituents(*itOutputList); 324 325 constmomentum.SetPxPyPzE(0.0,0.0,0.0,0.0);;326 318 327 319 for(itInputList = inputList.begin(); itInputList != inputList.end(); ++itInputList) 328 320 { 329 321 constituent = static_cast<Candidate*>(fInputArray->At(itInputList->user_index())); 330 331 constmomentum += constituent->Momentum;332 322 333 323 deta = TMath::Abs(momentum.Eta() - constituent->Momentum.Eta()); … … 337 327 338 328 time += TMath::Sqrt(constituent->Momentum.E())*(constituent->Position.T()); 339 weightTime+= TMath::Sqrt(constituent->Momentum.E());329 timeWeight += TMath::Sqrt(constituent->Momentum.E()); 340 330 341 331 candidate->AddCandidate(constituent); 342 332 } 343 333 344 avTime = time/weightTime;345 346 334 candidate->Momentum = momentum; 347 candidate->Position.SetT( avTime);335 candidate->Position.SetT(time/timeWeight); 348 336 candidate->Area.SetPxPyPzE(area.px(), area.py(), area.pz(), area.E()); 349 337 -
modules/FastJetFinder.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Finds jets using FastJet library. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/FastJetGridMedianEstimator.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 19 19 20 20 /** \class FastJetGridMedianEstimator 21 *22 21 * 23 22 * Computes median energy density per event using a fixed grid. … … 95 94 void FastJetGridMedianEstimator::Init() 96 95 { 97 // read eta ranges 96 ExRootConfParam param; 97 Long_t i, size; 98 Double_t drap, dphi, rapMin, rapMax; 98 99 99 ExRootConfParam param = GetParam("GridRange"); 100 Long_t i, size; 101 102 fGrid.clear(); 100 // read rapidity ranges 101 102 param = GetParam("GridRange"); 103 103 size = param.GetSize(); 104 105 fEstimators.clear(); 104 106 for(i = 0; i < size/4; ++i) 105 107 { 106 fGrid[make_pair(param[i*4].GetDouble(), param[i*4 + 1].GetDouble())] = make_pair(param[i*4 + 2].GetDouble(), param[i*4 + 3].GetDouble()); 107 //cout<<param[i*4].GetDouble()<<","<< param[i*4 + 1].GetDouble()<<","<< param[i*4 + 2].GetDouble()<<","<< param[i*4 + 3].GetDouble()<<endl; 108 rapMin = param[i*4].GetDouble(); 109 rapMax = param[i*4 + 1].GetDouble(); 110 drap = param[i*4 + 2].GetDouble(); 111 dphi = param[i*4 + 3].GetDouble(); 112 fEstimators.push_back(new GridMedianBackgroundEstimator(rapMin, rapMax, drap, dphi)); 113 } 108 114 109 } 110 111 112 //cout<<fGrid[make_pair(0.0,2.5)].first<<","<<fGrid[make_pair(0.0,2.5)].second<<endl; 113 114 // import input array 115 // import input array 115 116 116 117 fInputArray = ImportArray(GetString("InputArray", "Calorimeter/towers")); … … 118 119 119 120 fRhoOutputArray = ExportArray(GetString("RhoOutputArray", "rho")); 120 121 121 } 122 122 … … 125 125 void FastJetGridMedianEstimator::Finish() 126 126 { 127 vector< GridMedianBackgroundEstimator * >::iterator itEstimators; 128 129 for(itEstimators = fEstimators.begin(); itEstimators != fEstimators.end(); ++itEstimators) 130 { 131 if(*itEstimators) delete *itEstimators; 132 } 133 127 134 if(fItInputArray) delete fItInputArray; 128 135 } … … 134 141 Candidate *candidate; 135 142 TLorentzVector momentum; 136 Double_t deta, dphi, detaMin, detaMax;137 143 Int_t number; 138 144 Double_t rho = 0; 139 145 PseudoJet jet; 140 vector< PseudoJet> inputList, outputList;141 142 std::map< std::pair< Double_t , Double_t > , std::pair< Double_t , Double_t > >::iterator itGrid;143 146 vector< PseudoJet > inputList, outputList; 147 148 vector< GridMedianBackgroundEstimator * >::iterator itEstimators;; 149 144 150 DelphesFactory *factory = GetFactory(); 145 151 146 152 inputList.clear(); 147 153 148 154 // loop over input objects 149 155 fItInputArray->Reset(); … … 158 164 } 159 165 160 161 166 // compute rho and store it 162 163 // cout<<"caio"<<endl; 164 for(itGrid = fGrid.begin(); itGrid != fGrid.end(); ++itGrid) 167 168 for(itEstimators = fEstimators.begin(); itEstimators != fEstimators.end(); ++itEstimators) 165 169 { 166 //Selector select_rapidity = SelectorAbsRapRange(itEtaRangeMap->first, itEtaRangeMap->second); 167 // JetMedianBackgroundEstimator estimator(select_rapidity, *fDefinition, *fAreaDefinition); 168 169 //cout<<itGrid->first.first<<endl; 170 171 detaMin = (itGrid->first).first; 172 detaMax = (itGrid->first).second; 173 deta = (itGrid->second).first; 174 dphi = (itGrid->second).second; 175 176 //cout<<detaMin<<","<<detaMax<<","<<deta<<","<<dphi<<endl; 177 178 179 RectangularGrid grid(detaMin, detaMax, deta, dphi); 180 //cout<<grid.is_initialised()<<endl; 181 //cout<<grid.rapmin()<<","<<grid.rapmax()<<","<<grid.drap()<<","<<grid.dphi()<<endl; 182 183 GridMedianBackgroundEstimator estimator(grid); 184 185 estimator.set_particles(inputList); 186 187 //cout<<estimator.description()<<endl; 188 189 rho = estimator.rho(); 190 //cout<<rho<<endl; 170 (*itEstimators)->set_particles(inputList); 191 171 172 rho = (*itEstimators)->rho(); 192 173 193 174 candidate = factory->NewCandidate(); 194 175 candidate->Momentum.SetPtEtaPhiE(rho, 0.0, 0.0, rho); 195 candidate->Edges[0] = detaMin;196 candidate->Edges[1] = detaMax;176 candidate->Edges[0] = (*itEstimators)->rapmin(); 177 candidate->Edges[1] = (*itEstimators)->rapmax(); 197 178 fRhoOutputArray->Add(candidate); 198 179 } 199 200 180 } -
modules/FastJetGridMedianEstimator.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 30 30 31 31 #include "classes/DelphesModule.h" 32 #include <map> 33 #include <utility> 34 32 #include <vector> 35 33 36 34 class TObjArray; … … 38 36 39 37 namespace fastjet { 40 class JetDefinition; 41 class AreaDefinition; 42 class Selector; 43 namespace contrib { 44 class NjettinessPlugin; 45 } 38 class GridMedianBackgroundEstimator; 46 39 } 47 40 … … 58 51 59 52 private: 60 61 typedef std::map< std::pair< Double_t , Double_t > , std::pair< Double_t , Double_t > > TGrid; //! 62 63 TGrid fGrid; //! 64 53 54 std::vector< fastjet::GridMedianBackgroundEstimator * > fEstimators; //! 55 65 56 TIterator *fItInputArray; //! 66 57 -
modules/FastJetLinkDef.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Lists classes to be included in cint dicitonary 23 *24 * $Date: 2014-04-16 17:17:35 +0200 (Wed, 16 Apr 2014) $25 * $Revision: 1369 $26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Hector.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Propagates candidates using Hector library. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Hector.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Propagates candidates using Hector library. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/IdentificationMap.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 20 20 /** \class IdentificationMap 21 21 * 22 * Converts particles with some PDG code into another particle, according to parametrized probability as function of pt eta 23 given by user. 24 * 25 * $Date: 2014-08-07 14:57:44 +0100 (Thu, 07 Aug 2014) $ 26 * $Revision: 905 $ 27 * 22 * Converts particles with some PDG code into another particle, 23 * according to parametrized probability. 28 24 * 29 25 * \author M. Selvaggi - UCL, Louvain-la-Neuve … … 49 45 #include "TLorentzVector.h" 50 46 51 #include <algorithm> 47 #include <algorithm> 52 48 #include <stdexcept> 53 49 #include <iostream> … … 75 71 // read efficiency formula 76 72 77 73 78 74 TMisIDMap::iterator itEfficiencyMap; 79 75 ExRootConfParam param; 80 76 DelphesFormula *formula; 81 77 Int_t i, size, pdg; 82 78 83 79 // read efficiency formulas 84 80 param = GetParam("EfficiencyFormula"); 85 81 size = param.GetSize(); 86 82 87 83 fEfficiencyMap.clear(); 88 84 for(i = 0; i < size/3; ++i) … … 92 88 pdg = param[i*3].GetInt(); 93 89 fEfficiencyMap.insert(make_pair(pdg,make_pair(param[i*3 + 1].GetInt(),formula))); 94 90 95 91 // cout<<param[i*3].GetInt()<<","<<param[i*3+1].GetInt()<<","<<param[i*3 + 2].GetString()<<endl; 96 92 97 93 } 98 94 … … 106 102 fEfficiencyMap.insert(make_pair(0,make_pair(0,formula))); 107 103 } 108 104 109 105 // import input array 110 106 … … 122 118 { 123 119 if(fItInputArray) delete fItInputArray; 124 120 125 121 TMisIDMap::iterator itEfficiencyMap; 126 122 DelphesFormula *formula; … … 136 132 137 133 void IdentificationMap::Process() 138 { 134 { 139 135 Candidate *candidate; 140 136 Double_t pt, eta, phi; … … 145 141 146 142 Double_t P, Pi; 147 143 148 144 // cout<<"------------ New Event ------------"<<endl; 149 145 150 146 fItInputArray->Reset(); 151 147 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) … … 158 154 pdgIn = candidate->PID; 159 155 charge = candidate->Charge; 160 156 161 157 // cout<<"------------ New Candidate ------------"<<endl; 162 158 // cout<<candidate->PID<<" "<<pt<<","<<eta<<","<<phi<<endl; 163 159 164 160 P = 1.0; 165 161 166 162 //first check that PID of this particle is specified in cfg, if not set look for PID=0 167 163 168 164 itEfficiencyMap = fEfficiencyMap.find(pdgIn); 169 170 range = fEfficiencyMap.equal_range(pdgIn); 165 166 range = fEfficiencyMap.equal_range(pdgIn); 171 167 if(range.first == range.second) range = fEfficiencyMap.equal_range(-pdgIn); 172 168 if(range.first == range.second) range = fEfficiencyMap.equal_range(0); 173 169 174 170 //loop over submap for this pid 175 171 for (TMisIDMap::iterator it=range.first; it!=range.second; ++it) 176 { 177 172 { 173 178 174 formula = (it->second).second; 179 175 pdgOut = (it->second).first; 180 176 181 177 Pi = formula->Eval(pt, eta); 182 178 183 179 // check that sum of probabilities does not exceed 1. 184 180 P = (P - Pi)/P; 185 181 186 182 if( P < 0.0 ) continue; 187 183 else 188 184 { 189 185 190 186 //randomly assign a PID to particle according to map 191 187 Double_t rndm = gRandom->Uniform(); 192 188 193 189 if(rndm > P) 194 190 { … … 198 194 break; 199 195 } 200 } 201 196 } 197 202 198 } 203 199 204 200 } 205 201 -
modules/IdentificationMap.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 /** \class IdentificationMap 24 24 * 25 * Converts particles with some PDG code into another particle, according to parametrized probability as function of pt eta 26 given by user. 27 * 28 * $Date: 2014-08-07 14:57:44 +0100 (Thu, 07 Aug 2014) $ 29 * $Revision: 905 $ 30 * 25 * Converts particles with some PDG code into another particle, 26 * according to parametrized probability. 31 27 * 32 28 * \author M. Selvaggi - UCL, Louvain-la-Neuve … … 52 48 53 49 private: 54 50 55 51 typedef std::multimap< Int_t, std::pair<Int_t , DelphesFormula * > > TMisIDMap; //! 56 52 57 53 TMisIDMap fEfficiencyMap; 58 54 59 55 TIterator *fItInputArray; //! 60 56 -
modules/ImpactParameterSmearing.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * Performs transverse impact parameter smearing. 22 22 * 23 * $Date: 2014-16-03 14:57:44 +010024 *25 *26 23 * \author M. Selvaggi - UCL, Louvain-la-Neuve 27 24 * 28 25 */ 29 26 30 27 31 28 #include "modules/ImpactParameterSmearing.h" … … 47 44 #include "TLorentzVector.h" 48 45 49 #include <algorithm> 46 #include <algorithm> 50 47 #include <stdexcept> 51 48 #include <iostream> … … 99 96 { 100 97 Candidate *candidate, *particle, *mother; 101 Double_t xd, yd, zd, dxy, dz, sx, sy, sz, ddxy, ddz; 102 Double_t pt, eta, px, py, ang_mom; 103 104 // cout<<"New event"<<endl; 98 Double_t xd, yd, zd, dxy, sx, sy, sz, ddxy; 99 Double_t pt, eta, px, py; 105 100 106 101 fItInputArray->Reset(); 107 102 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) 108 103 { 109 110 // take momentum before smearing (otherwise apply double smearing on dxy)104 105 // take momentum before smearing (otherwise apply double smearing on dxy) 111 106 particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0)); 112 107 113 108 const TLorentzVector &candidateMomentum = particle->Momentum; 114 // const TLorentzVector &candidateMomentum = candidate->Momentum; 115 109 116 110 eta = candidateMomentum.Eta(); 117 111 pt = candidateMomentum.Pt(); 118 112 px = candidateMomentum.Px(); 119 113 py = candidateMomentum.Py(); 120 114 121 115 // calculate coordinates of closest approach to track circle in transverse plane xd, yd, zd 122 116 xd = candidate->Xd; 123 117 yd = candidate->Yd; 124 118 zd = candidate->Zd; 125 126 // calculate smeared values 127 sx = gRandom->Gaus(0 ,fFormula->Eval(pt, eta));128 sy = gRandom->Gaus(0 ,fFormula->Eval(pt, eta));129 sz = gRandom->Gaus(0 ,fFormula->Eval(pt, eta));130 119 120 // calculate smeared values 121 sx = gRandom->Gaus(0.0, fFormula->Eval(pt, eta)); 122 sy = gRandom->Gaus(0.0, fFormula->Eval(pt, eta)); 123 sz = gRandom->Gaus(0.0, fFormula->Eval(pt, eta)); 124 131 125 xd += sx; 132 126 yd += sy; 133 zd += sz; 134 135 // calculate impact paramater (after-smearing) 136 ang_mom = (xd*py - yd*px); 137 dxy = ang_mom/pt; 138 dz = zd; 139 140 ddxy = gRandom->Gaus(0,fFormula->Eval(pt, eta)); 141 ddz = gRandom->Gaus(0,fFormula->Eval(pt, eta)); 142 143 //fill smeared values in candidate 127 zd += sz; 128 129 // calculate impact parameter (after-smearing) 130 dxy = (xd*py - yd*px)/pt; 131 132 ddxy = gRandom->Gaus(0.0, fFormula->Eval(pt, eta)); 133 134 // fill smeared values in candidate 144 135 mother = candidate; 145 136 146 137 candidate = static_cast<Candidate*>(candidate->Clone()); 147 138 candidate->Xd = xd; 148 139 candidate->Yd = yd; 149 140 candidate->Zd = zd; 150 141 151 142 candidate->Dxy = dxy; 152 143 candidate->SDxy = ddxy; 153 144 154 145 candidate->AddCandidate(mother); 155 146 fOutputArray->Add(candidate); -
modules/ImpactParameterSmearing.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Performs transverse impact parameter smearing. 25 *26 * $Date: 2014-16-03 14:57:44 +010027 *28 25 * 29 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/Isolation.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * to the candidate's transverse momentum. outputs candidates that have 25 25 * the transverse momenta fraction within (PTRatioMin, PTRatioMax]. 26 *27 * $Date$28 * $Revision$29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve … … 192 188 193 189 if(candidateMomentum.DeltaR(isolationMomentum) <= fDeltaRMax && 194 !candidate->Overlaps(isolation))190 candidate->GetUniqueID() != isolation->GetUniqueID()) 195 191 { 196 192 sum += isolationMomentum.Pt(); -
modules/Isolation.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 26 26 * to the candidate's transverse momentum. outputs candidates that have 27 27 * the transverse momenta fraction within (PTRatioMin, PTRatioMax]. 28 *29 * $Date$30 * $Revision$31 *32 28 * 33 29 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/JetPileUpSubtractor.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Subtract pile-up contribution from jets using the fastjet area method 23 *24 * $Date: 2012-11-18 15:57:08 +0100 (Sun, 18 Nov 2012) $25 * $Revision: 814 $26 23 * 27 24 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/JetPileUpSubtractor.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Subtract pile-up contribution from jets using the fastjet area method 25 *26 * $Date: 2012-11-18 15:57:08 +0100 (Sun, 18 Nov 2012) $27 * $Revision: 814 $28 25 * 29 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/LeptonDressing.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 20 20 /** \class LeptonDressing 21 21 * 22 *23 *24 22 * 25 23 * -
modules/LeptonDressing.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 22 22 /** \class LeptonDressing 23 *24 23 * 25 24 * \author P. Demin && A. Mertens - UCL, Louvain-la-Neuve -
modules/Merger.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 22 22 * Merges multiple input arrays into one output array 23 23 * and sums transverse momenta of all input objects. 24 *25 * $Date$26 * $Revision$27 *28 24 * 29 25 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Merger.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * Merges multiple input arrays into one output array 25 25 * and sums transverse momenta of all input objects. 26 *27 * $Date$28 * $Revision$29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/ModulesLinkDef.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Lists classes to be included in cint dicitonary 23 *24 * $Date: 2014-04-16 17:17:35 +0200 (Wed, 16 Apr 2014) $25 * $Revision: 1369 $26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/MomentumSmearing.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Performs transverse momentum resolution smearing. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/MomentumSmearing.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Performs transverse momentum resolution smearing. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/ParticlePropagator.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * its half-length, centered at (0,0,0) and with its axis 25 25 * oriented along the z-axis. 26 *27 * $Date$28 * $Revision$29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve … … 124 120 Double_t tmp, discr, discr2; 125 121 Double_t delta, gammam, omega, asinrho; 126 Double_t ang_mom,rcu, rc2, dxy, xd, yd, zd;127 122 Double_t rcu, rc2, dxy, xd, yd, zd; 123 128 124 const Double_t c_light = 2.99792458E8; 129 125 … … 162 158 discr2 = pt2*fRadius2 - tmp*tmp; 163 159 164 if(discr2 < 0 )160 if(discr2 < 0.0) 165 161 { 166 162 // no solutions … … 172 168 t1 = (-tmp + discr)/pt2; 173 169 t2 = (-tmp - discr)/pt2; 174 t = (t1 < 0 ) ? t2 : t1;170 t = (t1 < 0.0) ? t2 : t1; 175 171 176 172 z_t = z + pz*t; … … 179 175 t3 = (+fHalfLength - z) / pz; 180 176 t4 = (-fHalfLength - z) / pz; 181 t = (t3 < 0 ) ? t4 : t3;177 t = (t3 < 0.0) ? t4 : t3; 182 178 } 183 179 … … 213 209 { 214 210 215 // 1. initial transverse momentum p_{T0} 216 // initial transverse momentum direction \phi_0 = -atan(p_X0/p_Y0)217 // relativistic gamma : gamma = E/mc² ; gammam = gamma \timesm218 // g iration frequency \omega = q/(gamma m) fBz219 // helix radius r = p_ T0/ (omega gamma m)220 221 gammam = e*1.0E9 / (c_light*c_light); // gammam in [eV/c ²]222 omega = q * fBz / (gammam); // omega is here in [ 89875518 /s]211 // 1. initial transverse momentum p_{T0}: Part->pt 212 // initial transverse momentum direction phi_0 = -atan(p_X0/p_Y0) 213 // relativistic gamma: gamma = E/mc^2; gammam = gamma * m 214 // gyration frequency omega = q/(gamma m) fBz 215 // helix radius r = p_{T0} / (omega gamma m) 216 217 gammam = e*1.0E9 / (c_light*c_light); // gammam in [eV/c^2] 218 omega = q * fBz / (gammam); // omega is here in [89875518/s] 223 219 r = pt / (q * fBz) * 1.0E9/c_light; // in [m] 224 220 225 phi_0 = TMath::ATan2(py, px); // [rad] in [-pi ;pi]221 phi_0 = TMath::ATan2(py, px); // [rad] in [-pi, pi] 226 222 227 223 // 2. helix axis coordinates … … 235 231 rcu = TMath::Abs(r); 236 232 rc2 = r_c*r_c; 237 233 238 234 // calculate coordinates of closest approach to track circle in transverse plane xd, yd, zd 239 xd = x_c*x_c*x_c - x_c*rcu*r_c + x_c*y_c*y_c; 240 xd = ( rc2 > 0.0) ? xd / rc2 : -999;241 yd 242 yd = ( rc2 > 0.0) ? yd / rc2 : -999;243 zd = z + (TMath::Sqrt(xd*xd+yd*yd) - TMath::Sqrt(x*x+y*y))*pz/pt;235 xd = x_c*x_c*x_c - x_c*rcu*r_c + x_c*y_c*y_c; 236 xd = (rc2 > 0.0) ? xd / rc2 : -999; 237 yd = y_c*(-rcu*r_c + rc2); 238 yd = (rc2 > 0.0) ? yd / rc2 : -999; 239 zd = z + (TMath::Sqrt(xd*xd + yd*yd) - TMath::Sqrt(x*x + y*y))*pz/pt; 244 240 245 241 // calculate impact paramater 246 ang_mom = (xd*py - yd*px); 247 dxy = ang_mom/pt; 248 249 242 dxy = (xd*py - yd*px)/pt; 243 250 244 // 3. time evaluation t = TMath::Min(t_r, t_z) 251 245 // t_r : time to exit from the sides … … 274 268 t6 = (delta - TMath::Pi() + asinrho) / omega; 275 269 276 if(t1 < 0 ) t1 = 1.0E99;277 if(t2 < 0 ) t2 = 1.0E99;278 if(t3 < 0 ) t3 = 1.0E99;279 if(t4 < 0 ) t4 = 1.0E99;280 if(t5 < 0 ) t5 = 1.0E99;281 if(t6 < 0 ) t6 = 1.0E99;270 if(t1 < 0.0) t1 = 1.0E99; 271 if(t2 < 0.0) t2 = 1.0E99; 272 if(t3 < 0.0) t3 = 1.0E99; 273 if(t4 < 0.0) t4 = 1.0E99; 274 if(t5 < 0.0) t5 = 1.0E99; 275 if(t6 < 0.0) t6 = 1.0E99; 282 276 283 277 t_ra = TMath::Min(t1, TMath::Min(t2, t3)); … … 301 295 302 296 candidate->Momentum = candidateMomentum; 303 candidate->Xd = xd*1.0E3; 304 candidate->Yd = yd*1.0E3; 297 candidate->Dxy = dxy*1.0E3; 298 candidate->Xd = xd*1.0E3; 299 candidate->Yd = yd*1.0E3; 305 300 candidate->Zd = zd*1.0E3; 306 307 301 302 candidate->AddCandidate(mother); 308 303 309 304 fOutputArray->Add(candidate); -
modules/ParticlePropagator.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 26 26 * its half-length, centered at (0,0,0) and with its axis 27 27 * oriented along the z-axis. 28 *29 * $Date$30 * $Revision$31 *32 28 * 33 29 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/PdgCodeFilter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 19 19 /** \class PdgCodeFilter 20 20 * 21 * Removes particles with specific pdg codes21 * Removes particles with specific PDG codes 22 22 * 23 23 * \author M. Selvaggi … … 40 40 #include "TRandom3.h" 41 41 #include "TObjArray.h" 42 //#include "TDatabasePDG.h"42 #include "TDatabasePDG.h" 43 43 #include "TLorentzVector.h" 44 44 … … 67 67 void PdgCodeFilter::Init() 68 68 { 69 69 70 70 ExRootConfParam param; 71 71 Size_t i, size; 72 72 73 73 // PT threshold 74 74 fPTMin = GetDouble("PTMin", 0.0); … … 77 77 fInputArray = ImportArray(GetString("InputArray", "Delphes/allParticles")); 78 78 fItInputArray = fInputArray->MakeIterator(); 79 79 80 80 param = GetParam("PdgCode"); 81 81 size = param.GetSize(); 82 82 83 83 // read PdgCodes to be filtered out from the data card 84 84 85 85 fPdgCodes.clear(); 86 86 for(i = 0; i < size; ++i) … … 88 88 fPdgCodes.push_back(param[i].GetInt()); 89 89 } 90 90 91 91 // create output array 92 92 fOutputArray = ExportArray(GetString("OutputArray", "filteredParticles")); … … 115 115 const TLorentzVector &candidateMomentum = candidate->Momentum; 116 116 pt = candidateMomentum.Pt(); 117 117 118 118 pass = kTRUE; 119 119 120 if( pt < fPTMin) pass = kFALSE;121 if( find(fPdgCodes.begin(), fPdgCodes.end(), pdgCode) != fPdgCodes.end()) pass = kFALSE;120 if(pt < fPTMin) pass = kFALSE; 121 if(find(fPdgCodes.begin(), fPdgCodes.end(), pdgCode) != fPdgCodes.end()) pass = kFALSE; 122 122 123 if 123 if(pass) fOutputArray->Add(candidate); 124 124 } 125 125 } -
modules/PdgCodeFilter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 /** \class Efficiency 25 25 * 26 * Removes particles with specific pdg codes 26 * Removes particles with specific pdg codes 27 27 * 28 28 * \author M. Selvaggi … … 50 50 51 51 Double_t fPTMin; //! 52 53 std::vector<Int_t> fPdgCodes; 52 53 std::vector<Int_t> fPdgCodes; 54 54 55 55 TIterator *fItInputArray; //! -
modules/PileUpJetID.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 17 */ 18 18 19 19 20 /** \class PileUpJetID 20 21 * … … 22 23 * 23 24 * \author S. Zenz, December 2013 24 *25 25 * 26 26 */ … … 54 54 55 55 PileUpJetID::PileUpJetID() : 56 fItJetInputArray(0),fTrackInputArray(0),fNeutralInputArray(0),fItVertexInputArray(0) 56 fItJetInputArray(0),fTrackInputArray(0),fNeutralInputArray(0),fItVertexInputArray(0) 57 57 { 58 58 … … 86 86 fNeutralInputArray = ImportArray(GetString("NeutralInputArray", "Calorimeter/eflowTowers")); 87 87 fItNeutralInputArray = fNeutralInputArray->MakeIterator(); 88 88 89 89 fVertexInputArray = ImportArray(GetString("VertexInputArray", "PileUpMerger/vertices")); 90 90 fItVertexInputArray = fVertexInputArray->MakeIterator(); 91 91 92 92 fZVertexResolution = GetDouble("ZVertexResolution", 0.005)*1.0E3; 93 // create output array(s) 93 94 // create output array(s) 94 95 95 96 fOutputArray = ExportArray(GetString("OutputArray", "jets")); 96 97 97 } 98 98 … … 101 101 void PileUpJetID::Finish() 102 102 { 103 104 103 if(fItJetInputArray) delete fItJetInputArray; 105 104 if(fItTrackInputArray) delete fItTrackInputArray; 106 105 if(fItNeutralInputArray) delete fItNeutralInputArray; 107 106 if(fItVertexInputArray) delete fItVertexInputArray; 108 109 107 } 110 108 … … 115 113 Candidate *candidate, *constituent; 116 114 TLorentzVector momentum, area; 117 Double_t zvtx=0; 118 119 Candidate *trk; 120 121 // find z position of primary vertex 122 115 Int_t i, nc, nn; 116 Double_t sumpt, sumptch, sumptchpv, sumptchpu, sumdrsqptsq, sumptsq; 117 Double_t dr, pt, pt_ann[5]; 118 Double_t zvtx = 0.0; 119 120 Candidate *track; 121 122 // find z position of primary vertex 123 123 124 fItVertexInputArray->Reset(); 124 125 while((candidate = static_cast<Candidate*>(fItVertexInputArray->Next()))) … … 126 127 if(!candidate->IsPU) 127 128 { 128 zvtx = candidate->Position.Z();129 break;129 zvtx = candidate->Position.Z(); 130 break; 130 131 } 131 132 } … … 138 139 area = candidate->Area; 139 140 140 float sumpt = 0.; 141 float sumptch = 0.; 142 float sumptchpv = 0.; 143 float sumptchpu = 0.; 144 float sumdrsqptsq = 0.; 145 float sumptsq = 0.; 146 int nc = 0; 147 int nn = 0; 148 float pt_ann[5]; 149 150 for (int i = 0 ; i < 5 ; i++) { 151 pt_ann[i] = 0.; 152 } 153 154 if (fUseConstituents) { 141 sumpt = 0.0; 142 sumptch = 0.0; 143 sumptchpv = 0.0; 144 sumptchpu = 0.0; 145 sumdrsqptsq = 0.0; 146 sumptsq = 0.0; 147 nc = 0; 148 nn = 0; 149 150 for(i = 0; i < 5; ++i) 151 { 152 pt_ann[i] = 0.0; 153 } 154 155 if(fUseConstituents) 156 { 155 157 TIter itConstituents(candidate->GetCandidates()); 156 while((constituent = static_cast<Candidate*>(itConstituents.Next()))) { 157 float pt = constituent->Momentum.Pt(); 158 float dr = candidate->Momentum.DeltaR(constituent->Momentum); 158 while((constituent = static_cast<Candidate*>(itConstituents.Next()))) 159 { 160 pt = constituent->Momentum.Pt(); 161 dr = candidate->Momentum.DeltaR(constituent->Momentum); 159 162 sumpt += pt; 160 163 sumdrsqptsq += dr*dr*pt*pt; 161 164 sumptsq += pt*pt; 162 if (constituent->Charge == 0) { 163 // neutrals 164 nn++; 165 } else { 166 // charged 167 if (constituent->IsPU && TMath::Abs(constituent->Position.Z()-zvtx) > fZVertexResolution) { 168 sumptchpu += pt; 169 } else { 170 sumptchpv += pt; 171 } 172 sumptch += pt; 173 nc++; 174 } 175 for (int i = 0 ; i < 5 ; i++) { 176 if (dr > 0.1*i && dr < 0.1*(i+1)) { 177 pt_ann[i] += pt; 178 } 179 } 180 } 181 } else { 165 if(constituent->Charge == 0) 166 { 167 // neutrals 168 ++nn; 169 } 170 else 171 { 172 // charged 173 if(constituent->IsPU && TMath::Abs(constituent->Position.Z()-zvtx) > fZVertexResolution) 174 { 175 sumptchpu += pt; 176 } 177 else 178 { 179 sumptchpv += pt; 180 } 181 sumptch += pt; 182 ++nc; 183 } 184 for(i = 0; i < 5; ++i) 185 { 186 if(dr > 0.1*i && dr < 0.1*(i + 1)) 187 { 188 pt_ann[i] += pt; 189 } 190 } 191 } 192 } 193 else 194 { 182 195 // Not using constituents, using dr 183 196 fItTrackInputArray->Reset(); 184 while ((trk = static_cast<Candidate*>(fItTrackInputArray->Next()))) { 185 if (trk->Momentum.DeltaR(candidate->Momentum) < fParameterR) { 186 float pt = trk->Momentum.Pt(); 187 sumpt += pt; 188 sumptch += pt; 189 if (trk->IsPU && TMath::Abs(trk->Position.Z()-zvtx) > fZVertexResolution) { 190 sumptchpu += pt; 191 } else { 192 sumptchpv += pt; 193 } 194 float dr = candidate->Momentum.DeltaR(trk->Momentum); 195 sumdrsqptsq += dr*dr*pt*pt; 196 sumptsq += pt*pt; 197 nc++; 198 for (int i = 0 ; i < 5 ; i++) { 199 if (dr > 0.1*i && dr < 0.1*(i+1)) { 197 while((track = static_cast<Candidate*>(fItTrackInputArray->Next()))) 198 { 199 if(track->Momentum.DeltaR(candidate->Momentum) < fParameterR) 200 { 201 pt = track->Momentum.Pt(); 202 sumpt += pt; 203 sumptch += pt; 204 if(track->IsPU && TMath::Abs(track->Position.Z()-zvtx) > fZVertexResolution) 205 { 206 sumptchpu += pt; 207 } 208 else 209 { 210 sumptchpv += pt; 211 } 212 dr = candidate->Momentum.DeltaR(track->Momentum); 213 sumdrsqptsq += dr*dr*pt*pt; 214 sumptsq += pt*pt; 215 nc++; 216 for(i = 0; i < 5; ++i) 217 { 218 if(dr > 0.1*i && dr < 0.1*(i + 1)) 219 { 200 220 pt_ann[i] += pt; 201 } 202 } 203 } 204 } 221 } 222 } 223 } 224 } 225 205 226 fItNeutralInputArray->Reset(); 206 while ((constituent = static_cast<Candidate*>(fItNeutralInputArray->Next()))) { 207 if (constituent->Momentum.DeltaR(candidate->Momentum) < fParameterR) { 208 float pt = constituent->Momentum.Pt(); 209 sumpt += pt; 210 float dr = candidate->Momentum.DeltaR(constituent->Momentum); 211 sumdrsqptsq += dr*dr*pt*pt; 212 sumptsq += pt*pt; 213 nn++; 214 for (int i = 0 ; i < 5 ; i++) { 215 if (dr > 0.1*i && dr < 0.1*(i+1)) { 216 pt_ann[i] += pt; 217 } 218 } 219 } 220 } 221 } 222 223 if (sumptch > 0.) { 227 while ((constituent = static_cast<Candidate*>(fItNeutralInputArray->Next()))) 228 { 229 if(constituent->Momentum.DeltaR(candidate->Momentum) < fParameterR) 230 { 231 pt = constituent->Momentum.Pt(); 232 sumpt += pt; 233 dr = candidate->Momentum.DeltaR(constituent->Momentum); 234 sumdrsqptsq += dr*dr*pt*pt; 235 sumptsq += pt*pt; 236 nn++; 237 for(i = 0; i < 5; ++i) 238 { 239 if(dr > 0.1*i && dr < 0.1*(i + 1)) 240 { 241 pt_ann[i] += pt; 242 } 243 } 244 } 245 } 246 } 247 248 if(sumptch > 0.0) 249 { 224 250 candidate->Beta = sumptchpu/sumptch; 225 251 candidate->BetaStar = sumptchpv/sumptch; 226 } else { 227 candidate->Beta = -999.; 228 candidate->BetaStar = -999.; 229 } 230 if (sumptsq > 0.) { 252 } 253 else 254 { 255 candidate->Beta = -999.0; 256 candidate->BetaStar = -999.0; 257 } 258 if(sumptsq > 0.0) 259 { 231 260 candidate->MeanSqDeltaR = sumdrsqptsq/sumptsq; 232 } else { 233 candidate->MeanSqDeltaR = -999.; 261 } 262 else 263 { 264 candidate->MeanSqDeltaR = -999.0; 234 265 } 235 266 candidate->NCharged = nc; 236 267 candidate->NNeutrals = nn; 237 if (sumpt > 0.) { 268 if(sumpt > 0.0) 269 { 238 270 candidate->PTD = TMath::Sqrt(sumptsq) / sumpt; 239 for (int i = 0 ; i < 5 ; i++) { 271 for(i = 0; i < 5; ++i) 272 { 240 273 candidate->FracPt[i] = pt_ann[i]/sumpt; 241 274 } 242 } else { 243 candidate->PTD = -999.; 244 for (int i = 0 ; i < 5 ; i++) { 245 candidate->FracPt[i] = -999.; 275 } 276 else 277 { 278 candidate->PTD = -999.0; 279 for(i = 0; i < 5; ++i) 280 { 281 candidate->FracPt[i] = -999.0; 246 282 } 247 283 } -
modules/PileUpJetID.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 25 25 * 26 26 * \author S. Zenz, December 2013 27 *28 27 * 29 28 */ … … 55 54 // If set to false, uses everything within dR < fParameterR even if in other jets &c. 56 55 // Results should be very similar for PF 57 Int_t fUseConstituents; 56 Int_t fUseConstituents; 58 57 59 58 Bool_t fAverageEachTower; … … 63 62 const TObjArray *fJetInputArray; //! 64 63 65 const TObjArray *fTrackInputArray; // SCZ66 const TObjArray *fNeutralInputArray; 64 const TObjArray *fTrackInputArray; //! 65 const TObjArray *fNeutralInputArray; //! 67 66 68 TIterator *fItTrackInputArray; // SCZ69 TIterator *fItNeutralInputArray; // SCZ67 TIterator *fItTrackInputArray; //! 68 TIterator *fItNeutralInputArray; //! 70 69 71 70 TObjArray *fOutputArray; //! 72 71 73 72 TIterator *fItVertexInputArray; //! 74 73 const TObjArray *fVertexInputArray; //! -
modules/PileUpMerger.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 20 20 * 21 21 * Merges particles from pile-up sample into event 22 *23 *24 * $Date: 2013-02-12 15:13:59 +0100 (Tue, 12 Feb 2013) $25 * $Revision: 907 $26 *27 22 * 28 23 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/PileUpMerger.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Merges particles from pile-up sample into event 25 *26 *27 * $Date: 2013-02-12 15:13:59 +0100 (Tue, 12 Feb 2013) $28 * $Revision: 907 $29 *30 25 * 31 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/PileUpMergerPythia8.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 20 20 * 21 21 * Merges particles from pile-up sample into event 22 *23 *24 * $Date$25 * $Revision$26 *27 22 * 28 23 * \author P. Selvaggi - UCL, Louvain-la-Neuve … … 41 36 #include "ExRootAnalysis/ExRootClassifier.h" 42 37 43 #include "Pythia 8/Pythia.h"38 #include "Pythia.h" 44 39 45 40 #include "TMath.h" -
modules/PileUpMergerPythia8.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Merges particles from pile-up sample into event 25 *26 *27 * $Date$28 * $Revision$29 *30 25 * 31 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/Pythia8LinkDef.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Lists classes to be included in cint dicitonary 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/SimpleCalorimeter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 22 22 * Fills SimpleCalorimeter towers, performs SimpleCalorimeter resolution smearing, 23 23 * and creates energy flow objects (tracks, photons, and neutral hadrons). 24 *25 * $Date: 2014-04-16 15:29:31 +0200 (Wed, 16 Apr 2014) $26 * $Revision: 1364 $27 *28 24 * 29 25 * \author P. Demin - UCL, Louvain-la-Neuve … … 64 60 { 65 61 fResolutionFormula = new DelphesFormula; 66 62 67 63 fTowerTrackArray = new TObjArray; 68 64 fItTowerTrackArray = fTowerTrackArray->MakeIterator(); … … 74 70 { 75 71 if(fResolutionFormula) delete fResolutionFormula; 76 72 77 73 if(fTowerTrackArray) delete fTowerTrackArray; 78 74 if(fItTowerTrackArray) delete fItTowerTrackArray; … … 140 136 fFractionMap[param[i*2].GetInt()] = fraction; 141 137 } 138 142 139 /* 143 140 TFractionMap::iterator itFractionMap; … … 149 146 150 147 // read min E value for towers to be saved 151 fEnergyMin = GetDouble("TowerMinEnergy", 0.0); 152 fSigmaMin = GetDouble("TowerMinSignificance", 0.0); 153 148 fEnergyMin = GetDouble("EnergyMin", 0.0); 149 150 fEnergySignificanceMin = GetDouble("EnergySignificanceMin", 0.0); 151 152 // switch on or off the dithering of the center of calorimeter towers 153 fDitherTowerCenter = GetBool("DitherTowerCenter", true); 154 154 155 // read resolution formulas 155 156 fResolutionFormula->Compile(GetString("ResolutionFormula", "0")); 156 157 157 158 // import array with output from other modules 158 159 fParticleInputArray = ImportArray(GetString("ParticleInputArray", "ParticlePropagator/particles")); … … 165 166 fTowerOutputArray = ExportArray(GetString("TowerOutputArray", "towers")); 166 167 fEFlowTowerOutputArray = ExportArray(GetString("EFlowTowerOutputArray", "eflowTowers")); 167 168 168 } 169 169 … … 206 206 fTowerFractions.clear(); 207 207 fTrackFractions.clear(); 208 208 209 209 // loop over all particles 210 210 fItParticleInputArray->Reset(); … … 225 225 fraction = itFractionMap->second; 226 226 fTowerFractions.push_back(fraction); 227 227 228 228 if(fraction < 1.0E-9) continue; 229 229 … … 267 267 268 268 fraction = itFractionMap->second; 269 269 270 270 fTrackFractions.push_back(fraction); 271 271 272 272 // find eta bin [1, fEtaBins.size - 1] 273 273 itEtaBin = lower_bound(fEtaBins.begin(), fEtaBins.end(), trackPosition.Eta()); … … 333 333 fTowerEnergy = 0.0; 334 334 fTrackEnergy = 0.0; 335 335 336 336 fTowerTime = 0.0; 337 337 fTrackTime = 0.0; 338 339 fTower WeightTime = 0.0;340 338 339 fTowerTimeWeight = 0.0; 340 341 341 fTowerTrackHits = 0; 342 342 fTowerPhotonHits = 0; 343 343 344 344 fTowerTrackArray->Clear(); 345 345 } … … 353 353 momentum = track->Momentum; 354 354 position = track->Position; 355 355 356 356 energy = momentum.E() * fTrackFractions[number]; 357 357 358 358 fTrackEnergy += energy; 359 359 360 360 fTrackTime += TMath::Sqrt(energy)*position.T(); 361 fTrack WeightTime+= TMath::Sqrt(energy);362 361 fTrackTimeWeight += TMath::Sqrt(energy); 362 363 363 fTowerTrackArray->Add(track); 364 364 365 365 continue; 366 366 } 367 367 368 368 // check for photon and electron hits in current tower 369 369 if(flags & 2) ++fTowerPhotonHits; 370 370 371 371 particle = static_cast<Candidate*>(fParticleInputArray->At(number)); 372 372 momentum = particle->Momentum; … … 375 375 // fill current tower 376 376 energy = momentum.E() * fTowerFractions[number]; 377 377 378 378 fTowerEnergy += energy; 379 379 380 380 fTowerTime += TMath::Sqrt(energy)*position.T(); 381 fTower WeightTime+= TMath::Sqrt(energy);382 381 fTowerTimeWeight += TMath::Sqrt(energy); 382 383 383 fTower->AddCandidate(particle); 384 384 } … … 401 401 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerEnergy); 402 402 403 // energy = gRandom->Gaus(fTowerEnergy, sigma);404 // if(energy < 0.0) energy = 0.0;405 406 403 energy = LogNormal(fTowerEnergy, sigma); 407 time = (fTowerWeightTime < 1.0E-09 ) ? 0 : fTowerTime/fTowerWeightTime; 404 405 time = (fTowerTimeWeight < 1.0E-09 ) ? 0.0 : fTowerTime/fTowerTimeWeight; 408 406 409 407 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy); 410 411 energy = (energy < fEnergyMin || energy < fSigmaMin*sigma) ? 0 : energy; 412 413 eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]); 414 phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]); 408 409 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 410 411 if(fDitherTowerCenter) 412 { 413 eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]); 414 phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]); 415 } 416 else 417 { 418 eta = fTowerEta; 419 phi = fTowerPhi; 420 } 415 421 416 422 pt = energy / TMath::CosH(eta); 417 423 418 // fTower->Position.SetXYZT(-time, 0.0, 0.0, time);419 424 fTower->Position.SetPtEtaPhiE(1.0, eta, phi, time); 420 425 fTower->Momentum.SetPtEtaPhiE(pt, eta, phi, energy); 421 426 422 427 fTower->Edges[0] = fTowerEdges[0]; 423 428 fTower->Edges[1] = fTowerEdges[1]; … … 425 430 fTower->Edges[3] = fTowerEdges[3]; 426 431 427 428 432 // fill SimpleCalorimeter towers 429 433 if(energy > 0.0) fTowerOutputArray->Add(fTower); 430 434 431 432 435 // fill energy flow candidates 433 436 energy -= fTrackEnergy; 434 if(energy < fEnergyMin || energy < fSigmaMin*fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy)) energy = 0.0; 435 437 438 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy); 439 440 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 441 436 442 // save energy excess as an energy flow tower 437 443 if(energy > 0.0) … … 444 450 fEFlowTowerOutputArray->Add(tower); 445 451 } 446 447 452 } 448 453 … … 458 463 a = TMath::Log(mean) - 0.5*b*b; 459 464 460 return TMath::Exp(a + b*gRandom->Gaus(0 , 1));465 return TMath::Exp(a + b*gRandom->Gaus(0.0, 1.0)); 461 466 } 462 467 else -
modules/SimpleCalorimeter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 24 24 * Fills SimpleCalorimeter towers, performs SimpleCalorimeter resolution smearing, 25 25 * and creates energy flow objects (tracks, photons, and neutral hadrons). 26 *27 * $Date: 2014-04-16 15:29:31 +0200 (Wed, 16 Apr 2014) $28 * $Revision: 1364 $29 *30 26 * 31 27 * \author P. Demin - UCL, Louvain-la-Neuve … … 63 59 Double_t fTowerEnergy; 64 60 Double_t fTrackEnergy; 65 61 66 62 Double_t fTowerTime; 67 63 Double_t fTrackTime; 68 69 Double_t fTower WeightTime;70 Double_t fTrack WeightTime;71 64 65 Double_t fTowerTimeWeight; 66 Double_t fTrackTimeWeight; 67 72 68 Int_t fTowerTrackHits, fTowerPhotonHits; 73 69 74 70 Double_t fEnergyMin; 75 Double_t fSigmaMin; 71 72 Double_t fEnergySignificanceMin; 73 74 Bool_t fDitherTowerCenter; 76 75 77 76 TFractionMap fFractionMap; //! … … 84 83 85 84 std::vector < Double_t > fTowerFractions; 86 85 87 86 std::vector < Double_t > fTrackFractions; 88 87 89 88 DelphesFormula *fResolutionFormula; //! 90 89 91 90 TIterator *fItParticleInputArray; //! 92 91 TIterator *fItTrackInputArray; //! … … 96 95 97 96 TObjArray *fTowerOutputArray; //! 98 97 99 98 TObjArray *fEFlowTowerOutputArray; //! 100 99 101 100 TObjArray *fTowerTrackArray; //! 102 101 TIterator *fItTowerTrackArray; //! -
modules/StatusPidFilter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * Removes all generated particles except electrons, muons, taus, 22 22 * and particles with status == 3. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author J. Hirschauer - FNAL -
modules/StatusPidFilter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 26 26 * Removes all generated particles except electrons, muons, taus, 27 27 * and particles with status == 3. 28 *29 * $Date$30 * $Revision$31 *32 28 * 33 29 * \author J. Hirschauer - FNAL -
modules/TauTagging.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * applies b-tagging efficiency (miss identification rate) formulas 24 24 * and sets b-tagging flags 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/TauTagging.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 25 25 * applies b-tagging efficiency (miss identification rate) formulas 26 26 * and sets b-tagging flags 27 *28 * $Date$29 * $Revision$30 *31 27 * 32 28 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/TimeSmearing.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Performs transverse momentum resolution smearing. 23 *24 * $Date: 2013-02-13 16:58:53 +0100 (Wed, 13 Feb 2013) $25 * $Revision: 911 $26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve … … 48 44 #include "TLorentzVector.h" 49 45 50 #include <algorithm> 46 #include <algorithm> 51 47 #include <stdexcept> 52 48 #include <iostream> … … 99 95 Double_t t; 100 96 const Double_t c_light = 2.99792458E8; 101 97 102 98 fItInputArray->Reset(); 103 99 while((candidate = static_cast<Candidate*>(fItInputArray->Next()))) … … 105 101 const TLorentzVector &candidatePosition = candidate->Position; 106 102 t = candidatePosition.T()*1.0E-3/c_light; 107 103 108 104 // apply smearing formula 109 105 t = gRandom->Gaus(t, fTimeResolution); 110 106 111 107 mother = candidate; 112 108 candidate = static_cast<Candidate*>(candidate->Clone()); 113 109 candidate->Position.SetT(t*1.0E3*c_light); 114 110 115 111 candidate->AddCandidate(mother); 116 112 117 113 fOutputArray->Add(candidate); 118 114 } -
modules/TimeSmearing.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Performs transverse time smearing. 25 *26 * $Date: 2013-12-12 14:57:44 +0100 (Tue, 12 Dec 2013) $27 25 * 28 26 * \author Michele Selvaggi - UCL, Louvain-la-Neuve … … 49 47 50 48 Double_t fTimeResolution; 51 49 52 50 TIterator *fItInputArray; //! 53 51 54 52 const TObjArray *fInputArray; //! 55 53 56 54 TObjArray *fOutputArray; //! 57 55 -
modules/TrackCountingBTagging.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * b-tagging algorithm based on counting tracks with large impact parameter 23 *24 * $Date: 2014-03-27 12:39:14 +0200 (Fri, 27 March 2014) $25 * $Revision: 1099 $26 *27 23 * 28 24 * \author M. Selvaggi - UCL, Louvain-la-Neuve … … 69 65 fBitNumber = GetInt("BitNumber", 0); 70 66 71 fPtMin 72 fDeltaR 73 fIPmax 67 fPtMin = GetDouble("TrackPtMin", 1.0); 68 fDeltaR = GetDouble("DeltaR", 0.3); 69 fIPmax = GetDouble("TrackIPMax", 2.0); 74 70 75 fSigMin 76 fNtracks 71 fSigMin = GetDouble("SigMin", 6.5); 72 fNtracks = GetInt("Ntracks", 3); 77 73 78 74 // import input array(s) … … 128 124 tpy = trkMomentum.Py(); 129 125 130 xd 131 yd 132 dxy 126 xd = track->Xd; 127 yd = track->Yd; 128 dxy = TMath::Abs(track->Dxy); 133 129 ddxy = track->SDxy; 134 130 135 131 if(tpt < fPtMin) continue; 136 if(dr 132 if(dr > fDeltaR) continue; 137 133 if(dxy > fIPmax) continue; 138 134 139 sign 135 sign = (jpx*xd + jpy*yd > 0.0) ? 1 : -1; 140 136 141 ip 137 ip = sign*dxy; 142 138 sip = ip / TMath::Abs(ddxy); 143 139 -
modules/TrackCountingBTagging.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * b-tagging algorithm based on counting tracks with large impact parameter 25 *26 * $Date: 2014-03-27 12:39:14 +0200 (Fri, 27 March 2014) $27 * $Revision: 1099 $28 *29 25 * 30 26 * \author M. Selvaggi - UCL, Louvain-la-Neuve -
modules/TrackPileUpSubtractor.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Subtract pile-up contribution from tracks. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/TrackPileUpSubtractor.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Subtract pile-up contribution from tracks. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/TreeWriter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Fills ROOT tree branches. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/TreeWriter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Fills ROOT tree branches. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/UniqueObjectFinder.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Finds uniquely identified photons, electrons and jets. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/UniqueObjectFinder.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Finds uniquely identified photons, electrons, taus and jets. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Weighter.cc
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 21 21 * 22 22 * Apply a weight depending on PDG code. 23 *24 * $Date$25 * $Revision$26 *27 23 * 28 24 * \author P. Demin - UCL, Louvain-la-Neuve -
modules/Weighter.h
r7f12612 rd870fc5 2 2 * Delphes: a framework for fast simulation of a generic collider experiment 3 3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium 4 * 4 * 5 5 * This program is free software: you can redistribute it and/or modify 6 6 * it under the terms of the GNU General Public License as published by 7 7 * the Free Software Foundation, either version 3 of the License, or 8 8 * (at your option) any later version. 9 * 9 * 10 10 * This program is distributed in the hope that it will be useful, 11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 13 * GNU General Public License for more details. 14 * 14 * 15 15 * You should have received a copy of the GNU General Public License 16 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. … … 23 23 * 24 24 * Apply a weight depending on PDG code. 25 *26 * $Date$27 * $Revision$28 *29 25 * 30 26 * \author P. Demin - UCL, Louvain-la-Neuve
Note:
See TracChangeset
for help on using the changeset viewer.