View Javadoc

1   package org.lcsim.recon.tracking.vsegment.hit.base;
2   
3   import java.util.List;
4   import java.util.ArrayList;
5   
6   import org.lcsim.event.MCParticle;
7   
8   import org.lcsim.recon.tracking.vsegment.geom.Sensor;
9   import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
10  
11  /**
12   * Elemental DigiTrackerHit. 
13   * In simulation, this is a digitized signal from a single channel produced by a 
14   * single <tt>MCParticle</tt>. In data, this is a single channel signal after calibration.
15   *
16   * @author D.Onoprienko
17   * @version $Id: DigiTrackerHitElemental.java,v 1.1 2008/12/06 21:53:44 onoprien Exp $
18   */
19  public class DigiTrackerHitElemental extends DigiTrackerHitAdapter {
20    
21  // -- Constructors :  ----------------------------------------------------------
22    
23    /** Constract from parameters. */
24    public DigiTrackerHitElemental(double signal, double time, Sensor sensor, int channel, MCParticle mcParticle) {
25      _signal = signal;
26      _time = time;
27      _sensor = sensor;
28      _channel = channel;
29      _mcParticle = mcParticle;
30    }
31    
32    /** Constract from parameters with no associated <tt>MCParticle</tt>. */
33    public DigiTrackerHitElemental(double signal, double time, Sensor sensor, int channel) {
34      this(signal, time, sensor, channel, null);
35    }
36  
37    /** Copy constructor. */
38    public DigiTrackerHitElemental(DigiTrackerHitElemental digiHit) {
39      _signal = digiHit._signal;
40      _time = digiHit._time;
41      _sensor = digiHit._sensor;
42      _channel = digiHit._channel;
43      _mcParticle = digiHit._mcParticle;    
44    }
45    
46  // -- Getters :  ---------------------------------------------------------------
47  
48    /**  
49     * Returns <tt>true</tt> if the hit is a superposition of more than one elemental hit. 
50     * Objects of this class always return <tt>false</tt>.
51     */
52    public boolean isComposite() {return false;}
53  
54    /**
55     * Returns <tt>MCParticle</tt> that produced the hit.
56     * If the hit is composite, or does not have <tt>MCParticle</tt> associated with
57     * it (noise, beam test data, etc.), returns <tt>null</tt>.
58     */
59    public MCParticle getMCParticle() {return _mcParticle;}
60  
61    /**
62     * Returns a list of underlying elemental hits.
63     * Since the hit is not composite, returns a list with a single element - this hit.
64     */
65    public List<DigiTrackerHit> getElementalHits() {
66      List<DigiTrackerHit> hitList = new ArrayList<DigiTrackerHit>(1);
67      hitList.add(this);
68      return hitList;
69    }
70    
71  // -- Private parts :  ---------------------------------------------------------
72    
73    protected MCParticle _mcParticle;
74  
75  }