ROOT logo
/**************************************************************************
 * Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

#include <AliITSUDigitPix.h>
#include <TArrayI.h>

///////////////////////////////////////////////////////////////////
//                                                               //
// Class defining the digit object
// for pixel
// Inherits from AliITSdigit
//                                                               //
///////////////////////////////////////////////////////////////////

ClassImp(AliITSUDigitPix)

//______________________________________________________________________
AliITSUDigitPix::AliITSUDigitPix()
:  AliITSdigit()
  ,fSignalPix(0)
  ,fROCycle(0)
{
    // default constructor, zero coordinates and set array
    // elements to clearly unphysical values. A value of 0 may
    // be a valide track of hit number.
    Int_t i;

    for(i=0;i<fgkSize;i++) fTracks[i]  = -3;
    for(i=0;i<fgkSize;i++) fHits[i]    = -1;
}

//______________________________________________________________________
AliITSUDigitPix::AliITSUDigitPix(const Int_t *digits)
  :fSignalPix(digits[2])
  ,fROCycle(digits[3])
{
    // Creates a pixel digit object
    Int_t i;

    for(i=0;i<fgkSize;i++) fTracks[i]  = -3;
    for(i=0;i<fgkSize;i++) fHits[i]    = -1;
    fCoord1       = digits[0];
    fCoord2       = digits[1];
    fSignal       = 1;
}

//______________________________________________________________________
AliITSUDigitPix::AliITSUDigitPix(const Int_t *digits,const Int_t *tracks,const Int_t *hits)
: fSignalPix(digits[2])
, fROCycle(digits[3])
{
    // Creates a simulated pixel digit object

    for(Int_t i=0; i<fgkSize; i++) {
	fTracks[i] = tracks[i];
	fHits[i]   = hits[i];
    } // end for i
    fCoord1       = digits[0];
    fCoord2       = digits[1];
    fSignal       = 1;
}

//______________________________________________________________________
Int_t AliITSUDigitPix::GetListOfTracks(TArrayI &t)
{
    // Fills the TArrayI t with the tracks found in fTracks removing
    // duplicated tracks, but otherwise in the same order. It will return
    // the number of tracks and fill the remaining elements to the array
    // t with -1.
    // Inputs:
    //   TArrayI  &t Reference to a TArrayI to contain the list of
    //               nonduplicated track numbers.
    // Output:
    //   TArrayI  &t The input array filled with the nonduplicated track
    //               numbers.
    // Return:
    //   Int_t The number of none -1 entries in the TArrayI t.
    Int_t nt = t.GetSize();
    Int_t nth = this->GetNTracks();
    Int_t n = 0,i,j;
    Bool_t inlist = kFALSE;

    t.Reset(-1); // -1 array.
    for(i=0;i<nth;i++) {
	if(this->GetTrack(i) == -1) continue;
	inlist = kFALSE;
	for(j=0;j<n;j++)if(this->GetTrack(i) == t.At(j)) inlist = kTRUE;
	if(!inlist){ // add to end of list
	    t.AddAt(this->GetTrack(i),n);
	    if(n<nt) n++;
	} // end if
    } // end for i
    return n;
}

//______________________________________________________________________
void AliITSUDigitPix::Print(ostream *os)
{
    //Standard output format for this class
    Int_t i;

    AliITSdigit::Print(os);
    for(i=0;i<fgkSize;i++) *os <<","<< fTracks[i];
    for(i=0;i<fgkSize;i++) *os <<","<< fHits[i];
    *os << "," << fSignalPix;
    *os << "," << fROCycle;
}

//______________________________________________________________________
void AliITSUDigitPix::Read(istream *os)
{
    //Standard input for this class
    Int_t i;

    AliITSdigit::Read(os);
    for(i=0;i<fgkSize;i++) *os >> fTracks[i];
    for(i=0;i<fgkSize;i++) *os >> fHits[i];
    *os >> fSignalPix;
    *os >> fROCycle;
}

//______________________________________________________________________
ostream &operator<<(ostream &os,AliITSUDigitPix &source)
{
    // Standard output streaming function.

    source.Print(&os);
    return os;
}

//______________________________________________________________________
istream &operator>>(istream &os,AliITSUDigitPix &source)
{
    // Standard output streaming function.

    source.Read(&os);
    return os;
}
 AliITSUDigitPix.cxx:1
 AliITSUDigitPix.cxx:2
 AliITSUDigitPix.cxx:3
 AliITSUDigitPix.cxx:4
 AliITSUDigitPix.cxx:5
 AliITSUDigitPix.cxx:6
 AliITSUDigitPix.cxx:7
 AliITSUDigitPix.cxx:8
 AliITSUDigitPix.cxx:9
 AliITSUDigitPix.cxx:10
 AliITSUDigitPix.cxx:11
 AliITSUDigitPix.cxx:12
 AliITSUDigitPix.cxx:13
 AliITSUDigitPix.cxx:14
 AliITSUDigitPix.cxx:15
 AliITSUDigitPix.cxx:16
 AliITSUDigitPix.cxx:17
 AliITSUDigitPix.cxx:18
 AliITSUDigitPix.cxx:19
 AliITSUDigitPix.cxx:20
 AliITSUDigitPix.cxx:21
 AliITSUDigitPix.cxx:22
 AliITSUDigitPix.cxx:23
 AliITSUDigitPix.cxx:24
 AliITSUDigitPix.cxx:25
 AliITSUDigitPix.cxx:26
 AliITSUDigitPix.cxx:27
 AliITSUDigitPix.cxx:28
 AliITSUDigitPix.cxx:29
 AliITSUDigitPix.cxx:30
 AliITSUDigitPix.cxx:31
 AliITSUDigitPix.cxx:32
 AliITSUDigitPix.cxx:33
 AliITSUDigitPix.cxx:34
 AliITSUDigitPix.cxx:35
 AliITSUDigitPix.cxx:36
 AliITSUDigitPix.cxx:37
 AliITSUDigitPix.cxx:38
 AliITSUDigitPix.cxx:39
 AliITSUDigitPix.cxx:40
 AliITSUDigitPix.cxx:41
 AliITSUDigitPix.cxx:42
 AliITSUDigitPix.cxx:43
 AliITSUDigitPix.cxx:44
 AliITSUDigitPix.cxx:45
 AliITSUDigitPix.cxx:46
 AliITSUDigitPix.cxx:47
 AliITSUDigitPix.cxx:48
 AliITSUDigitPix.cxx:49
 AliITSUDigitPix.cxx:50
 AliITSUDigitPix.cxx:51
 AliITSUDigitPix.cxx:52
 AliITSUDigitPix.cxx:53
 AliITSUDigitPix.cxx:54
 AliITSUDigitPix.cxx:55
 AliITSUDigitPix.cxx:56
 AliITSUDigitPix.cxx:57
 AliITSUDigitPix.cxx:58
 AliITSUDigitPix.cxx:59
 AliITSUDigitPix.cxx:60
 AliITSUDigitPix.cxx:61
 AliITSUDigitPix.cxx:62
 AliITSUDigitPix.cxx:63
 AliITSUDigitPix.cxx:64
 AliITSUDigitPix.cxx:65
 AliITSUDigitPix.cxx:66
 AliITSUDigitPix.cxx:67
 AliITSUDigitPix.cxx:68
 AliITSUDigitPix.cxx:69
 AliITSUDigitPix.cxx:70
 AliITSUDigitPix.cxx:71
 AliITSUDigitPix.cxx:72
 AliITSUDigitPix.cxx:73
 AliITSUDigitPix.cxx:74
 AliITSUDigitPix.cxx:75
 AliITSUDigitPix.cxx:76
 AliITSUDigitPix.cxx:77
 AliITSUDigitPix.cxx:78
 AliITSUDigitPix.cxx:79
 AliITSUDigitPix.cxx:80
 AliITSUDigitPix.cxx:81
 AliITSUDigitPix.cxx:82
 AliITSUDigitPix.cxx:83
 AliITSUDigitPix.cxx:84
 AliITSUDigitPix.cxx:85
 AliITSUDigitPix.cxx:86
 AliITSUDigitPix.cxx:87
 AliITSUDigitPix.cxx:88
 AliITSUDigitPix.cxx:89
 AliITSUDigitPix.cxx:90
 AliITSUDigitPix.cxx:91
 AliITSUDigitPix.cxx:92
 AliITSUDigitPix.cxx:93
 AliITSUDigitPix.cxx:94
 AliITSUDigitPix.cxx:95
 AliITSUDigitPix.cxx:96
 AliITSUDigitPix.cxx:97
 AliITSUDigitPix.cxx:98
 AliITSUDigitPix.cxx:99
 AliITSUDigitPix.cxx:100
 AliITSUDigitPix.cxx:101
 AliITSUDigitPix.cxx:102
 AliITSUDigitPix.cxx:103
 AliITSUDigitPix.cxx:104
 AliITSUDigitPix.cxx:105
 AliITSUDigitPix.cxx:106
 AliITSUDigitPix.cxx:107
 AliITSUDigitPix.cxx:108
 AliITSUDigitPix.cxx:109
 AliITSUDigitPix.cxx:110
 AliITSUDigitPix.cxx:111
 AliITSUDigitPix.cxx:112
 AliITSUDigitPix.cxx:113
 AliITSUDigitPix.cxx:114
 AliITSUDigitPix.cxx:115
 AliITSUDigitPix.cxx:116
 AliITSUDigitPix.cxx:117
 AliITSUDigitPix.cxx:118
 AliITSUDigitPix.cxx:119
 AliITSUDigitPix.cxx:120
 AliITSUDigitPix.cxx:121
 AliITSUDigitPix.cxx:122
 AliITSUDigitPix.cxx:123
 AliITSUDigitPix.cxx:124
 AliITSUDigitPix.cxx:125
 AliITSUDigitPix.cxx:126
 AliITSUDigitPix.cxx:127
 AliITSUDigitPix.cxx:128
 AliITSUDigitPix.cxx:129
 AliITSUDigitPix.cxx:130
 AliITSUDigitPix.cxx:131
 AliITSUDigitPix.cxx:132
 AliITSUDigitPix.cxx:133
 AliITSUDigitPix.cxx:134
 AliITSUDigitPix.cxx:135
 AliITSUDigitPix.cxx:136
 AliITSUDigitPix.cxx:137
 AliITSUDigitPix.cxx:138
 AliITSUDigitPix.cxx:139
 AliITSUDigitPix.cxx:140
 AliITSUDigitPix.cxx:141
 AliITSUDigitPix.cxx:142
 AliITSUDigitPix.cxx:143
 AliITSUDigitPix.cxx:144
 AliITSUDigitPix.cxx:145
 AliITSUDigitPix.cxx:146
 AliITSUDigitPix.cxx:147
 AliITSUDigitPix.cxx:148
 AliITSUDigitPix.cxx:149
 AliITSUDigitPix.cxx:150