ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
 **************************************************************************/

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  Alice segment manager object                                             //
//  AliSimDigits object   (derived from AliDigits)                           //
//  provide additional track information to digit                            //
//   Origin: Marian Ivanov  GSI Darmstadt                                    //
//                                                                           //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "TClass.h"
#include <Riostream.h>
#include "TError.h"
#include "AliSegmentID.h"
#include "AliH2F.h"
#include "TArrayI.h"
#include "AliDigits.h"
#include "AliSimDigits.h"
#include <TClonesArray.h>



//_____________________________________________________________________________
//_____________________________________________________________________________
//_____________________________________________________________________________
ClassImp(AliSimDigits)

AliSimDigits::AliSimDigits()
             :AliDigits(),
	      fTracks(0),
	      fTrIndex(0),
	      fNlevel(0),
	      fTrBufType(0)  
{
  //  AliDigits::Invalite();
 
  InvalidateTrack();
}
//
AliSimDigits::AliSimDigits(const AliSimDigits &param)
             :AliDigits(),
	      fTracks(0),
	      fTrIndex(0),
	      fNlevel(0),
	      fTrBufType(0) 
{
  //
  // dummy
  //
  fTrIndex = param.fTrIndex;
}
//
AliSimDigits::~AliSimDigits()
{

  if (fTracks != 0) {
    delete fTracks;
  }
  if (fTrIndex != 0) { 
    delete fTrIndex;
  } 

}
AliSimDigits & AliSimDigits::operator =(const AliSimDigits & param)
{
  //
  // assignment operator - dummy
  //
  if(this!=&param){
    fTrIndex=param.fTrIndex;
  }
  return (*this);
}

//__________________________________________________________________
void AliSimDigits::InvalidateTrack() 
{ 
  //
  //set default (invalid parameters)
  if ( fTracks != 0) delete fTracks;
  fTracks = new TArrayI;
  if ( fTrIndex  != 0) delete fTrIndex;
  fTrIndex = new TArrayI;

  for (Int_t i = 0; i<3; i++){
    fTracks->Set(0);
    fTrIndex->Set(0);
  }
}

void  AliSimDigits::AllocateTrack(Int_t length)
{
  //
  //construct empty buffer fElements and fTracks with size fNrows x fNcols x
  //length 
  InvalidateTrack();
  fNlevel = length;
  fTracks->Set(fNcols*fNrows*fNlevel);
  fTrIndex->Set(0); 
  fTrBufType =0;
}

Int_t AliSimDigits::GetTrackID(Int_t row, Int_t column, Int_t level) 
{
  //
  //Get track ID 
  if (fTrBufType == 0) return  GetTrackIDFast(row, column,level);
  if (fTrBufType == 1) return  GetTrackID1(row, column,level); 
  if (fTrBufType == 2) return  GetTrackID2(row, column,level); 
  return 0;
}

void AliSimDigits::ExpandTrackBuffer()
{  
  //
  //expand buffer to two dimensional array 
  if (fTrBufType<0)  {
    Error("ExpandBuffer", "buffer doesn't exist");
    return;
  }
  if (fTrBufType==0)      return;  //buffer expanded
  if (fTrBufType==1)  {ExpandTrackBuffer1(); return;}
  if (fTrBufType==2)  ExpandTrackBuffer2();
 
}

void AliSimDigits::CompresTrackBuffer(Int_t bufType)
{
  //
  //compres buffer according buffertype algorithm
  //
  if (fTrBufType<0)  {
    Error("CompressBuffer", "buffer doesn't exist");
    return;
  }
  if (fTrBufType == bufType) return;
  //
  if (fTrBufType>0) ExpandTrackBuffer();
  if (fTrBufType !=0)  {
    Error("CompressBuffer", "buffer doesn't exist");
    return;
  }
  //compress buffer of type 1
  
  if (bufType==1)      {CompresTrackBuffer1();return;}
  if (bufType==2)      CompresTrackBuffer2();
   
}

Int_t  AliSimDigits::GetTrackID1(Int_t row, Int_t column, Int_t level)
{
  //return  track ID of digits - for buffer compresion 2
  Int_t i,n1,n2;
  i = level*fNcols+column;
  if ( (i+1)>=fTrIndex->fN) n2 = fTracks->fN;
  else 
    n2 = fTrIndex->At(i+1);
  n1 = fTrIndex->At(i);
  Int_t rownew = 0;
  Int_t rowold=0;
  Int_t id;
  for (i = n1;(i<n2);i++){
    id = 0;
    Int_t num = fTracks->At(i);
    if (num<0) {
      rownew-=num;  
      rowold = rownew;
      i++;
      if (i<n2){
	num = fTracks->At(i);
	rownew+=num;
	i++;
	id = fTracks->At(i);
      }
    }
    else {
      rowold = rownew;
      rownew+=num;
      i++;
      id = fTracks->At(i);
    }
    id-=2;
    if ( (row>=rowold) && (row<rownew) ) return id;
    if (row < rownew ) return -2; //empty track
  }
  return -2;
}

void  AliSimDigits::ExpandTrackBuffer1()
{
  //
  //expand  track compressed according algorithm 1 (track id comression independent to the digit compression)
  // !!in expanded tracks we don't use fTrIndex array
  //  
  fTrBufType = 0;
  Int_t i,j;
  Int_t all   = fNrows*fNcols;  //total number of digits
  Int_t elems = all*fNlevel;  //length of the buffer

  TArrayI * buf = new TArrayI;
  buf->Set(elems);
  fTrIndex->Set(0);
  //
  Int_t level = 0;
  Int_t col=0;
  Int_t row = 0;
  Int_t n=fTracks->fN;
  //
  for (i=0;i<n;i++){
    //oposite signa means how many unwrited (under threshold) values
    Int_t num = fTracks->At(i);
    if (num<0) row-=num;   //negative number mean number of zeroes (no tracks of gibven level no need to write to array) 
    else {
      num %= 10000000; //PH: take into account the case of underlying events
      i++;
      Int_t id =  fTracks->At(i);
      for (j = 0; j<num; j++,row++) {
	if (level*all+col*fNrows+row<elems) (*buf)[level*all+col*fNrows+row]=id;       
      }
    }
    if (row>=fNrows) {
      row=0;
      col++;
    }
    if (col>=fNcols) {
      col=0;
      level++;
    }    
  }//end of loop over digits
  delete fTracks;
  fTracks = buf;
}

void  AliSimDigits::CompresTrackBuffer1()
{
  //
  //comress track according algorithm 1 (track id comression independent to the digit compression)
  //
  fTrBufType = 1;  

  TArrayI *  buf = new TArrayI;   //create  new buffer 
  buf->Set(fNrows*fNcols*fNlevel); //lets have the nearly the "worst case"
  TArrayI *  index = new TArrayI;
  index->Set(fNcols*fNlevel);
  //  Int_t * pindex = 

  
  Int_t icurrent=-1;  //current index
  Int_t izero;      //number of zero
  Int_t inum;      //number of digits  with the same current track id  
  Int_t lastID =0;  //last track id  
  
  Int_t *cbuff=fTracks->GetArray(); //MI change

  for (Int_t lev =0; lev<fNlevel; lev++){    //loop over levels 
    for (Int_t col = 0; col<fNcols; col++){    //loop over columns
      izero = 0;
      inum =  0;
      lastID = 0;
      (*index)[lev*fNcols+col]=icurrent+1;//set collumn pointer
      Int_t id=0;  //current id
      for (Int_t row = 0; row< fNrows;row++){ //loop over rows        
	id = *cbuff;  //MI change
	//	id = GetTrackIDFast(row,col,lev);
	if (id <= 0) {
	  if ( inum> 0 ) { //if we have some tracks in buffer
	    icurrent++;
	    if ((icurrent+1)>=buf->fN) buf->Set(icurrent*2+1); //MI change - allocate +1
	    (*buf)[icurrent] = inum;
	    icurrent++;
	    (*buf)[icurrent] = lastID;	
	    inum = 0;      
	    lastID = 0;
	  }
	  izero++;
	}
	else
          if (id != lastID) 
	    if ( izero > 0 ) { 
	      //if we have currently izero count of non tracks digits
	      icurrent++;	  
	      if (icurrent>=buf->fN) buf->Set(icurrent*2+1);
	      (*buf)[icurrent]= -izero;  //write how many under zero
	      inum++;
	      izero = 0;	     
	      lastID = id;
	    }
	    else{ 
	      //if we change track id from another track id	    
	      icurrent++;	  
	      if ((icurrent+1)>=buf->fN) buf->Set(icurrent*2+1);
	      (*buf)[icurrent] = inum;
	      icurrent++;
	      (*buf)[icurrent] = lastID;	
	      lastID = id;
	      inum = 1;      
	      izero = 0;
	    }	
	  else {	  
	    inum++;
	  }
	cbuff++;  //MI change
      }//end of loop over row
      if ( izero > 0 ) { 
	//if we have currently izero count of non tracks digits
	icurrent++;	  
	if (icurrent>=buf->fN) buf->Set(icurrent*2);
	(*buf)[icurrent]= -izero;  //write how many under zero	
      }
      if ( inum> 0 ) { //if we have some tracks in buffer
	icurrent++;
	if ((icurrent+1)>=buf->fN) buf->Set(icurrent*2);
	(*buf)[icurrent] = inum;
	icurrent++;
	(*buf)[icurrent] = id;	
      }      
    }//end of loop over columns
  }//end of loop over differnet track level  
  buf->Set(icurrent+1);
  delete fTracks;
  fTracks = buf;
  delete fTrIndex;
  fTrIndex = index;
}



void  AliSimDigits::ExpandTrackBuffer2()
{
  //
  //comress track according algorithm 2 (track id comression according  digit compression)
  fTrBufType = 0;
}

void  AliSimDigits::CompresTrackBuffer2()
{
  //
  //comress track according algorithm 2 (track id comression according  digit compression)
  fTrBufType = 2;
}


Int_t  AliSimDigits::GetTrackID2(Int_t /*row*/, Int_t /*column*/, Int_t /*level*/)
{
  //returnb track id of digits - for buffer compresion 2
  return -2;
}



AliH2F *  AliSimDigits::DrawTracks( const char *option,Int_t level, 
			      Float_t x1, Float_t x2, Float_t y1, Float_t y2)
{
  //
  //draw digits in given array
  //  
  //make digits histo 
  char ch[30];
  //sprintf(ch,"Track Segment_%d level %d ",GetID(),level );
  snprintf(ch,30,"Track Segment_%d level %d ",GetID(),level );
  if ( (fNrows<1)|| (fNcols<1)) {
    return 0;
  }
  AliH2F * his  = new AliH2F("Track histo",ch,fNrows,0,fNrows,fNcols,0,fNcols);
  ExpandTrackBuffer();
  //set histogram  values
  for (Int_t i = 0; i<fNrows;i++)    
    for (Int_t j = 0; j<fNcols;j++)
        his->Fill(i,j,GetTrackIDFast(i,j,level));
  if (x1>=0) {
      AliH2F *h2fsub = his->GetSubrange2d(x1,x2,y1,y2);
      delete his;
      his=h2fsub;
  }
  if (his==0) return 0;
  if (option!=0) his->Draw(option);
  else his->Draw();
  return his;  
}

void AliSimDigits::GlitchFilter(){
  //
  //  glitch filter, optionally
  //
  
  for (Int_t i=0;i<fNcols;i++){ //pads
    for(Int_t j=1;j<fNrows-1;j++){ //time bins
      // first and last time bins are checked separately
      if(GetDigitFast(j,i)){// nonzero digit
        if (!GetDigitFast(j-1,i) && !GetDigitFast(j+1,i)) {
          SetDigitFast(0,j,i);
          SetTrackIDFast(-2,j,i,0);
          SetTrackIDFast(-2,j,i,1);
          SetTrackIDFast(-2,j,i,2);
	}
      }
    }//time
   
    if(GetDigitFast(0,i) && !GetDigitFast(1,i)) {
        SetDigitFast(0,0,i);
        SetTrackIDFast(-2,0,i,0);
        SetTrackIDFast(-2,0,i,1);
        SetTrackIDFast(-2,0,i,2);
    }
    if(GetDigitFast(fNrows-1,i) && !GetDigitFast(fNrows-2,i)){ 
       SetDigitFast(0,fNrows-1,i);
       SetTrackIDFast(-2,fNrows-1,i,0);
       SetTrackIDFast(-2,fNrows-1,i,1);
       SetTrackIDFast(-2,fNrows-1,i,2);    
    }
  }//pads
 
}

 AliSimDigits.cxx:1
 AliSimDigits.cxx:2
 AliSimDigits.cxx:3
 AliSimDigits.cxx:4
 AliSimDigits.cxx:5
 AliSimDigits.cxx:6
 AliSimDigits.cxx:7
 AliSimDigits.cxx:8
 AliSimDigits.cxx:9
 AliSimDigits.cxx:10
 AliSimDigits.cxx:11
 AliSimDigits.cxx:12
 AliSimDigits.cxx:13
 AliSimDigits.cxx:14
 AliSimDigits.cxx:15
 AliSimDigits.cxx:16
 AliSimDigits.cxx:17
 AliSimDigits.cxx:18
 AliSimDigits.cxx:19
 AliSimDigits.cxx:20
 AliSimDigits.cxx:21
 AliSimDigits.cxx:22
 AliSimDigits.cxx:23
 AliSimDigits.cxx:24
 AliSimDigits.cxx:25
 AliSimDigits.cxx:26
 AliSimDigits.cxx:27
 AliSimDigits.cxx:28
 AliSimDigits.cxx:29
 AliSimDigits.cxx:30
 AliSimDigits.cxx:31
 AliSimDigits.cxx:32
 AliSimDigits.cxx:33
 AliSimDigits.cxx:34
 AliSimDigits.cxx:35
 AliSimDigits.cxx:36
 AliSimDigits.cxx:37
 AliSimDigits.cxx:38
 AliSimDigits.cxx:39
 AliSimDigits.cxx:40
 AliSimDigits.cxx:41
 AliSimDigits.cxx:42
 AliSimDigits.cxx:43
 AliSimDigits.cxx:44
 AliSimDigits.cxx:45
 AliSimDigits.cxx:46
 AliSimDigits.cxx:47
 AliSimDigits.cxx:48
 AliSimDigits.cxx:49
 AliSimDigits.cxx:50
 AliSimDigits.cxx:51
 AliSimDigits.cxx:52
 AliSimDigits.cxx:53
 AliSimDigits.cxx:54
 AliSimDigits.cxx:55
 AliSimDigits.cxx:56
 AliSimDigits.cxx:57
 AliSimDigits.cxx:58
 AliSimDigits.cxx:59
 AliSimDigits.cxx:60
 AliSimDigits.cxx:61
 AliSimDigits.cxx:62
 AliSimDigits.cxx:63
 AliSimDigits.cxx:64
 AliSimDigits.cxx:65
 AliSimDigits.cxx:66
 AliSimDigits.cxx:67
 AliSimDigits.cxx:68
 AliSimDigits.cxx:69
 AliSimDigits.cxx:70
 AliSimDigits.cxx:71
 AliSimDigits.cxx:72
 AliSimDigits.cxx:73
 AliSimDigits.cxx:74
 AliSimDigits.cxx:75
 AliSimDigits.cxx:76
 AliSimDigits.cxx:77
 AliSimDigits.cxx:78
 AliSimDigits.cxx:79
 AliSimDigits.cxx:80
 AliSimDigits.cxx:81
 AliSimDigits.cxx:82
 AliSimDigits.cxx:83
 AliSimDigits.cxx:84
 AliSimDigits.cxx:85
 AliSimDigits.cxx:86
 AliSimDigits.cxx:87
 AliSimDigits.cxx:88
 AliSimDigits.cxx:89
 AliSimDigits.cxx:90
 AliSimDigits.cxx:91
 AliSimDigits.cxx:92
 AliSimDigits.cxx:93
 AliSimDigits.cxx:94
 AliSimDigits.cxx:95
 AliSimDigits.cxx:96
 AliSimDigits.cxx:97
 AliSimDigits.cxx:98
 AliSimDigits.cxx:99
 AliSimDigits.cxx:100
 AliSimDigits.cxx:101
 AliSimDigits.cxx:102
 AliSimDigits.cxx:103
 AliSimDigits.cxx:104
 AliSimDigits.cxx:105
 AliSimDigits.cxx:106
 AliSimDigits.cxx:107
 AliSimDigits.cxx:108
 AliSimDigits.cxx:109
 AliSimDigits.cxx:110
 AliSimDigits.cxx:111
 AliSimDigits.cxx:112
 AliSimDigits.cxx:113
 AliSimDigits.cxx:114
 AliSimDigits.cxx:115
 AliSimDigits.cxx:116
 AliSimDigits.cxx:117
 AliSimDigits.cxx:118
 AliSimDigits.cxx:119
 AliSimDigits.cxx:120
 AliSimDigits.cxx:121
 AliSimDigits.cxx:122
 AliSimDigits.cxx:123
 AliSimDigits.cxx:124
 AliSimDigits.cxx:125
 AliSimDigits.cxx:126
 AliSimDigits.cxx:127
 AliSimDigits.cxx:128
 AliSimDigits.cxx:129
 AliSimDigits.cxx:130
 AliSimDigits.cxx:131
 AliSimDigits.cxx:132
 AliSimDigits.cxx:133
 AliSimDigits.cxx:134
 AliSimDigits.cxx:135
 AliSimDigits.cxx:136
 AliSimDigits.cxx:137
 AliSimDigits.cxx:138
 AliSimDigits.cxx:139
 AliSimDigits.cxx:140
 AliSimDigits.cxx:141
 AliSimDigits.cxx:142
 AliSimDigits.cxx:143
 AliSimDigits.cxx:144
 AliSimDigits.cxx:145
 AliSimDigits.cxx:146
 AliSimDigits.cxx:147
 AliSimDigits.cxx:148
 AliSimDigits.cxx:149
 AliSimDigits.cxx:150
 AliSimDigits.cxx:151
 AliSimDigits.cxx:152
 AliSimDigits.cxx:153
 AliSimDigits.cxx:154
 AliSimDigits.cxx:155
 AliSimDigits.cxx:156
 AliSimDigits.cxx:157
 AliSimDigits.cxx:158
 AliSimDigits.cxx:159
 AliSimDigits.cxx:160
 AliSimDigits.cxx:161
 AliSimDigits.cxx:162
 AliSimDigits.cxx:163
 AliSimDigits.cxx:164
 AliSimDigits.cxx:165
 AliSimDigits.cxx:166
 AliSimDigits.cxx:167
 AliSimDigits.cxx:168
 AliSimDigits.cxx:169
 AliSimDigits.cxx:170
 AliSimDigits.cxx:171
 AliSimDigits.cxx:172
 AliSimDigits.cxx:173
 AliSimDigits.cxx:174
 AliSimDigits.cxx:175
 AliSimDigits.cxx:176
 AliSimDigits.cxx:177
 AliSimDigits.cxx:178
 AliSimDigits.cxx:179
 AliSimDigits.cxx:180
 AliSimDigits.cxx:181
 AliSimDigits.cxx:182
 AliSimDigits.cxx:183
 AliSimDigits.cxx:184
 AliSimDigits.cxx:185
 AliSimDigits.cxx:186
 AliSimDigits.cxx:187
 AliSimDigits.cxx:188
 AliSimDigits.cxx:189
 AliSimDigits.cxx:190
 AliSimDigits.cxx:191
 AliSimDigits.cxx:192
 AliSimDigits.cxx:193
 AliSimDigits.cxx:194
 AliSimDigits.cxx:195
 AliSimDigits.cxx:196
 AliSimDigits.cxx:197
 AliSimDigits.cxx:198
 AliSimDigits.cxx:199
 AliSimDigits.cxx:200
 AliSimDigits.cxx:201
 AliSimDigits.cxx:202
 AliSimDigits.cxx:203
 AliSimDigits.cxx:204
 AliSimDigits.cxx:205
 AliSimDigits.cxx:206
 AliSimDigits.cxx:207
 AliSimDigits.cxx:208
 AliSimDigits.cxx:209
 AliSimDigits.cxx:210
 AliSimDigits.cxx:211
 AliSimDigits.cxx:212
 AliSimDigits.cxx:213
 AliSimDigits.cxx:214
 AliSimDigits.cxx:215
 AliSimDigits.cxx:216
 AliSimDigits.cxx:217
 AliSimDigits.cxx:218
 AliSimDigits.cxx:219
 AliSimDigits.cxx:220
 AliSimDigits.cxx:221
 AliSimDigits.cxx:222
 AliSimDigits.cxx:223
 AliSimDigits.cxx:224
 AliSimDigits.cxx:225
 AliSimDigits.cxx:226
 AliSimDigits.cxx:227
 AliSimDigits.cxx:228
 AliSimDigits.cxx:229
 AliSimDigits.cxx:230
 AliSimDigits.cxx:231
 AliSimDigits.cxx:232
 AliSimDigits.cxx:233
 AliSimDigits.cxx:234
 AliSimDigits.cxx:235
 AliSimDigits.cxx:236
 AliSimDigits.cxx:237
 AliSimDigits.cxx:238
 AliSimDigits.cxx:239
 AliSimDigits.cxx:240
 AliSimDigits.cxx:241
 AliSimDigits.cxx:242
 AliSimDigits.cxx:243
 AliSimDigits.cxx:244
 AliSimDigits.cxx:245
 AliSimDigits.cxx:246
 AliSimDigits.cxx:247
 AliSimDigits.cxx:248
 AliSimDigits.cxx:249
 AliSimDigits.cxx:250
 AliSimDigits.cxx:251
 AliSimDigits.cxx:252
 AliSimDigits.cxx:253
 AliSimDigits.cxx:254
 AliSimDigits.cxx:255
 AliSimDigits.cxx:256
 AliSimDigits.cxx:257
 AliSimDigits.cxx:258
 AliSimDigits.cxx:259
 AliSimDigits.cxx:260
 AliSimDigits.cxx:261
 AliSimDigits.cxx:262
 AliSimDigits.cxx:263
 AliSimDigits.cxx:264
 AliSimDigits.cxx:265
 AliSimDigits.cxx:266
 AliSimDigits.cxx:267
 AliSimDigits.cxx:268
 AliSimDigits.cxx:269
 AliSimDigits.cxx:270
 AliSimDigits.cxx:271
 AliSimDigits.cxx:272
 AliSimDigits.cxx:273
 AliSimDigits.cxx:274
 AliSimDigits.cxx:275
 AliSimDigits.cxx:276
 AliSimDigits.cxx:277
 AliSimDigits.cxx:278
 AliSimDigits.cxx:279
 AliSimDigits.cxx:280
 AliSimDigits.cxx:281
 AliSimDigits.cxx:282
 AliSimDigits.cxx:283
 AliSimDigits.cxx:284
 AliSimDigits.cxx:285
 AliSimDigits.cxx:286
 AliSimDigits.cxx:287
 AliSimDigits.cxx:288
 AliSimDigits.cxx:289
 AliSimDigits.cxx:290
 AliSimDigits.cxx:291
 AliSimDigits.cxx:292
 AliSimDigits.cxx:293
 AliSimDigits.cxx:294
 AliSimDigits.cxx:295
 AliSimDigits.cxx:296
 AliSimDigits.cxx:297
 AliSimDigits.cxx:298
 AliSimDigits.cxx:299
 AliSimDigits.cxx:300
 AliSimDigits.cxx:301
 AliSimDigits.cxx:302
 AliSimDigits.cxx:303
 AliSimDigits.cxx:304
 AliSimDigits.cxx:305
 AliSimDigits.cxx:306
 AliSimDigits.cxx:307
 AliSimDigits.cxx:308
 AliSimDigits.cxx:309
 AliSimDigits.cxx:310
 AliSimDigits.cxx:311
 AliSimDigits.cxx:312
 AliSimDigits.cxx:313
 AliSimDigits.cxx:314
 AliSimDigits.cxx:315
 AliSimDigits.cxx:316
 AliSimDigits.cxx:317
 AliSimDigits.cxx:318
 AliSimDigits.cxx:319
 AliSimDigits.cxx:320
 AliSimDigits.cxx:321
 AliSimDigits.cxx:322
 AliSimDigits.cxx:323
 AliSimDigits.cxx:324
 AliSimDigits.cxx:325
 AliSimDigits.cxx:326
 AliSimDigits.cxx:327
 AliSimDigits.cxx:328
 AliSimDigits.cxx:329
 AliSimDigits.cxx:330
 AliSimDigits.cxx:331
 AliSimDigits.cxx:332
 AliSimDigits.cxx:333
 AliSimDigits.cxx:334
 AliSimDigits.cxx:335
 AliSimDigits.cxx:336
 AliSimDigits.cxx:337
 AliSimDigits.cxx:338
 AliSimDigits.cxx:339
 AliSimDigits.cxx:340
 AliSimDigits.cxx:341
 AliSimDigits.cxx:342
 AliSimDigits.cxx:343
 AliSimDigits.cxx:344
 AliSimDigits.cxx:345
 AliSimDigits.cxx:346
 AliSimDigits.cxx:347
 AliSimDigits.cxx:348
 AliSimDigits.cxx:349
 AliSimDigits.cxx:350
 AliSimDigits.cxx:351
 AliSimDigits.cxx:352
 AliSimDigits.cxx:353
 AliSimDigits.cxx:354
 AliSimDigits.cxx:355
 AliSimDigits.cxx:356
 AliSimDigits.cxx:357
 AliSimDigits.cxx:358
 AliSimDigits.cxx:359
 AliSimDigits.cxx:360
 AliSimDigits.cxx:361
 AliSimDigits.cxx:362
 AliSimDigits.cxx:363
 AliSimDigits.cxx:364
 AliSimDigits.cxx:365
 AliSimDigits.cxx:366
 AliSimDigits.cxx:367
 AliSimDigits.cxx:368
 AliSimDigits.cxx:369
 AliSimDigits.cxx:370
 AliSimDigits.cxx:371
 AliSimDigits.cxx:372
 AliSimDigits.cxx:373
 AliSimDigits.cxx:374
 AliSimDigits.cxx:375
 AliSimDigits.cxx:376
 AliSimDigits.cxx:377
 AliSimDigits.cxx:378
 AliSimDigits.cxx:379
 AliSimDigits.cxx:380
 AliSimDigits.cxx:381
 AliSimDigits.cxx:382
 AliSimDigits.cxx:383
 AliSimDigits.cxx:384
 AliSimDigits.cxx:385
 AliSimDigits.cxx:386
 AliSimDigits.cxx:387
 AliSimDigits.cxx:388
 AliSimDigits.cxx:389
 AliSimDigits.cxx:390
 AliSimDigits.cxx:391
 AliSimDigits.cxx:392
 AliSimDigits.cxx:393
 AliSimDigits.cxx:394
 AliSimDigits.cxx:395
 AliSimDigits.cxx:396
 AliSimDigits.cxx:397
 AliSimDigits.cxx:398
 AliSimDigits.cxx:399
 AliSimDigits.cxx:400
 AliSimDigits.cxx:401
 AliSimDigits.cxx:402
 AliSimDigits.cxx:403
 AliSimDigits.cxx:404
 AliSimDigits.cxx:405
 AliSimDigits.cxx:406
 AliSimDigits.cxx:407
 AliSimDigits.cxx:408
 AliSimDigits.cxx:409
 AliSimDigits.cxx:410
 AliSimDigits.cxx:411
 AliSimDigits.cxx:412
 AliSimDigits.cxx:413
 AliSimDigits.cxx:414
 AliSimDigits.cxx:415
 AliSimDigits.cxx:416
 AliSimDigits.cxx:417
 AliSimDigits.cxx:418
 AliSimDigits.cxx:419
 AliSimDigits.cxx:420
 AliSimDigits.cxx:421
 AliSimDigits.cxx:422
 AliSimDigits.cxx:423
 AliSimDigits.cxx:424
 AliSimDigits.cxx:425
 AliSimDigits.cxx:426
 AliSimDigits.cxx:427
 AliSimDigits.cxx:428
 AliSimDigits.cxx:429
 AliSimDigits.cxx:430
 AliSimDigits.cxx:431