Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Isolator.h

Go to the documentation of this file.
00001 // ================================================
00002 // Isolator class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace Atlfast::
00012 //
00013 // class: Isolator
00014 //
00015 // Description: 
00016 //
00017 //  Algorithm which knows how to test particles for isolation
00018 //
00019 //
00020 // ................................................................
00021 //
00022 
00023 
00024 #ifndef ATLFAST_ISOLATOR_H
00025 #define ATLFAST_ISOLATOR_H
00026 
00027 // STL
00028 #include <string>
00029 #include <vector>
00030 
00031 // Gaudi 
00032 #include "GaudiKernel/ISvcLocator.h"
00033 #include "GaudiKernel/IAlgorithm.h"
00034 #include "GaudiKernel/Algorithm.h"
00035 #include "GaudiKernel/MsgStream.h"
00036 #include "GaudiKernel/DataObject.h"
00037 #include "GaudiKernel/ObjectVector.h"
00038 // Other
00039 #include "HepMC/GenParticle.h"
00040 
00041 // Atlfast
00042 #include "AtlfastEvent/ReconstructedParticle.h"
00043 #include "AtlfastEvent/ReconstructedParticleCollection.h"
00044 #include "AtlfastEvent/Cell.h"
00045 #include "AtlfastEvent/CellCollection.h"
00046 #include "AtlfastEvent/Cluster.h"
00047 #include "AtlfastEvent/ClusterCollection.h"
00048 
00049 #include "AtlfastEvent/IKinematic.h"
00050 #include "AtlfastUtils/KinematicHelper.h"
00051 #include "AtlfastUtils/TesIO.h"
00052 
00053 
00054 //***************************************************************
00055 //                 Isolator class declaration
00056 //
00057 //****************************************************************
00058 
00059 
00060 namespace Atlfast {
00061   using std::string;
00066   class Isolator : public Algorithm {
00067     
00068   public:
00069     
00070     //-------------------------
00071     // Constructors/Destructors
00072     //
00073     // Athena requires that the constructor takes certain arguments
00074     // (and passes them directly to the constructor of the base class)
00075     //-------------------------
00076     
00077     Isolator( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00078     
00079     virtual ~Isolator();
00080     
00081     
00082     //------------------------------------------------------
00083     // Methods used by Athena to run the algorithm
00084     //------------------------------------------------------
00085     
00086     StatusCode initialize() ;
00087     StatusCode execute() ;
00088     StatusCode finalize() ;
00089     
00090     
00091     
00092   private:
00093     
00094     //---------------------------------------------------
00095     // Parameters of this algorithm 
00096     //---------------------------------------------------
00097     
00098     // R-cone for associating a Cluster to a particle
00099     double        m_rClusterMatch;   
00100     
00101     // R-cone in which to sum unassociated Cluster eT
00102     double        m_rClusterIsolation;     
00103     
00104     // eT threshold to apply to summed Cluster eT
00105     double        m_eClusterIsolation;     
00106     
00107     // R-cone in which to sum Cell eT
00108     double        m_rCellIsolation;     
00109     
00110     // eT threshold to apply to excess summed Cluster eT
00111     double        m_eCellIsolation;     
00112     
00113     // Location in TES to obtain input particles to be isolated
00114     std::string   m_inputLocation ;
00115     
00116     // Locations in TES to write out output lists.
00117     std::string   m_isolatedOutputLocation ;
00118     std::string   m_nonIsolatedOutputLocation ;
00119     
00120     // Locarions in TES to get Cells and Clusters from
00121     std::string   m_cellLocation ;
00122     std::string   m_clusterLocation ;
00123     
00124     
00125     
00126     TesIO* m_tesIO;
00127     //-------------------------------
00128     // Objects used by this class to do its job
00129     //-------------------------------
00130     
00131     // Encapsulates common operations on IKinematic types
00132     KinematicHelper m_kinehelp ; 
00133     HepMC_helper::IMCselector* m_visibleToCal;
00134     
00135     //-------------------------------
00136     // Private methods
00137     //-------------------------------
00138     
00139     // This is the heart of this algorithm: the bit that does the isolation
00140     
00141     bool isIsolated( 
00142                     MsgStream&, 
00143                     ReconstructedParticleCollection::iterator,
00144                     std::vector<Cell*>& , 
00145                     std::vector<Cluster*>&  
00146                     
00147                     );
00148     
00149   };
00150   
00151 } // end of namespace bracket
00152 
00153 
00154 #endif

Generated on Wed May 1 14:11:31 2002 for AtlfastAlgs by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001