| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

SmartFilterAlg.h

Go to the documentation of this file.
00001 /*
00002  * SmartFilterAlg
00003  *
00004  * Intelligent filtering of output data
00005  *
00006  * Created by: dandwyer@caltech.edu, 08/04/2011
00007  *
00008  */
00009 
00010 #ifndef SMARTFILTERALG_H
00011 #define SMARTFILTERALG_H 1
00012 
00013 #include "GaudiAlg/GaudiAlgorithm.h"
00014 
00015 #include <string>
00016 #include <vector>
00017 #include <list>
00018 
00019 class ObjectReg;
00020 namespace Rndm {
00021   class Numbers;
00022 }
00023 
00024 class SmartFilterAlg : public GaudiAlgorithm
00025 {
00026  public:
00027   SmartFilterAlg(const std::string& name,ISvcLocator* pSvcLocator);
00028   virtual ~SmartFilterAlg();
00029   
00030   virtual StatusCode initialize();
00031   virtual StatusCode execute(); 
00032   virtual StatusCode finalize();
00033   
00034  private:
00035   StatusCode processParentHeaders(DataObject* dobj);
00036   ObjectReg* findRegistration(DataObject* dobj);
00037   bool isChild(const DataObject* dobj);
00038 
00039  private:
00040   
00043   bool m_clearAll;
00044   
00047   std::string m_keepLocation;
00048   
00051   double m_prescale;
00052   
00055   bool m_keepAllParents;
00056   
00059   std::vector< std::string > m_keepParents;
00060   
00063   double m_parentPrescale;
00064   
00067   bool m_keepAllChildren;
00068 
00071   std::vector< std::string > m_keepChildren;
00072   
00075   double m_childrenPrescale;
00076   
00080   unsigned int m_maxKeptHistory;
00081   
00082   // Handle for Archive event store
00083   IDataProviderSvc* m_archiveSvc;
00084   // Recent filtered events, used to check for children
00085   std::list<DataObject*> m_keptHeaders;
00086   Rndm::Numbers* m_uniform;
00087 };
00088 
00089 #endif // SMARTFILTERALG_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:38:49 2011 for SmartFilter by doxygen 1.4.7