00001
00002
00003
00004 #ifndef STJJETVARIATIONTRACK_H
00005 #define STJJETVARIATIONTRACK_H
00006
00007 #include "StjJetVariation.h"
00008
00009 #include <TLorentzVector.h>
00010
00011 class StjJetVariationTrack : public StjJetVariation {
00012
00013 public:
00014 StjJetVariationTrack(double ratio = 0.1)
00015 : _ratio(ratio) { }
00016 virtual ~StjJetVariationTrack() { }
00017
00018 StjJet operator()(const StjJet& jet)
00019 {
00020 StjJet ret(jet);
00021
00022 TLorentzVector p4In;
00023 p4In.SetPtEtaPhiM(ret.pt, ret.eta, ret.phi, ret.m);
00024
00025 double newPt = (1.0 + _ratio*(1 - jet.neuRt))*p4In.Pt();
00026 double newE = (1.0 + _ratio*(1 - jet.neuRt))*p4In.E();
00027
00028 TLorentzVector p4Out;
00029 p4Out.SetPtEtaPhiE(newPt, p4In.Eta(), p4In.Phi(), newE);
00030
00031 ret.pt = p4Out.Pt();
00032 ret.m = p4Out.M();
00033
00034 return ret;
00035 }
00036
00037 private:
00038
00039 double _ratio;
00040
00041 ClassDef(StjJetVariationTrack, 1)
00042
00043 };
00044
00045 #endif // STJJETVARIATIONTRACK_H