00001 // ================================================ 00002 // SharedConeStrategy class description 00003 // ================================================ 00004 // 00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT 00006 // 00007 // 00008 // Namespace Atlfast:: 00009 // 00010 // class: SharedConeStrategy 00011 // 00012 // Authors: J.Couchman P.Sherwood 00013 // 00014 // ................................................................ 00015 // 00016 00017 00018 #ifndef ATLFAST_SHAREDCONESTRATEGY_H 00019 #define ATLFAST_SHAREDCONESTRATEGY_H 00020 00021 // STL 00022 #include <vector> 00023 #include <list> 00024 #include <map> 00025 00026 // Other 00027 #include "CLHEP/Vector/LorentzVector.h" 00028 00029 // Atlfast 00030 #ifndef ATLFAST_COLLECTIONDEFS_H 00031 #include "AtlfastEvent/CollectionDefs.h" 00032 #endif 00033 00034 #include "AtlfastUtils/KinematicHelper.h" 00035 #include "AtlfastUtils/IClusterStrategy.h" 00036 00037 class MsgStream; 00038 00039 //************************************* 00040 //Default parameters for this algorithm 00041 // (descriptions in class declaration) 00042 //************************************* 00043 00044 //*************************************************************** 00045 // SharedConeStrategy class declaration 00046 //**************************************************************** 00047 00048 namespace Atlfast { 00049 class Cell; 00050 class Cluster; 00051 class IKinematic; 00063 class SharedConeStrategy: public IClusterStrategy { 00064 public: 00065 00066 typedef std::vector<IKinematic*> localCellCollection ; 00067 typedef localCellCollection::iterator localCellCollectionIterator ; 00068 00069 SharedConeStrategy( 00070 double rConeBarrel, 00071 double rConeForward, 00072 double minInitiatorET, 00073 double minClusterET, 00074 double barrelForwardEta 00075 ); 00076 00077 virtual ~SharedConeStrategy(); 00078 virtual void makeClusters( 00079 MsgStream& log, 00080 const std::vector<IKinematic*>& storedCells, 00081 IKinematicVector& unusedCells, 00082 IClusterCollection* clusters) const; 00083 00084 private: 00086 IClusterStrategy* m_coneStrategy; 00087 00088 double m_rConeBarrel; 00089 double m_rConeForward; 00090 double m_minClusterET; 00091 double m_barrelForwardEta; 00092 00093 }; 00094 00095 00096 00097 } // end of namespace bracket 00098 00099 00100 #endif 00101 00102 00103 00104 00105