PandaRoot
PndGemDigiPar.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //* $Id: */
14 
15 // -------------------------------------------------------------------------
16 // ----- PndGemDigiPar header file -----
17 // ----- Created 12/02/2009 by R. Karabowicz -----
18 // -------------------------------------------------------------------------
19 
29 #ifndef PNDGEMDIGIPAR_H
30 #define PNDGEMDIGIPAR_H
31 
32 #include <TVector2.h>
33 #include <TArrayD.h>
34 #include <TMath.h>
35 
36 #include "FairParGenericSet.h"
37 #include "FairParamList.h"
38 #include "PndGemStation.h"
39 #include "PndGemSensor.h"
40 
42 class PndGemDigiPar : public FairParGenericSet {
43  public:
44  PndGemDigiPar(const char *name = "PndGemParTest", const char *title = "PndGem digi parameter", const char *context = "TestDefaultContext");
45  ~PndGemDigiPar(void);
46  void clear(void){};
47  void putParams(FairParamList *list);
48  Bool_t getParams(FairParamList *list);
49 
50  void Print();
51 
53  Int_t GetNStations() { return fStations->GetEntries(); }
54  Int_t GetNSensors() { return fNSensors; }
55  Int_t GetNChannels() { return fNChannels; }
56  TObjArray *GetStations() { return fStations; }
57  PndGemStation *GetStation(Int_t iStation);
58  PndGemStation *GetStationByNr(Int_t stationNr);
59  PndGemSensor *GetSensor(Int_t stationNr, Int_t sensorNr);
60  PndGemSensor *GetSensor(Int_t sensorId) { return GetSensor(GetStationNr(sensorId), GetSensorNr(sensorId)); }
61  TString GetNodeName(Int_t sensorId);
62  Int_t GetStationNr(Int_t sensorId) { return (sensorId & (15 << 8)) >> 8; }
63  Int_t GetSensorNr(Int_t sensorId) { return (sensorId & (15 << 4)) >> 4; }
64  Int_t GetSegmentNr(Int_t sensorId) { return (sensorId & (15 << 0)) >> 0; }
65 
66  Int_t GetDetectorIdByName(TString sensorName);
67  PndGemSensor *GetSensorByName(TString sensorName);
68 
69  Double_t GetTrackFinderOnHits_ParThetaA() { return fTrackFinderOnHits_ParThetaA; }
70  Double_t GetTrackFinderOnHits_ParThetaB() { return fTrackFinderOnHits_ParThetaB; }
71 
72  Double_t GetTrackFinderOnHits_ParTheta0() { return fTrackFinderOnHits_ParTheta0; }
73  Double_t GetTrackFinderOnHits_ParTheta1() { return fTrackFinderOnHits_ParTheta1; }
74  Double_t GetTrackFinderOnHits_ParTheta2() { return fTrackFinderOnHits_ParTheta2; }
75  Double_t GetTrackFinderOnHits_ParTheta3() { return fTrackFinderOnHits_ParTheta3; }
76 
77  Double_t GetTrackFinderOnHits_ParRadPhi0() { return fTrackFinderOnHits_ParRadPhi0; }
78  Double_t GetTrackFinderOnHits_ParRadPhi2() { return fTrackFinderOnHits_ParRadPhi2; }
79 
80  Double_t GetTrackFinderOnHits_ParMat0(Int_t in) { return fTrackFinderOnHits_ParMat0[in]; }
81  Double_t GetTrackFinderOnHits_ParMat1(Int_t in) { return fTrackFinderOnHits_ParMat1[in]; }
82 
83  private:
84  void CreateStations();
85 
86  TArrayD fGemParameters;
87 
88  TObjArray *fStations;
89  Int_t fNSensors;
90  Int_t fNChannels;
92  Double_t fTrackFinderOnHits_ParThetaA;
93  Double_t fTrackFinderOnHits_ParThetaB;
94 
95  Double_t fTrackFinderOnHits_ParTheta0;
96  Double_t fTrackFinderOnHits_ParTheta1;
97  Double_t fTrackFinderOnHits_ParTheta2;
98  Double_t fTrackFinderOnHits_ParTheta3;
99 
100  Double_t fTrackFinderOnHits_ParRadPhi0;
101  Double_t fTrackFinderOnHits_ParRadPhi2;
102 
103  TArrayD fTrackFinderOnHits_ParMat0;
104  TArrayD fTrackFinderOnHits_ParMat1;
105 
106  std::map<Int_t, PndGemStation *> fStationMap;
107  std::map<TString, Int_t> fDetIdByName;
108  std::map<TString, PndGemSensor *> fSensorByName;
109 
110  ClassDef(PndGemDigiPar, 2);
111 };
112 
113 #endif
PndGemStation * GetStation(Int_t iStation)
Double_t GetTrackFinderOnHits_ParTheta1()
Definition: PndGemDigiPar.h:73
~PndGemDigiPar(void)
Double_t GetTrackFinderOnHits_ParThetaB()
Definition: PndGemDigiPar.h:70
Double_t GetTrackFinderOnHits_ParTheta3()
Definition: PndGemDigiPar.h:75
PndGemStation * GetStationByNr(Int_t stationNr)
Double_t GetTrackFinderOnHits_ParMat1(Int_t in)
Definition: PndGemDigiPar.h:81
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:42
Int_t GetSensorNr(Int_t sensorId)
Definition: PndGemDigiPar.h:63
Bool_t getParams(FairParamList *list)
Int_t GetSegmentNr(Int_t sensorId)
Definition: PndGemDigiPar.h:64
PndGemDigiPar(const char *name="PndGemParTest", const char *title="PndGem digi parameter", const char *context="TestDefaultContext")
Int_t GetNChannels()
Definition: PndGemDigiPar.h:55
Double_t GetTrackFinderOnHits_ParTheta0()
Definition: PndGemDigiPar.h:72
void putParams(FairParamList *list)
Double_t GetTrackFinderOnHits_ParMat0(Int_t in)
Definition: PndGemDigiPar.h:80
Int_t GetDetectorIdByName(TString sensorName)
TString GetNodeName(Int_t sensorId)
Int_t GetNStations()
Definition: PndGemDigiPar.h:53
Int_t GetNSensors()
Definition: PndGemDigiPar.h:54
Int_t GetStationNr(Int_t sensorId)
Definition: PndGemDigiPar.h:62
void clear(void)
Definition: PndGemDigiPar.h:46
PndGemSensor * GetSensorByName(TString sensorName)
Double_t GetTrackFinderOnHits_ParRadPhi2()
Definition: PndGemDigiPar.h:78
PndGemSensor * GetSensor(Int_t stationNr, Int_t sensorNr)
PndGemSensor * GetSensor(Int_t sensorId)
Definition: PndGemDigiPar.h:60
Double_t GetTrackFinderOnHits_ParThetaA()
Definition: PndGemDigiPar.h:69
Double_t GetTrackFinderOnHits_ParTheta2()
Definition: PndGemDigiPar.h:74
Double_t GetTrackFinderOnHits_ParRadPhi0()
Definition: PndGemDigiPar.h:77
TObjArray * GetStations()
Definition: PndGemDigiPar.h:56