00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef ATLFAST_SHAREDCONESTRATEGY_H
00019 #define ATLFAST_SHAREDCONESTRATEGY_H
00020
00021
00022 #include <vector>
00023 #include <list>
00024 #include <map>
00025
00026
00027 #include "CLHEP/Vector/LorentzVector.h"
00028
00029
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
00041
00042
00043
00044
00045
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 std::vector<IKinematic*>& unusedCells,
00082 ClusterCollection* 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 }
00098
00099
00100 #endif
00101
00102
00103
00104
00105