PandaRoot
PndOtHitProducerRealFast.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 
14 // PndOtHitProducerRealFast
15 //
16 // Class for digitalization for OT
17 //
18 // authors: Radoslaw Karabowicz, GSI, 2024
19 //
20 // modified from PndFtsHitProducerRealFast by Nafija Ibrišimović in 2023
22 
23 // Fast Digitization
24 
25 #ifndef PNDOTHITPRODUCERREALFAST_H
26 #define PNDOTHITPRODUCERREALFAST_H 1
27 
28 // from PandaRoot, this library
29 #include "PndGeoOtPar.h"
30 #include "PndGeoOtPar.h"
31 // from PandaRoot, pnddata
32 #include <PndPersistencyTask.h>
33 // from ROOT
34 #include <TVector3.h>
35 
36 class PndOtHit;
37 class PndOtHitInfo;
38 class TClonesArray;
39 class TObjectArray;
40 
42 
43  public:
46 
49 
51  virtual InitStatus Init();
52 
54  virtual void Exec(Option_t *opt);
55 
56  PndOtHit *AddHit(Int_t detID, Int_t tubeID, Int_t chamberID, Int_t layerID, Int_t skew, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim,
57  Double_t closestDistanceError, Double_t depcharge);
58 
59  PndOtHitInfo *AddHitInfo(Int_t fileNumber, Int_t eventNumber, Int_t trackID, Int_t pointID, Int_t nMerged, Bool_t isFake);
60 
61  void FoldZPosWithResolution(Double_t &zpos, Double_t &zposError, TVector3 localInPos, TVector3 localOutPos);
62 
63  Double_t GetError(Double_t);
64 
66  void SetPersistence(Bool_t persistence) { SetPersistency(persistence); }
67  void SwitchOnOverlap() { fOverlap = kTRUE; }
68 
69  private:
70  void SetParContainers();
71 
73  TClonesArray *fPointArray;
74 
76  TClonesArray *fOtPointArray;
77 
79  TClonesArray *fHitArray;
80  TClonesArray *fOverlapHitArray;
81 
82  TObjArray *fVolumeArray;
83 
85  TClonesArray *fHitInfoArray;
86  Int_t fevtn;
87 
88  PndGeoOtPar *fOtParameters;
89 
90  Bool_t fOverlap;
91 
92  TClonesArray *fOtTubeArray;
93 
95  PndOtHitProducerRealFast &operator=(const PndOtHitProducerRealFast &) { return *this; }
96 
97  ClassDef(PndOtHitProducerRealFast, 1);
98 };
99 
100 #endif
virtual void Exec(Option_t *opt)
void SetPersistency(Bool_t val=kTRUE)
PndOtHit * AddHit(Int_t detID, Int_t tubeID, Int_t chamberID, Int_t layerID, Int_t skew, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim, Double_t closestDistanceError, Double_t depcharge)
void FoldZPosWithResolution(Double_t &zpos, Double_t &zposError, TVector3 localInPos, TVector3 localOutPos)
virtual InitStatus Init()
PndOtHitInfo * AddHitInfo(Int_t fileNumber, Int_t eventNumber, Int_t trackID, Int_t pointID, Int_t nMerged, Bool_t isFake)
void SetPersistence(Bool_t persistence)
Double_t GetError(Double_t)