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