BmnRoot
Loading...
Searching...
No Matches
BmnRun8DetModel.h
Go to the documentation of this file.
1/*
2 BM@N alignment routine
3 BM@N experiment at NICA complex, JINR, 2025
4
5 Department: Math & Soft Group of HEP lab
6 Author: Igor Polev, polev@jinr.ru
7
8 BmnRun8DetModel class declaration
9 Run8 representation of detector elements via encoding
10*/
11
12#ifndef BMNRUN8DETMODEL_H
13#define BMNRUN8DETMODEL_H
14
15#include "BmnDetectorList.h"
16#include "BmnDetectorModel.h"
17
18/*
19 * Detector elements enumeration scheme
20 *
21 * SystemID - fixed constatns defined in BmnDetectorList.h
22 * StationID - sequence across all systems starting from 0 or 1 (currently 1)
23 * ModuleID - separate sequence for each station starting from 0 or 1 (currently 1)
24 */
25
27{
28 protected:
29 Int_t fSystem{-1}, fStation{-1}, fModule{-1};
30
31 enum
32 {
34 kLast
35 };
36 // Run8 configuration definition
38 SIL_STATION_CNT{4}, GEM_STATION_CNT{7}, STA_NUM_START{1}, // first station number (0 or 1)
39 MOD_NUM_START{1}, // first module number for each station (0 or 1)
40 // stations have one common index range, silicons first, then GEMs
43 SIL_MODULES[SIL_STATION_CNT]{6, 10, 14, 18}, GEM_MODULES[GEM_STATION_CNT]{8, 8, 8, 8, 8, 8, 8};
44 // In GEM stations each second module is a "hot zone".
45 // Hot zones should not be aligned independently.
46
47 // detector modules enumeration: see base class
48 virtual void Reset() noexcept override;
49 virtual Int_t NextID() noexcept override;
50
51 public:
52 virtual Int_t MaxModulesInStation() const noexcept override;
53 virtual Int_t Alignables() const noexcept override;
54 virtual Int_t IDfromHit(Int_t HitDetectorID) const noexcept override;
55
56 BmnRun8DetModel() = default;
57};
58
59#endif // BMNRUN8DETMODEL_H
@ kSILICON
@ kGEM
static constexpr const Int_t GEM_MODULES[GEM_STATION_CNT]
static constexpr const Int_t STA_NUM_START
virtual Int_t NextID() noexcept override
virtual void Reset() noexcept override
static constexpr const Int_t SIL_SYSTEM_ID
static constexpr const Int_t MOD_NUM_START
static constexpr const Int_t SIL_MODULES[SIL_STATION_CNT]
virtual Int_t Alignables() const noexcept override
static constexpr const Int_t GEM_SYSTEM_ID
static constexpr const Int_t SIL_STATION_IDX[2]
virtual Int_t IDfromHit(Int_t HitDetectorID) const noexcept override
static constexpr const Int_t GEM_STATION_CNT
virtual Int_t MaxModulesInStation() const noexcept override
static constexpr const Int_t SIL_STATION_CNT
static constexpr const Int_t GEM_STATION_IDX[2]