/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/topUtils/topUtils/MuonSmear.h

00001 #ifndef TOPUTILS_MUONSMEAR_H__
00002 #define TOPUTILS_MUONSMEAR_H__
00003 
00004 #include <vector>
00005 #include "TRandom3.h"
00006 
00007 class TLorentzVector;
00008 
00012 class MuonSmear {
00013 
00014  public:
00015 
00016   MuonSmear();
00017 
00018   void SetEtaBinEdges(const std::vector<double>& binedges);
00019 
00020   void SetC1Vals(const std::vector<double>& c1vals);
00021   void SetC2Vals(const std::vector<double>& c2vals);
00022 
00024   void UseTopRediscoverySmearingVals();
00026   void UseTopRediscoverySmearingValsPlus1s();
00028   void UseTopRediscoverySmearingValsMinus1s();
00029   
00031   void UseTopRediscoveryScaleVals();
00033   void UseTopRediscoveryScaleValsPlus1s();
00035   void UseTopRediscoveryScaleValsMinus1s();
00036 
00038   void UseTopRediscoveryVals();
00040   void UseTopRediscoveryValsPlus1s();
00042   void UseTopRediscoveryValsMinus1s();
00043 
00045   void SmearAndScale(TLorentzVector* vec);
00047   void Smear(TLorentzVector* vec);
00049   void Scale(TLorentzVector* vec);
00050 
00051 
00052  protected:
00053 
00054   void UseTopRediscoveryBinEdges();
00055 
00056   std::vector<double> m_etabinedges;
00057 
00058   std::vector<double> m_c1_vals;
00059   std::vector<double> m_c2_vals;
00060 
00061   int findBin(const double eta) const;
00062 
00063   TRandom3 m_rand;
00064 
00065 };//class MuonSmear
00066 
00067 #endif //TOPUTILS_MUONSMEAR_H__

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7