/************************************************************************** * 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 #include #include #include #include /////////////////////////////////////////////////////////////////// // // // Class defining the digit object // for SDD // Inherits from AliITSdigit // // /////////////////////////////////////////////////////////////////// ClassImp(AliITSdigitSDD) //______________________________________________________________________ AliITSdigitSDD::AliITSdigitSDD():AliITSdigit(){ // 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;iConvert8to10(digits[2])); } //______________________________________________________________________ Int_t AliITSdigitSDD::GetListOfTracks(TArrayI &t,TArrayF &c){ // Fills the TArrayI t with the tracks found in fTracks removing // duplicated tracks, summing up their charge, and ordering the tracks // by the charge contributed to this digit. 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. // TArrayF &c Reference to a TArrayF to contain the summed charge // contributed by each track. // Output: // TArrayI &t The input array filled with the nonduplicated track // numbers. // TArrayF &c The input array filled with the summed charge // contributed by the corresponding track in the array t. // Return: // Int_t The number of none -1 entries in the TArrayI t. Int_t nt = t.GetSize(); nt = TMath::Min(nt,c.GetSize()); Int_t nth = this->GetNTracks(); Int_t n = 0,i,j; Bool_t inlist = kFALSE; t.Reset(-1); // -1 array. c.Reset(0.0); // zero array. for(i=0;iGetTrack(i) == -1) continue; inlist = kFALSE; for(j=0;jGetTrack(i) == t.At(j)){ inlist = kTRUE; c.AddAt(this->GetCharge(i)+c.At(j),j); } // end for j/end if if(!inlist){ // add to end of list t.AddAt(this->GetTrack(i),n); c.AddAt(this->GetCharge(i),n); if(n-1 && c.At(j)>ch){ t.AddAt(t.At(j+1),j); c.AddAt(c.At(j+1),j); j--; } // end while t.AddAt(tr,j+1); c.AddAt(ch,j+1); } // end for i // return n; } //______________________________________________________________________ void AliITSdigitSDD::Print(ostream *os){ //Standard output format for this class Int_t i; AliITSdigit::Print(os); *os <<","<< fPhysics; for(i=0; i>fPhysics; for(i=0; i> fTcharges[i]; for(i=0; i> fTracks[i]; for(i=0; i> fHits[i]; *os >>fSignalExpanded; } //______________________________________________________________________ ostream &operator<<(ostream &os,AliITSdigitSDD &source){ // Standard output streaming function. source.Print(&os); return os; } //______________________________________________________________________ istream &operator>>(istream &os,AliITSdigitSDD &source){ // Standard output streaming function. source.Read(&os); return os; }