StStandardHbtEventReader.h 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. /***************************************************************************
  2. *
  3. * $Id: StStandardHbtEventReader.h,v 1.21 2001/12/05 14:42:18 laue Exp $
  4. *
  5. * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
  6. ***************************************************************************
  7. *
  8. * Description: part of STAR HBT Framework: StHbtMaker package
  9. * This is the HbtEventReader class to be used when running
  10. * root4star with StEventReaderMaker.
  11. * It inherits from StHbtReaderMaker
  12. *
  13. * Since this StHbtEventReader class gets its input from StEvent in root4star,
  14. * it needs to know what chain has the StEventReaderMaker on it. So you have
  15. * to initialize (thru SetTheChain()).
  16. * Other StHbtEventReader classes (that might read ASCII files for example)
  17. * would need other information, like the filename I guess, and so would
  18. * have other private data members that they access.
  19. *
  20. ***************************************************************************
  21. *
  22. * $Log: StStandardHbtEventReader.h,v $
  23. * Revision 1.21 2001/12/05 14:42:18 laue
  24. * updated for trigger(action)word and l3TriggerAlgorithm
  25. *
  26. * Revision 1.18 2001/06/04 19:09:54 rcwells
  27. * Adding B-field, run number, and improved reaction plane functionality
  28. *
  29. * Revision 1.17 2001/02/08 22:38:26 laue
  30. * Reader can now switch between different track types: primary is default
  31. *
  32. * Revision 1.16 2000/08/31 22:32:37 laue
  33. * Readers updated for new StHbtEvent version 3.
  34. *
  35. * Revision 1.15 2000/07/16 21:14:45 laue
  36. * StStandardHbtEventReader modified to read primary tracks only
  37. *
  38. * Some unnecessary includes removed.
  39. * Changes from StV0MiniDst to StStrangeMuDst
  40. *
  41. * Revision 1.14 2000/05/25 21:04:30 laue
  42. * StStandarsHbtEventReader updated for the new StStrangMuDstMaker
  43. *
  44. * Revision 1.13 2000/02/18 22:01:56 laue
  45. * Implementation of a collections of StHbtEventWriters.
  46. * We now can write multiple microDsts at a time.
  47. *
  48. * All readers can have front-loaded cuts now. For that reason some
  49. * functionality was moved from the specific readers to the base class
  50. *
  51. * Revision 1.12 2000/01/25 17:35:27 laue
  52. * I. In order to run the stand alone version of the StHbtMaker the following
  53. * changes have been done:
  54. * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
  55. * b) unnecessary includes of StMaker.h have been removed
  56. * c) the subdirectory StHbtMaker/doc/Make has been created including everything
  57. * needed for the stand alone version
  58. *
  59. * II. To reduce the amount of compiler warning
  60. * a) some variables have been type casted
  61. * b) some destructors have been declared as virtual
  62. *
  63. * Revision 1.11 1999/12/03 22:24:37 lisa
  64. * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism
  65. *
  66. * Revision 1.10 1999/11/24 22:01:41 laue
  67. * reader adopted to the new StEvent 2.x
  68. *
  69. * Revision 1.9 1999/10/15 01:57:37 lisa
  70. * Important enhancement of StHbtMaker - implement Franks CutMonitors
  71. * ----------------------------------------------------------
  72. * This means 3 new files in Infrastructure area (CutMonitor),
  73. * several specific CutMonitor classes in the Cut area
  74. * and a new base class in the Base area (StHbtCutMonitor).
  75. * This means also changing all Cut Base class header files from .hh to .h
  76. * so we have access to CutMonitor methods from Cint command line.
  77. * This last means
  78. * 1) files which include these header files are slightly modified
  79. * 2) a side benefit: the TrackCuts and V0Cuts no longer need
  80. * a SetMass() implementation in each Cut class, which was stupid.
  81. * Also:
  82. * -----
  83. * Include Franks StHbtAssociationReader
  84. * ** None of these changes should affect any user **
  85. *
  86. * Revision 1.8 1999/09/24 01:23:14 fisyak
  87. * Reduced Include Path
  88. *
  89. * Revision 1.7 1999/09/17 22:38:03 lisa
  90. * first full integration of V0s into StHbt framework
  91. *
  92. * Revision 1.6 1999/09/16 18:48:01 lisa
  93. * replace placeholder HbtV0Track stuff with Helens StHbtV0 classes
  94. *
  95. * Revision 1.5 1999/09/09 02:59:55 lisa
  96. * fix Randys factor of 2 in CoulombCorrection AND add SetCut methods to StStandardHbtEventReader which were forgotten last commit
  97. *
  98. * Revision 1.4 1999/09/08 04:15:53 lisa
  99. * persistent microDST implementation tweaked to please fickle solaris details
  100. *
  101. * Revision 1.3 1999/09/03 22:39:17 lisa
  102. * Readers now MUST have Report() methods and MAY have WriteHbtEvent() methods
  103. *
  104. * Revision 1.2 1999/07/06 22:33:24 lisa
  105. * Adjusted all to work in pro and new - dev itself is broken
  106. *
  107. * Revision 1.1.1.1 1999/06/29 16:02:57 lisa
  108. * Installation of StHbtMaker
  109. *
  110. * With the .DEV->DEV revolution of June 1999, must change
  111. * the way that this thing gets StEvent object
  112. * no more going through the chain. Now, we have to have
  113. * a pointer to the object (of type StEventMaker, which is
  114. * derived from StMaker) which has a method to get the StEvent.
  115. **************************************************************************/
  116. #ifndef StStandardHbtEventReader_hh
  117. #define StStandardHbtEventReader_hh
  118. #include "StHbtMaker/Base/StHbtEventReader.hh"
  119. #include "StHbtMaker/Reader/StHbtTagReader.h"
  120. #include "StMaker.h"
  121. #include "StChain.h"
  122. #include "St_DataSetIter.h"
  123. #include "StEvent/StEnumerations.h"
  124. #include "StStrangeMuDstMaker/StStrangeMuDstMaker.h"
  125. class StPionPlus;
  126. class StKaonPlus;
  127. class StProton;
  128. class StTpcDedxPidAlgorithm;
  129. class StParticleDefinition;
  130. class StFlowMaker;
  131. class StFlowEvent;
  132. class StFlowAnalysisMaker;
  133. class StFlowSelection;
  134. class StStandardHbtEventReader : public StMaker, public StHbtEventReader{
  135. private:
  136. StMaker* mTheEventMaker; //! this is the chain where the StEventReaderMaker is
  137. StStrangeMuDstMaker* mTheV0Maker; //! this is the chain where the StStrangeMuDstMaker is
  138. StHbtTagReader* mTheTagReader; //! this tag reader opens a tags.root file
  139. StTrackType mTrackType;
  140. bool mReadTracks;
  141. bool mReadV0s;
  142. bool mReadXis;
  143. bool mReadKinks;
  144. StFlowMaker* mFlowMaker; //!
  145. StFlowAnalysisMaker* mFlowAnalysisMaker; //!
  146. protected:
  147. public:
  148. StStandardHbtEventReader();
  149. ~StStandardHbtEventReader();
  150. StHbtEvent* ReturnHbtEvent();
  151. StHbtString Report();
  152. void SetTheEventMaker(StMaker*);
  153. StMaker* TheEventMaker();
  154. void SetTheV0Maker(StStrangeMuDstMaker*);
  155. StStrangeMuDstMaker* TheV0Maker();
  156. void SetTheTagReader(StHbtTagReader*);
  157. StHbtTagReader* TheTagReader();
  158. StTrackType TrackType();
  159. bool ReadTracks();
  160. bool ReadV0s();
  161. bool ReadXis();
  162. bool ReadKinks();
  163. void SetTrackType(StTrackType);
  164. void SetReadTracks(bool);
  165. void SetReadV0s(bool);
  166. void SetReadXis(bool);
  167. void SetReadKinks(bool);
  168. void SetFlowMaker(StFlowMaker* flowMaker);
  169. void SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal);
  170. #ifdef __ROOT__
  171. ClassDef(StStandardHbtEventReader, 1)
  172. #endif
  173. };
  174. inline void StStandardHbtEventReader::SetTheEventMaker(StMaker* maker){mTheEventMaker=maker;}
  175. inline StMaker* StStandardHbtEventReader::TheEventMaker(){return mTheEventMaker;}
  176. inline void StStandardHbtEventReader::SetTheV0Maker(StStrangeMuDstMaker* maker){mTheV0Maker=maker;}
  177. inline StStrangeMuDstMaker* StStandardHbtEventReader::TheV0Maker(){return mTheV0Maker;}
  178. inline void StStandardHbtEventReader::SetTheTagReader(StHbtTagReader* maker){mTheTagReader=maker;}
  179. inline StHbtTagReader* StStandardHbtEventReader::TheTagReader(){return mTheTagReader;}
  180. inline StTrackType StStandardHbtEventReader::TrackType() { return mTrackType;}
  181. inline bool StStandardHbtEventReader::ReadTracks() { return mReadTracks;}
  182. inline bool StStandardHbtEventReader::ReadV0s() { return mReadV0s;}
  183. inline bool StStandardHbtEventReader::ReadXis() { return mReadXis;}
  184. inline bool StStandardHbtEventReader::ReadKinks() { return mReadKinks;}
  185. inline void StStandardHbtEventReader::SetTrackType(StTrackType t) { mTrackType=t;}
  186. inline void StStandardHbtEventReader::SetReadTracks(bool b) { mReadTracks=b;}
  187. inline void StStandardHbtEventReader::SetReadV0s(bool b) { mReadV0s=b;}
  188. inline void StStandardHbtEventReader::SetReadXis(bool b) { mReadXis=b;}
  189. inline void StStandardHbtEventReader::SetReadKinks(bool b) { mReadKinks=b;}
  190. inline void StStandardHbtEventReader::SetFlowMaker(StFlowMaker* flowMaker){mFlowMaker = flowMaker;}
  191. inline void StStandardHbtEventReader::SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal) {
  192. mFlowAnalysisMaker = flowAnal;
  193. }
  194. #endif