MpdFemtoModelCorrFctnMomResolution.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #ifndef ALIFEMTOMODELCORRFCTN3DKKGR_H
  2. #define ALIFEMTOMODELCORRFCTN3DKKGR_H
  3. // MpdFemtoMaker headers
  4. // Base
  5. #include "MpdFemtoBaseCorrFctn.h"
  6. #include "MpdFemtoModelManager.h"
  7. #include "MpdFemtoModelHiddenInfo.h"
  8. // ROOT
  9. #include <TVector3.h>
  10. #include <TLorentzVector.h>
  11. #include <TH2D.h>
  12. #include <TH3D.h>
  13. class MpdFemtoModelCorrFctnMomResolution : public MpdFemtoBaseCorrFctn {
  14. public:
  15. MpdFemtoModelCorrFctnMomResolution();
  16. MpdFemtoModelCorrFctnMomResolution(const char *title, Int_t aNbins, Double_t aQinvLo, Double_t aQinvHi);
  17. MpdFemtoModelCorrFctnMomResolution(const MpdFemtoModelCorrFctnMomResolution& aCorrFctn);
  18. virtual ~MpdFemtoModelCorrFctnMomResolution();
  19. MpdFemtoModelCorrFctnMomResolution& operator=(const MpdFemtoModelCorrFctnMomResolution& aCorrFctn);
  20. /// Method that allows front-loading model manager
  21. virtual void connectToManager(MpdFemtoModelManager *aManager);
  22. /// Make report
  23. virtual MpdFemtoString report();
  24. /// Add real pair
  25. virtual void addRealPair(MpdFemtoPair* aPair);
  26. /// Add mixed pair
  27. virtual void addMixedPair(MpdFemtoPair* aPair);
  28. /// Begin event
  29. virtual void eventBegin(const MpdFemtoEvent* aEvent);
  30. /// Event end
  31. virtual void eventEnd(const MpdFemtoEvent* aEvent);
  32. /// Finish
  33. virtual void finish();
  34. virtual void writeOutHistos();
  35. virtual TList* getOutputList();
  36. virtual MpdFemtoModelCorrFctnMomResolution* clone() const {
  37. return new MpdFemtoModelCorrFctnMomResolution(*this);
  38. }
  39. void SetFillkT(bool fillkT) {
  40. fFillkT = fillkT;
  41. }
  42. // void SetSpecificPairCut(AliFemtoPairCut* aCut);
  43. Double_t GetQinvTrue(MpdFemtoPair*);
  44. Double_t GetQoutTrue(MpdFemtoPair*);
  45. Double_t GetQsideTrue(MpdFemtoPair*);
  46. Double_t GetQlongTrue(MpdFemtoPair*);
  47. //Special MC analysis for K selected by PDG code -->
  48. void SetKaonPDG(Bool_t aSetKaonAna);
  49. protected:
  50. MpdFemtoModelManager *fManager; // Link back to the manager to get the weights
  51. TH3D *fNumeratorTrue; // Numerator made with pairs from the same event
  52. TH3D *fNumeratorFake; // Numerator made with pairs from different events (mixed pairs)
  53. TH3D *fDenominator; // Denominator made with mixed pairs
  54. TH3D *fNumeratorTrueIdeal; // Numerator made with pairs (true qinv) from the same event
  55. TH3D *fNumeratorFakeIdeal; // Numerator made with pairs (true qinv) from different events (mixed pairs)
  56. TH3D *fDenominatorIdeal; // Denominator made with mixed pairs (true qinv)
  57. TH2D *fQgenQrec; // Qinv true (generated) vs. Qinv reconstructed
  58. private:
  59. //Special MC analysis for K selected by PDG code -->
  60. Bool_t fKaonPDG;
  61. Bool_t fFillkT;
  62. const Int_t fNbbPairs = 21;
  63. TH1D *fkTdists[21]; // histograms with kT distributions for different BB pairs
  64. Double_t GetParentsKt(MpdFemtoPair *pair);
  65. Int_t GetPairNumber(MpdFemtoPair *pair); // returns pair code
  66. ClassDef(MpdFemtoModelCorrFctnMomResolution, 1);
  67. };
  68. #endif