Index: trunk/Utilities/ExRootAnalysis/CREDITS
===================================================================
--- trunk/Utilities/ExRootAnalysis/CREDITS	(revision 267)
+++ trunk/Utilities/ExRootAnalysis/CREDITS	(revision 268)
@@ -1,4 +1,4 @@
-ExRootAnalysis utility
-Pavel Demin
+Based on the ExRootAnalysis utility of Pavel Demin
+Modified by S. Ovyn and X. Rouby
 
 Center for Particle Physics and Phenomenology (CP3)
Index: trunk/Utilities/ExRootAnalysis/interface/BlockClasses.h
===================================================================
--- trunk/Utilities/ExRootAnalysis/interface/BlockClasses.h	(revision 267)
+++ trunk/Utilities/ExRootAnalysis/interface/BlockClasses.h	(revision 268)
@@ -2,22 +2,34 @@
 #define BLOCKCLASSES_H
 
-/** \class BlockClasses
- *
- *  Definition of classes to be stored in root tree.  
- *  You can decide to have the objects in each event to be sorted according 
- *  to one of the data member of the class. If you decide so then a class 
- *  inheriting from class TCompare should be implemented. 
- *  There are already several functions TCompare*** implemented 
- *  (see BlockCompare.h). 
- *  Function TCompareXX sorts objects by the variable "XX" that MUST be 
- *  present in the data members of the Block TRoot class.
- *
- *  $Date: 2009-02-13 19:38:03 $
- *  $Revision: 1.13 $
- *
- *  
- *  \author P. Demin - UCL, Louvain-la-Neuve
- *
- */
+/***********************************************************************
+**                                                                    **
+**          /----------------------------------------------\          **
+**         |  Delphes, a framework for the fast simulation  |         **
+**         |       of a  generic collider experiment        |         **
+**          \----------------------------------------------/          **
+**                                                                    **
+**                                                                    **
+**   This package uses:                                               **
+**   ------------------                                               **
+**   FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210]      ** 
+**   Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2]       ** 
+**   FROG: [hep-ex/0901.2718v1]                                       **
+**                                                                    **
+** ------------------------------------------------------------------ **
+**                                                                    **
+**   Main authors:                                                    **
+**   -------------                                                    **
+**                                                                    **
+**                Severine Ovyn                Xavier Rouby           ** 
+**          severine.ovyn@uclouvain.be      xavier.rouby@cern         ** 
+**                                                                    ** 
+**         Center for Particle Physics and Phenomenology (CP3)        ** 
+**                Universite catholique de Louvain (UCL)              **       
+**                     Louvain-la-Neuve, Belgium                      **            
+**                                                                    **
+**                      Copyright (C) 2008-2009,                      **
+**                        All rights reserved.                        **  
+**                                                                    **
+***********************************************************************/
 
 #include "TLorentzVector.h"
@@ -162,12 +174,5 @@
   static TCompare *fgCompare; //!
   const TCompare *GetCompare() const { return fgCompare; }
-  //void SetEem_Ehad(const float sE_em, const float sE_had) {} ; // sets E_em and E_had, computes E and ET
   float PT; // particle transverse momentum in GeV
-  //const float getEtaGen() const {return _EtaGen;}
-  //const float getPhiGen() const {return _PhiGen;}
-
-
-//protected:
-  //float EGen, _EtaGen, _PhiGen; // from the generator: energy, eta, phi
 
   ClassDef(TRootParticle, 1)
@@ -249,11 +254,10 @@
 //---------------------------------------------------------------------------
 
-class D_Track : public TSortableObject {
-//class D_Track : public TRootParticle {
+class TRootTracks : public TSortableObject {
  public:
-    D_Track(); // needed for storage in ExRootAnalysis
-    D_Track(const D_Track& track);
-    D_Track(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt);
-    D_Track& operator=(const D_Track& track);
+    TRootTracks(); // needed for storage in ExRootAnalysis
+    TRootTracks(const TRootTracks& track);
+    TRootTracks(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt);
+    TRootTracks& operator=(const TRootTracks& track);
     void Set(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt);
     const TLorentzVector GetFourVector() const;
@@ -262,53 +266,15 @@
     const float getEtaOuter() const {return EtaOuter;}
     const float getPhiOuter() const {return PhiOuter;}
-    const float getE() const {return E;}
-    const float getPx() const {return Px;}
-    const float getPy() const {return Py;}
-    const float getPz() const {return Pz;}
-    const float getPT() const {return PT;}
-
-  static TCompare *fgCompare; //!
-  const TCompare *GetCompare() const { return fgCompare; }
- protected:
+
+    static TCompare *fgCompare; //!
+    const TCompare *GetCompare() const { return fgCompare; }
+
     float Eta, Phi; // (eta,phi) at the beginning of the track
     float EtaOuter, PhiOuter; // (eta,phi) at the end of the track
     float PT, E, Px, Py, Pz;  // transverse momentum
- ClassDef(D_Track, 1)
-};
-
-
-class TRootTracks: public TRootParticle  {
-public:
-  TRootTracks() {} // : Etaout(0), Phiout(0) {};
-  static TCompare *fgCompare; //!
-  TRootTracks(const D_Track& track);
-  float E;  // particle energy in GeV
-  float Px; // particle momentum vector (x component) in GeV
-  float Py; // particle momentum vector (y component) in GeV
-  float Pz; // particle momentum vector (z component) in GeV
-
-  float Eta; // particle pseudorapidity
-  float Phi; // particle azimuthal angle in rad
-
-  float EtaCalo; // particle pseudorapidity when entering the calo,
-  float PhiCalo; // particle azimuthal angle in rad when entering the calo 
-//  float X, Y, Z; // coordinates of the beginning of the track
-//  float Xout, Yout, Zout; // coordinates of the end of the track
-  //float Etaout, Phiout; // coordinates of the end of the track
-//  void SetPosition(const float x, const float y, const float z) {X=x; Y=y; Z=z;}
-//  void SetPositionOut(const float x, const float y, const float z) {Xout=x; Yout=y; Zout=z;}
-  ClassDef(TRootTracks, 1)
-};
-
-//---------------------------------------------------------------------------
-
-/*class TRootCalo: public TRootParticle
-public:
-  TRootCalo() {};
-  static TCompare *fgCompare; //!
-
-  ClassDef(TRootCalo, 1)
-};
-*/
+ ClassDef(TRootTracks, 1)
+};
+
+//---------------------------------------------------------------------------
 
 class TRootCalo: public TSortableObject 
@@ -328,7 +294,5 @@
  
  protected:
-    //float Eta, Phi;    // segmented eta, phi
     float E_em, E_had; // electromagnetic and hadronic components of the tower energy
-    //float E;
     float ET;       // total energy and transverse energy   
    ClassDef(TRootCalo, 1)
Index: trunk/Utilities/ExRootAnalysis/src/BlockClasses.cc
===================================================================
--- trunk/Utilities/ExRootAnalysis/src/BlockClasses.cc	(revision 267)
+++ trunk/Utilities/ExRootAnalysis/src/BlockClasses.cc	(revision 268)
@@ -1,21 +1,32 @@
-/** \class BlockClasses
- *
- *  Initialization of static fgCompare functions. At the moment a number of 
- *  functions TCompare*** are implemented (see BlockCompare.h). 
- *  Function TCompareXX sorts objects 
- *  by the variable "XX" that MUST be present in the data members of the 
- *  Block TRoot class.
- *  By default most objects are sorted by PT or ET.
- *  Only calorimeter cells and basic cluster are sorted by E
- *  TRootGenParticle particle is not sorted by default
- *  to preserve mother-dautherlinks between particles.
- *
- *  $Date: 2009-02-13 19:38:03 $
- *  $Revision: 1.9 $
- *
- *  
- *  \author S. Ovyn - UCL, Louvain-la-Neuve
- *
- */
+/***********************************************************************
+**                                                                    **
+**          /----------------------------------------------\          **
+**         |  Delphes, a framework for the fast simulation  |         **
+**         |       of a  generic collider experiment        |         **
+**          \----------------------------------------------/          **
+**                                                                    **
+**                                                                    **
+**   This package uses:                                               **
+**   ------------------                                               **
+**   FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210]      ** 
+**   Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2]       ** 
+**   FROG: [hep-ex/0901.2718v1]                                       **
+**                                                                    **
+** ------------------------------------------------------------------ **
+**                                                                    **
+**   Main authors:                                                    **
+**   -------------                                                    **
+**                                                                    **
+**                Severine Ovyn                Xavier Rouby           ** 
+**          severine.ovyn@uclouvain.be      xavier.rouby@cern         ** 
+**                                                                    ** 
+**         Center for Particle Physics and Phenomenology (CP3)        ** 
+**                Universite catholique de Louvain (UCL)              **       
+**                     Louvain-la-Neuve, Belgium                      **            
+**                                                                    **
+**                      Copyright (C) 2008-2009,                      **
+**                        All rights reserved.                        **  
+**                                                                    **
+***********************************************************************/
 
 #include "BlockClasses.h"
@@ -30,5 +41,5 @@
 TCompare *TRootTauJet::fgCompare = TComparePT<TRootTauJet>::Instance();
 TCompare *TRootJet::fgCompare = TComparePT<TRootJet>::Instance();
-TCompare *TRootTracks::fgCompare = TComparePT<TRootTracks>::Instance();
+TCompare *TRootTracks::fgCompare = 0;
 TCompare *TRootETmis::fgCompare = 0;
 TCompare *TRootCalo::fgCompare = 0;
@@ -39,6 +50,4 @@
 TCompare *TRootRomanPotHits::fgCompare =0;
 TCompare *TRootTrigger::fgCompare =0;
-//TCompare *D_CaloTower::fgCompare=0;
-TCompare *D_Track::fgCompare=0;
 
 void TRootParticle::Set(const TLorentzVector& momentum) {
@@ -107,9 +116,9 @@
     float PT, E, Px, Py, Pz; 
 
-D_Track::D_Track() :
+TRootTracks::TRootTracks() :
 	Eta(UNDEFINED), Phi(UNDEFINED), EtaOuter(UNDEFINED), PhiOuter(UNDEFINED), 
         PT(UNDEFINED), E(UNDEFINED), Px(UNDEFINED), Py(UNDEFINED), Pz(UNDEFINED) {}
 
-D_Track::D_Track(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt) :
+TRootTracks::TRootTracks(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt) :
 	Eta(inEta), Phi(inPhi), EtaOuter(outEta), PhiOuter(outPhi), 
         PT(pt) {
@@ -117,11 +126,10 @@
         Px = p.Px(); Py = p.Py(); Pz = p.Pz();  E=p.E();
 }
-
-D_Track::D_Track(const D_Track& track) :
+TRootTracks::TRootTracks(const TRootTracks& track) :
 	Eta(track.Eta), Phi(track.Phi), 
         EtaOuter(track.EtaOuter), PhiOuter(track.PhiOuter), 
 	PT(track.PT), E(track.E), Px(track.Px), Py(track.Py), Pz(track.Pz) {}
 
-D_Track& D_Track::operator=(const D_Track& track) {
+TRootTracks& TRootTracks::operator=(const TRootTracks& track) {
   if(this == &track) return *this;
 	Eta = track.Eta;             Phi = track.Phi; 
@@ -131,5 +139,5 @@
 }
 
-void D_Track::Set(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt) {
+void TRootTracks::Set(const float inEta, const float inPhi, const float outEta, const float outPhi, const float pt) {
 	Eta= inEta; Phi=inPhi;  EtaOuter=outEta; PhiOuter=outPhi; PT=pt; 
 	TLorentzVector p; p.SetPtEtaPhiE(PT,Eta,Phi,PT*cosh(Eta));
@@ -137,5 +145,5 @@
 }
 
-const TLorentzVector D_Track::GetFourVector() const {
+const TLorentzVector TRootTracks::GetFourVector() const {
 	TLorentzVector v;
 	v.SetPtEtaPhiE(PT,Eta,Phi,PT*cosh(Eta));
@@ -162,12 +170,3 @@
         E_em=cal.getEem(); E_had=cal.getEhad();
         E   =cal.getE();   ET   =cal.getET();
-	//EtaCalo = cal.getEta();
-	//PhiCalo = cal.getPhi();
 }
-
-
-TRootTracks::TRootTracks(const D_Track& track) :
-   E(track.getE()), Px(track.getPx()), Py(track.getPy()), Pz(track.getPz()),
-   Eta(track.getEta()), Phi(track.getPhi()),
-   /*Etaout(track.getEtaOuter()),*/ EtaCalo(track.getEtaOuter()), /*Phiout(track.getPhiOuter()),*/ PhiCalo(track.getPhiOuter()) {}
-
Index: trunk/Utilities/ExRootAnalysis/src/BlockClassesLinkDef.h
===================================================================
--- trunk/Utilities/ExRootAnalysis/src/BlockClassesLinkDef.h	(revision 267)
+++ trunk/Utilities/ExRootAnalysis/src/BlockClassesLinkDef.h	(revision 268)
@@ -1,14 +1,32 @@
-
-/** \class BlockClassesLinkDef
- *
- *  Lists classes to be included in cint dicitonary
- *
- *  $Date: 2009-02-13 19:38:03 $
- *  $Revision: 1.4 $
- *
- *  
- *  \author S. Ovyn - UCL, Louvain-la-Neuve
- *
- */
+/***********************************************************************
+**                                                                    **
+**          /----------------------------------------------\          **
+**         |  Delphes, a framework for the fast simulation  |         **
+**         |       of a  generic collider experiment        |         **
+**          \----------------------------------------------/          **
+**                                                                    **
+**                                                                    **
+**   This package uses:                                               **
+**   ------------------                                               **
+**   FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210]      ** 
+**   Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2]       ** 
+**   FROG: [hep-ex/0901.2718v1]                                       **
+**                                                                    **
+** ------------------------------------------------------------------ **
+**                                                                    **
+**   Main authors:                                                    **
+**   -------------                                                    **
+**                                                                    **
+**                Severine Ovyn                Xavier Rouby           ** 
+**          severine.ovyn@uclouvain.be      xavier.rouby@cern         ** 
+**                                                                    ** 
+**         Center for Particle Physics and Phenomenology (CP3)        ** 
+**                Universite catholique de Louvain (UCL)              **       
+**                     Louvain-la-Neuve, Belgium                      **            
+**                                                                    **
+**                      Copyright (C) 2008-2009,                      **
+**                        All rights reserved.                        **  
+**                                                                    **
+***********************************************************************/
 
 #include "Utilities/ExRootAnalysis/interface/BlockClasses.h"
@@ -40,7 +58,4 @@
 #pragma link C++ class TRootLHEFEvent+;
 #pragma link C++ class TRootLHEFParticle+;
-#pragma link C++ class D_Track+;
-//#pragma link C++ class D_CaloTower+;
-
 
 #endif
