StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StHbtThCorrFctn.hh
1 /***************************************************************************
2  *
3  *
4  *
5  * Author: Laurent Conin, Fabrice Retiere, Subatech, France
6  ***************************************************************************
7  *
8  * Description : pure abstract theoretical correlation function
9  *
10  ***************************************************************************
11  *
12  *
13  *
14  ***************************************************************************/
15 #ifndef StHbtThCorrFctn_hh
16 #define StHbtThCorrFctn_hh
17 
18 #include "StHbtMaker/Base/StHbtCorrFctn.hh"
19 #include "StHbtMaker/Infrastructure/StHbtNamed.hh"
20 #include "StHbtMaker/Infrastructure/StHbtPair.hh"
21 #include "StHbtMaker/Base/StHbtThPair.hh"
22 #include "StHbtMaker/ThCorrFctn/StHbtThPairDummy.h"
23 
24 class StHbtThCorrFctn : public virtual StHbtCorrFctn ,public virtual StHbtNamed{
25 
26 public:
27 // --- Constructor
29  StHbtThCorrFctn(const char* aName) :StHbtCorrFctn(),StHbtNamed(aName) {};
30  StHbtThCorrFctn(const StHbtThCorrFctn& aCf ) :StHbtCorrFctn(aCf),StHbtNamed(aCf) {};
31  virtual ~StHbtThCorrFctn() {};
32 
33 
34  void AddRealPair(const StHbtPair*);
35  void AddMixedPair(const StHbtPair*);
36 
37  virtual void AddNum(StHbtThPair*)=0;
38  virtual void AddDen(StHbtThPair*)=0;
39 
40  virtual StHbtThCorrFctn* ThClone() const =0;
41 
42 
43 protected:
44  StHbtThPairDummy mDefThPair;
45 
46 };
47 
48 inline void StHbtThCorrFctn::AddRealPair(const StHbtPair* aPair) {
49  mDefThPair.Set(aPair);
50  AddNum(&mDefThPair);
51 }
52 inline void StHbtThCorrFctn::AddMixedPair(const StHbtPair* aPair) {
53  mDefThPair.Set(aPair);
54  AddDen(&mDefThPair);
55 }
56 
57 #endif