00001
00002 #include "StjDijetListWriter.h"
00003
00004 #include <TFile.h>
00005 #include <TTree.h>
00006
00007 #include <iostream>
00008
00009 ClassImp(StjDijetListWriter)
00010
00011 using namespace std;
00012
00013 StjDijetListWriter::StjDijetListWriter(const char* treeName, TDirectory* file)
00014 : _file(file)
00015 {
00016 _file->cd();
00017
00018 _tree = new TTree(treeName, treeName);
00019 _tree->SetAutoSave(kMaxLong64);
00020 _tree->SetMaxTreeSize(kMaxLong64);
00021
00022 _tree->Branch("eventId" , &_eventId , "eventId/I" );
00023 _tree->Branch("dijetId" , &_dijetId , "dijetId/I" );
00024 _tree->Branch("m" , &_m , "m/D" );
00025 _tree->Branch("eta" , &_eta , "eta/D" );
00026 _tree->Branch("costh" , &_costh , "costh/D" );
00027 _tree->Branch("deta" , &_deta , "deta/D" );
00028 _tree->Branch("dphi" , &_dphi , "dphi/D" );
00029
00030 _tree->Branch("eth" , & _eth , "eth/D" );
00031 _tree->Branch("etl" , & _etl , "etl/D" );
00032
00033 _tree->Branch("vertexZ" , &_vertexZ , "vertexZ/D" );
00034
00035 _tree->Branch("_pt3" , &_pt3 ,"pt3/D" );
00036 _tree->Branch("_pt4" , &_pt4 ,"pt4/D" );
00037 _tree->Branch("_eta3" , &_eta3 ,"eta3/D" );
00038 _tree->Branch("_eta4" , &_eta4 ,"eta4/D" );
00039 _tree->Branch("_phi3" , &_phi3 ,"phi3/D" );
00040 _tree->Branch("_phi4" , &_phi4 ,"phi4/D" );
00041 _tree->Branch("_m3" , &_m3 ,"m3/D" );
00042 _tree->Branch("_m4" , &_m4 ,"m4/D" );
00043
00044 _tree->Branch("jet3Id" , &_jet3Id , "jet3Id/I" );
00045 _tree->Branch("jet4Id" , &_jet4Id , "jet4Id/I" );
00046 _tree->Branch("jetSameSideId", &_jetSameSideId, "jetSameSideId/I" );
00047 _tree->Branch("jetAwaySideId", &_jetAwaySideId, "jetAwaySideId/I" );
00048 _tree->Branch("neuRtSame" , &_neuRtSame , "neuRtSame/D" );
00049 _tree->Branch("neuRtAway" , &_neuRtAway , "neuRtAway/D" );
00050 _tree->Branch("neuRt3" , &_neuRt3 , "neuRt3/D" );
00051 _tree->Branch("neuRt4" , &_neuRt4 , "neuRt4/D" );
00052 _tree->Branch("runNumber" , &_runNumber , "runNumber/I" );
00053 }
00054
00055 void StjDijetListWriter::Fill(const StjDijetList& dijetList)
00056 {
00057 if(dijetList.empty()) return;
00058
00059 _runNumber = dijetList[0].runNumber;
00060 _eventId = dijetList[0].eventId;
00061 _dijetId = dijetList[0].dijetId;
00062 _m = dijetList[0].m;
00063 _eta = dijetList[0].eta;
00064 _costh = dijetList[0].costh;
00065 _deta = dijetList[0].deta;
00066 _dphi = dijetList[0].dphi;
00067 _eth = dijetList[0].eth;
00068 _etl = dijetList[0].etl;
00069 _vertexZ = dijetList[0].vertexZ;
00070 _pt3 = dijetList[0].pt3;
00071 _pt4 = dijetList[0].pt4;
00072 _eta3 = dijetList[0].eta3;
00073 _eta4 = dijetList[0].eta4;
00074 _phi3 = dijetList[0].phi3;
00075 _phi4 = dijetList[0].phi4;
00076 _m3 = dijetList[0].m3;
00077 _m4 = dijetList[0].m4;
00078 _jet3Id = dijetList[0].jet3.jetId;
00079 _jet4Id = dijetList[0].jet4.jetId;
00080 _jetSameSideId = dijetList[0].jetSameSide.jetId;
00081 _jetAwaySideId = dijetList[0].jetAwaySide.jetId;
00082 _neuRtSame = dijetList[0].neuRtSameSide;
00083 _neuRtAway = dijetList[0].neuRtAwaySide;
00084 _neuRt3 = dijetList[0].neuRt3;
00085 _neuRt4 = dijetList[0].neuRt4;
00086
00087 _tree->Fill();
00088 }
00089
00090 void StjDijetListWriter::Finish()
00091 {
00092 _tree->BuildIndex("runNumber", "eventId");
00093 }