PandaRoot
PndEmcWaveformToCalibratedDigi.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: Exp $
4 //
5 // Description:
6 // Class PndEmcWaveformToCalibratedDigi. Module to take the hit list for the
7 // calorimeter and make ADC waveforms from them.
8 //
9 // Software developed for the BaBar Detector at the SLAC B-Factory.
10 // Adapted for the PANDA experiment at GSI
11 //
12 // Author List:
13 // Phil Strother Original Author
14 // Dima Melnichuk - adaption for PANDA
15 //
16 // Copyright Information:
17 // Copyright (C) 1996 Imperial College
18 //
19 //----------------------------------------------------------------------
20 //#pragma once
21 #ifndef PndEmcWaveformToCalibratedDigi_H
22 #define PndEmcWaveformToCalibratedDigi_H
23 
24 #include <PndPersistencyTask.h>
25 #include <string>
26 #include <map>
27 #include "TString.h"
28 //#include <vector>
29 
30 class PndEmcHit;
32 class PndEmcWaveform;
33 
34 class TClonesArray;
35 class PndEmcDigiPar;
36 class PndEmcRecoPar;
37 class PndEmcAbsPSA;
39 
46 {
47 
48 public:
49 
50  // Constructors
51 
52  PndEmcWaveformToCalibratedDigi(Int_t verbose=0, Bool_t storedigis=kTRUE);
53 
54  // Destructor
55 
57 
59  virtual InitStatus Init();
60 
61  void SetCalibrationFile(const char* calibrationfilename){fCalibrationFileName = calibrationfilename;};
62 
64  virtual void Exec(Option_t* opt);
65 
66  void SetStorageOfData(Bool_t val); // Method to specify whether digis are stored or not.
67 
68 private:
69  void ReadCalibrationFile();
71  TClonesArray* fWaveformArray;
72 
74  TClonesArray* fDigiArray;
75 
76  Double_t fSampleRate;
77  Double_t fSampleRate_PMT;
78  Double_t fEnergyDigiThreshold;
79  Double_t fASIC_Shaping_int_time; //s
80  Double_t fPMT_Shaping_int_time; //s
81  Double_t fPMT_Shaping_diff_time; //s
82  Double_t fCrystal_time_constant; //s
83  Double_t fShashlyk_time_constant; //s
84  Int_t fNumber_of_samples_in_waveform;
85  Int_t fNumber_of_samples_in_waveform_pmt;
86 
87  //std::string fDigiPosMethod;// "surface" or "depth"
88  TString fDigiPosMethod;
89  Double_t fEmcDigiRescaleFactor;
90  Double_t fEmcDigiPositionDepthPWO;
91  Double_t fEmcDigiPositionDepthShashlyk;
92 
93  PndEmcAbsPulseshape* fPulseshape;
94  PndEmcAbsPulseshape* fPulseshape_pmt;
95  PndEmcAbsPSA *psaAlgorithm;
96  PndEmcAbsPSA *psaAlgorithm_pmt;
97  PndEmcAbsPSA *psaAlgorithm_proto192;
98 
99  PndEmcDigiPar* fDigiPar;
100  PndEmcRecoPar* fRecoPar;
102  virtual void SetParContainers();
103 
105  Int_t fVerbose;
106 
107  Bool_t fStoreDigis;
108 
109  Double_t fWfNormalisation; // Waveform normalisation constant
110  Double_t fWfNormalisation_pmt;
111  Double_t fWfNormalisation_proto192;
112 
113  std::map<Int_t,Double_t> fCalibrationMap;
114  TString fCalibrationFileName;
115 
116  ClassDef(PndEmcWaveformToCalibratedDigi,2);
117 
118 
119 };
120 
121 #endif
122 
123 
124 
125 
126 
stores crystal index coordinates (x,y) or (theta,phi)
virtual void Exec(Option_t *opt)
void SetCalibrationFile(const char *calibrationfilename)
PndEmcWaveformToCalibratedDigi(Int_t verbose=0, Bool_t storedigis=kTRUE)
virtual InitStatus Init()
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
void SetStorageOfData(Bool_t val)
represents a simulated waveform in an emc crystal
Baseclass for pulseshapeanalysis ( featureextraction )
Definition: PndEmcAbsPSA.h:21
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:28
pulseshape interface
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
Module to take the hit list for the calorimeter and make ADC waveforms from them. ...