00001 /*************************************************************************** 00002 * 00003 * $Id: StHbtManager.h,v 1.10 2000/03/17 17:23:05 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 * The Manager is the top-level object that coordinates activities 00010 * and performs event, particle, and pair loops, and checks the 00011 * various Cuts of the Analyses in its AnalysisCollection 00012 * 00013 *************************************************************************** 00014 * 00015 * $Log: StHbtManager.h,v $ 00016 * Revision 1.10 2000/03/17 17:23:05 laue 00017 * Roberts new three particle correlations implemented. 00018 * 00019 * Revision 1.9 2000/02/18 21:32:24 laue 00020 * franksTrackCut changed. If mCharge is set to '0' there will be no cut 00021 * on charge. This is important for front-loaded cuts. 00022 * 00023 * copy constructor implemented for StHbtEvent, StHbtTrack and StHbtV0. 00024 * 00025 * franks1HistoD.cxx franks1HistoD.h franks2HistoD.cxx franks2HistoD.h 00026 * removed. We can now (CC5 on Solaris) use the versions (no D) 00027 * 00028 * Revision 1.8 2000/01/25 17:35:17 laue 00029 * I. In order to run the stand alone version of the StHbtMaker the following 00030 * changes have been done: 00031 * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements 00032 * b) unnecessary includes of StMaker.h have been removed 00033 * c) the subdirectory StHbtMaker/doc/Make has been created including everything 00034 * needed for the stand alone version 00035 * 00036 * II. To reduce the amount of compiler warning 00037 * a) some variables have been type casted 00038 * b) some destructors have been declared as virtual 00039 * 00040 * Revision 1.7 1999/10/04 15:38:58 lisa 00041 * include Franks new accessor methods StHbtAnalysis::CorrFctn and StHbtManager::Analysis as well as McEvent example macro 00042 * 00043 * Revision 1.6 1999/09/24 01:23:12 fisyak 00044 * Reduced Include Path 00045 * 00046 * Revision 1.5 1999/09/08 04:15:52 lisa 00047 * persistent microDST implementation tweaked to please fickle solaris details 00048 * 00049 * Revision 1.4 1999/09/05 02:58:12 lisa 00050 * add ASCII microDST reader/writer AND franksParticle cuts 00051 * 00052 * Revision 1.3 1999/09/04 04:41:02 lisa 00053 * StHbtEvent IO --and-- StHbtEventWriter (microDST) method added to framework 00054 * 00055 * Revision 1.2 1999/07/06 22:33:22 lisa 00056 * Adjusted all to work in pro and new - dev itself is broken 00057 * 00058 * Revision 1.1.1.1 1999/06/29 16:02:57 lisa 00059 * Installation of StHbtMaker 00060 * 00061 **************************************************************************/ 00062 00063 #ifndef StHbtManager_hh 00064 #define StHbtManager_hh 00065 00066 00067 #include "StHbtMaker/Infrastructure/StHbtTypes.hh" 00068 #include "StHbtMaker/Infrastructure/StHbtAnalysisCollection.hh" 00069 #include "StHbtMaker/Infrastructure/StHbtEventWriterCollection.hh" 00070 #include "StHbtMaker/Infrastructure/StHbtEvent.hh" 00071 #include "StHbtMaker/Base/StHbtBaseAnalysis.h" 00072 #include "StHbtMaker/Base/StHbtEventReader.hh" 00073 #include "StHbtMaker/Base/StHbtEventWriter.hh" 00074 00075 class StHbtManager{ 00076 00077 private: 00078 StHbtAnalysisCollection* mAnalysisCollection; 00079 StHbtEventReader* mEventReader; 00080 StHbtEventWriterCollection* mEventWriterCollection; 00081 00082 public: 00083 StHbtManager(); 00084 virtual ~StHbtManager(); 00085 00086 // Gets and Sets... 00087 StHbtAnalysisCollection* AnalysisCollection(); 00088 StHbtBaseAnalysis* Analysis(int n); // Access to Analysis within Collection 00089 void AddAnalysis(StHbtBaseAnalysis*); 00090 00091 StHbtEventWriterCollection* EventWriterCollection(); 00092 StHbtEventWriter* EventWriter(int n);// Access to EventWriter within Collection 00093 void SetEventWriter(StHbtEventWriter*); // just for historic reasons 00094 void AddEventWriter(StHbtEventWriter*); 00095 00096 StHbtEventReader* EventReader(); 00097 void SetEventReader(StHbtEventReader*); 00098 00099 00100 int Init(); 00101 int ProcessEvent(); // a "0" return value means success - otherwise quit 00102 void Finish(); 00103 00104 StHbtString Report(); 00105 #ifdef __ROOT__ 00106 ClassDef(StHbtManager, 0) 00107 #endif 00108 }; 00109 00110 inline StHbtAnalysisCollection* StHbtManager::AnalysisCollection(){return mAnalysisCollection;} 00111 inline void StHbtManager::AddAnalysis(StHbtBaseAnalysis* anal){mAnalysisCollection->push_back(anal);} 00112 00113 inline StHbtEventWriterCollection* StHbtManager::EventWriterCollection(){return mEventWriterCollection;} 00114 inline void StHbtManager::AddEventWriter(StHbtEventWriter* writer){mEventWriterCollection->push_back(writer);} 00115 inline void StHbtManager::SetEventWriter(StHbtEventWriter* writer){mEventWriterCollection->push_back(writer);} 00116 00117 inline StHbtEventReader* StHbtManager::EventReader(){return mEventReader;} 00118 inline void StHbtManager::SetEventReader(StHbtEventReader* reader){mEventReader = reader;} 00119 00120 00121 #endif 00122
1.5.9