Updating info for ACORDE and TRD
[u/mrichter/AliRoot.git] / FMD / AliFMDDigit.cxx
CommitLineData
4347b38f 1/**************************************************************************
2 * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
4347b38f 15/* $Id$ */
c2fc1258 16/** @file AliFMDDigit.cxx
17 @author Christian Holm Christensen <cholm@nbi.dk>
18 @date Mon Mar 27 12:37:41 2006
19 @brief Digits for the FMD
20*/
4347b38f 21//////////////////////////////////////////////////////////////////////
22//
23// Digits classes for the FMD
24//
25// Digits consists of
26// - Detector #
27// - Ring ID
28// - Sector #
29// - Strip #
30// - ADC count in this channel
31//
32// Digits consists of
33// - Detector #
34// - Ring ID
35// - Sector #
36// - Strip #
37// - Total energy deposited in the strip
38// - ADC count in this channel
39//
40// As the Digits and SDigits have so much in common, the classes
41// AliFMDDigit and AliFMDSDigit are implemented via a base
42// class AliFMDBaseDigit.
43///
44// +-----------------+
45// | AliFMDBaseDigit |
46// +-----------------+
47// ^
48// |
49// +------------+
50// | |
51// +-------------+ +--------------+
52// | AliFMDDigit | | AliFMDSDigit |
53// +-------------+ +--------------+
54//
55// (Note, that I'd really would have liked to implement AliFMDHit as a
56// derived class from some base class - say AliFMDStrip, and the Digit
57// classes would (eventually) have derived from that as well.
58// However, ROOT doesn't do well with multiple inheritance, so I chose
59// not to anyway).
60//
61// Latest changes by Christian Holm Christensen
62//
63//////////////////////////////////////////////////////////////////////
64
e802be3e 65#include "AliFMDDigit.h" // ALIFMDDIGIT_H
66#include "Riostream.h" // ROOT_Riostream
8f6ee336 67#include <TString.h>
4347b38f 68
69//====================================================================
925e6570 70ClassImp(AliFMDDigit)
2aeec17d 71#if 0
72; // Here to make Emacs happy
73#endif
4347b38f 74
75//____________________________________________________________________
76AliFMDDigit::AliFMDDigit()
77 : fCount1(0),
78 fCount2(-1),
2aeec17d 79 fCount3(-1),
80 fCount4(-1)
02a27b50 81{
82 // CTOR
83}
4347b38f 84
85//____________________________________________________________________
faf80567 86AliFMDDigit::AliFMDDigit(UShort_t detector,
87 Char_t ring,
88 UShort_t sector,
89 UShort_t strip,
90 UShort_t count1,
91 Short_t count2,
92 Short_t count3,
93 Short_t count4,
8d00dfa3 94 UShort_t nrefs,
09b6c804 95 const Int_t* refs)
4347b38f 96 : AliFMDBaseDigit(detector, ring, sector, strip),
97 fCount1(count1),
98 fCount2(count2),
2aeec17d 99 fCount3(count3),
100 fCount4(count4)
4347b38f 101{
102 //
103 // Creates a real data digit object
104 //
105 // Parameters
106 //
107 // detector Detector # (1, 2, or 3)
108 // ring Ring ID ('I' or 'O')
109 // sector Sector # (For inner/outer rings: 0-19/0-39)
110 // strip Strip # (For inner/outer rings: 0-511/0-255)
111 // count1 ADC count (a 10-bit word)
112 // count2 ADC count (a 10-bit word) -1 if not used
113 // count3 ADC count (a 10-bit word) -1 if not used
8d00dfa3 114 if (!refs) return;
115 for (Int_t i = 0; i < nrefs; i++) AddTrack(refs[i]);
4347b38f 116}
117
118//____________________________________________________________________
bf000c32 119const char*
120AliFMDDigit::GetTitle() const
121{
02a27b50 122 // Get the title
bf000c32 123 static TString t;
124 t = Form("ADC: %d", Counts());
125 return t.Data();
126}
127
128//____________________________________________________________________
4347b38f 129void
faf80567 130AliFMDDigit::Print(Option_t* option) const
4347b38f 131{
132 // Print digit to standard out
133 AliFMDBaseDigit::Print();
faf80567 134 std::cout << "\t"
135 << std::setw(4) << fCount1 << " ("
136 << std::setw(4) << fCount2 << ","
137 << std::setw(4) << fCount3 << ","
138 << std::setw(4) << fCount4 << ") = "
139 << std::setw(4) << Counts() << std::flush;
140 TString opt(option);
141 if (opt.Contains("l", TString::kIgnoreCase)) {
142 std::cout << " ";
143 for (Int_t i = 0; i < 3; i++)
144 std::cout << (i == 0 ? "" : ",") << std::setw(5) << fTracks[i];
145 }
146 std::cout << std::endl;
4347b38f 147}
148
4347b38f 149//____________________________________________________________________
150//
151// EOF
152//