00001
00002
00003 #include "StBET4pMakerImp.h"
00004
00005 #include "StjTPC.h"
00006 #include "StjBEMC.h"
00007 #include "StjEEMC.h"
00008
00009 #include "StjTrackListCut.h"
00010 #include "StjTowerEnergyListCut.h"
00011
00012 #include "StjAbstractTowerEnergyCorrectionForTracks.h"
00013
00014 #include <iostream>
00015
00016 using namespace std;
00017
00018 StBET4pMakerImp::StBET4pMakerImp(StjTPC* tpc, StjTrackListCut* tpcCut,
00019 StjBEMC* bemc, StjTowerEnergyListCut* bemcCut,
00020 StjAbstractTowerEnergyCorrectionForTracks* correctTowerEnergyForTracks,
00021 StjEEMC* eemc)
00022 : _tpc(tpc), _bemc(bemc), _eemc(eemc)
00023 , _tpcCut(tpcCut), _bemcCut(bemcCut)
00024 , _correctTowerEnergyForTracks(correctTowerEnergyForTracks)
00025 {
00026
00027 }
00028
00029 void StBET4pMakerImp::Init()
00030 {
00031 _tpc->Init();
00032 _bemc->Init();
00033 _eemc->Init();
00034 }
00035
00036 std::pair<StjTrackList, StjTowerEnergyList> StBET4pMakerImp::getTrackAndEnergyList()
00037 {
00038 StjTrackList trackList = _tpc->getTrackList();
00039 StjTowerEnergyList bemcEnergyList = _bemc->getEnergyList();
00040 StjTowerEnergyList eemcEnergyList = _eemc->getEnergyList();
00041
00042 trackList = (*_tpcCut)(trackList);
00043 bemcEnergyList = (*_bemcCut)(bemcEnergyList);
00044
00045 StjTowerEnergyList energyList;
00046 energyList.insert(energyList.end(),bemcEnergyList.begin(),bemcEnergyList.end());
00047 energyList.insert(energyList.end(),eemcEnergyList.begin(),eemcEnergyList.end());
00048
00049 energyList = (*_correctTowerEnergyForTracks)(energyList,trackList);
00050
00051 return make_pair(trackList,energyList);
00052 }