EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ResolutionLevel.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ResolutionLevel.h
1 //
2 // AYK (ayk@bnl.gov)
3 //
4 // Resolution level description;
5 //
6 // Initial port from OLYMPUS sources: Oct'2015;
7 //
8 
9 #ifndef _RESOLUTION_LEVEL_
10 #define _RESOLUTION_LEVEL_
11 
12 class HoughTree;
13 
15 {
16  public:
17  ResolutionLevel(const HoughTree *tree, const unsigned div[]);
19 
20  // THINK: calls from main code only -> no range check?;
21  double GetParameterSplitFactor (unsigned ip) const { return mParameterSplit [ip]; };
22  double GetCellSize (unsigned ip) const { return mCellSize [ip]; };
23 
24  unsigned GetTotalDivisionNumber (unsigned ip) const { return mTotalDivisionNum[ip]; };
25  unsigned GetDaughterCellNumber() const { return mDaughterCellNum; };
26 
27  // NB: since mDim is readily available in this class, it is convenient
28  // to sort of swap indices in mRemap[] 2D storage array;
29  unsigned Remap(unsigned i, unsigned ip) const { return mRemap[i+ip*mDaughterCellNum]; };
30 
31  private:
32  // Divisions of individual parameters and overall dimension of
33  // the (linear, 1D) daughter cell array on this level;
35 
36  // Accumulated number of cells on this level, including divisions
37  // of each dimension separately;
39 
40  // Parameter space rectangular cell size on this resolution level;
41  double *mCellSize;
42 
43  unsigned *mRemap;
44 };
45 
46 #endif