]>
Commit | Line | Data |
---|---|---|
02a27b50 | 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 | **************************************************************************/ | |
15 | /* $Id$ */ | |
16 | /** @file AliFMDSDigit.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 | @ingroup FMD_base | |
21 | */ | |
22 | ////////////////////////////////////////////////////////////////////// | |
23 | // | |
24 | // Digits classes for the FMD | |
25 | // | |
26 | // Digits consists of | |
27 | // - Detector # | |
28 | // - Ring ID | |
29 | // - Sector # | |
30 | // - Strip # | |
31 | // - ADC count in this channel | |
32 | // | |
33 | // Digits consists of | |
34 | // - Detector # | |
35 | // - Ring ID | |
36 | // - Sector # | |
37 | // - Strip # | |
38 | // - Total energy deposited in the strip | |
39 | // - ADC count in this channel | |
40 | // | |
41 | // As the Digits and SDigits have so much in common, the classes | |
42 | // AliFMDDigit and AliFMDSDigit are implemented via a base | |
43 | // class AliFMDBaseDigit. | |
44 | /// | |
45 | // +-----------------+ | |
46 | // | AliFMDBaseDigit | | |
47 | // +-----------------+ | |
48 | // ^ | |
49 | // | | |
50 | // +------------+ | |
51 | // | | | |
52 | // +-------------+ +--------------+ | |
53 | // | AliFMDDigit | | AliFMDSDigit | | |
54 | // +-------------+ +--------------+ | |
55 | // | |
56 | // (Note, that I'd really would have liked to implement AliFMDHit as a | |
57 | // derived class from some base class - say AliFMDStrip, and the Digit | |
58 | // classes would (eventually) have derived from that as well. | |
59 | // However, ROOT doesn't do well with multiple inheritance, so I chose | |
60 | // not to anyway). | |
61 | // | |
62 | // Latest changes by Christian Holm Christensen | |
63 | // | |
64 | ////////////////////////////////////////////////////////////////////// | |
65 | ||
66 | #include "AliFMDSDigit.h" // ALIFMDDIGIT_H | |
67 | #include "Riostream.h" // ROOT_Riostream | |
68 | #include <TString.h> | |
69 | ||
70 | //==================================================================== | |
71 | ClassImp(AliFMDSDigit) | |
2aeec17d | 72 | #if 0 |
73 | ; // Here to make Emacs happy | |
74 | #endif | |
02a27b50 | 75 | //____________________________________________________________________ |
76 | AliFMDSDigit::AliFMDSDigit() | |
77 | : fEdep(0), | |
78 | fCount1(0), | |
79 | fCount2(-1), | |
2aeec17d | 80 | fCount3(-1), |
b2e6f0b0 | 81 | fCount4(-1), |
faf80567 | 82 | fNParticles(0), |
83 | fNPrimaries(0) | |
84 | // , fLabels(0) | |
02a27b50 | 85 | { |
86 | // cTOR | |
87 | } | |
88 | ||
89 | //____________________________________________________________________ | |
b2e6f0b0 | 90 | AliFMDSDigit::AliFMDSDigit(UShort_t detector, |
91 | Char_t ring, | |
92 | UShort_t sector, | |
93 | UShort_t strip, | |
94 | Float_t edep, | |
95 | UShort_t count1, | |
96 | Short_t count2, | |
97 | Short_t count3, | |
98 | Short_t count4, | |
99 | UShort_t npart, | |
100 | UShort_t nprim, | |
09b6c804 | 101 | const Int_t* refs) |
02a27b50 | 102 | : AliFMDBaseDigit(detector, ring, sector, strip), |
103 | fEdep(edep), | |
104 | fCount1(count1), | |
105 | fCount2(count2), | |
2aeec17d | 106 | fCount3(count3), |
83ad576a | 107 | fCount4(count4), |
108 | fNParticles(npart), | |
faf80567 | 109 | fNPrimaries(nprim) |
110 | // , fLabels(refs) | |
02a27b50 | 111 | { |
112 | // | |
113 | // Creates a real data digit object | |
114 | // | |
115 | // Parameters | |
116 | // | |
117 | // detector Detector # (1, 2, or 3) | |
118 | // ring Ring ID ('I' or 'O') | |
119 | // sector Sector # (For inner/outer rings: 0-19/0-39) | |
120 | // strip Strip # (For inner/outer rings: 0-511/0-255) | |
121 | // edep Total energy deposited | |
122 | // count1 ADC count (a 10-bit word) | |
123 | // count2 ADC count (a 10-bit word) -1 if not used | |
124 | // count3 ADC count (a 10-bit word) -1 if not used | |
8d00dfa3 | 125 | if (!refs) return; |
126 | for (Int_t i = 0; i < npart; i++) AddTrack(refs[i]); | |
02a27b50 | 127 | } |
128 | ||
129 | //____________________________________________________________________ | |
130 | void | |
b2e6f0b0 | 131 | AliFMDSDigit::Print(Option_t* option) const |
02a27b50 | 132 | { |
133 | // Print digit to standard out | |
134 | AliFMDBaseDigit::Print(); | |
faf80567 | 135 | std::cout << "\t" |
136 | << std::setw(10) << fEdep << " -> " | |
137 | << std::setw(4) << fCount1 << " (" | |
138 | << std::setw(4) << fCount2 << "," | |
139 | << std::setw(4) << fCount3 << "," | |
140 | << std::setw(4) << fCount4 << ") = " | |
141 | << std::setw(4) << Counts() << std::flush; | |
142 | ||
b2e6f0b0 | 143 | TString opt(option); |
144 | if (opt.Contains("p", TString::kIgnoreCase)) | |
faf80567 | 145 | std::cout << " [" |
146 | << std::setw(2) << fNPrimaries << "/" | |
147 | << std::setw(2) << fNParticles << "]" | |
b2e6f0b0 | 148 | << std::flush; |
149 | if (opt.Contains("l", TString::kIgnoreCase)) { | |
150 | std::cout << " "; | |
faf80567 | 151 | for (Int_t i = 0; i < GetNTrack(); i++) |
152 | std::cout << (i == 0 ? "" : ",") << std::setw(5) << fTracks[i]; | |
153 | #if 0 | |
b2e6f0b0 | 154 | for (Int_t i = 0; i < fLabels.fN; i++) |
155 | std::cout << (i == 0 ? "" : ",") << fLabels.fArray[i]; | |
faf80567 | 156 | #endif |
b2e6f0b0 | 157 | } |
158 | std::cout << std::endl; | |
02a27b50 | 159 | } |
160 | ||
161 | //____________________________________________________________________ | |
162 | // | |
163 | // EOF | |
164 | // |