EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EicTpcDigiHitProducer.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EicTpcDigiHitProducer.h
1 //
2 // AYK (ayk@bnl.gov), 2013/06/12
3 //
4 // "Ideal" TPC digitization code
5 //
6 
7 #ifndef _EIC_TPC_DIGI_HIT_PRODUCER_
8 #define _EIC_TPC_DIGI_HIT_PRODUCER_
9 
11 #include "EicDigiParData.h"
12 
14 {
15  // Yes, avoid complications; this "class" is a data placeholder;
16  friend class EicTpcDigiHitProducer;
17  //friend class EicCalorimeterReconstruction;
18 
19  public:
24 
25  void Print();
26 
27  private:
28  Double_t fTransverseDispersion; // transverse dispersion in [um]/sqrt(D[cm]);
29  Double_t fLongitudinalDispersion; // longitudinal dispersion in [um]/sqrt(D[cm]);
30 
31  // An effective resolution degradation, caused by clustering, electronics, etc; comes in
32  // quadrature with respective [um]/sqrt(D[cm]) term;
33  Double_t fTransverseIntrinsicResolution; // contribution, not associated with transverse dispersion; [um]
34  Double_t fRadialIntrinsicResolution; // may want to override 1/sqrt(12) radial resolution estimate; [um]
35  Double_t fLongitudinalIntrinsicResolution; // contribution, not associated with longitudinal dispersion; [um]
36 
37  Double_t fGemVerticalPadSize; // GEM pad height; sort of determines number of hits; [cm]
38 
40 };
41 
43 {
44  public:
47  digi = new TpcDigiParData();
48 
49  AssignDigiHitClassName("EicTrackingDigiHit3D");
50  };
51 
53 
54  int HandleHit(const EicMoCaPoint *point);
55 
56  // May want either to save assigned parameters or import them all at once;
57  int exportTpcDigiParameters(const char *fileName);
58  int importTpcDigiParameters(const char *fileName);
59 
60  // May want also to change by hand some of the parameters;
61  void setTransverseDispersion(Double_t tDispersion) {
62  digi->fTransverseDispersion = tDispersion;
63  };
64  void setLongitudinalDispersion(Double_t lDispersion) {
65  digi->fLongitudinalDispersion = lDispersion;
66  };
67  void setLongitudinalIntrinsicResolution(Double_t lResolution) {
68  digi->fLongitudinalIntrinsicResolution = lResolution;
69  };
70  void setTransverseIntrinsicResolution(Double_t tResolution) {
71  digi->fTransverseIntrinsicResolution = tResolution;
72  };
73  void setRadialIntrinsicResolution(Double_t tResolution) {
74  digi->fRadialIntrinsicResolution = tResolution;
75  };
76  void setGemVerticalPadSize(Double_t pitch) { digi->fGemVerticalPadSize = pitch; };
77 
78  void Print() { digi->Print(); };
79 
80  private:
82 
83  // Let EicTrackingDigiHitProducer know digi frame pointer;
85  //virtual void Finish();
86 
88 };
89 
90 #endif
91