123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /***************************************************************************
- *
- * $Id: StHbtCorrFctn.hh,v 1.11 2013/01/18 16:13:04 yyang Exp $
- *
- * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
- ***************************************************************************
- *
- * Description: part of STAR HBT Framework: StHbtMaker package
- * base class for a STAR correlation function. Users should inherit
- * from this and must implement constructor, destructor, Report(),
- * AddMixedPair(), AddRealPair(), Finish()
- *
- ***************************************************************************
- *
- * $Log: StHbtCorrFctn.hh,v $
- * Revision 1.11 2013/01/18 16:13:04 yyang
- * Add PairCut for CFs that share same cuts, but pair cuts
- *
- * Revision 1.10 2001/06/21 19:06:48 laue
- * Some minor structural changes (forward declarations, etc)
- *
- * Revision 1.9 2000/06/29 23:01:10 finch
- * added an extra base class for Parity Computations
- *
- * Revision 1.8 2000/06/15 18:51:32 willson
- * Cuts and Correlation function information moved from StBaseAnalysis
- * to the derived analysis classes. Global functions installed in
- * Cut and CorrFctn base classes to access analysis pointer.
- *
- * Revision 1.7 2000/05/11 21:16:40 willson
- * myAnalysis pointer changed to type StHbtBaseAnalysis - moved
- * some methods into StHbtBaseAnalysis class
- *
- * Revision 1.6 2000/03/23 22:43:27 laue
- * Clone() function implemented in cuts.
- *
- * Revision 1.5 2000/03/16 01:54:36 laue
- * Copy constructor added to all the cut base classes and to the
- * corrfctn base class
- *
- * Revision 1.4 2000/02/13 17:13:09 laue
- * EventBegin() and EventEnd() functions implemented
- *
- * Revision 1.3 1999/12/03 22:24:33 lisa
- * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism
- *
- * Revision 1.2 1999/07/06 22:33:18 lisa
- * Adjusted all to work in pro and new - dev itself is broken
- *
- * Revision 1.1.1.1 1999/06/29 16:02:56 lisa
- * Installation of StHbtMaker
- *
- **************************************************************************/
- #ifndef StHbtCorrFctn_hh
- #define StHbtCorrFctn_hh
- #include "StHbtMaker/Base/StHbtBaseAnalysis.h"
- #include "StHbtMaker/Base/StHbtPairCut.h"
- #include "StHbtMaker/Infrastructure/StParityTypes.hh" // can not forward declare typedefs
- #include "StHbtMaker/Infrastructure/StHbtEvent.hh"
- #include "StHbtMaker/Infrastructure/StHbtPair.hh"
- #include "StHbtMaker/Infrastructure/StHbtTriplet.hh"
- #include "StHbtMaker/Infrastructure/StHbtHisto.hh"
- class StHbtCorrFctn{
- public:
- StHbtCorrFctn() { mPairCut = 0; mPairCutFlag = false; }
- StHbtCorrFctn(const StHbtCorrFctn& );
- virtual ~StHbtCorrFctn(){/* no-op */}
- virtual StHbtString Report() = 0;
- virtual void ParityCompute(ParityBuff*, ParityBuff*, int);
- virtual void AddRealPair(const StHbtPair*);
- virtual void AddMixedPair(const StHbtPair*);
- virtual void AddRealTriplet(const StHbtTriplet*);
- virtual void AddMixedTriplet(const StHbtTriplet*);
- virtual void EventBegin(const StHbtEvent*) { /* no-op */ }
- virtual void EventEnd(const StHbtEvent*) { /* no-op */ }
- virtual void Finish() = 0;
- virtual StHbtCorrFctn* Clone() { return 0;}
- virtual StHbtPairCut* GetPairCut() { return mPairCut; }
- // the following allows "back-pointing" from the CorrFctn to the "parent" Analysis
- friend class StHbtBaseAnalysis;
- StHbtBaseAnalysis* HbtAnalysis(){return myAnalysis;};
- void SetAnalysis(StHbtBaseAnalysis*);
- bool GetPairCutFlag();
- protected:
- StHbtBaseAnalysis* myAnalysis;
- StHbtPairCut* mPairCut;
- bool mPairCutFlag; // Characteristics of the CF itself. So we have
- // only Get methods in the base class
- // By default this flag equals false.
- // This flag indicates that CF tests pair cuts by self.
- private:
- };
- inline void StHbtCorrFctn::ParityCompute(ParityBuff*, ParityBuff*, int) { cout << "Not implemented" << endl; }
- inline void StHbtCorrFctn::AddRealPair(const StHbtPair*) { cout << "Not implemented" << endl; }
- inline void StHbtCorrFctn::AddMixedPair(const StHbtPair*) { cout << "Not implemented" << endl; }
- inline void StHbtCorrFctn::AddRealTriplet(const StHbtTriplet*) { cout << "Not implemented" << endl; }
- inline void StHbtCorrFctn::AddMixedTriplet(const StHbtTriplet*) { cout << "Not implemented" << endl; }
- inline StHbtCorrFctn::StHbtCorrFctn(const StHbtCorrFctn& c) { myAnalysis =0; mPairCut = c.mPairCut; }
- inline void StHbtCorrFctn::SetAnalysis(StHbtBaseAnalysis* analysis) { myAnalysis = analysis; }
- inline bool StHbtCorrFctn::GetPairCutFlag() { return mPairCutFlag; }
- #endif
|