Index: trunk/interface/SmearUtil.h
===================================================================
--- trunk/interface/SmearUtil.h	(revision 198)
+++ trunk/interface/SmearUtil.h	(revision 223)
@@ -19,13 +19,7 @@
 #include "TLorentzVector.h"
 
-#include "Utilities/ExRootAnalysis/interface/BlockClasses.h"
-#include "Utilities/ExRootAnalysis/interface/TSimpleArray.h"
-
-#include "Utilities/Fastjet/plugins/CDFCones/interface/PhysicsTower.hh"
-
-#include <iostream>
-#include <sstream>
-#include <fstream>
-#include <iomanip>
+#include "BlockClasses.h"
+#include "TSimpleArray.h"
+#include "PhysicsTower.hh"
 
 using namespace std;
@@ -34,18 +28,21 @@
 
  public:
-  ParticleUtil(const TLorentzVector &genMomentum,const int &pid) : TLVector(genMomentum) , Pid(pid) {}
-
-  float E() {return TLVector.E();}    // particle energy [GeV]
-  float Px() {return TLVector.Px();}  // horizontal coordinate of momentum [GeV]
-  float Py() {return TLVector.Py();}  // vertical coordinate of momentum [GeV]
-  float Pz() {return TLVector.Pz();}  // longitudinal coordinate of momentum [GeV]
-  float Pt() {return TLVector.Pt();}  // transverse momentum [GeV]
-  float Eta() {return TLVector.Eta();}  // pseudorapidity [GeV]
-  float Phi() {return TLVector.Phi();}  // azimuthal angle [GeV]
-  float PID() {return Pid;}  // particle energy in [GeV]
+  ParticleUtil(const TLorentzVector &genMomentum, int pid);
+
+  float E() {return _e;}    // particle energy [GeV]
+  float Px() {return _px;}  // horizontal coordinate of momentum [GeV]
+  float Py() {return _py;}  // vertical coordinate of momentum [GeV]
+  float Pz() {return _pz;}  // longitudinal coordinate of momentum [GeV]
+  float Pt() {return _pt;}  // transverse momentum [GeV]
+  float EtaCalo() {return _etaCalo;}  // pseudorapidity 
+  float Eta() {return _eta;}  // pseudorapidity 
+  float PhiCalo() {return _phiCalo;}  // azimuthal angle 
+  float Phi() {return _phi;}  // azimuthal angle 
+  int PID() {return _pid;}  // particle energy in [GeV]
 
  private:
-  TLorentzVector TLVector;
-  int Pid;
+  float _e, _px, _py, _pz, _pt;
+  float _eta, _etaCalo, _phi, _phiCalo; 
+  int _pid;
 };
 
@@ -56,5 +53,8 @@
   /// Constructor
   RESOLution();
-  
+  RESOLution(const RESOLution & DET);
+  RESOLution& operator=(const RESOLution& DET);
+  ~RESOLution() { delete [] TOWER_eta_edges; delete [] TOWER_dphi;};
+ 
   // Detector coverage
   float CEN_max_tracker;    // tracker pseudorapidity coverage
@@ -155,9 +155,4 @@
  
  int NEvents_Frog;
-
-
-
-
-
   float PT_QUARKS_MIN;    // minimal pt needed for quarks to reach the tracker, in GeV
 
@@ -169,5 +164,5 @@
  
   /// Create the output log file
-  void Logfile(string LogName);
+  void Logfile(const string& LogName);
   
   /// Provides the smeared TLorentzVector for the electrons
@@ -180,18 +175,18 @@
   void SmearHadron(TLorentzVector &hadron, const float frac);
   
-  //*****************************fonction pour avoir les taus************************************
+  /// For electromagnetic collimation in tau jets
   double EnergySmallCone(const vector<PhysicsTower> &towers, const float eta, const float phi);
 
-  //***************** Fonction pour avoir le nombre de traces pour les taus****************************
+  /// Number of tracks in tau jet algo
   unsigned int NumTracks(const vector<TLorentzVector> &tracks, const float pt_track, const float eta, const float phi);
 
-  //**********************fonction pour avoir les b-jets******************************
+  /// b-jets
   int Bjets(const TSimpleArray<TRootGenParticle> &subarray, const float eta, const float phi);
   
-  //******************** retourne l'efficacite de b-tagging ******************************
+  /// b-tag efficiency and misidentification
   bool Btaggedjet(const TLorentzVector &JET, const TSimpleArray<TRootGenParticle> &subarray);
 
-  //******************************isolation criteria**************************************
-  bool Isolation(Float_t phi,Float_t eta,const vector<TLorentzVector> &tracks,float PT_TRACK2);
+  /// Lepton isolation
+  bool Isolation(const float phi, const float eta,const vector<TLorentzVector> &tracks,float PT_TRACK2);
 
   //********************* returns a segmented value for eta and phi, for calo towers *****
@@ -226,4 +221,6 @@
 
 const double speed_of_light = 299792458; // m/s
+const float UNDEFINED=-9999.;
+
 
 #ifndef __PI__
