PandaRoot
PndEmcShashlykDigi.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 //#pragma once
14 
15 #ifndef PNDEMCSHASHLYKDIGI_H_
16 #define PNDEMCSHASHLYKDIGI_H_
17 
18 #include <PndPersistencyTask.h>
21 
22 
23 
24 class PndEmcHit;
26 class PndEmcWaveform;
27 
28 class TClonesArray;
30 class PndEmcRecoPar;
31 class PndEmcGeoPar;
32 class PndEmcAbsPSA;
35 
45 {
46 public:
47  // Constructors
48  PndEmcShashlykDigi(Int_t verbose=0, Bool_t storedigis=kTRUE);
49  // Destructor
50  virtual ~PndEmcShashlykDigi();
51 
52  virtual InitStatus Init();
53  virtual void Exec(Option_t* opt);
54 
55  void SetStorageOfData(Bool_t val); // Method to specify whether digis are stored or not.
56 
58  fCalibrator = dynamic_cast<PndEmcSimCrystalCalibrator*>(Cal);
59  if(fCalibrator==NULL) {
60  std::cerr << "-E- in PndEmcShashlykDigi::SetCrystalCalibrator: Calibrator must be a PndEmcSimCrystalCalibrator. External Calibrator setting has no effect" << std::endl;
61  }
62  };
63  void SingleAPDMode(Bool_t mode = kTRUE) { fSingleAPDMode = mode; }
64 
65 protected:
67  virtual void SetParContainers();
68 private:
69  // don't allow copying (-Weffc++)
70  PndEmcShashlykDigi(const PndEmcShashlykDigi&); // no implementation
71  PndEmcShashlykDigi& operator= (const PndEmcShashlykDigi&); // no implementation
72 
73 private:
74 
76  TClonesArray* fWaveformArray;
77 
79  TClonesArray* fDigiArray;
80 
81  Double_t fEnergyDigiThreshold;
82  TString fDigiPosMethod; //"surface" or "depth"
83  Double_t fEmcDigiRescaleFactor;
84  Double_t fEmcDigiPositionDepthPWO;
85  Double_t fEmcDigiPositionDepthShashlyk;
86 
87  PndEmcPSAOptimalFilterAnalyser* fOFAnalyser;
88 
89  PndEmcSimCrystalCalibrator *fCalibrator;
90 
91  PndEmcShashlykDigiPar* fDigiPar;
92  PndEmcRecoPar* fRecoPar;
93  PndEmcGeoPar* fGeoPar;
94 
96  Int_t fVerbose;
97  Bool_t fSingleAPDMode;
98 
99  ClassDef(PndEmcShashlykDigi, 1)
100 };
101 
102 #endif
void SingleAPDMode(Bool_t mode=kTRUE)
stores crystal index coordinates (x,y) or (theta,phi)
PndEmcShashlykDigi(Int_t verbose=0, Bool_t storedigis=kTRUE)
virtual void SetCrystalCalibrator(PndEmcAbsCrystalCalibrator *Cal)
void SetStorageOfData(Bool_t val)
virtual ~PndEmcShashlykDigi()
parameter set of Emc digitisation
Class to simulate a Calibration.
represents a simulated waveform in an emc crystal
Baseclass for pulseshapeanalysis ( featureextraction )
Definition: PndEmcAbsPSA.h:33
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:40
pulseshape interface
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
Task to create digis from waveforms.
Abstract interface for a emc calibrator.
virtual void SetParContainers()
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:25