StFlowScalarProdMaker.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // $Id: StFlowScalarProdMaker.h,v 1.7 2014/08/06 11:43:14 jeromel Exp $
  4. //
  5. // Authors: method proposed by Art and Sergei, code written by Aihong
  6. // Frame adopted from Art and Raimond's StFlowAnalysisMaker.
  7. ///////////////////////////////////////////////////////////////////////////////
  8. //
  9. // Description: Maker to analyze Flow using the scalar product method
  10. //
  11. ///////////////////////////////////////////////////////////////////////////////
  12. #ifndef StFlowScalarProdMaker_H
  13. #define StFlowScalarProdMaker_H
  14. #include <Stiostream.h>
  15. #include "StMaker.h"
  16. #include "StFlowMaker/StFlowConstants.h"
  17. #include "TVector2.h"
  18. #include "TString.h"
  19. class StFlowEvent;
  20. class StFlowSelection;
  21. class TH1F;
  22. class TH1D;
  23. class TH2F;
  24. class TH2D;
  25. //class TH3F;
  26. class TProfile;
  27. class TProfile2D;
  28. class StFlowScalarProdMaker : public StMaker {
  29. public:
  30. StFlowScalarProdMaker(const Char_t* name="FlowScalarProdAnalysis");
  31. StFlowScalarProdMaker(const Char_t* name,
  32. const StFlowSelection& pFlowSelect);
  33. StFlowScalarProdMaker(const StFlowScalarProdMaker &from){};
  34. virtual ~StFlowScalarProdMaker();
  35. Int_t Init();
  36. Int_t Make();
  37. Int_t Finish();
  38. void SetHistoRanges(Bool_t ftpc_included = kFALSE);
  39. virtual const char *GetCVS() const {static const char cvs[]=
  40. "Tag $Name: $ $Id: StFlowScalarProdMaker.h,v 1.7 2014/08/06 11:43:14 jeromel Exp $ built " __DATE__ " " __TIME__ ;
  41. return cvs;}
  42. private:
  43. void FillFromFlowEvent();
  44. void FillEventHistograms();
  45. void FillParticleHistograms();
  46. #ifndef __CINT__
  47. TVector2 mQ[Flow::nSels][Flow::nHars]; //! flow vector
  48. TVector2 mQSub[Flow::nSels*Flow::nSubs][Flow::nHars]; //! flow vector subs
  49. Float_t mRes[Flow::nSels][Flow::nHars]; //! event plane resolution
  50. Float_t mResErr[Flow::nSels][Flow::nHars]; //! event plane resolution er
  51. #endif /*__CINT__*/
  52. TString xLabel; //! label axis with rapidity or pseudorapidity
  53. StFlowEvent* pFlowEvent; //! pointer to StFlowEvent
  54. StFlowSelection* pFlowSelect; //! selection object
  55. // for each harmonic and each selection
  56. struct histFullHars {
  57. TProfile2D* mHist_vObs2D;
  58. TProfile* mHist_vObsEta;
  59. TProfile* mHist_vObsPt;
  60. TH2D* mHist_v2D;
  61. TH1D* mHist_vEta;
  62. TH1D* mHist_vPt;
  63. };
  64. // for each selection
  65. struct histFulls;
  66. friend struct histFulls;
  67. struct histFulls {
  68. TProfile* mHistRes;
  69. TProfile* mHist_vObs;
  70. TH1D* mHist_v;
  71. struct histFullHars histFullHar[Flow::nHars];
  72. };
  73. struct histFulls histFull[Flow::nSels]; //!
  74. TString MakerName;
  75. Float_t mEtaMin;
  76. Float_t mEtaMax;
  77. Int_t mNEtaBins;
  78. ClassDef(StFlowScalarProdMaker,0) // macro for rootcint
  79. };
  80. #endif
  81. ///////////////////////////////////////////////////////////////////////////////
  82. //
  83. // $Log: StFlowScalarProdMaker.h,v $
  84. // Revision 1.7 2014/08/06 11:43:14 jeromel
  85. // Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
  86. //
  87. // Revision 1.6 2003/09/10 19:47:15 perev
  88. // ansi corrs
  89. //
  90. // Revision 1.5 2003/09/02 17:58:11 perev
  91. // gcc 3.2 updates + WarnOff
  92. //
  93. // Revision 1.4 2003/01/10 16:40:52 oldi
  94. // Several changes to comply with FTPC tracks:
  95. // - Switch to include/exclude FTPC tracks introduced.
  96. // The same switch changes the range of the eta histograms.
  97. // - Eta symmetry plots for FTPC tracks added and separated from TPC plots.
  98. // - PhiWgts and related histograms for FTPC tracks split in FarEast, East,
  99. // West, FarWest (depending on vertex.z()).
  100. // - Psi_Diff plots for 2 different selections and the first 2 harmonics added.
  101. // - Cut to exclude mu-events with no primary vertex introduced.
  102. // (This is possible for UPC events and FTPC tracks.)
  103. // - Global DCA cut for FTPC tracks added.
  104. // - Global DCA cuts for event plane selection separated for TPC and FTPC tracks.
  105. // - Charge cut for FTPC tracks added.
  106. //
  107. // Revision 1.3 2002/01/14 23:42:55 posk
  108. // Renamed ScalerProd histograms. Moved print commands to FlowMaker::Finish().
  109. //
  110. // Revision 1.2 2001/12/21 17:01:59 aihong
  111. // minor changes
  112. //
  113. // Revision 1.1 2001/12/18 23:46:47 aihong
  114. // install scalar product method
  115. //
  116. //
  117. ///////////////////////////////////////////////////////////////////////////////