00001
00002
00003 #include "StjeTowerEnergyListToStMuTrackFourVecList.h"
00004
00005 #include "StjTowerEnergyToTLorentzVector.h"
00006
00007 #include "../emulator/StMuTrackFourVec.h"
00008 #include "../emulator/StMuTowerEmu.h"
00009
00010 StjeTowerEnergyListToStMuTrackFourVecList::StjeTowerEnergyListToStMuTrackFourVecList()
00011 : _energyTo4p(*(new StjTowerEnergyToTLorentzVector)) { }
00012
00013 FourList StjeTowerEnergyListToStMuTrackFourVecList::operator()(const StjTowerEnergyList& energyDepositList)
00014 {
00015 FourList ret;
00016
00017 for(StjTowerEnergyList::const_iterator tower = energyDepositList.begin(); tower != energyDepositList.end(); ++tower) {
00018
00019 TLorentzVector p4 = _energyTo4p(*tower);
00020
00021 StMuTrackFourVec* pmu = new StMuTrackFourVec(0, createTowerEmu(*tower), 0, p4, 0, tower->towerId, tower->detectorId);
00022
00023 ret.push_back(pmu);
00024 }
00025
00026 return ret;
00027 }
00028
00029 StMuTowerEmu* StjeTowerEnergyListToStMuTrackFourVecList::createTowerEmu(const StjTowerEnergy& tower)
00030 {
00031 StMuTowerEmu* ret = new StMuTowerEmu;
00032
00033 TVector3 mom;
00034 mom.SetPtEtaPhi(tower.towerR, tower.towerEta, tower.towerPhi);
00035 mom.SetMag(tower.energy);
00036
00037 ret->_px = mom.Px();
00038 ret->_py = mom.Py();
00039 ret->_pz = mom.Pz();
00040 ret->_adc = tower.adc;
00041 ret->_pedestal = tower.pedestal;
00042 ret->_rms = tower.rms;
00043 ret->_status = tower.status;
00044 ret->_id = tower.towerId;
00045 ret->_detectorId = tower.detectorId;
00046
00047 return ret;
00048 }