BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
CbmStsDigiScheme.h
Go to the documentation of this file.
1// -------------------------------------------------------------------------
2// ----- CbmStsDigiScheme header file -----
3// ----- Created 31/08/06 by V. Friese -----
4// -------------------------------------------------------------------------
5
6/** CbmStsDigiScheme
7 **@author Volker Friese <v.friese@gsi.de>
8 **@since 31.08.06
9 **@version 1.0
10 **
11 ** Auxiliary class for STS digitisation and hit finding.
12 ** Controls the digitisation scheme of the stations and sectors.
13 **/
14
15#ifndef CbmStsDigiScheme_H
16#define CbmStsDigiScheme_H 1
17
20#include "BmnVSPStationSet.h"
21#include "TObjArray.h"
22#include "TObject.h"
23
24#include <TGeoCompositeShape.h> //AZ-180322
25#include <iostream>
26#include <map>
27
28class CbmGeoStsPar;
29class CbmStsDigiPar;
30class CbmStsSector;
31class CbmStsSensor;
32class CbmStsStation;
34
35class CbmStsDigiScheme : public TObject
36{
37 public:
38 /** Destructor **/
40
41 /** Initialisation **/
44
45 /** Clear digitisation scheme **/
46 void Clear();
47
48 /** Reset eventwise counters **/
49 void Reset();
50
51 /** Accessors **/
52 Int_t GetNStations() { return fStations->GetEntries(); }
57 CbmStsStation* GetStation(Int_t iStation); /** Station by index **/
58 CbmStsStation* GetStationByNr(Int_t stationNr); /** Station by number **/
59 CbmStsSector* GetSector(Int_t stationNr, Int_t sectorNr); /** Sector by number **/
60 CbmStsSensor* GetSensor(Int_t stationNr, Int_t sectorNr, Int_t sensorNr); /** Sensor by number **/
63
64 /** Check for new geometry **/
66
67 /** Construct full path to a node **/
69
70 /** Screen output **/
71 void Print(Bool_t kLong = kFALSE);
72
73 // AZ-290322
74 static CbmStsDigiScheme* Instance(int version = 1);
75
76 private:
77 static CbmStsDigiScheme* fgInstance; //-> AZ - Static instance of this class
78 static int fVersion; // AZ-290322 - configuration version (CBM if 0, else BM@N)
79 TObjArray* fStations; //! Array of CbmStsStation
80 Int_t fNSectors; /** Total number of sectors **/
81 Int_t fNSensors; /** Total number of sensors **/
82 Int_t fNChannels; /** Total number of channels **/
83 Bool_t fIsNewGeometry; /** New geometry ( v12 or later ) **/
84
85 std::map<Int_t, CbmStsStation*> fStationMap; //! Map from number to station
86 std::map<TString, Int_t> fDetIdByName;
87 std::map<TString, CbmStsSensor*> fSensorByName;
88
89 /** Constructor **/
93
94 /** New init method (from V12a on) **/
95 Bool_t InitNew(CbmGeoStsPar* geoPar, CbmStsDigiPar* digiPar); // CBM configuration
96 Bool_t InitNewNew(CbmGeoStsPar* geoPar, CbmStsDigiPar* digiPar); // AZ-290322 - BM@N configuration
97
99 Int_t statNr,
100 CbmStsStation* station,
101 CbmStsStationDigiPar* stationPar); // GP
102 Int_t SetSensorsCbm(Int_t moduleNr, Int_t statNr, CbmStsStation* station,
103 CbmStsStationDigiPar* stationPar); // AZ
105 Int_t statNr,
106 CbmStsStation* station,
107 CbmStsStationDigiPar* stationPar); // AZ-170322
108 void AddHotZones(); // AZ-180322
109
110 BmnGemStripStationSet* GemStationSet; //! Entire GEM detector
111 BmnSiliconStationSet* SilStationSet; //! Entire SILICON detector
112 BmnVSPStationSet* fVspStationSet; //! Vertex Silicon Plane (CBM sensors)
113
115};
116
117#endif
bool Bool_t
int Int_t
constexpr Bool_t kFALSE
#define ClassDef(name, id)
CbmStsDigiScheme(const CbmStsDigiScheme &)
void Print(Bool_t kLong=kFALSE)
Screen output.
CbmStsSensor * GetSensor(Int_t stationNr, Int_t sectorNr, Int_t sensorNr)
Sector by number.
Int_t SetSensorsCbm(Int_t moduleNr, Int_t statNr, CbmStsStation *station, CbmStsStationDigiPar *stationPar)
Bool_t InitNew(CbmGeoStsPar *geoPar, CbmStsDigiPar *digiPar)
New init method (from V12a on).
static CbmStsDigiScheme * fgInstance
BmnGemStripStationSet * GemStationSet
Bool_t Init(CbmGeoStsPar *geoPar, CbmStsDigiPar *digiPar)
std::map< TString, CbmStsSensor * > fSensorByName
Bool_t IsNewGeometry() const
Check for new geometry.
Int_t fNSensors
Total number of sectors.
Bool_t fIsNewGeometry
Total number of channels.
Bool_t Init()
Initialisation.
TObjArray * fStations
TString GetCurrentPath()
Construct full path to a node.
std::map< TString, Int_t > fDetIdByName
Map from number to station.
std::map< Int_t, CbmStsStation * > fStationMap
New geometry ( v12 or later ).
TObjArray * GetStations()
CbmStsDigiScheme operator=(const CbmStsDigiScheme &)
Bool_t InitNewNew(CbmGeoStsPar *geoPar, CbmStsDigiPar *digiPar)
Int_t fNChannels
Total number of sensors.
virtual ~CbmStsDigiScheme()
Destructor.
CbmStsSensor * GetSensorByName(TString sensorName)
void Clear()
Clear digitisation scheme.
void Reset()
Reset eventwise counters.
CbmStsStation * GetStationByNr(Int_t stationNr)
Station by index.
Int_t AddHotZone(Int_t moduleNr, Int_t statNr, CbmStsStation *station, CbmStsStationDigiPar *stationPar)
CbmStsSector * GetSector(Int_t stationNr, Int_t sectorNr)
Station by number.
CbmStsDigiScheme()
Constructor.
Int_t GetNStations()
Accessors.
CbmStsStation * GetStation(Int_t iStation)
BmnSiliconStationSet * SilStationSet
Entire GEM detector.
Int_t GetDetectorIdByName(TString sensorName)
Sensor by number.
static CbmStsDigiScheme * Instance(int version=1)
CbmStsSector * SetSensor(Int_t moduleNr, Int_t statNr, CbmStsStation *station, CbmStsStationDigiPar *stationPar)
BmnVSPStationSet * fVspStationSet
Entire SILICON detector.
Int_t fNSectors
Array of CbmStsStation.
CbmStsStationDigiPar.h.