1 /**************************************************************************
2 * Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 #include <AliITSUDigitPix.h>
19 ///////////////////////////////////////////////////////////////////
21 // Class defining the digit object
23 // Inherits from AliITSdigit
25 ///////////////////////////////////////////////////////////////////
27 ClassImp(AliITSUDigitPix)
29 //______________________________________________________________________
30 AliITSUDigitPix::AliITSUDigitPix():AliITSdigit(),
32 // default constructor, zero coordinates and set array
33 // elements to clearly unphysical values. A value of 0 may
34 // be a valide track of hit number.
37 for(i=0;i<fgkSize;i++) fTracks[i] = -3;
38 for(i=0;i<fgkSize;i++) fHits[i] = -1;
41 //______________________________________________________________________
42 AliITSUDigitPix::AliITSUDigitPix(const Int_t *digits):
45 // Creates a pixel digit object
48 for(i=0;i<fgkSize;i++) fTracks[i] = -3;
49 for(i=0;i<fgkSize;i++) fHits[i] = -1;
55 //______________________________________________________________________
56 AliITSUDigitPix::AliITSUDigitPix(const Int_t *digits,const Int_t *tracks,
60 // Creates a simulated pixel digit object
62 for(Int_t i=0; i<fgkSize; i++) {
63 fTracks[i] = tracks[i];
71 //______________________________________________________________________
72 Int_t AliITSUDigitPix::GetListOfTracks(TArrayI &t)
74 // Fills the TArrayI t with the tracks found in fTracks removing
75 // duplicated tracks, but otherwise in the same order. It will return
76 // the number of tracks and fill the remaining elements to the array
79 // TArrayI &t Reference to a TArrayI to contain the list of
80 // nonduplicated track numbers.
82 // TArrayI &t The input array filled with the nonduplicated track
85 // Int_t The number of none -1 entries in the TArrayI t.
86 Int_t nt = t.GetSize();
87 Int_t nth = this->GetNTracks();
89 Bool_t inlist = kFALSE;
91 t.Reset(-1); // -1 array.
93 if(this->GetTrack(i) == -1) continue;
95 for(j=0;j<n;j++)if(this->GetTrack(i) == t.At(j)) inlist = kTRUE;
96 if(!inlist){ // add to end of list
97 t.AddAt(this->GetTrack(i),n);
104 //______________________________________________________________________
105 void AliITSUDigitPix::Print(ostream *os)
107 //Standard output format for this class
110 AliITSdigit::Print(os);
111 for(i=0;i<fgkSize;i++) *os <<","<< fTracks[i];
112 for(i=0;i<fgkSize;i++) *os <<","<< fHits[i];
113 *os << "," << fSignalPix;
116 //______________________________________________________________________
117 void AliITSUDigitPix::Read(istream *os)
119 //Standard input for this class
122 AliITSdigit::Read(os);
123 for(i=0;i<fgkSize;i++) *os >> fTracks[i];
124 for(i=0;i<fgkSize;i++) *os >> fHits[i];
128 //______________________________________________________________________
129 ostream &operator<<(ostream &os,AliITSUDigitPix &source)
131 // Standard output streaming function.
137 //______________________________________________________________________
138 istream &operator>>(istream &os,AliITSUDigitPix &source)
140 // Standard output streaming function.