Project
Loading...
Searching...
No Matches
AlpideSignalTrapezoid.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15/*
16
17 This is a simple implementation of the ALPIDE signal time shape
18 via trapezoid. Described by the rise time and the flat-top.
19 Risetime depends on the injected charge linearly: from mMaxRiseTime for
20 charge=0 to 0. for charge>mChargeRise0.
21 Since for the small signals the duration increases, a fraction of the risetime is
22 added to the flat-top duration
23 The time is in nanoseconds
24
25 */
26
28#include <TClass.h>
29#include <cassert>
30
31using namespace o2::itsmft;
32
33//_________________________________________________________________
34AlpideSignalTrapezoid::AlpideSignalTrapezoid(float duration, float rise, float qRise0)
35{
36 init(duration, rise, qRise0);
37}
38
39//_________________________________________________________________
40void AlpideSignalTrapezoid::init(float dur, float rise, float qRise0)
41{
42 // init with new parameters
43 mDuration = dur;
44 mMaxRiseTime = rise;
45 mChargeRise0 = qRise0;
46 assert(mMaxRiseTime > 0.f && qRise0 > 1.f && mDuration > mMaxRiseTime);
47 mChargeRise0Inv = 1. / mChargeRise0;
48}
49
50//_________________________________________________________________
52{
54 printf("%s | Duration: %.1f MaxRiseTime: %.1f (RiseTime=0 at q=%.1f) (ns)\n",
55 Class()->GetName(), mDuration, mMaxRiseTime, mChargeRise0);
56}
Simple class describing ALPIDE signal time shape.
AlpideSignalTrapezoid(float duration=7500., float rise=1100., float qrise0=450.)