Changes in / [914fb04:122e1e5] in git
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
cards/delphes_card_FCC_basic.tcl
r914fb04 r122e1e5 224 224 225 225 set TowerOutputArray ecalTowers 226 set EFlowTrackOutputArray eflowTracks227 226 set EFlowTowerOutputArray eflowPhotons 228 227 … … 288 287 module SimpleCalorimeter HCal { 289 288 set ParticleInputArray ParticlePropagator/stableParticles 290 set TrackInputArray ECal/eflowTracks289 set TrackInputArray ImpactParameterSmearing/tracks 291 290 292 291 set TowerOutputArray hcalTowers 293 set EFlowTrackOutputArray eflowTracks294 292 set EFlowTowerOutputArray eflowNeutralHadrons 295 293 … … 367 365 module Merger EFlowMerger { 368 366 # add InputArray InputArray 369 add InputArray HCal/eflowTracks367 add InputArray ImpactParameterSmearing/tracks 370 368 add InputArray ECal/eflowPhotons 371 369 add InputArray HCal/eflowNeutralHadrons -
cards/delphes_card_ILD.tcl
r914fb04 r122e1e5 214 214 215 215 set TowerOutputArray ecalTowers 216 set EFlowTrackOutputArray eflowTracks217 216 set EFlowTowerOutputArray eflowPhotons 218 217 … … 275 274 module SimpleCalorimeter HCal { 276 275 set ParticleInputArray ParticlePropagator/stableParticles 277 set TrackInputArray ECal/eflowTracks276 set TrackInputArray ImpactParameterSmearing/tracks 278 277 279 278 set TowerOutputArray hcalTowers 280 set EFlowTrackOutputArray eflowTracks281 279 set EFlowTowerOutputArray eflowNeutralHadrons 282 280 … … 351 349 module Merger EFlowMerger { 352 350 # add InputArray InputArray 353 add InputArray HCal/eflowTracks351 add InputArray ImpactParameterSmearing/tracks 354 352 add InputArray ECal/eflowPhotons 355 353 add InputArray HCal/eflowNeutralHadrons -
cards/delphes_card_LHCb.tcl
r914fb04 r122e1e5 270 270 271 271 set TowerOutputArray ecalTowers 272 set EFlowTrackOutputArray eflowTracks273 272 set EFlowTowerOutputArray eflowPhotons 274 273 … … 350 349 module SimpleCalorimeter HCal { 351 350 set ParticleInputArray ParticlePropagator/stableParticles 352 set TrackInputArray ECal/eflowTracks351 set TrackInputArray IdentificationMap/tracks 353 352 354 353 set TowerOutputArray hcalTowers 355 set EFlowTrackOutputArray eflowTracks356 354 set EFlowTowerOutputArray eflowNeutralHadrons 357 355 -
classes/DelphesClasses.cc
r914fb04 r122e1e5 129 129 Area(0.0, 0.0, 0.0, 0.0), 130 130 Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0), 131 TrackResolution(0),132 131 NCharged(0), 133 132 NNeutrals(0), … … 268 267 object.Yd = Yd; 269 268 object.Zd = Zd; 270 object.TrackResolution = TrackResolution; 269 271 270 object.NCharged = NCharged; 272 271 object.NNeutrals = NNeutrals; … … 369 368 Yd = 0.0; 370 369 Zd = 0.0; 371 TrackResolution = 0.0;372 370 NCharged = 0; 373 371 NNeutrals = 0; -
classes/DelphesClasses.h
r914fb04 r122e1e5 534 534 Float_t Zd; 535 535 536 // tracking resolution537 538 Float_t TrackResolution;539 540 536 // PileUpJetID variables 541 537 … … 595 591 void SetFactory(DelphesFactory *factory) { fFactory = factory; } 596 592 597 ClassDef(Candidate, 4)593 ClassDef(Candidate, 3) 598 594 }; 599 595 -
modules/Calorimeter.cc
r914fb04 r122e1e5 426 426 Double_t ecalEnergy, hcalEnergy; 427 427 Double_t ecalSigma, hcalSigma; 428 Double_t ecalTrkSigma, hcalTrkSigma;429 Double_t ecalFraction, hcalFraction;430 431 Int_t pdgCode;432 TLorentzVector momentum;433 TFractionMap::iterator itFractionMap;434 435 428 Float_t weight, sumWeightedTime, sumWeight; 436 429 437 430 if(!fTower) return; 438 431 439 440 432 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerECalEnergy); 441 433 hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerHCalEnergy); … … 509 501 // fill energy flow candidates 510 502 511 // save as eflowtracks only tracks that have better resolution than calo 512 513 fItTowerTrackArray->Reset(); 514 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 515 { 516 momentum = track->Momentum; 517 518 pdgCode = TMath::Abs(track->PID); 519 520 itFractionMap = fFractionMap.find(pdgCode); 521 if(itFractionMap == fFractionMap.end()) 522 { 523 itFractionMap = fFractionMap.find(0); 524 } 525 526 ecalFraction = itFractionMap->second.first; 527 hcalFraction = itFractionMap->second.second; 528 529 // charged particle has to deposit either in ECAL or HCAL 530 531 if(ecalFraction < 1.0E-9 && hcalFraction < 1.0E-9) continue; 532 if(ecalFraction > 1.0E-9 && hcalFraction > 1.0E-9) continue; 533 534 if(ecalFraction > 1.0E-9) 535 { 536 if(track->TrackResolution < ecalTrkSigma/momentum.E()) 537 { 538 ecalTrkSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 539 ecalEnergy -= momentum.E(); 540 fEFlowTrackOutputArray->Add(track); 541 } 542 543 } 544 545 if(hcalFraction > 1.0E-9) 546 { 547 if(track->TrackResolution < hcalTrkSigma/momentum.E()) 548 { 549 hcalTrkSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 550 hcalEnergy -= momentum.E(); 551 fEFlowTrackOutputArray->Add(track); 552 } 553 } 554 } 503 // save all the tracks as energy flow tracks 504 fItTowerTrackArray->Reset(); 505 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 506 { 507 fEFlowTrackOutputArray->Add(track); 508 } 509 510 ecalEnergy -= fTrackECalEnergy; 511 hcalEnergy -= fTrackHCalEnergy; 555 512 556 513 ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy); -
modules/EnergySmearing.cc
r914fb04 r122e1e5 119 119 phi = candidateMomentum.Phi(); 120 120 candidate->Momentum.SetPtEtaPhiE(energy/TMath::CosH(eta), eta, phi, energy); 121 candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy)/energy;122 121 candidate->AddCandidate(mother); 123 122 -
modules/MomentumSmearing.cc
r914fb04 r122e1e5 118 118 phi = candidateMomentum.Phi(); 119 119 candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta)); 120 candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e);121 120 candidate->AddCandidate(mother); 122 121 -
modules/SimpleCalorimeter.cc
r914fb04 r122e1e5 168 168 // create output arrays 169 169 fTowerOutputArray = ExportArray(GetString("TowerOutputArray", "towers")); 170 171 fEFlowTrackOutputArray = ExportArray(GetString("EFlowTrackOutputArray", "eflowTracks"));172 170 fEFlowTowerOutputArray = ExportArray(GetString("EFlowTowerOutputArray", "eflowTowers")); 173 171 } … … 397 395 void SimpleCalorimeter::FinalizeTower() 398 396 { 399 Candidate *tower , *track;397 Candidate *tower; 400 398 Double_t energy, pt, eta, phi; 401 399 Double_t sigma; 402 400 Double_t time; 403 401 404 Double_t trkSigma, fraction;405 406 Int_t pdgCode;407 TLorentzVector momentum;408 TFractionMap::iterator itFractionMap;409 410 402 if(!fTower) return; 411 403 … … 447 439 if(energy > 0.0) fTowerOutputArray->Add(fTower); 448 440 449 450 451 // fill e-flow candidates 452 fItTowerTrackArray->Reset(); 453 while((track = static_cast<Candidate*>(fItTowerTrackArray->Next()))) 454 { 455 momentum = track->Momentum; 456 457 pdgCode = TMath::Abs(track->PID); 458 459 itFractionMap = fFractionMap.find(pdgCode); 460 if(itFractionMap == fFractionMap.end()) 461 { 462 itFractionMap = fFractionMap.find(0); 463 } 464 465 fraction = itFractionMap->second; 466 467 // charged particle has to deposit either in ECAL or HCAL 468 if(fraction < 1.0E-9) continue; 469 470 trkSigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, momentum.E()); 471 472 if(track->TrackResolution < trkSigma/momentum.E()) 473 { 474 energy -= momentum.E(); 475 fEFlowTrackOutputArray->Add(track); 476 } 477 478 } 479 441 // fill energy flow candidates 442 energy -= fTrackEnergy; 480 443 481 444 sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy); 445 482 446 if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0; 483 447 -
modules/SimpleCalorimeter.h
r914fb04 r122e1e5 99 99 TObjArray *fTowerOutputArray; //! 100 100 101 TObjArray *fEFlowTrackOutputArray; //!102 101 TObjArray *fEFlowTowerOutputArray; //! 103 102 104 103 TObjArray *fTowerTrackArray; //! 105 104 TIterator *fItTowerTrackArray; //!
Note:
See TracChangeset
for help on using the changeset viewer.