00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef STSSDPACKAGE_HH
00012 #define STSSDPACKAGE_HH
00013 #include "Rtypes.h"
00014 class StSsdCluster;
00015 class StSsdClusterControl;
00016
00017 class StSsdPackage
00018 {
00019 public:
00020 StSsdPackage(Int_t rNPackage, StSsdClusterControl *control);
00021 StSsdPackage(Int_t rNPackage, Int_t rNMatched);
00022 StSsdPackage(const StSsdPackage & originalPackage);
00023 ~StSsdPackage();
00024
00025 StSsdPackage& operator=(const StSsdPackage originalPackage);
00026
00027 StSsdCluster* next(StSsdCluster *ptr);
00028 StSsdCluster* prev(StSsdCluster *ptr);
00029 StSsdCluster* first();
00030 StSsdCluster* last();
00031
00032 Int_t getNPackage();
00033 StSsdCluster* getMatched(Int_t numMatched);
00034 char* getKind();
00035 StSsdPackage* getPrevPackage();
00036 StSsdPackage* getNextPackage();
00037
00038 void purgePackage();
00039 void takeMatcheds(StSsdPackage *ptr);
00040
00041 void setNPackage(Int_t rNPackage);
00042 void setKind(char *rKind);
00043 void setPrevPackage(StSsdPackage *rPrevPackage);
00044 void setNextPackage(StSsdPackage *rNextPackage);
00045
00046 Int_t addNewMatched(StSsdCluster *ptr, Int_t maxMatcheds);
00047 Int_t addKindPackage(Int_t numMatched, Int_t rSide, Int_t maxMatcheds);
00048 Int_t removeMatched(StSsdCluster *ptr);
00049 void exchangeTwoMatcheds(StSsdCluster *ptr1, StSsdCluster *ptr2);
00050 void sortMatched();
00051 void renumMatched();
00052 Int_t getSize();
00053 Int_t isSorted();
00054
00055 private:
00056 Int_t mListLengthM;
00057 StSsdCluster *mFirstMatched;
00058 StSsdCluster *mLastMatched;
00059
00060 Int_t mNPackage;
00061 StSsdCluster* *mMatcheds;
00062 char* mKind;
00063 StSsdPackage *mPrevPackage;
00064 StSsdPackage *mNextPackage;
00065 };
00066 #endif