Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
CorrFitPairGenerator.h
1/*
2 * CorrFitPairGenerator.h
3 *
4 * Created on: 27 lut 2024
5 * Author: Daniel Wielanek
6 * E-mail: daniel.wielanek@gmail.com
7 * Warsaw University of Technology, Faculty of Physics
8 */
9#ifndef HAL_ANALYSIS_FEMTO_CORRFIT_PAIRGENERATORS_CORRFITPAIRGENERATOR_H_
10#define HAL_ANALYSIS_FEMTO_CORRFIT_PAIRGENERATORS_CORRFITPAIRGENERATOR_H_
11
12
13#include "Array.h"
14#include "CorrFitMapGroupConfig.h"
15#include "FastAxisCalc.h"
16#include "FemtoConst.h"
17
18#include <TObject.h>
19
20class TFile;
21class TTree;
22class TH1;
23class TClonesArray;
29namespace Hal {
30 class FemtoCorrFunc;
31 class CorrFitPairGenerator : public TObject {
32 protected:
33 Bool_t fInited = {kFALSE};
34 Bool_t fDebug = {kFALSE};
35 Bool_t fAbs = {kFALSE};
36 Int_t fPid1 = {0}, fPid2 = {0};
37 Int_t fNBins = {0};
38 Double_t fM1 = {0}, fM2 = {0};
39 Double_t fLow = {0}, fHi = {1};
40 Double_t fOutCut[2] = {0, 0};
41 Double_t fSideCut[2] = {0, 0};
42 Double_t fOverStep = {0};
43 Int_t fBinLimit = {10000};
44 TString fFileName = {"pair.root"};
45 TFile* fOutFile = {nullptr};
46 FemtoCorrFunc* fCF = {nullptr};
47 TTree* fOutTree = {nullptr};
48 TH1* fDebugHisto = {nullptr};
49 Hal::FemtoPair* fHbtPair = {nullptr};
50 Femto::EKinematics fFrame = {Femto::EKinematics::kLCMS};
51 Array_1<Int_t> fLimitsN;
52 Array_3<Int_t> fLimits3D;
53 FastAxisCalc fXaxis, fYaxis, fZaxis;
54 Array_1<Double_t> fCentersX;
55 Array_1<Double_t> fCentersY, fCentersZ;
56 enum class EGrouping { kOneDim, kThreeDim };
57 EGrouping fGroupingFlag = {EGrouping::kOneDim};
58 CorrFitMapGroupConfig fGrouping;
59 std::vector<TClonesArray*> fSignalPairs;
60 virtual void GenerateEvent() = 0;
61 Int_t GetBin(Double_t val) const;
62
63 public:
68 void EnableDebug() { fDebug = kTRUE; }
69 virtual Bool_t Init();
74 void SetPdg(Int_t pid) { fPid1 = fPid2 = pid; };
80 void SetPdg(Int_t pid1, Int_t pid2) {
81 fPid1 = pid1;
82 fPid2 = pid2;
83 };
88 void SetCorrFctn(const FemtoCorrFunc& cf);
93 void SetOutput(TString name) { fFileName = name; };
98 void SetPairLimitPerBin(Int_t limit) { fBinLimit = limit; };
99 virtual void Run(Int_t entries);
100 virtual ~CorrFitPairGenerator();
101 ClassDef(CorrFitPairGenerator, 1)
102 };
103
104} /* namespace Hal */
105
106#endif /* HAL_ANALYSIS_FEMTO_CORRFIT_PAIRGENERATORS_CORRFITPAIRGENERATOR_H_ */
void SetCorrFctn(const FemtoCorrFunc &cf)
void SetPdg(Int_t pid1, Int_t pid2)
void SetPairLimitPerBin(Int_t limit)