00001 00002 /*************************************************************************** 00003 * 00004 * $Id: StHbtParticleCut.h,v 1.9 2009/08/25 20:17:51 fine Exp $ 00005 * 00006 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu 00007 *************************************************************************** 00008 * 00009 * Description: part of STAR HBT Framework: StHbtMaker package 00010 * base class for particle-wise cuts 00011 * Note: Users DO NOT inherit from this class! 00012 * The base classes StHbtTrackCut and StHbtV0Cut inherit from this, 00013 * and users inherit from those 00014 * 00015 *************************************************************************** 00016 * 00017 * $Log: StHbtParticleCut.h,v $ 00018 * Revision 1.9 2009/08/25 20:17:51 fine 00019 * fix the compilation issues under SL5_64_bits gcc 4.3.2 00020 * 00021 * Revision 1.8 2000/06/15 18:51:33 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/03/23 22:43:27 laue 00027 * Clone() function implemented in cuts. 00028 * 00029 * Revision 1.6 2000/03/17 17:18:25 laue 00030 * Roberts new three particle correlations implemented. 00031 * 00032 * Revision 1.5 2000/03/16 01:54:37 laue 00033 * Copy constructor added to all the cut base classes and to the 00034 * corrfctn base class 00035 * 00036 * Revision 1.4 2000/02/13 17:13:15 laue 00037 * EventBegin() and EventEnd() functions implemented 00038 * 00039 * Revision 1.3 2000/01/07 23:21:17 laue 00040 * 0.) all 'ClassDef(...)' put inside #ifdef __ROOT__ #endif 00041 * 1.) unnecessary includes of 'StMaker.h' deleted 00042 * 00043 * Revision 1.2 1999/12/03 22:24:34 lisa 00044 * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism 00045 * 00046 * Revision 1.1 1999/10/15 01:56:50 lisa 00047 * Important enhancement of StHbtMaker - implement Franks CutMonitors 00048 * ---------------------------------------------------------- 00049 * This means 3 new files in Infrastructure area (CutMonitor), 00050 * several specific CutMonitor classes in the Cut area 00051 * and a new base class in the Base area (StHbtCutMonitor). 00052 * This means also changing all Cut Base class header files from .hh to .h 00053 * so we have access to CutMonitor methods from Cint command line. 00054 * This last means 00055 * 1) files which include these header files are slightly modified 00056 * 2) a side benefit: the TrackCuts and V0Cuts no longer need 00057 * a SetMass() implementation in each Cut class, which was stupid. 00058 * Also: 00059 * ----- 00060 * Include Franks StHbtAssociationReader 00061 * ** None of these changes should affect any user ** 00062 * 00063 * Revision 1.3 1999/09/17 22:37:59 lisa 00064 * first full integration of V0s into StHbt framework 00065 * 00066 * Revision 1.2 1999/07/06 22:33:19 lisa 00067 * Adjusted all to work in pro and new - dev itself is broken 00068 * 00069 * Revision 1.1.1.1 1999/06/29 16:02:56 lisa 00070 * Installation of StHbtMaker 00071 * 00072 **************************************************************************/ 00073 00074 00075 #ifndef StHbtParticleCut_hh 00076 #define StHbtParticleCut_hh 00077 00078 #include "StHbtMaker/Infrastructure/StHbtTypes.hh" 00079 #include "StHbtMaker/Infrastructure/StHbtCutMonitorHandler.h" 00080 00081 class StHbtBaseAnalysis; 00082 00083 class StHbtParticleCut : public StHbtCutMonitorHandler { 00084 00085 public: 00086 00087 StHbtParticleCut(){/* no-op */}; // default constructor. - Users should write their own 00088 StHbtParticleCut(const StHbtParticleCut&); // copy constructor 00089 virtual ~StHbtParticleCut(){/* no-op */}; // destructor 00090 00091 virtual StHbtString Report() =0; // user-written method to return string describing cuts 00092 00093 double Mass(){return mMass;}; // mass of the particle being selected 00094 virtual void SetMass(const double& mass) {mMass = mass;}; 00095 00096 virtual void EventBegin(const StHbtEvent*) { /* no-op */ } 00097 virtual void EventEnd(const StHbtEvent*) { /* no-op */ } 00098 virtual StHbtParticleCut* Clone() { return 0;} 00099 00100 virtual StHbtParticleType Type()=0; 00101 00102 // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis 00103 friend class StHbtBaseAnalysis; 00104 StHbtBaseAnalysis* HbtAnalysis(){return myAnalysis;}; 00105 void SetAnalysis(StHbtBaseAnalysis*); 00106 00107 protected: 00108 double mMass; 00109 // StHbtParticleType mType; // tells whether cut is on Tracks or V0's 00110 StHbtBaseAnalysis* myAnalysis; 00111 00112 #ifdef __ROOT__ 00113 ClassDef(StHbtParticleCut, 0) 00114 #endif 00115 }; 00116 00117 inline StHbtParticleCut::StHbtParticleCut(const StHbtParticleCut& c) : StHbtCutMonitorHandler() { 00118 mMass = c.mMass; myAnalysis = 0; 00119 #ifdef STHBTDEBUG 00120 cout << " StHbtParticleCut::StHbtParticleCut(const StHbtParticleCut& c) - mMass: " << mMass << endl; 00121 #endif 00122 } 00123 inline void StHbtParticleCut::SetAnalysis(StHbtBaseAnalysis* analysis) { myAnalysis = analysis; } 00124 #endif
1.5.9