00001 /*************************************************************************** 00002 * 00003 * $Id: StHbtEventCut.h,v 1.9 2001/06/21 19:06:48 laue Exp $ 00004 * 00005 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu 00006 *************************************************************************** 00007 * 00008 * Description: part of STAR HBT Framework: StHbtMaker package 00009 * base class for Eventwise cuts 00010 * Users inherit from this class and must add their own quantities 00011 * 00012 *************************************************************************** 00013 * 00014 * $Log: StHbtEventCut.h,v $ 00015 * Revision 1.9 2001/06/21 19:06:48 laue 00016 * Some minor structural changes (forward declarations, etc) 00017 * 00018 * Revision 1.8 2000/06/15 18:51:32 willson 00019 * Cuts and Correlation function information moved from StBaseAnalysis 00020 * to the derived analysis classes. Global functions installed in 00021 * Cut and CorrFctn base classes to access analysis pointer. 00022 * 00023 * Revision 1.7 2000/04/03 16:21:19 laue 00024 * some include files changed 00025 * 00026 * Revision 1.6 2000/03/23 22:43:27 laue 00027 * Clone() function implemented in cuts. 00028 * 00029 * Revision 1.5 2000/03/17 17:18:25 laue 00030 * Roberts new three particle correlations implemented. 00031 * 00032 * Revision 1.4 2000/03/16 01:54:36 laue 00033 * Copy constructor added to all the cut base classes and to the 00034 * corrfctn base class 00035 * 00036 * Revision 1.3 2000/01/07 23:21:16 laue 00037 * 0.) all 'ClassDef(...)' put inside #ifdef __ROOT__ #endif 00038 * 1.) unnecessary includes of 'StMaker.h' deleted 00039 * 00040 * Revision 1.2 1999/12/03 22:24:34 lisa 00041 * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism 00042 * 00043 * Revision 1.1 1999/10/15 01:56:47 lisa 00044 * Important enhancement of StHbtMaker - implement Franks CutMonitors 00045 * ---------------------------------------------------------- 00046 * This means 3 new files in Infrastructure area (CutMonitor), 00047 * several specific CutMonitor classes in the Cut area 00048 * and a new base class in the Base area (StHbtCutMonitor). 00049 * This means also changing all Cut Base class header files from .hh to .h 00050 * so we have access to CutMonitor methods from Cint command line. 00051 * This last means 00052 * 1) files which include these header files are slightly modified 00053 * 2) a side benefit: the TrackCuts and V0Cuts no longer need 00054 * a SetMass() implementation in each Cut class, which was stupid. 00055 * Also: 00056 * ----- 00057 * Include Franks StHbtAssociationReader 00058 * ** None of these changes should affect any user ** 00059 * 00060 * Revision 1.2 1999/07/06 22:33:19 lisa 00061 * Adjusted all to work in pro and new - dev itself is broken 00062 * 00063 * Revision 1.1.1.1 1999/06/29 16:02:56 lisa 00064 * Installation of StHbtMaker 00065 * 00066 **************************************************************************/ 00067 00068 #ifndef StHbtEventCut_hh 00069 #define StHbtEventCut_hh 00070 00071 class StHbtEvent; 00072 class StHbtBaseAnalysis; 00073 00074 #include "StHbtMaker/Infrastructure/StHbtCutMonitorHandler.h" 00075 #include "StHbtMaker/Infrastructure/StHbtString.hh" 00076 00077 class StHbtEventCut : public StHbtCutMonitorHandler { 00078 00079 public: 00080 00081 StHbtEventCut(){/* no-op */}; // default constructor. - Users should write their own 00082 StHbtEventCut(const StHbtEventCut& c); // copy constructor 00083 virtual ~StHbtEventCut(){/* no-op */}; // destructor 00084 00085 virtual bool Pass(const StHbtEvent* event) =0; // true if passes, false if not 00086 00087 virtual StHbtString Report() =0; // user-written method to return string describing cuts 00088 virtual StHbtEventCut* Clone() { return 0;} 00089 00090 #ifdef __ROOT__ 00091 ClassDef(StHbtEventCut, 0) 00092 #endif 00093 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis 00094 friend class StHbtBaseAnalysis; 00095 StHbtBaseAnalysis* HbtAnalysis(){return myAnalysis;}; 00096 void SetAnalysis(StHbtBaseAnalysis*); 00097 00098 protected: 00099 StHbtBaseAnalysis* myAnalysis; 00100 00101 }; 00102 00103 inline StHbtEventCut::StHbtEventCut(const StHbtEventCut& c) : StHbtCutMonitorHandler() { myAnalysis=0;} 00104 inline void StHbtEventCut::SetAnalysis(StHbtBaseAnalysis* analysis) { myAnalysis = analysis; } 00105 #endif
1.5.9