PandaRoot
PndSttHitProducerRealFast.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 // Fast Digitization
14 
15 #ifndef PNDSTTHITPRODUCERREALFAST_H
16 #define PNDSTTHITPRODUCERREALFAST_H 1
17 
18 #include <PndPersistencyTask.h>
19 #include "PndGeoSttPar.h"
20 
21 #include "TVector3.h"
22 
23 class PndSttHit;
24 class PndSttHitInfo;
25 class TClonesArray;
26 class TObjectArray;
27 
29 
30  public:
33 
36 
38  virtual InitStatus Init();
39 
41  virtual void Exec(Option_t *opt);
42 
43  PndSttHit *AddHit(Int_t detID, Int_t tubeID, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim, Double_t closestDistanceError, Double_t depcharge);
44  PndSttHit *AddHit(TClonesArray *hitarray, Int_t detID, Int_t tubeID, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim, Double_t closestDistanceError,
45  Double_t depcharge);
46 
47  PndSttHitInfo *AddHitInfo(Int_t fileNumber, Int_t eventNumber, Int_t trackID, Int_t pointID, Int_t nMerged, Bool_t isFake);
48 
49  void FoldZPosWithResolution(Double_t &zpos, Double_t &zposError, TVector3 localInPos, TVector3 localOutPos);
50 
51  Double_t GetError(Double_t, Int_t);
52 
54  void SetPersistence(Bool_t persistence) { SetPersistency(persistence); }
55  void SwitchOnOverlap() { fOverlap = kTRUE; }
56 
57  void SeparateHits() { fSeparate = kTRUE; }
58 
59  private:
60  virtual void SetParContainers();
61 
63  TClonesArray *fPointArray;
64 
66  TClonesArray *fHitArray;
67  TClonesArray *fOverlapHitArray;
68 
69  Bool_t fSeparate;
70 
71  TClonesArray *fSttParalHitArray;
72  TClonesArray *fSttParalOverlapHitArray;
73  TClonesArray *fSttSkewHitArray;
74  TClonesArray *fSttSkewOverlapHitArray;
75 
76  TObjArray *fVolumeArray;
77 
79  TClonesArray *fHitInfoArray;
80  Int_t fevtn;
81 
82  PndGeoSttPar *fSttParameters;
83 
85  Bool_t fPersistence;
86  Bool_t fOverlap;
87  // CHECK added
88  TClonesArray *fTubeArray;
89  Int_t fGeoType; //< Distinguishes between old geometry description (1) and new, root-based one (2)
90 
91  ClassDef(PndSttHitProducerRealFast, 1);
92 };
93 
94 #endif
virtual ~PndSttHitProducerRealFast()
PndSttHitInfo * AddHitInfo(Int_t fileNumber, Int_t eventNumber, Int_t trackID, Int_t pointID, Int_t nMerged, Bool_t isFake)
void SetPersistency(Bool_t val=kTRUE)
void FoldZPosWithResolution(Double_t &zpos, Double_t &zposError, TVector3 localInPos, TVector3 localOutPos)
Double_t GetError(Double_t, Int_t)
void SetPersistence(Bool_t persistence)
PndSttHit * AddHit(Int_t detID, Int_t tubeID, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim, Double_t closestDistanceError, Double_t depcharge)
virtual void Exec(Option_t *opt)
virtual InitStatus Init()