ATLAS Offline Software
Loading...
Searching...
No Matches
TileSimHit.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5//********************************************************************
6// Filename : TileSimHit.cxx
7// Author : Alexander Solodkov
8// Created : June, 2009
9//
10// DESCRIPTION:
11// A TileSimHit represents the total energy deposited in scintillator
12// which is visible by one PMT
13// Energy and time is kept as double
14//
15// HISTORY:
16// 04Jun09: Copied from TileHit class
17//
18// BUGS:
19//
20// *******************************************************************
21
23#include <cmath>
24
25
26TileSimHit::TileSimHit(Identifier & id, double energy, double time, double delta)
27 : m_pmt_id( id )
28 , m_energy(1)
29 , m_time(1)
30{
31 m_energy[0] = energy;
32 if(delta>0){
33 m_time[0] = delta*nearbyint(time/delta);
34 }
35 else{
36 // ignore time completely if delta is zero
37 m_time[0]=0.0;
38 }
39}
40
41int TileSimHit::add(double energy, double time, double delta)
42{
43 if(delta>0) {
44 int size=m_time.size();
45 for (int i=0; i<size; ++i) {
46 double dt = time-m_time[i];
47 if (fabs(dt)<delta/2.) {
48 m_energy[i]+=energy;
49 //if ( (m_energy[i] += energy) > 0.0)
50 // m_time[i] += dt * energy / m_energy[i];
51 return 0;
52 }
53 }
54
55 m_energy.push_back(energy);
56 m_time.push_back(delta*nearbyint(time/delta));
57
58 } else{
59 // ignore time completely if delta is zero
60 m_energy[0] += energy;
61 return 0;
62 }
63
64 return 1;
65}
TileSimHit()
Default constructor needed for POOL.
Definition TileSimHit.h:35
std::vector< double > m_energy
Energy deposited in scint, as seen by pmt in sepatate time bins.
Definition TileSimHit.h:62
double time(int ind=0) const
Return time of ind-th sub-hit.
Definition TileSimHit.h:53
Identifier m_pmt_id
Logical ID of the pmt.
Definition TileSimHit.h:60
double energy(int ind=0) const
Return energy of ind-th sub-hit.
Definition TileSimHit.h:51
int add(double energy, double time, double deltaT)
Add sub-hit to a given hit with time rounding to the center of nearest deltaT bin.
std::vector< double > m_time
Time of the energy deposition relative to BC.
Definition TileSimHit.h:64
int size(void) const
Return length of energy/time vectors.
Definition TileSimHit.h:55