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/ITwoCptCell.h"
00046 #include "AtlfastEvent/ICluster.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;
00077   class Isolator : public Algorithm {
00078     
00079   public:
00080     
00082     Isolator( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00083 
00085     virtual ~Isolator();
00086     
00087     
00089     StatusCode initialize() ;
00091     StatusCode execute() ;
00093     StatusCode finalize() ;
00094     
00095     
00096     
00097   private:
00098     
00099     //---------------------------------------------------
00100     // Parameters of this algorithm 
00101     //---------------------------------------------------
00102     
00104     double        m_rClusterMatch;   
00105     
00107     double        m_rClusterIsolation;     
00108     
00110     double        m_eClusterIsolation;     
00111     
00113     double        m_rCellIsolation;     
00114     
00116     double        m_eCellIsolation;     
00117     
00119     double        m_rLowerHalo;
00120     double        m_rHigherHalo;
00121 
00123     std::string   m_inputLocation ;
00124     
00126     std::string   m_isolatedOutputLocation ;
00128     std::string   m_nonIsolatedOutputLocation ;
00129     
00131     std::string   m_cellLocation ;
00133     std::string   m_clusterLocation ;
00134     
00135     
00137     TesIO* m_tesIO;
00138 
00140     std::string m_mcLocation;
00141 
00142 
00143     //-------------------------------
00144     // Objects used by this class to do its job
00145     //-------------------------------
00146     
00147     // Encapsulates common operations on IKinematic types
00148     KinematicHelper m_kinehelp ; 
00149     HepMC_helper::IMCselector* m_visibleToCal;
00150     
00151     //-------------------------------
00152     // Private methods
00153     //-------------------------------
00154     
00157     bool isIsolated( 
00158                     MsgStream&, 
00159                     ReconstructedParticleCollection::const_iterator,
00160                     std::vector<ITwoCptCell*>& , 
00161                     std::vector<ICluster*>&  
00162                     
00163                     );
00164     
00165   };
00166   
00167 } // end of namespace bracket
00168 
00169 
00170 #endif

Generated on Mon Sep 24 14:19:10 2007 for AtlfastAlgs by  doxygen 1.5.1