00001
00002 #include "StjMCParticleMaker.h"
00003
00004
00005 #include "StjMCParticleCut.h"
00006 #include "StjMCParticleCutEta.h"
00007 #include "StjMCParticleCutEtaForStatus.h"
00008 #include "StjMCParticleCutStatus.h"
00009
00010 #include "StjMCParticleListWriter.h"
00011
00012 #include "StjMCMuDst.h"
00013
00014 #include "StjMCParticleListCut.h"
00015
00016 #include <TDirectory.h>
00017
00018 #include <iostream>
00019
00020 using namespace std;
00021
00022 ClassImp(StjMCParticleMaker)
00023
00024
00025 StjMCParticleMaker::StjMCParticleMaker(const Char_t *name, TDirectory* file, StMaker* uDstMaker)
00026 : StMaker(name)
00027 , _file(file)
00028 , _uDstMaker(uDstMaker)
00029 { }
00030
00031 Int_t StjMCParticleMaker::Init()
00032 {
00033 _mc = new StjMCMuDst(_uDstMaker);
00034
00035 _mcCut = new StjMCParticleListCut();
00036
00037 int goodStatus[] = {1, 3};
00038 _mcCut->addCut(new StjMCParticleCutStatus(2, goodStatus));
00039 _mcCut->addCut(new StjMCParticleCutEtaForStatus(-2.0, 2.0, 1));
00040
00041 _writer = new StjMCParticleListWriter("mcParticles", _file);
00042
00043 return kStOk;
00044 }
00045
00046 Int_t StjMCParticleMaker::Make()
00047 {
00048 StjMCParticleList theList = _mc->getMCParticleList();
00049
00050 theList = (*_mcCut)(theList);
00051
00052 _writer->Fill(theList);
00053
00054 return kStOk;
00055
00056 }
00057
00058 Int_t StjMCParticleMaker::Finish()
00059 {
00060 _writer->Finish();
00061
00062 return kStOk;
00063 }