CbmRoot
Loading...
Searching...
No Matches
CbmMust.h
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Radoslaw Karabowicz [committer] */
4
6// CbmMust header file
7//
8// Class for simulation of MUST
9//
10// authors: Radoslaw Karabowicz, GSI, 2024
11//
12// modified from CbmMust by Nafija Ibrisimovic in 2023
14
15#ifndef CBMMUST_H
16#define CBMMUST_H
17
18#include "CbmMustPoint.h"
19
20#include <FairDetector.h>
21#include <FairRun.h>
22
23#include <TClonesArray.h>
24#include <TLorentzVector.h>
25#include <TVector3.h>
26
27#include <sstream>
28#include <string>
29
30class TClonesArray;
31class FairVolume;
32
33class CbmMust : public FairDetector {
34
35 public:
37 CbmMust();
38
43 CbmMust(const char* name, Bool_t active);
44
46 virtual ~CbmMust();
47
55 virtual Bool_t ProcessHits(FairVolume* vol = 0) override;
56
62 virtual void EndOfEvent() override;
63
72 virtual Bool_t IsSensitive(const std::string& name) override
73 {
74 return (TString(name).Contains("active") ? kTRUE : kFALSE);
75 }
76
81 virtual void Register() override;
82
84 virtual TClonesArray* GetCollection(Int_t) const override { return nullptr; }
85
90 virtual void Print(Option_t* /*option*/ = "") const override;
91
96 virtual void Reset() override;
97
98 virtual void Initialize() override;
99
104 virtual void ConstructGeometry() override;
105
106 private:
107 TLorentzVector fPosIn{0, 0, 0, 0};
108 TLorentzVector fMomIn{0, 0, 0, 0};
109 Double_t fELoss{0.};
110
111 TClonesArray* fMustPoints{new TClonesArray("CbmMustPoint")};
112
113 // geometry type
115
120 CbmMustPoint* AddPoint(Int_t trackID, uint32_t address, TVector3 posIn, TVector3 posOut, TVector3 momIn,
121 TVector3 momOut, Double_t time, Double_t length, Double_t eLoss);
122
127 void ResetParameters();
128
129 CbmMust(const CbmMust& L);
130 CbmMust& operator=(const CbmMust&) { return *this; }
131
132 ClassDefOverride(CbmMust, 1)
133};
134
136{
137 fMomIn.SetXYZM(0.0, 0.0, 0.0, 0.0);
138 fPosIn.SetXYZM(0.0, 0.0, 0.0, 0.0);
139 fELoss = 0.;
140 fTrackValid = kFALSE;
141}
142
143#endif // CBMMUST_H
int Int_t
bool Bool_t
virtual Bool_t ProcessHits(FairVolume *vol=0) override
Definition CbmMust.cxx:65
virtual void Print(Option_t *="") const override
Definition CbmMust.cxx:144
CbmMust & operator=(const CbmMust &)
Definition CbmMust.h:130
Double_t fELoss
momentum
Definition CbmMust.h:109
virtual void ConstructGeometry() override
Definition CbmMust.cxx:180
virtual ~CbmMust()
Definition CbmMust.cxx:55
void ResetParameters()
Definition CbmMust.h:135
TLorentzVector fPosIn
Definition CbmMust.h:107
Bool_t fTrackValid
Array of CbmMustPoints.
Definition CbmMust.h:114
virtual void Reset() override
Definition CbmMust.cxx:157
virtual void Register() override
Definition CbmMust.cxx:140
virtual TClonesArray * GetCollection(Int_t) const override
Definition CbmMust.h:84
virtual void Initialize() override
Definition CbmMust.cxx:164
virtual Bool_t IsSensitive(const std::string &name) override
Check whether a volume is sensitive.
Definition CbmMust.h:72
TClonesArray * fMustPoints
energy loss
Definition CbmMust.h:111
virtual void EndOfEvent() override
Definition CbmMust.cxx:132
TLorentzVector fMomIn
entry position in global frame
Definition CbmMust.h:108
CbmMustPoint * AddPoint(Int_t trackID, uint32_t address, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss)
Definition CbmMust.cxx:198
CbmMust(const CbmMust &L)
CbmMust()
Definition CbmMust.cxx:47