1 ////////////////////////////////////////////////////////////////////////////////
3 /// AliFemtoModelManager - main helper class for femtoscopy calculations ///
4 /// Manages weight generation, freeze-out coordinates generation ///
5 /// Authors: Adam Kisiel kisiel@mps.ohio-state.edu ///
7 ////////////////////////////////////////////////////////////////////////////////
9 ClassImp(AliFemtoModelManager, 1)
12 #include "AliFemtoModelManager.h"
13 #include "AliFemtoModelHiddenInfo.h"
15 //_____________________________________________
16 AliFemtoModelManager::AliFemtoModelManager():
17 fFreezeOutGenerator(0),
19 fCreateCopyHiddenInfo(kFALSE)
22 //_____________________________________________
23 AliFemtoModelManager::AliFemtoModelManager(const AliFemtoModelManager& aManager):
24 fFreezeOutGenerator(0),
26 fCreateCopyHiddenInfo(aManager.fCreateCopyHiddenInfo)
28 if (aManager.fFreezeOutGenerator) {
29 fFreezeOutGenerator = aManager.fFreezeOutGenerator->Clone();
31 if (aManager.fWeightGenerator) {
32 fWeightGenerator = aManager.fWeightGenerator->Clone();
35 //_____________________________________________
36 AliFemtoModelManager::~AliFemtoModelManager()
38 if (fFreezeOutGenerator) delete fFreezeOutGenerator;
39 if (fWeightGenerator) delete fWeightGenerator;
41 //_____________________________________________
42 AliFemtoModelManager& AliFemtoModelManager::operator=(const AliFemtoModelManager& aManager)
44 if (this == &aManager)
46 if (aManager.fFreezeOutGenerator) {
47 fFreezeOutGenerator = aManager.fFreezeOutGenerator->Clone();
49 else fFreezeOutGenerator = 0;
50 if (aManager.fWeightGenerator) {
51 fWeightGenerator = aManager.fWeightGenerator->Clone();
53 else fWeightGenerator = 0;
54 fCreateCopyHiddenInfo = aManager.fCreateCopyHiddenInfo;
58 //_____________________________________________
59 void AliFemtoModelManager::AcceptFreezeOutGenerator(AliFemtoModelFreezeOutGenerator *aFreeze)
61 fFreezeOutGenerator = aFreeze;
63 //_____________________________________________
64 void AliFemtoModelManager::AcceptWeightGenerator(AliFemtoModelWeightGenerator *aWeight)
66 fWeightGenerator = aWeight;
68 //_____________________________________________
69 Double_t AliFemtoModelManager::GetWeight(AliFemtoPair *aPair)
71 // Return femtoscopic weight for a fiven pair
72 if (fCreateCopyHiddenInfo) {
73 if (!(aPair->track1()->HiddenInfo())) {
74 AliFemtoModelHiddenInfo *inf1 = new AliFemtoModelHiddenInfo();
75 inf1->SetTrueMomentum(aPair->track1()->Track()->P());
76 inf1->SetMass(0.13957);
77 aPair->track1()->SetHiddenInfo(inf1);
80 if (!(aPair->track2()->HiddenInfo())) {
81 AliFemtoModelHiddenInfo *inf2 = new AliFemtoModelHiddenInfo();
82 inf2->SetTrueMomentum(aPair->track2()->Track()->P());
83 inf2->SetMass(0.13957);
84 aPair->track2()->SetHiddenInfo(inf2);
89 if (fFreezeOutGenerator) {
90 fFreezeOutGenerator->GenerateFreezeOut(aPair);
92 return fWeightGenerator->GenerateWeight(aPair);
94 //_____________________________________________
95 void AliFemtoModelManager::CreateCopyHiddenInfo()
97 fCreateCopyHiddenInfo = kTRUE;
99 //_____________________________________________
100 AliFemtoModelFreezeOutGenerator* AliFemtoModelManager::GetFreezeOutGenerator()
102 return fFreezeOutGenerator;
104 //_____________________________________________
105 AliFemtoModelWeightGenerator* AliFemtoModelManager::GetWeightGenerator()
107 return fWeightGenerator;