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/CollectionDefs.h"
00045 #include "AtlfastEvent/Cell.h"
00046 #include "AtlfastEvent/Cluster.h"
00047 
00048 #ifndef ATLFAST_COLLECTIONDEFS_H
00049 #include "AtlfastEvent/CollectionDefs.h"
00050 #endif
00051 
00052 #include "AtlfastEvent/IKinematic.h"
00053 #include "AtlfastUtils/KinematicHelper.h"
00054 #include "AtlfastUtils/TesIO.h"
00055 
00056 
00057 //***************************************************************
00058 //                 Isolator class declaration
00059 //
00060 //****************************************************************
00061 
00062 
00063 namespace Atlfast {
00064   using std::string;
00069   class Isolator : public Algorithm {
00070     
00071   public:
00072     
00073     //-------------------------
00074     // Constructors/Destructors
00075     //
00076     // Athena requires that the constructor takes certain arguments
00077     // (and passes them directly to the constructor of the base class)
00078     //-------------------------
00079     
00080     Isolator( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00081     
00082     virtual ~Isolator();
00083     
00084     
00085     //------------------------------------------------------
00086     // Methods used by Athena to run the algorithm
00087     //------------------------------------------------------
00088     
00089     StatusCode initialize() ;
00090     StatusCode execute() ;
00091     StatusCode finalize() ;
00092     
00093     
00094     
00095   private:
00096     
00097     //---------------------------------------------------
00098     // Parameters of this algorithm 
00099     //---------------------------------------------------
00100     
00101     // R-cone for associating a Cluster to a particle
00102     double        m_rClusterMatch;   
00103     
00104     // R-cone in which to sum unassociated Cluster eT
00105     double        m_rClusterIsolation;     
00106     
00107     // eT threshold to apply to summed Cluster eT
00108     double        m_eClusterIsolation;     
00109     
00110     // R-cone in which to sum Cell eT
00111     double        m_rCellIsolation;     
00112     
00113     // eT threshold to apply to excess summed Cluster eT
00114     double        m_eCellIsolation;     
00115     
00116     // Location in TES to obtain input particles to be isolated
00117     std::string   m_inputLocation ;
00118     
00119     // Locations in TES to write out output lists.
00120     std::string   m_isolatedOutputLocation ;
00121     std::string   m_nonIsolatedOutputLocation ;
00122     
00123     // Locarions in TES to get Cells and Clusters from
00124     std::string   m_cellLocation ;
00125     std::string   m_clusterLocation ;
00126     
00127     
00128     
00129     TesIO* m_tesIO;
00130     //-------------------------------
00131     // Objects used by this class to do its job
00132     //-------------------------------
00133     
00134     // Encapsulates common operations on IKinematic types
00135     KinematicHelper m_kinehelp ; 
00136     HepMC_helper::IMCselector* m_visibleToCal;
00137     
00138     //-------------------------------
00139     // Private methods
00140     //-------------------------------
00141     
00142     // This is the heart of this algorithm: the bit that does the isolation
00143     
00144     bool isIsolated( 
00145                     MsgStream&, 
00146                     ReconstructedParticleCollection::iterator,
00147                     std::vector<Cell*>& , 
00148                     std::vector<Cluster*>&  
00149                     
00150                     );
00151     
00152   };
00153   
00154 } // end of namespace bracket
00155 
00156 
00157 #endif

Generated on Tue Jan 28 09:57:13 2003 for AtlfastAlgs by doxygen1.3-rc1