ROOT logo
/************************************************************************* 
* Copyright(c) 1998-2008, 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: AliTRDarraySignal.cxx 25392 2008-04-23 19:40:29Z cblume $ */

/////////////////////////////////////////////////////////
//                                                     //
// Container Class for Signals                         //
//                                                     //
// Author:                                             //
//   Hermes Leon Vargas (hleon@ikf.uni-frankfurt.de)   //
//                                                     //
/////////////////////////////////////////////////////////

#include <TArray.h>

#include "AliTRDarraySignal.h"
#include "AliTRDfeeParam.h"

ClassImp(AliTRDarraySignal)

Short_t *AliTRDarraySignal::fgLutPadNumbering = 0x0;

//_______________________________________________________________________
AliTRDarraySignal::AliTRDarraySignal()
                  :TObject()
                  ,fNdet(0)
                  ,fNrow(0)
                  ,fNcol(0)
         	  ,fNumberOfChannels(0)
                  ,fNtime(0)
                  ,fNdim(0)  
                  ,fSignal(0)
{

  //
  // AliTRDarraySignal default constructor
  //

  CreateLut();
	   
}

//_______________________________________________________________________
AliTRDarraySignal::AliTRDarraySignal(Int_t nrow, Int_t ncol,Int_t ntime)
                  :TObject()
                  ,fNdet(0)
                  ,fNrow(0)
                  ,fNcol(0)
	          ,fNumberOfChannels(0)
                  ,fNtime(0)
                  ,fNdim(0)
                  ,fSignal(0)
{
  //
  // AliTRDarraySignal constructor
  //

  CreateLut(); 
  Allocate(nrow,ncol,ntime);

}

//_______________________________________________________________________
AliTRDarraySignal::AliTRDarraySignal(const AliTRDarraySignal &d)
                  :TObject()
		  ,fNdet(d.fNdet)
		  ,fNrow(d.fNrow)
		  ,fNcol(d.fNcol)
                  ,fNumberOfChannels(d.fNumberOfChannels)
		  ,fNtime(d.fNtime)
		  ,fNdim(d.fNdim)
		  ,fSignal(0)
{
  //
  // AliTRDarraySignal copy constructor
  //

  fSignal = new Float_t[fNdim];
  memcpy(fSignal, d.fSignal, fNdim*sizeof(Float_t));

}

//_______________________________________________________________________
AliTRDarraySignal::~AliTRDarraySignal()
{
  //
  // AliTRDarraySignal destructor
  //

  delete [] fSignal;
  fSignal=0;  

}

//_______________________________________________________________________
AliTRDarraySignal &AliTRDarraySignal::operator=(const AliTRDarraySignal &d)
{
  //
  // Assignment operator
  //

  if (this==&d) 
    {
      return *this;
    }

  if (fSignal)
    {
      delete [] fSignal;
    }
  fNdet=d.fNdet;
  fNrow=d.fNrow;
  fNcol=d.fNcol;
  fNumberOfChannels = d.fNumberOfChannels;
  fNtime=d.fNtime;
  fNdim=d.fNdim;
  fSignal = new Float_t[fNdim];
  memcpy(fSignal,d.fSignal, fNdim*sizeof(Float_t));

  return *this;

}

//_______________________________________________________________________
void AliTRDarraySignal::Allocate(Int_t nrow, Int_t ncol, Int_t ntime)
{
  //
  // Allocates memory for an AliTRDarraySignal object with dimensions 
  // Row*NumberOfNecessaryMCMs*ADCchannelsInMCM*Time
  // To be consistent with AliTRDarrayADC
  //

  fNrow=nrow;
  fNcol=ncol;
  fNtime=ntime;
  Int_t adcchannelspermcm = AliTRDfeeParam::GetNadcMcm(); 
  Int_t padspermcm = AliTRDfeeParam::GetNcolMcm(); 
  Int_t numberofmcms = fNcol/padspermcm; 
  fNumberOfChannels = numberofmcms*adcchannelspermcm;
  fNdim = nrow*fNumberOfChannels*ntime;
  if (fSignal)   
    {
      delete [] fSignal;
    }
  fSignal = new Float_t[fNdim];
  memset(fSignal,0,sizeof(Float_t)*fNdim);

}

//_______________________________________________________________________
Int_t AliTRDarraySignal::GetOverThreshold(Float_t threshold) const
{
  //
  // Get the number of entries over the threshold 
  //

  Int_t counter=0;
  for(Int_t i=0; i<fNdim; i++)
    {
      if(fSignal[i]>threshold)
	{
	  counter++;
	}
    }
  return counter;

}

//_______________________________________________________________________
void AliTRDarraySignal::Compress(Float_t minval)
{
  //
  // Compress the array, setting values equal or 
  // below minval to zero (minval>=0)
  //

  Int_t counter=0;
  Int_t newDim=0;
  Int_t j;                 
  Int_t r=0;
  Int_t k=0;

  Int_t *longArr = new Int_t[fNdim];  

  if(longArr) 
    {

      //Initialize the array
      memset(longArr,0,sizeof(Int_t)*fNdim);

      for(Int_t i=0;i<fNdim; i++)
        {
          j=0;
          if(fSignal[i]<=minval) 
	    {
	      for(k=i;k<fNdim;k++)
	        {
	          if(fSignal[k]<=minval)
		    {
		      j=j+1;
		      longArr[r]=j;
	  	    }
	          else
		    {
		      break;
		    }
	        } 
	      r=r+1;          
	    }
          i=i+j;
        }

      //Calculate the size of the compressed array
      for(Int_t i=0; i<fNdim;i++)
        {
          if(longArr[i]!=0)   
	    {
	      counter=counter+longArr[i]-1;
	    }
        }
      newDim=fNdim-counter;   //New dimension

      //Fill the buffer of the compressed array
      Float_t* buffer = new Float_t[newDim];
      Int_t counterTwo=0;

      if(buffer)
        {

          //Write the new array
          Int_t g=0;
          for(Int_t i=0; i<newDim; i++)
            {
              if(counterTwo<fNdim)
	        {
	          if(fSignal[counterTwo]>minval)   
	            {
	              buffer[i]=fSignal[counterTwo];
	            }
	          if(fSignal[counterTwo]<=minval)   
	            {
	              buffer[i]=-(longArr[g]);
	              counterTwo=counterTwo+longArr[g]-1;
	              g++;
	            }  
	          counterTwo++;
	        }
            }

          //Copy the buffer
          if(fSignal)
            {
              delete [] fSignal;
              fSignal=0;
            }
          fSignal = new Float_t[newDim];
          fNdim = newDim;
          for(Int_t i=0; i<newDim; i++)
            {
              fSignal[i] = buffer[i]; 
            }

          delete [] buffer;
          buffer=0;

        } 

      delete [] longArr;
      longArr=0;

    }

}

//_______________________________________________________________________
void AliTRDarraySignal::Expand()
{
  //
  // Expand the array
  //

  if(fSignal)
    {

      //Check if the array has not been already expanded
      Int_t verif=0;
      for(Int_t i=0; i<fNdim; i++)
        {
          if(fSignal[i]<0)
	    {
	      verif++;
	    }
        }

      if(verif==0)
        {
          return;
        }

      Int_t dimexp=0;
      Int_t *longArr = new Int_t[fNdim];

      if(longArr)
	{

          memset(longArr,0,sizeof(Int_t)*fNdim);

          Int_t r2=0;
          for(Int_t i=0; i<fNdim;i++)
            {
              if(fSignal[i]<0)  
	        {
	          longArr[r2]=(Int_t)(-fSignal[i]); 
	          r2++;
	        }
            }

          //Calculate new dimensions
          for(Int_t i=0; i<fNdim;i++)
            {
              if(longArr[i]!=0)      
	        {
	          dimexp=dimexp+longArr[i]-1;
	        }
            }
          dimexp=dimexp+fNdim;   //Dimension of the expanded array

          //Write in the buffer the new array
          Int_t contaexp =0;    
          Int_t h=0;
          Float_t* bufferE = new Float_t[dimexp];

          if(bufferE)
	    {

              for(Int_t i=0; i<dimexp; i++)
                {
                  if(fSignal[contaexp]>0)  
	            {
	              bufferE[i]=fSignal[contaexp];
	            }
                  if(fSignal[contaexp]<0)  
 	            {
	              for(Int_t j=0; j<longArr[h];j++)
	                {
	                  bufferE[i+j]=0;
	                }
	              i=i+longArr[h]-1;
	              h++;
	            }
                  contaexp++;
                }

              //Copy the buffer
              delete [] fSignal;
              fSignal=0;
              fSignal = new Float_t[dimexp];
              fNdim = dimexp;
              for(Int_t i=0; i<dimexp; i++)
                {
                  fSignal[i] = bufferE[i]; 
                }

              delete [] bufferE;

	    }

          delete [] longArr;

        }

    }

}
//________________________________________________________________________________
void AliTRDarraySignal::Reset()
{
  //
  // Reset the array, the old contents are deleted
  // The array keeps the same dimensions as before
  //

  memset(fSignal,0,sizeof(Float_t)*fNdim);

}
//________________________________________________________________________________
Float_t AliTRDarraySignal::GetData(Int_t nrow, Int_t ncol, Int_t ntime) const
{
  //
  // Get the data using the pad numbering.
  // To access data using the mcm scheme use instead
  // the method GetDataByAdcCol
  //

  Int_t corrcolumn = fgLutPadNumbering[ncol];

  return fSignal[(nrow*fNumberOfChannels+corrcolumn)*fNtime+ntime];

}
//________________________________________________________________________________
void AliTRDarraySignal::SetData(Int_t nrow, Int_t ncol, Int_t ntime, Float_t value)
{
  //
  // Set the data using the pad numbering.
  // To write data using the mcm scheme use instead
  // the method SetDataByAdcCol
  //

  Int_t colnumb = fgLutPadNumbering[ncol];

  fSignal[(nrow*fNumberOfChannels+colnumb)*fNtime+ntime]=value;

}

//________________________________________________________________________________
void AliTRDarraySignal::CreateLut()
{
  //
  // Initializes the Look Up Table to relate
  // pad numbering and mcm channel numbering
  //

  if(fgLutPadNumbering)  return;
  
   fgLutPadNumbering = new Short_t[AliTRDfeeParam::GetNcol()];
   memset(fgLutPadNumbering,0,sizeof(Short_t)*AliTRDfeeParam::GetNcol());

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