00001 00002 // 00003 // CLASS AlJet 00004 // Concrete class for Jet Objects, inherits from QvecBase 00005 // 00006 // Author : M. Hoerndl 00007 // modified by C. Delaere: 00008 // - added lock, unlock, clearObjects, sig2, 00009 // conversion constructors from protojets 00010 // - fixed assignement operator 00011 // 00013 00014 00015 #ifndef _ALJET_H_ 00016 #define _ALJET_H_ 00017 00018 #include <vector> 00019 #include "QvecBase.h" 00020 class DurhamProtoJet; 00021 class JadeProtoJet; 00022 template <class T> class AlephCollection; 00023 00025 class AlJet: public QvecBase { 00026 public: 00027 00029 AlJet(); 00030 00032 ~AlJet(); 00033 00035 AlJet(const AlJet& oldAj); 00036 00038 AlJet(const DurhamProtoJet& protojet); 00040 AlJet(const JadeProtoJet& protojet); 00041 00042 AlJet& operator=(const AlJet& oldAj); 00043 00045 ALEPHTYPE TYPE() const {return ALJET;} 00046 00048 AlephCollection<AlObject*>& getObjects()const; 00049 00051 void addObject(const AlObject* a); 00052 00054 void clearObjects(); 00055 00057 void setScheme(int s); 00058 00060 int getScheme() const; 00061 00063 void setMetric(int m); 00064 00066 int getMetric() const; 00067 00069 void Lock(bool recurse = 0); 00071 void unLock(bool recurse = 0); 00072 00073 private: 00074 // objects of which jet was built 00075 AlephCollection<AlObject*>* _objects; 00076 // recombination scheme 00077 int _scheme; 00078 // metric for M 00079 int _metric; 00080 }; 00081 00082 #endif