PandaRoot
BSEmcPSAOverflowCombinator.h
Go to the documentation of this file.
1 //-----------------------------------------------------------
2 // Description:
3 // Class of combinator that combine multi-PSA outputs
4 // Guang Zhao
5 //-----------------------------------------------------------
6 
7 #ifndef BSEMCPSAOVERFLOWCOMBINATOR_HH
8 #define BSEMCPSAOVERFLOWCOMBINATOR_HH
9 
10 #include <vector>
11 
12 #include "Rtypes.h"
13 #include "RtypesCore.h"
14 
15 #include "BSEmcPSACombinator.h"
16 
17 class BSEmcAbsPSA;
18 class TBuffer;
19 class TClass;
20 class TMemberInspector;
21 
23  public:
24  BSEmcPSAOverflowCombinator(Double_t t_threshold, Double_t t_timediff, Bool_t t_single_mode = kFALSE);
25  virtual Int_t Combine(const std::vector<BSEmcAbsPSA *> &t_psa_list, const std::vector<Int_t> &t_nhit_list, std::vector<Double_t> &t_energy_list,
26  std::vector<Double_t> &t_time_list) /*override*/;
27 
28  private:
29  UInt_t match(BSEmcAbsPSA *t_psa1, Int_t t_nhit1, BSEmcAbsPSA *t_psa2, Int_t t_nhit2);
30  void fill(BSEmcAbsPSA *t_psa, Int_t t_nhit);
31  Bool_t overflow();
32 
33  Double_t fThreshold{0};
34  Double_t fTimeDiff{0};
35 
36  std::vector<Double_t> fEnergyList{};
37  std::vector<Double_t> fTimeList{};
38 
39  Bool_t fSingleAPDMode; // kTRUE for single APD, kFALSE for duo APD
40 
41  ClassDef(BSEmcPSAOverflowCombinator, 1)
42 };
43 
44 #endif /*BSEMCPSAOVERFLOWCOMBINATOR_HH*/
Baseclass for pulseshapeanalysis ( featureextraction )
Definition: BSEmcAbsPSA.h:26
virtual Int_t Combine(const std::vector< BSEmcAbsPSA *> &t_psa_list, const std::vector< Int_t > &t_nhit_list, std::vector< Double_t > &t_energy_list, std::vector< Double_t > &t_time_list)
BSEmcPSAOverflowCombinator(Double_t t_threshold, Double_t t_timediff, Bool_t t_single_mode=kFALSE)