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 <AliITSdigitSSD.h>
#include <TArrayI.h>

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

ClassImp(AliITSdigitSSD)

//______________________________________________________________________
AliITSdigitSSD::AliITSdigitSSD():AliITSdigit(){
    // default constructor
    Int_t i;

    for(i=0; i<fgkSize; i++) fTracks[i] = -3;
    for(i=0; i<fgkSize; i++) fHits[i] = -1;
}
//__________________________________________________________________________
AliITSdigitSSD::AliITSdigitSSD(const Int_t *digits):AliITSdigit(digits){
    // Creates a real SSD digit object
}
//_____________________________________________________________________________
AliITSdigitSSD::AliITSdigitSSD(const Int_t *digits,const Int_t *tracks,
			       const Int_t *hits):AliITSdigit(digits){
    // Creates a simulated SSD digit object

    for(Int_t i=0; i<fgkSize; i++) {
	fTracks[i] = tracks[i];
	fHits[i]   = hits[i];
    } // end for i
}
//______________________________________________________________________
Int_t AliITSdigitSSD::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 AliITSdigitSSD::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];
}
//______________________________________________________________________
void AliITSdigitSSD::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];
}
//______________________________________________________________________
ostream &operator<<(ostream &os,AliITSdigitSSD &source){
    // Standard output streaming function.

    source.Print(&os);
    return os;
}
//______________________________________________________________________
istream &operator>>(istream &os,AliITSdigitSSD &source){
    // Standard output streaming function.

    source.Read(&os);
    return os;
}
 AliITSdigitSSD.cxx:1
 AliITSdigitSSD.cxx:2
 AliITSdigitSSD.cxx:3
 AliITSdigitSSD.cxx:4
 AliITSdigitSSD.cxx:5
 AliITSdigitSSD.cxx:6
 AliITSdigitSSD.cxx:7
 AliITSdigitSSD.cxx:8
 AliITSdigitSSD.cxx:9
 AliITSdigitSSD.cxx:10
 AliITSdigitSSD.cxx:11
 AliITSdigitSSD.cxx:12
 AliITSdigitSSD.cxx:13
 AliITSdigitSSD.cxx:14
 AliITSdigitSSD.cxx:15
 AliITSdigitSSD.cxx:16
 AliITSdigitSSD.cxx:17
 AliITSdigitSSD.cxx:18
 AliITSdigitSSD.cxx:19
 AliITSdigitSSD.cxx:20
 AliITSdigitSSD.cxx:21
 AliITSdigitSSD.cxx:22
 AliITSdigitSSD.cxx:23
 AliITSdigitSSD.cxx:24
 AliITSdigitSSD.cxx:25
 AliITSdigitSSD.cxx:26
 AliITSdigitSSD.cxx:27
 AliITSdigitSSD.cxx:28
 AliITSdigitSSD.cxx:29
 AliITSdigitSSD.cxx:30
 AliITSdigitSSD.cxx:31
 AliITSdigitSSD.cxx:32
 AliITSdigitSSD.cxx:33
 AliITSdigitSSD.cxx:34
 AliITSdigitSSD.cxx:35
 AliITSdigitSSD.cxx:36
 AliITSdigitSSD.cxx:37
 AliITSdigitSSD.cxx:38
 AliITSdigitSSD.cxx:39
 AliITSdigitSSD.cxx:40
 AliITSdigitSSD.cxx:41
 AliITSdigitSSD.cxx:42
 AliITSdigitSSD.cxx:43
 AliITSdigitSSD.cxx:44
 AliITSdigitSSD.cxx:45
 AliITSdigitSSD.cxx:46
 AliITSdigitSSD.cxx:47
 AliITSdigitSSD.cxx:48
 AliITSdigitSSD.cxx:49
 AliITSdigitSSD.cxx:50
 AliITSdigitSSD.cxx:51
 AliITSdigitSSD.cxx:52
 AliITSdigitSSD.cxx:53
 AliITSdigitSSD.cxx:54
 AliITSdigitSSD.cxx:55
 AliITSdigitSSD.cxx:56
 AliITSdigitSSD.cxx:57
 AliITSdigitSSD.cxx:58
 AliITSdigitSSD.cxx:59
 AliITSdigitSSD.cxx:60
 AliITSdigitSSD.cxx:61
 AliITSdigitSSD.cxx:62
 AliITSdigitSSD.cxx:63
 AliITSdigitSSD.cxx:64
 AliITSdigitSSD.cxx:65
 AliITSdigitSSD.cxx:66
 AliITSdigitSSD.cxx:67
 AliITSdigitSSD.cxx:68
 AliITSdigitSSD.cxx:69
 AliITSdigitSSD.cxx:70
 AliITSdigitSSD.cxx:71
 AliITSdigitSSD.cxx:72
 AliITSdigitSSD.cxx:73
 AliITSdigitSSD.cxx:74
 AliITSdigitSSD.cxx:75
 AliITSdigitSSD.cxx:76
 AliITSdigitSSD.cxx:77
 AliITSdigitSSD.cxx:78
 AliITSdigitSSD.cxx:79
 AliITSdigitSSD.cxx:80
 AliITSdigitSSD.cxx:81
 AliITSdigitSSD.cxx:82
 AliITSdigitSSD.cxx:83
 AliITSdigitSSD.cxx:84
 AliITSdigitSSD.cxx:85
 AliITSdigitSSD.cxx:86
 AliITSdigitSSD.cxx:87
 AliITSdigitSSD.cxx:88
 AliITSdigitSSD.cxx:89
 AliITSdigitSSD.cxx:90
 AliITSdigitSSD.cxx:91
 AliITSdigitSSD.cxx:92
 AliITSdigitSSD.cxx:93
 AliITSdigitSSD.cxx:94
 AliITSdigitSSD.cxx:95
 AliITSdigitSSD.cxx:96
 AliITSdigitSSD.cxx:97
 AliITSdigitSSD.cxx:98
 AliITSdigitSSD.cxx:99
 AliITSdigitSSD.cxx:100
 AliITSdigitSSD.cxx:101
 AliITSdigitSSD.cxx:102
 AliITSdigitSSD.cxx:103
 AliITSdigitSSD.cxx:104
 AliITSdigitSSD.cxx:105
 AliITSdigitSSD.cxx:106
 AliITSdigitSSD.cxx:107
 AliITSdigitSSD.cxx:108
 AliITSdigitSSD.cxx:109
 AliITSdigitSSD.cxx:110
 AliITSdigitSSD.cxx:111
 AliITSdigitSSD.cxx:112
 AliITSdigitSSD.cxx:113