00001
00002 #include "StjTrgWriter.h"
00003
00004 #include "StjTrg.h"
00005
00006 #include <TDirectory.h>
00007 #include <TTree.h>
00008
00009 ClassImp(StjTrgWriter)
00010
00011 void StjTrgWriter::Init()
00012 {
00013 _tree = createTree();
00014 createBranch_general(_tree);
00015 createBranch_trgSpecific(_tree);
00016 }
00017
00018 void StjTrgWriter::Make()
00019 {
00020 if( !(*_fillCondition)(_trg) ) return;
00021 fillBranch_general();
00022 fillBranch_trgSpecific();
00023 _tree->Fill();
00024 }
00025
00026 void StjTrgWriter::Finish()
00027 {
00028 _tree->BuildIndex("runNumber", "eventId");
00029 }
00030
00031 TTree* StjTrgWriter::createTree()
00032 {
00033 _file->cd();
00034 return new TTree(_treeName.c_str(), _treeTitle.c_str());
00035 }
00036
00037 void StjTrgWriter::createBranch_general(TTree* tree)
00038 {
00039 tree->Branch("runNumber" , &_runNumber , "runNumber/I" );
00040 tree->Branch("eventId" , &_eventId , "eventId/I" );
00041 tree->Branch("vertexZ" , &_vertexZ , "vertexZ/D" );
00042 tree->Branch("trigID" , &_trigID , "trigID/I" );
00043 tree->Branch("prescale" , &_prescale , "prescale/D" );
00044 tree->Branch("passed" , &_passed , "passed/I" );
00045 tree->Branch("hard" , &_hard , "hard/I" );
00046 tree->Branch("soft" , &_soft , "soft/I" );
00047 }
00048
00049 void StjTrgWriter::fillBranch_general()
00050 {
00051 _trigID = _trg->id();
00052
00053 _hard = _trg->hard();
00054
00055 _soft = _trg->soft();
00056
00057 _passed = _trg->passed();
00058
00059 _runNumber = _trg->runNumber();
00060
00061 _eventId = _trg->eventId();
00062
00063 _vertexZ = _trg->vertexZ();
00064
00065 _prescale = _trg->prescale();
00066 }
00067