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 "AtlfastCode/ReconstructedParticle.h"
00043 #include "AtlfastCode/ReconstructedParticleCollection.h"
00044 #include "AtlfastCode/Cell.h"
00045 #include "AtlfastCode/CellCollection.h"
00046 #include "AtlfastCode/Cluster.h"
00047 #include "AtlfastCode/ClusterCollection.h"
00048 
00049 #include "AtlfastCode/IKinematic.h"
00050 #include "AtlfastCode/KinematicHelper.h"
00051 #include "AtlfastCode/TesIO.h"
00052 #include "AtlfastCode/CommonData.h"
00053 
00054 
00055 //*********************************************
00056 //Default parameters private to this algorithm
00057 //Description in class declaration
00058 //*********************************************
00059 #define DEFAULT_rClusterMatch      0.150  
00060 #define DEFAULT_rClusterIsolation  0.400  
00061 #define DEFAULT_eClusterIsolation  0.0   
00062 #define DEFAULT_rCellIsolation     0.200   
00063 #define DEFAULT_eCellIsolation    10.0  
00064 #define DEFAULT_inputLocation               "Unknown" 
00065 #define DEFAULT_isolatedOutputLocation      "Unknown" 
00066 #define DEFAULT_nonIsolatedOutputLocation   "Unknown" 
00067 #define DEFAULT_cellLocation     "/Event/AtlfastCell" 
00068 #define DEFAULT_clusterLocation  "/Event/AtlfastCluster" 
00069 #define DEFAULT_commonDataLocation  "/Event/AtlfastCommonData" 
00070 
00071 
00072 
00073 
00074 //***************************************************************
00075 //                 Isolator class declaration
00076 //
00077 //****************************************************************
00078 
00079 
00080 namespace Atlfast {
00085 class Isolator : public Algorithm
00086 {
00087 
00088  public:
00089 
00090   //-------------------------
00091   // Constructors/Destructors
00092   //
00093   // Athena requires that the constructor takes certain arguments
00094   // (and passes them directly to the constructor of the base class)
00095   //-------------------------
00096 
00097   Isolator( const std::string& name, ISvcLocator* pSvcLocator ) ; 
00098 
00099   virtual ~Isolator();
00100 
00101 
00102   //------------------------------------------------------
00103   // Methods used by Athena to run the algorithm
00104   //------------------------------------------------------
00105 
00106   StatusCode initialize() ;
00107   StatusCode execute() ;
00108   StatusCode finalize() ;
00109 
00110 
00111 
00112  private:
00113 
00114   //---------------------------------------------------
00115   // Parameters of this algorithm 
00116   //---------------------------------------------------
00117 
00118   // R-cone for associating a Cluster to a particle
00119   double        m_rClusterMatch;   
00120 
00121   // R-cone in which to sum unassociated Cluster eT
00122   double        m_rClusterIsolation;     
00123 
00124   // eT threshold to apply to summed Cluster eT
00125   double        m_eClusterIsolation;     
00126 
00127   // R-cone in which to sum Cell eT
00128   double        m_rCellIsolation;     
00129 
00130   // eT threshold to apply to excess summed Cluster eT
00131   double        m_eCellIsolation;     
00132 
00133   // Location in TES to obtain input particles to be isolated
00134   std::string   m_inputLocation ;
00135 
00136   // Locations in TES to write out output lists.
00137   std::string   m_isolatedOutputLocation ;
00138   std::string   m_nonIsolatedOutputLocation ;
00139 
00140   // Locarions in TES to get Cells and Clusters from
00141   std::string   m_cellLocation ;
00142   std::string   m_clusterLocation ;
00143 
00145   std::string m_commonDataLocation;
00146 
00147   TesIO* m_tesIO;
00148   bool   m_notInit;
00149   //-------------------------------
00150   // Objects used by this class to do its job
00151   //-------------------------------
00152 
00153   // Encapsulates common operations on IKinematic types
00154   KinematicHelper m_kinehelp ; 
00155   HepMC_helper::IMCselector* m_visibleToCal;
00156 
00157   //-------------------------------
00158   // Private methods
00159   //-------------------------------
00160 
00161   // This is the heart of this algorithm: the bit that does the isolation
00162 
00163   bool isIsolated( 
00164      MsgStream&, 
00165      ReconstructedParticleCollection::iterator,
00166      std::vector<Cell*>& , 
00167      std::vector<Cluster*>&  
00168 
00169      );
00170  
00171 };
00172 
00173 } // end of namespace bracket
00174 
00175 
00176 #endif
00177 
00178 
00179 
00180 
00181 
00182 
00183 
00184 
00185 
00186 
00187 

Generated on Mon Feb 4 15:54:24 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001