FairRoot/PandaRoot
PndEmcWaveformToDigi.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------- // File and Version Information:
2 // $Id: Exp $
3 //
4 // Description:
5 // Class PndEmcWaveformToDigi. Module to take the ADC waveforms and produces digi.
6 //
7 // Software developed for the BaBar Detector at the SLAC B-Factory.
8 // Adapted for the PANDA experiment at GSI
9 //
10 // Author List:
11 // Phil Strother Original Author
12 // Dima Melnichuk - adaption for PANDA
13 //
14 // Copyright Information:
15 // Copyright (C) 1996 Imperial College
16 //
17 //----------------------------------------------------------------------
18 //#pragma once
19 #ifndef PndEmcWaveformToDigi_H
20 #define PndEmcWaveformToDigi_H
21 
22 #include <PndPersistencyTask.h>
24 #include <string>
25 #include "FairTSBufferFunctional.h"
26 #include <map>
27 #include <list>
28 #include <set>
29 #include "TTree.h"
30 #include "TFile.h"
31 #include "TVectorD.h"
32 
33 class PndEmcHit;
35 class PndEmcWaveform;
36 
37 class TClonesArray;
38 class PndEmcDigiPar;
39 class PndEmcRecoPar;
40 class PndEmcFpgaPar;
41 class PndEmcAbsPSA;
44 
45 
51 {
52 public:
53  // Constructors
54  PndEmcWaveformToDigi(Int_t verbose=0, Bool_t storedigis=kTRUE);
55  // Destructor
56  virtual ~PndEmcWaveformToDigi();
57 
58  virtual InitStatus Init();
59  virtual void Exec(Option_t* opt);
60 
61  void SetStorageOfData(Bool_t val); // Method to specify whether digis are stored or not.
62  void RunTimeBased(){fTimeOrderedDigi = kTRUE;}
63 
65  void SetFakeOnline(bool d=true){fFakeOnline=d;};
66 
73  virtual void SetPSAAlgorithm(PndEmcAbsPSA *psa){fpsaAlgorithm=psa;}
97 
98  virtual void FinishTask();
99 
100 protected:
102  virtual void SetParContainers();
103 private:
104  // don't allow copying (-Weffc++)
105  PndEmcWaveformToDigi(const PndEmcWaveformToDigi&); // no implementation
106  PndEmcWaveformToDigi& operator= (const PndEmcWaveformToDigi&); // no implementation
107 
108  //Double_t GetEventTimebyDigiTime(Double_t digiT, Double_t digiE, Int_t detID, bool PrintOut=false) const;
109  //Int_t GetIdxByEnergy(Double_t energy) const;
110 
111 private:
113  TClonesArray* fWaveformArray;
114  //TClonesArray* fMcTrackArray;
115  TClonesArray* fEvtHeaderArray;
116 
118  TClonesArray* fDigiArray;
119 
134 
135  //std::string fDigiPosMethod;// "surface" or "depth"
140 
147 
149 
154  //PndEmcDigiWriteoutBuffer* fDataBuffer;
155 
157  Int_t fVerbose;
159 
160  Double_t fWfNormalisation; // Waveform normalisation constant
161  Double_t fWfNormalisation_fwd; // Waveform normalisation constant
163 
164  BinaryFunctor* fFunctor;
165 
166  //coefficients
167  TVectorD CoeffMod3;
168  TVectorD CoeffMod5;
169  TVectorD CoeffModo;
170 
171  Int_t fEventNo;
174  //buffer for undetermined event
175 
177  Int_t totHits ;
178  Int_t totExpHits ;
179  Int_t totNumOfWave ;
180 
182  //
183  bool fFakeOnline; // Flag to add ~factor2 of worse resolution .
184  Float_t SmearFakeOnline(Float_t energy);
185 
186 
188 };
189 
190 #endif
191 
192 
193 
194 
195 
virtual void SetPSAAlgorithmFWD(PndEmcAbsPSA *psa)
Set PSA Algorithm to be used for Forward Endcap.
TObjArray * d
virtual void FinishTask()
Called at end of task.
void SetFakeOnline(bool d=true)
PndEmcAbsPulseshape * fPulseshape
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
#define verbose
virtual void SetPSAAlgorithmPMT(PndEmcAbsPSA *psa)
Set PSA Algorithm to be used for Forward Shashlik.
stores crystal index coordinates (x,y) or (theta,phi)
ClassDef(PndEmcWaveformToDigi, 1)
PndEmcWaveformToDigi & operator=(const PndEmcWaveformToDigi &)
Double_t
PndEmcWaveformToDigi(Int_t verbose=0, Bool_t storedigis=kTRUE)
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
virtual void SetCrystalCalibrator(PndEmcAbsCrystalCalibrator *Cal)
Set The Crystal Calibrator to use.
virtual void SetPSAAlgorithm(PndEmcAbsPSA *psa)
Set PSA Algorithm to be used for Barrel and Backward Endcap.
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:26
PndEmcAbsPSA * fpsaAlgorithm_pmt
pulseshape interface
virtual InitStatus Init()
Init Task.
Float_t SmearFakeOnline(Float_t energy)
TClonesArray * fEvtHeaderArray
Takes list of PndEmcWaveform and creates PndEmcDigi.
virtual void Exec(Option_t *opt)
Runs the task.
PndEmcAbsPulseshape * fPulseshape_fwd
PndEmcAbsCrystalCalibrator * fCalibrator
Bool_t fTimeOrderedDigi
set to kTRUE to use the time ordering of the output data.
Abstract interface for a emc calibrator.
PndEmcAbsPSA * fpsaAlgorithm_fwd
PndEmcAbsPulseshape * fPulseshape_pmt
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
Double_t energy
Definition: plot_dirc.C:15