PandaRoot
PndEmcBWEndcapDigi.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 PNDEMCBWENDCAPDIGI_H_
16 #define PNDEMCBWENDCAPDIGI_H_
17 
18 #include <PndPersistencyTask.h>
21 #include "PndEmcPSATmaxAnalyser.h"
22 
23 class PndEmcHit;
25 class PndEmcWaveform;
26 
27 class TClonesArray;
29 class PndEmcRecoPar;
30 class PndEmcGeoPar;
31 class PndEmcAbsPSA;
33 class PndEmcMultiPSA;
35 
45 {
46 public:
47  // Constructors
48  PndEmcBWEndcapDigi(Int_t verbose=0, Bool_t storedigis=kTRUE);
49  // Destructor
50  virtual ~PndEmcBWEndcapDigi();
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 == nullptr) {
60  std::cerr << "-E- in PndEmcBWEndcapDigi::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  PndEmcBWEndcapDigi(const PndEmcBWEndcapDigi&); // no implementation
71  PndEmcBWEndcapDigi& operator= (const PndEmcBWEndcapDigi&); // 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  PndEmcMultiPSA* fHighLowPSA;
88  PndEmcPSAOverflowCombinator* fCombinator;
89  PndEmcPSATmaxAnalyser* fHighgainPSA;
90  PndEmcPSATmaxAnalyser* fLowgainPSA;
91 
92  PndEmcSimCrystalCalibrator *fCalibrator;
93 
94  PndEmcBWEndcapDigiPar* fDigiPar;
95  PndEmcRecoPar* fRecoPar;
96  PndEmcGeoPar* fGeoPar;
97 
99  Int_t fVerbose;
100  Bool_t fSingleAPDMode;
101 
102  ClassDef(PndEmcBWEndcapDigi, 1)
103 };
104 
105 #endif
void SingleAPDMode(Bool_t mode=kTRUE)
virtual void SetParContainers()
PndEmcBWEndcapDigi(Int_t verbose=0, Bool_t storedigis=kTRUE)
Wrapping class to manage multiple independent PSAs.
stores crystal index coordinates (x,y) or (theta,phi)
parameter set of Emc digitisation
void SetStorageOfData(Bool_t val)
Class to simulate a Calibration.
Task to create digis from waveforms.
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
virtual void Exec(Option_t *opt)
pulseshape interface
virtual ~PndEmcBWEndcapDigi()
virtual InitStatus Init()
Abstract interface for a emc calibrator.
virtual void SetCrystalCalibrator(PndEmcAbsCrystalCalibrator *Cal)
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:25