Fork me on GitHub

Ticket #363: Calorimeter_Dither.patch

File Calorimeter_Dither.patch, 1.6 KB (added by Keith Pedersen, 10 years ago)

A diff patch (i.e. [you@earth]$ patch Calorimeter.cc < Calorimeter_Dither.patch)

  • .h

    old new private:  
    5252  Double_t fTrackECalWeightTime, fTrackHCalWeightTime;
    5353 
    5454  Int_t fTowerTrackHits, fTowerPhotonHits;
     55 
     56  Bool_t fDitherCenter;
    5557
    5658  TFractionMap fFractionMap; //!
    5759  TBinMap fBinMap; //!
  • .cc

    old new void Calorimeter::Init()  
    152152  fEFlowTrackOutputArray = ExportArray(GetString("EFlowTrackOutputArray", "eflowTracks"));
    153153  fEFlowPhotonOutputArray = ExportArray(GetString("EFlowPhotonOutputArray", "eflowPhotons"));
    154154  fEFlowNeutralHadronOutputArray = ExportArray(GetString("EFlowNeutralHadronOutputArray", "eflowNeutralHadrons"));
    155 
    156 
     155 
     156  fDitherCenter = GetBool("DitherTowerCenters", true);
    157157}
    158158
    159159//------------------------------------------------------------------------------
    void Calorimeter::FinalizeTower()  
    433433  energy = ecalEnergy + hcalEnergy;
    434434  time = (TMath::Sqrt(ecalEnergy)*ecalTime + TMath::Sqrt(hcalEnergy)*hcalTime)/(TMath::Sqrt(ecalEnergy) + TMath::Sqrt(hcalEnergy));
    435435
    436 //  eta = fTowerEta;
    437 //  phi = fTowerPhi;
    438 
    439   eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]);
    440   phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]);
     436  if(fDitherCenter)
     437  {
     438     eta = gRandom->Uniform(fTowerEdges[0], fTowerEdges[1]);
     439     phi = gRandom->Uniform(fTowerEdges[2], fTowerEdges[3]);
     440  }
     441  else
     442  {
     443     eta = fTowerEta;
     444     phi = fTowerPhi;
     445  }
    441446
    442447  pt = energy / TMath::CosH(eta);
    443448