00001
00002
00003 #include "StjFormDijet.h"
00004
00005 #include <TLorentzVector.h>
00006
00007 #include <algorithm>
00008 #include <iostream>
00009 #include <cmath>
00010
00011 ClassImp(StjFormDijet)
00012
00013 using namespace std;
00014
00015 StjDijetList StjFormDijet::operator()(StjJetList jetList)
00016 {
00017 StjDijetList ret;
00018 if(jetList.size() < 2) return ret;
00019 sort(jetList.begin(), jetList.end(), pt_more());
00020 StjDijet dijet;
00021 if(jetList[0].eta >= jetList[1].eta)
00022 {
00023 dijet.jet3 = jetList[0];
00024 dijet.jet4 = jetList[1];
00025 }
00026 else
00027 {
00028 dijet.jet3 = jetList[1];
00029 dijet.jet4 = jetList[0];
00030 }
00031 dijet.runNumber = dijet.jet3.runNumber;
00032 dijet.eventId = dijet.jet3.eventId;
00033 dijet.dijetId = 1;
00034 dijet.vertexZ = dijet.jet3.vertexZ;
00035 TLorentzVector jet3;
00036 TLorentzVector jet4;
00037 jet3.SetPtEtaPhiM(dijet.jet3.pt, dijet.jet3.eta, dijet.jet3.phi, dijet.jet3.m);
00038 jet4.SetPtEtaPhiM(dijet.jet4.pt, dijet.jet4.eta, dijet.jet4.phi, dijet.jet4.m);
00039 dijet.dphi = fabs(jet3.DeltaPhi(jet4));
00040 TLorentzVector di = jet3 + jet4;
00041 dijet.m = di.M();
00042 dijet.eta = 0.5*(dijet.jet3.eta + dijet.jet4.eta);
00043 dijet.costh = tanh(0.5*(dijet.jet3.eta - dijet.jet4.eta));
00044 dijet.deta = dijet.jet3.eta - dijet.jet4.eta;
00045
00046 if(jet3.Et() >= jet4.Et())
00047 {
00048 dijet.eth = jet3.Et();
00049 dijet.etl = jet4.Et();
00050 }
00051 else
00052 {
00053 dijet.eth = jet4.Et();
00054 dijet.etl = jet3.Et();
00055 }
00056
00057 dijet.pt3 = dijet.jet3.pt;
00058 dijet.pt4 = dijet.jet4.pt;
00059 dijet.eta3 = dijet.jet3.eta;
00060 dijet.eta4 = dijet.jet4.eta;
00061 dijet.phi3 = dijet.jet3.phi;
00062 dijet.phi4 = dijet.jet4.phi;
00063 dijet.m3 = dijet.jet3.m;
00064 dijet.m4 = dijet.jet4.m;
00065
00066 dijet.neuRt3 = dijet.jet3.neuRt;
00067 dijet.neuRt4 = dijet.jet4.neuRt;;
00068 dijet.jetSameSide = dijet.jet3;
00069 dijet.jetAwaySide = dijet.jet4;
00070 dijet.neuRtSameSide = dijet.jet3.neuRt;
00071 dijet.neuRtAwaySide = dijet.jet4.neuRt;;
00072 ret.push_back(dijet);
00073 return ret;
00074 }
00075