Fork me on GitHub

Changes in / [914fb04:122e1e5] in git


Ignore:
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • cards/delphes_card_FCC_basic.tcl

    r914fb04 r122e1e5  
    224224
    225225  set TowerOutputArray ecalTowers
    226   set EFlowTrackOutputArray eflowTracks
    227226  set EFlowTowerOutputArray eflowPhotons
    228227
     
    288287module SimpleCalorimeter HCal {
    289288  set ParticleInputArray ParticlePropagator/stableParticles
    290   set TrackInputArray ECal/eflowTracks
     289  set TrackInputArray ImpactParameterSmearing/tracks
    291290
    292291  set TowerOutputArray hcalTowers
    293   set EFlowTrackOutputArray eflowTracks
    294292  set EFlowTowerOutputArray eflowNeutralHadrons
    295293
     
    367365module Merger EFlowMerger {
    368366# add InputArray InputArray
    369   add InputArray HCal/eflowTracks
     367  add InputArray ImpactParameterSmearing/tracks
    370368  add InputArray ECal/eflowPhotons
    371369  add InputArray HCal/eflowNeutralHadrons
  • cards/delphes_card_ILD.tcl

    r914fb04 r122e1e5  
    214214
    215215  set TowerOutputArray ecalTowers
    216   set EFlowTrackOutputArray eflowTracks
    217216  set EFlowTowerOutputArray eflowPhotons
    218217
     
    275274module SimpleCalorimeter HCal {
    276275  set ParticleInputArray ParticlePropagator/stableParticles
    277   set TrackInputArray ECal/eflowTracks
     276  set TrackInputArray ImpactParameterSmearing/tracks
    278277
    279278  set TowerOutputArray hcalTowers
    280   set EFlowTrackOutputArray eflowTracks
    281279  set EFlowTowerOutputArray eflowNeutralHadrons
    282280
     
    351349module Merger EFlowMerger {
    352350# add InputArray InputArray
    353   add InputArray HCal/eflowTracks
     351  add InputArray ImpactParameterSmearing/tracks
    354352  add InputArray ECal/eflowPhotons
    355353  add InputArray HCal/eflowNeutralHadrons
  • cards/delphes_card_LHCb.tcl

    r914fb04 r122e1e5  
    270270
    271271  set TowerOutputArray ecalTowers
    272   set EFlowTrackOutputArray eflowTracks
    273272  set EFlowTowerOutputArray eflowPhotons
    274273
     
    350349module SimpleCalorimeter HCal {
    351350  set ParticleInputArray ParticlePropagator/stableParticles
    352   set TrackInputArray ECal/eflowTracks
     351  set TrackInputArray IdentificationMap/tracks
    353352
    354353  set TowerOutputArray hcalTowers
    355   set EFlowTrackOutputArray eflowTracks
    356354  set EFlowTowerOutputArray eflowNeutralHadrons
    357355
  • classes/DelphesClasses.cc

    r914fb04 r122e1e5  
    129129  Area(0.0, 0.0, 0.0, 0.0),
    130130  Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0),
    131   TrackResolution(0),
    132131  NCharged(0),
    133132  NNeutrals(0),
     
    268267  object.Yd = Yd;
    269268  object.Zd = Zd;
    270   object.TrackResolution = TrackResolution;
     269
    271270  object.NCharged = NCharged;
    272271  object.NNeutrals = NNeutrals;
     
    369368  Yd = 0.0;
    370369  Zd = 0.0;
    371   TrackResolution = 0.0;
    372370  NCharged = 0;
    373371  NNeutrals = 0;
  • classes/DelphesClasses.h

    r914fb04 r122e1e5  
    534534  Float_t Zd;
    535535
    536   // tracking resolution
    537  
    538   Float_t TrackResolution;
    539 
    540536  // PileUpJetID variables
    541537
     
    595591  void SetFactory(DelphesFactory *factory) { fFactory = factory; }
    596592
    597   ClassDef(Candidate, 4)
     593  ClassDef(Candidate, 3)
    598594};
    599595
  • modules/Calorimeter.cc

    r914fb04 r122e1e5  
    426426  Double_t ecalEnergy, hcalEnergy;
    427427  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  
    435428  Float_t weight, sumWeightedTime, sumWeight;
    436429
    437430  if(!fTower) return;
    438431
    439  
    440432  ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerECalEnergy);
    441433  hcalSigma = fHCalResolutionFormula->Eval(0.0, fTowerEta, 0.0, fTowerHCalEnergy);
     
    509501  // fill energy flow candidates
    510502
    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;
    555512
    556513  ecalSigma = fECalResolutionFormula->Eval(0.0, fTowerEta, 0.0, ecalEnergy);
  • modules/EnergySmearing.cc

    r914fb04 r122e1e5  
    119119    phi = candidateMomentum.Phi();
    120120    candidate->Momentum.SetPtEtaPhiE(energy/TMath::CosH(eta), eta, phi, energy);
    121     candidate->TrackResolution = fFormula->Eval(pt, eta, phi, energy)/energy;
    122121    candidate->AddCandidate(mother);
    123122 
  • modules/MomentumSmearing.cc

    r914fb04 r122e1e5  
    118118    phi = candidateMomentum.Phi();
    119119    candidate->Momentum.SetPtEtaPhiE(pt, eta, phi, pt*TMath::CosH(eta));
    120     candidate->TrackResolution = fFormula->Eval(pt, eta, phi, e);
    121120    candidate->AddCandidate(mother);
    122121       
  • modules/SimpleCalorimeter.cc

    r914fb04 r122e1e5  
    168168  // create output arrays
    169169  fTowerOutputArray = ExportArray(GetString("TowerOutputArray", "towers"));
    170  
    171   fEFlowTrackOutputArray = ExportArray(GetString("EFlowTrackOutputArray", "eflowTracks"));
    172170  fEFlowTowerOutputArray = ExportArray(GetString("EFlowTowerOutputArray", "eflowTowers"));
    173171}
     
    397395void SimpleCalorimeter::FinalizeTower()
    398396{
    399   Candidate *tower, *track;
     397  Candidate *tower;
    400398  Double_t energy, pt, eta, phi;
    401399  Double_t sigma;
    402400  Double_t time;
    403401
    404   Double_t trkSigma, fraction;
    405  
    406   Int_t pdgCode;
    407   TLorentzVector momentum;
    408   TFractionMap::iterator itFractionMap;
    409  
    410402  if(!fTower) return;
    411403
     
    447439  if(energy > 0.0) fTowerOutputArray->Add(fTower);
    448440
    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;
    480443
    481444  sigma = fResolutionFormula->Eval(0.0, fTowerEta, 0.0, energy);
     445
    482446  if(energy < fEnergyMin || energy < fEnergySignificanceMin*sigma) energy = 0.0;
    483447
  • modules/SimpleCalorimeter.h

    r914fb04 r122e1e5  
    9999  TObjArray *fTowerOutputArray; //!
    100100
    101   TObjArray *fEFlowTrackOutputArray; //!
    102101  TObjArray *fEFlowTowerOutputArray; //!
    103  
     102
    104103  TObjArray *fTowerTrackArray; //!
    105104  TIterator *fItTowerTrackArray; //!
Note: See TracChangeset for help on using the changeset viewer.