PandaRoot
PndEmcAsicPulseshape.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 // Description:
15 // Pulseshape from an APFEL ASIC preamplifier shaper
16 // Circuit is described in EMC TDR and consists of charge-sensitive preamplifier,
17 // with the following pole-zero cancelation of its feedback ad 3rd order integrator.
18 // The pulseshape is determined by the integration time of single intagrator stage
19 // and scintillation time of the crystal, with exponential input convoluted with
20 // response of the circuit
21 //
22 //-----------------------------------------------------------
23 //#pragma once
24 #ifndef PNDEMCASICPULSESHAPE_H
25 #define PNDEMCASICPULSESHAPE_H
26 
27 // Base Class Headers ----------------
28 #include "PndEmcAbsPulseshape.h"
29 
30 // Collaborating Class Headers -------
31 //#include <ostream>
32 
44  public:
45  // Constructors/Destructors ---------
47  PndEmcAsicPulseshape(double Tint, double Tsig);
48  virtual ~PndEmcAsicPulseshape() { ; }
49 
50  // Operators
51 
52  // Accessors -----------------------
53 
54  // Modifiers -----------------------
55 
56  // Operations ----------------------
57  virtual double operator()(const double t, const double amp, const double toffset) const;
58 
59  private:
60  // Private Data Members ------------
61  double fTint;
62  double fTsig;
63 
64  // Private Methods -----------------
65 
66  double general_solution(const double t, const double amp, const double toffset) const;
67  double degenerate_solution(const double t, // for Tdif=Tint
68  const double amp, const double toffset) const;
69 
70  ClassDef(PndEmcAsicPulseshape, 1)
71 };
72 
73 #endif
virtual double operator()(const double t, const double amp, const double toffset) const
Pulseshape from an APFEL ASIC preamplifier shaper.
pulseshape interface