00001
00002
00003 #ifndef STJTRGWRITER_H
00004 #define STJTRGWRITER_H
00005
00006 #include <TObject.h>
00007
00008 #include "StjTrgPassCondition.h"
00009
00010 #include <Rtypes.h>
00011
00012 #include <string>
00013
00014 class TDirectory;
00015 class TTree;
00016
00017 class StjTrg;
00018
00019 class StjTrgWriter : public TObject {
00020
00021 public:
00022
00023 StjTrgWriter(const char *treeName, const char* treeTitle,
00024 TDirectory* file, StjTrg* trg,
00025 StjTrgPassCondition* fillCondition)
00026 : _treeName(treeName), _treeTitle(treeName)
00027 , _file(file)
00028 , _trg(trg)
00029 , _fillCondition(fillCondition)
00030 { }
00031 virtual ~StjTrgWriter() { }
00032
00033 virtual void Init();
00034 virtual void Make();
00035 virtual void Finish();
00036
00037 private:
00038
00039 virtual TTree* createTree();
00040 virtual void createBranch_general(TTree* tree);
00041 virtual void createBranch_trgSpecific(TTree* tree) = 0;
00042
00043 virtual void fillBranch_general();
00044 virtual void fillBranch_trgSpecific() = 0;
00045
00046 std::string _treeName;
00047 std::string _treeTitle;
00048
00049 TDirectory* _file;
00050 TTree* _tree;
00051
00052 StjTrg* _trg;
00053
00054 Int_t _runNumber;
00055 Int_t _eventId;
00056 Double_t _vertexZ;
00057 Int_t _trigID;
00058 Double_t _prescale;
00059 Int_t _passed;
00060 Int_t _hard;
00061 Int_t _soft;
00062
00063 StjTrgPassCondition* _fillCondition;
00064
00065 ClassDef(StjTrgWriter, 1)
00066
00067 };
00068
00069 #endif // STJTRGWRITER_H