00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "StjTowerEnergyCorrectionForTracksMip.h"
00010
00011 ClassImp(StjTowerEnergyCorrectionForTracksMip);
00012
00013 StjTowerEnergyList StjTowerEnergyCorrectionForTracksMip::Do(const StjTowerEnergyList& energyDepositList, const StjTrackList& trackList)
00014 {
00015 StjTowerEnergyList elist;
00016
00017 for (StjTowerEnergyList::const_iterator iTower = energyDepositList.begin(); iTower != energyDepositList.end(); ++iTower) {
00018 StjTowerEnergy tower = *iTower;
00019 float eta = tower.towerEta;
00020
00021 for (StjTrackList::const_iterator iTrack = trackList.begin(); iTrack != trackList.end(); ++iTrack) {
00022 const StjTrack& track = *iTrack;
00023
00024 if (track.exitDetectorId == tower.detectorId && track.exitTowerId == tower.towerId) {
00025
00026 tower.energy -= 0.261*(1+0.056*eta*eta)*cosh(eta);
00027 }
00028 }
00029
00030 if (tower.energy > 0) elist.push_back(tower);
00031 }
00032 return elist;
00033 }