PandaRoot
PndEmcMakeDigi.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 //----------------------------------------------------------------------
14 // File and Version Information:
15 // $Id: Exp $
16 //
17 // Description:
18 // Class PndEmcMakeDigi. This class takes array of EmcHit's and produce
19 // an array of EmcDigis.
20 // It is convenient to study reconstruction algoritms without
21 // disturbance from digitization
22 //
23 // Software developed for the BaBar Detector at the SLAC B-Factory.
24 // Adapted for the PANDA experiment at GSI
25 //----------------------------------------------------------------------
26 //#pragma once
27 #ifndef PndEmcMakeDigi_H
28 #define PndEmcMakeDigi_H
29 
30 #include <PndPersistencyTask.h>
31 #include <string>
32 
34 class PndEmcHit;
35 class PndEmcDigi;
36 
37 class TClonesArray;
38 class PndEmcGeoPar;
39 class PndEmcDigiPar;
40 class PndEmcRecoPar;
41 
50 {
51 public:
52  // Constructors
53  PndEmcMakeDigi(Bool_t storedigis=kTRUE);
54  // Destructor
55  virtual ~PndEmcMakeDigi();
56 
57  virtual InitStatus Init();
58  virtual void Exec(Option_t* opt);
59 
60 protected:
61  PndEmcDigi* AddDigi(Int_t trackID,Int_t detID, Float_t energy, Float_t time, Int_t hitIndex);
62  void SetStorageOfData(Bool_t val);
63 
64  virtual void SetParContainers();
65 private:
66  // don't allow copying (-Weffc++)
67  PndEmcMakeDigi(const PndEmcMakeDigi&); // no implementation
68  PndEmcMakeDigi& operator= (const PndEmcMakeDigi&); // no implementation
69 
70 public: // Set and Get methods
71  void SetDigiPosMethod(const std::string& digiPosMethod);
72  const std::string& GetDigiPosMethod() const;
73 
74 private:
76  TClonesArray* fHitArray;
78  TClonesArray* fDigiArray;
79 
80  Double_t fThreshold;
81 
82  std::string fDigiPosMethod;// "surface" or "depth"
83  Double_t fEmcDigiRescaleFactor;
84  Double_t fEmcDigiPositionDepthPWO;
85  Double_t fEmcDigiPositionDepthShashlyk;
86 
87  Int_t fUseDigiEffectiveSmearing;
88  Double_t fDetectedPhotonsPerMeV;
89  Double_t fNPhotoElectronsPerMeVAPDBarrel;
90  Double_t fNPhotoElectronsPerMeVAPDBWD;
91  Double_t fNPhotoElectronsPerMeVVPT;
92  Double_t fSensitiveAreaAPD; //mm^2
93  Double_t fSensitiveAreaVPT; //mm^2
94  Double_t fQuantumEfficiencyAPD;
95  Double_t fQuantumEfficiencyVPT;
96  Double_t fExcessNoiseFactorAPD;
97  Double_t fExcessNoiseFactorVPT;
98  Double_t fIncoherent_elec_noise_width_GeV_APD; //GeV
99  Double_t fIncoherent_elec_noise_width_GeV_VPT; //GeV
100 
101  Int_t fMapVersion;
102 
103  PndEmcGeoPar* fGeoPar;
104  PndEmcDigiPar* fDigiPar;
105  PndEmcRecoPar* fRecoPar;
106 
107  Bool_t fStoreDigis;
108 
109  Int_t fNrOfEvents;
110  Int_t evtCounter;
111  Int_t nDigiProg;
112 
113  ClassDef(PndEmcMakeDigi,1);
114 };
115 
116 #endif
stores crystal index coordinates (x,y) or (theta,phi)
PndEmcMakeDigi(Bool_t storedigis=kTRUE)
virtual InitStatus Init()
void SetDigiPosMethod(const std::string &digiPosMethod)
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:24
void SetStorageOfData(Bool_t val)
Method to specify whether digis are stored or not.
PndEmcDigi * AddDigi(Int_t trackID, Int_t detID, Float_t energy, Float_t time, Int_t hitIndex)
virtual void Exec(Option_t *opt)
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:40
virtual void SetParContainers()
virtual ~PndEmcMakeDigi()
Task to create PndEmcDigi from PndEmcHit.
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:25
const std::string & GetDigiPosMethod() const