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