00001
00002
00003
00004
00005
00006
00007
00010 #ifndef SMARTCOLLECTION_H_
00011 #define SMARTCOLLECTION_H_
00012
00013 #include "../../PamCutBase/PamCutBase.h"
00014 #include "../../CollectionActions/CollectionAction/CollectionAction.h"
00015
00042 class SmartCollection: public PamCutCollection {
00043
00044 public:
00045
00050 SmartCollection(const char* collectionName) :
00051 PamCutCollection(collectionName), _actions(0) {
00052 }
00053
00055 ~SmartCollection() {
00056 }
00057
00059 virtual void AddAction(CollectionAction& action);
00060
00067 CollectionAction *GetAction(unsigned int iAction);
00068
00077 void Setup(PamLevel2 *events);
00078
00084 void Finalize();
00085
00092 int ApplyCut(PamLevel2 *event);
00093
00094 protected:
00095
00096 std::vector<CollectionAction*> _actions;
00097 std::vector<unsigned int> _actionsPositions;
00098
00099 };
00100
00101 #endif