ROOT logo
#include <TTree.h>
#include "AliLog.h"
#include "AliITSRecoParam.h"
#include "AliITSReconstructor.h"
#include "AliITSRecPointContainer.h"
#include "AliITSRecPoint.h"
#include "AliRunLoader.h"

ClassImp(AliITSRecPointContainer)

//////////////////////////////////////////////////////////////////////
// Class to store ITS RecPoints for the duration of                 //
// one event processing                                             //
// The container is cleared at each event and new RP                //
// are loaded from TTree                                            //
// Origin masera@to.infn.it  Nov. 12 2009                           //
//////////////////////////////////////////////////////////////////////

/* $Id$ */

AliITSRecPointContainer* AliITSRecPointContainer::fgInstance = 0x0;

//______________________________________________________________________
AliITSRecPointContainer::AliITSRecPointContainer(const AliITSRecoParam* krp):TObject(),
fSPDNModules(0),
fSDDNModules(0),
fSSDNModules(0),
fArray(),
fCurrentEve(-1000),
fNextEvent(-1000),
fActualSize(0),
fDet(""),
fStatusOK(kTRUE){
  // Default constructor

  for(Int_t i=0;i<6;i++)fNClusters[i]=0;
  if(fgkNModules != AliITSgeomTGeo::GetNModules())AliError(Form("The total number of modules is not %d, but %d",fgkNModules,AliITSgeomTGeo::GetNModules()));

  Int_t modperlay[6];
  for(Int_t i=0;i<6;i++)modperlay[i]=AliITSgeomTGeo::GetNDetectors(1+i)*AliITSgeomTGeo::GetNLadders(1+i);
  fSPDNModules=modperlay[0]+modperlay[1];
  fSDDNModules=modperlay[2]+modperlay[3];
  fSSDNModules=modperlay[4]+modperlay[5];
  //  AliInfo(Form("Total modules: %d \n SPD modules=%d , SDD modules=%d, SSD modules=%d ",fgkNModules,fSPDNModules,fSDDNModules,fSSDNModules));

  // kLimits[0:5] --> low fluw; kLimits[6,11] --> High flux
  const Int_t kLimits[12]={25,25,20,20,10,10,300,300,200,200,100,100};
  Int_t offset=0;
  if(!krp){
    AliWarning("AliITSRecoParam is missing. Using defaults");
  }
  else {
    if(krp->GetEventSpecie() == AliRecoParam::kHighMult)offset=6;
  }
  Int_t maxval[6];
  TString values="";
  for(Int_t i=0;i<6;i++){
    maxval[i]=kLimits[i+offset];
    values+=maxval[i];
    values+=" ";
    if(i>0)modperlay[i]+=modperlay[i-1];
  }
  AliInfo(Form("Container created with sizes/layer: %s",values.Data()));
  Int_t layer=0;
  for(Int_t i=0;i<fgkNModules;i++){
    if(i>=modperlay[layer])++layer;
    fArray[i]=new TClonesArray("AliITSRecPoint",maxval[layer]);
  }
}


//______________________________________________________________________
AliITSRecPointContainer::~AliITSRecPointContainer(){
  // Destructor
  for(Int_t i=0;i<fgkNModules;i++){
    if(fArray[i]){
      fArray[i]->Delete();
      delete fArray[i];
    }
  }
}

//______________________________________________________________________
void AliITSRecPointContainer::CookEntries(){
  // From the number of entries in TTree R, the number of ITS subdetectors
  // active for the present run is inferred
  if(fActualSize == fgkNModules)fDet="ALL SPD SDD SSD ";
  if(fActualSize == fSPDNModules) fDet = "SPD ";
  if(fActualSize == fSDDNModules) fDet = "SDD ";
  if(fActualSize == fSSDNModules)fDet = "SSD ";
  if(fActualSize == (fSPDNModules+fSDDNModules)) fDet = "SPD SDD ";
  if(fActualSize == (fSPDNModules+fSSDNModules))fDet = "SPD SSD ";
  if(fActualSize == (fSDDNModules+fSSDNModules))fDet = "SDD SSD ";
  if((!fDet.Contains("SPD")) && (!fDet.Contains("SDD")) &&
     (!fDet.Contains("SSD"))){
    AliError(Form("The number of active modules %d does not correspond to any standard configuration of the detector",fActualSize));
    fStatusOK = kFALSE;
  }
}
//______________________________________________________________________
TClonesArray* AliITSRecPointContainer::FetchClusters(Int_t mod, TTree* tR){
  // retrieves Recpoints for module mod (offline mode: the event number is
  // retrieved via the AliRunLoader object)
  // The actual access to the RP TTree is done as follows:
  // If the AliRunLoader object exists, the event number is taken from it
  // If not, the data member fNextEvent is used. 
  // To set fNextEvent it is necessary to call PrepareToRead in advance.
  // if this is never done, fNextEvent will have its default negative value
  // and an error message will be delivered.
  AliRunLoader* rl = AliRunLoader::Instance();
  Int_t cureve;
  if(rl){
    cureve = rl->GetEventNumber();
  }
  else if(fNextEvent>=0){
    cureve = fNextEvent;
  }
  else {
    AliError("The RunLoader is not defined, PrepareToRead was not invoked. Revise calling sequence. Nothing done");
    return NULL;
  }
  return FetchClusters(mod,tR,cureve);
}
//______________________________________________________________________
TClonesArray* AliITSRecPointContainer::FetchClusters(Int_t mod, TTree* tR,Int_t cureve){
  // retrieves Recpoints for module mod
  // cureve is the current event number. If it is different w.r.t.
  // the event number stored in fCurrentEve, the recpoints are read from
  // the TTree. Otherwise, the RP stored in memory are used. 
  if(cureve != fCurrentEve){
    fCurrentEve = cureve;
    Reset();
    TBranch *branch = NULL;
    branch = tR->GetBranch("ITSRecPoints");
    if(!branch){
      AliError("Branch ITSRecPoints not found on ITS recpoints TTree");
      fStatusOK = kFALSE;
      return NULL;
    }

    fActualSize = branch->GetEntries();
    CookEntries();
    if(fDet.IsNull())return NULL;
    // it is assumed that the filling order of the tree is SPD, SDD, SSD
    // even if one or two subdetector are missing
    Int_t modL1=AliITSgeomTGeo::GetNDetectors(1)*AliITSgeomTGeo::GetNLadders(1);
    if(IsSPDActive()){
      for(Int_t i=0;i<fSPDNModules;i++){
	branch->SetAddress(&fArray[i]);
	branch->GetEvent(i);
	if(i<modL1){
	  fNClusters[0]+=fArray[i]->GetEntries();
	}
	else {
	  fNClusters[1]+=fArray[i]->GetEntries();
	}
      }
    }
    if(IsSDDActive()){
      Int_t start=0;
      if(IsSPDActive())start+=fSPDNModules;
      Int_t modL3=AliITSgeomTGeo::GetNDetectors(3)*AliITSgeomTGeo::GetNLadders(3);
      Int_t counter = fSPDNModules;
      for(Int_t i=start;i<start+fSDDNModules;i++){
	branch->SetAddress(&fArray[counter]);
	++counter;
	branch->GetEvent(i);
	if((i-start)<modL3){
	  fNClusters[2]+=fArray[i]->GetEntries();
	}
	else {
	  fNClusters[3]+=fArray[i]->GetEntries();
	}
      }
    }
    if(IsSSDActive()){
      Int_t start=0;
      if(IsSPDActive())start+=fSPDNModules;
      if(IsSDDActive())start+=fSDDNModules;
      Int_t modL5=AliITSgeomTGeo::GetNDetectors(5)*AliITSgeomTGeo::GetNLadders(5);
      Int_t counter = fSPDNModules+fSDDNModules;
      for(Int_t i=start;i<start+fSSDNModules;i++){
	branch->SetAddress(&fArray[counter]);
	++counter;
	branch->GetEvent(i);
	if((i-start)<modL5){
	  fNClusters[4]+=fArray[i]->GetEntries();
	}
	else {
	  fNClusters[5]+=fArray[i]->GetEntries();
	}
      }
    }
  }

  if(CheckBoundaries(mod)){
    return fArray[mod];
  }
  else {
    AliError(Form("Module %d is out of boundaries",mod));
    return NULL;
  }
  
}
//______________________________________________________________________
UInt_t AliITSRecPointContainer::GetNClustersInLayer(Int_t lay, TTree* tR, Int_t eventN){
  // returns the number of clusters for laier lay
  // layers are numbered from 1 to 6
  if(lay<1 || lay >6){
    AliError(Form("Layer %d is out of range",lay));
    return 0;
  }
  if(eventN>=0){
    FetchClusters(0,tR,eventN);
  }
  else {
    FetchClusters(0,tR);
  }
  return fNClusters[lay-1];
}
//______________________________________________________________________
UInt_t AliITSRecPointContainer::GetNClustersInLayerFast(Int_t lay) const {
  // returns the number of clusters for laier lay
  // layers are numbered from 1 to 6
  // No checks are done on the event number: the numer of clusters 
  // for the event stored in memory is returned
  if(lay<1 || lay >6){
    AliError(Form("Layer %d is out of range",lay));
    return 0;
  }
  return fNClusters[lay-1];
}
//______________________________________________________________________
AliITSRecPointContainer* AliITSRecPointContainer::Instance(const AliITSRecoParam* kptr){
  // returns AliITSRecPointContainer instance (singleton)
  if(!fgInstance){
    if(!kptr){
      fgInstance =  new AliITSRecPointContainer(AliITSReconstructor::GetRecoParam());
    }
    else {
    fgInstance = new AliITSRecPointContainer(kptr);
    }
  }
  return fgInstance;
}

//______________________________________________________________________
void AliITSRecPointContainer::Destroy(){
  // deletes the singleton
  if(fgInstance){
    delete fgInstance;
    fgInstance = NULL;
  }
}

//______________________________________________________________________
void AliITSRecPointContainer::Reset(){
  // Resets the status of the object
  ClearClus(0,fgkNModules);
  fDet="";
  for(Int_t i=0;i<6;i++)fNClusters[i]=0;
}
//______________________________________________________________________
void AliITSRecPointContainer::ResetSPD(){
  // Resets only the entries in fArray concerning SPD
  // This method should be used with care only when the filling
  // of the container is not done from the RP TTree. 
  fCurrentEve = -1000;  // protection: if FetchClusters method will be used
                          // after this call, an ccess to the RP TTree will
                          // be forced
  ClearClus(0,fSPDNModules);
}

//______________________________________________________________________
void AliITSRecPointContainer::ResetSDD(){
  // Resets only the entries in fArray concerning SDD
  // This method should be used with care only when the filling
  // of the container is not done from the RP TTree. 
  fCurrentEve = -1000;  // protection: if FetchClusters method will be used
                          // after this call, an ccess to the RP TTree will
                          // be forced
  Int_t first = fSPDNModules;
  Int_t last = first + fSDDNModules; 
  ClearClus(first,last);
}

//______________________________________________________________________
void AliITSRecPointContainer::ResetSSD(){
  // Resets only the entries in fArray concerning SSD
  // This method should be used with care only when the filling
  // of the container is not done from the RP TTree. 
  fCurrentEve = -1000;  // protection: if FetchClusters method will be used
                          // after this call, an ccess to the RP TTree will
                          // be forced
  Int_t first = fSPDNModules + fSDDNModules;
  Int_t last = first + fSSDNModules; 
  ClearClus(first,last);
}

 AliITSRecPointContainer.cxx:1
 AliITSRecPointContainer.cxx:2
 AliITSRecPointContainer.cxx:3
 AliITSRecPointContainer.cxx:4
 AliITSRecPointContainer.cxx:5
 AliITSRecPointContainer.cxx:6
 AliITSRecPointContainer.cxx:7
 AliITSRecPointContainer.cxx:8
 AliITSRecPointContainer.cxx:9
 AliITSRecPointContainer.cxx:10
 AliITSRecPointContainer.cxx:11
 AliITSRecPointContainer.cxx:12
 AliITSRecPointContainer.cxx:13
 AliITSRecPointContainer.cxx:14
 AliITSRecPointContainer.cxx:15
 AliITSRecPointContainer.cxx:16
 AliITSRecPointContainer.cxx:17
 AliITSRecPointContainer.cxx:18
 AliITSRecPointContainer.cxx:19
 AliITSRecPointContainer.cxx:20
 AliITSRecPointContainer.cxx:21
 AliITSRecPointContainer.cxx:22
 AliITSRecPointContainer.cxx:23
 AliITSRecPointContainer.cxx:24
 AliITSRecPointContainer.cxx:25
 AliITSRecPointContainer.cxx:26
 AliITSRecPointContainer.cxx:27
 AliITSRecPointContainer.cxx:28
 AliITSRecPointContainer.cxx:29
 AliITSRecPointContainer.cxx:30
 AliITSRecPointContainer.cxx:31
 AliITSRecPointContainer.cxx:32
 AliITSRecPointContainer.cxx:33
 AliITSRecPointContainer.cxx:34
 AliITSRecPointContainer.cxx:35
 AliITSRecPointContainer.cxx:36
 AliITSRecPointContainer.cxx:37
 AliITSRecPointContainer.cxx:38
 AliITSRecPointContainer.cxx:39
 AliITSRecPointContainer.cxx:40
 AliITSRecPointContainer.cxx:41
 AliITSRecPointContainer.cxx:42
 AliITSRecPointContainer.cxx:43
 AliITSRecPointContainer.cxx:44
 AliITSRecPointContainer.cxx:45
 AliITSRecPointContainer.cxx:46
 AliITSRecPointContainer.cxx:47
 AliITSRecPointContainer.cxx:48
 AliITSRecPointContainer.cxx:49
 AliITSRecPointContainer.cxx:50
 AliITSRecPointContainer.cxx:51
 AliITSRecPointContainer.cxx:52
 AliITSRecPointContainer.cxx:53
 AliITSRecPointContainer.cxx:54
 AliITSRecPointContainer.cxx:55
 AliITSRecPointContainer.cxx:56
 AliITSRecPointContainer.cxx:57
 AliITSRecPointContainer.cxx:58
 AliITSRecPointContainer.cxx:59
 AliITSRecPointContainer.cxx:60
 AliITSRecPointContainer.cxx:61
 AliITSRecPointContainer.cxx:62
 AliITSRecPointContainer.cxx:63
 AliITSRecPointContainer.cxx:64
 AliITSRecPointContainer.cxx:65
 AliITSRecPointContainer.cxx:66
 AliITSRecPointContainer.cxx:67
 AliITSRecPointContainer.cxx:68
 AliITSRecPointContainer.cxx:69
 AliITSRecPointContainer.cxx:70
 AliITSRecPointContainer.cxx:71
 AliITSRecPointContainer.cxx:72
 AliITSRecPointContainer.cxx:73
 AliITSRecPointContainer.cxx:74
 AliITSRecPointContainer.cxx:75
 AliITSRecPointContainer.cxx:76
 AliITSRecPointContainer.cxx:77
 AliITSRecPointContainer.cxx:78
 AliITSRecPointContainer.cxx:79
 AliITSRecPointContainer.cxx:80
 AliITSRecPointContainer.cxx:81
 AliITSRecPointContainer.cxx:82
 AliITSRecPointContainer.cxx:83
 AliITSRecPointContainer.cxx:84
 AliITSRecPointContainer.cxx:85
 AliITSRecPointContainer.cxx:86
 AliITSRecPointContainer.cxx:87
 AliITSRecPointContainer.cxx:88
 AliITSRecPointContainer.cxx:89
 AliITSRecPointContainer.cxx:90
 AliITSRecPointContainer.cxx:91
 AliITSRecPointContainer.cxx:92
 AliITSRecPointContainer.cxx:93
 AliITSRecPointContainer.cxx:94
 AliITSRecPointContainer.cxx:95
 AliITSRecPointContainer.cxx:96
 AliITSRecPointContainer.cxx:97
 AliITSRecPointContainer.cxx:98
 AliITSRecPointContainer.cxx:99
 AliITSRecPointContainer.cxx:100
 AliITSRecPointContainer.cxx:101
 AliITSRecPointContainer.cxx:102
 AliITSRecPointContainer.cxx:103
 AliITSRecPointContainer.cxx:104
 AliITSRecPointContainer.cxx:105
 AliITSRecPointContainer.cxx:106
 AliITSRecPointContainer.cxx:107
 AliITSRecPointContainer.cxx:108
 AliITSRecPointContainer.cxx:109
 AliITSRecPointContainer.cxx:110
 AliITSRecPointContainer.cxx:111
 AliITSRecPointContainer.cxx:112
 AliITSRecPointContainer.cxx:113
 AliITSRecPointContainer.cxx:114
 AliITSRecPointContainer.cxx:115
 AliITSRecPointContainer.cxx:116
 AliITSRecPointContainer.cxx:117
 AliITSRecPointContainer.cxx:118
 AliITSRecPointContainer.cxx:119
 AliITSRecPointContainer.cxx:120
 AliITSRecPointContainer.cxx:121
 AliITSRecPointContainer.cxx:122
 AliITSRecPointContainer.cxx:123
 AliITSRecPointContainer.cxx:124
 AliITSRecPointContainer.cxx:125
 AliITSRecPointContainer.cxx:126
 AliITSRecPointContainer.cxx:127
 AliITSRecPointContainer.cxx:128
 AliITSRecPointContainer.cxx:129
 AliITSRecPointContainer.cxx:130
 AliITSRecPointContainer.cxx:131
 AliITSRecPointContainer.cxx:132
 AliITSRecPointContainer.cxx:133
 AliITSRecPointContainer.cxx:134
 AliITSRecPointContainer.cxx:135
 AliITSRecPointContainer.cxx:136
 AliITSRecPointContainer.cxx:137
 AliITSRecPointContainer.cxx:138
 AliITSRecPointContainer.cxx:139
 AliITSRecPointContainer.cxx:140
 AliITSRecPointContainer.cxx:141
 AliITSRecPointContainer.cxx:142
 AliITSRecPointContainer.cxx:143
 AliITSRecPointContainer.cxx:144
 AliITSRecPointContainer.cxx:145
 AliITSRecPointContainer.cxx:146
 AliITSRecPointContainer.cxx:147
 AliITSRecPointContainer.cxx:148
 AliITSRecPointContainer.cxx:149
 AliITSRecPointContainer.cxx:150
 AliITSRecPointContainer.cxx:151
 AliITSRecPointContainer.cxx:152
 AliITSRecPointContainer.cxx:153
 AliITSRecPointContainer.cxx:154
 AliITSRecPointContainer.cxx:155
 AliITSRecPointContainer.cxx:156
 AliITSRecPointContainer.cxx:157
 AliITSRecPointContainer.cxx:158
 AliITSRecPointContainer.cxx:159
 AliITSRecPointContainer.cxx:160
 AliITSRecPointContainer.cxx:161
 AliITSRecPointContainer.cxx:162
 AliITSRecPointContainer.cxx:163
 AliITSRecPointContainer.cxx:164
 AliITSRecPointContainer.cxx:165
 AliITSRecPointContainer.cxx:166
 AliITSRecPointContainer.cxx:167
 AliITSRecPointContainer.cxx:168
 AliITSRecPointContainer.cxx:169
 AliITSRecPointContainer.cxx:170
 AliITSRecPointContainer.cxx:171
 AliITSRecPointContainer.cxx:172
 AliITSRecPointContainer.cxx:173
 AliITSRecPointContainer.cxx:174
 AliITSRecPointContainer.cxx:175
 AliITSRecPointContainer.cxx:176
 AliITSRecPointContainer.cxx:177
 AliITSRecPointContainer.cxx:178
 AliITSRecPointContainer.cxx:179
 AliITSRecPointContainer.cxx:180
 AliITSRecPointContainer.cxx:181
 AliITSRecPointContainer.cxx:182
 AliITSRecPointContainer.cxx:183
 AliITSRecPointContainer.cxx:184
 AliITSRecPointContainer.cxx:185
 AliITSRecPointContainer.cxx:186
 AliITSRecPointContainer.cxx:187
 AliITSRecPointContainer.cxx:188
 AliITSRecPointContainer.cxx:189
 AliITSRecPointContainer.cxx:190
 AliITSRecPointContainer.cxx:191
 AliITSRecPointContainer.cxx:192
 AliITSRecPointContainer.cxx:193
 AliITSRecPointContainer.cxx:194
 AliITSRecPointContainer.cxx:195
 AliITSRecPointContainer.cxx:196
 AliITSRecPointContainer.cxx:197
 AliITSRecPointContainer.cxx:198
 AliITSRecPointContainer.cxx:199
 AliITSRecPointContainer.cxx:200
 AliITSRecPointContainer.cxx:201
 AliITSRecPointContainer.cxx:202
 AliITSRecPointContainer.cxx:203
 AliITSRecPointContainer.cxx:204
 AliITSRecPointContainer.cxx:205
 AliITSRecPointContainer.cxx:206
 AliITSRecPointContainer.cxx:207
 AliITSRecPointContainer.cxx:208
 AliITSRecPointContainer.cxx:209
 AliITSRecPointContainer.cxx:210
 AliITSRecPointContainer.cxx:211
 AliITSRecPointContainer.cxx:212
 AliITSRecPointContainer.cxx:213
 AliITSRecPointContainer.cxx:214
 AliITSRecPointContainer.cxx:215
 AliITSRecPointContainer.cxx:216
 AliITSRecPointContainer.cxx:217
 AliITSRecPointContainer.cxx:218
 AliITSRecPointContainer.cxx:219
 AliITSRecPointContainer.cxx:220
 AliITSRecPointContainer.cxx:221
 AliITSRecPointContainer.cxx:222
 AliITSRecPointContainer.cxx:223
 AliITSRecPointContainer.cxx:224
 AliITSRecPointContainer.cxx:225
 AliITSRecPointContainer.cxx:226
 AliITSRecPointContainer.cxx:227
 AliITSRecPointContainer.cxx:228
 AliITSRecPointContainer.cxx:229
 AliITSRecPointContainer.cxx:230
 AliITSRecPointContainer.cxx:231
 AliITSRecPointContainer.cxx:232
 AliITSRecPointContainer.cxx:233
 AliITSRecPointContainer.cxx:234
 AliITSRecPointContainer.cxx:235
 AliITSRecPointContainer.cxx:236
 AliITSRecPointContainer.cxx:237
 AliITSRecPointContainer.cxx:238
 AliITSRecPointContainer.cxx:239
 AliITSRecPointContainer.cxx:240
 AliITSRecPointContainer.cxx:241
 AliITSRecPointContainer.cxx:242
 AliITSRecPointContainer.cxx:243
 AliITSRecPointContainer.cxx:244
 AliITSRecPointContainer.cxx:245
 AliITSRecPointContainer.cxx:246
 AliITSRecPointContainer.cxx:247
 AliITSRecPointContainer.cxx:248
 AliITSRecPointContainer.cxx:249
 AliITSRecPointContainer.cxx:250
 AliITSRecPointContainer.cxx:251
 AliITSRecPointContainer.cxx:252
 AliITSRecPointContainer.cxx:253
 AliITSRecPointContainer.cxx:254
 AliITSRecPointContainer.cxx:255
 AliITSRecPointContainer.cxx:256
 AliITSRecPointContainer.cxx:257
 AliITSRecPointContainer.cxx:258
 AliITSRecPointContainer.cxx:259
 AliITSRecPointContainer.cxx:260
 AliITSRecPointContainer.cxx:261
 AliITSRecPointContainer.cxx:262
 AliITSRecPointContainer.cxx:263
 AliITSRecPointContainer.cxx:264
 AliITSRecPointContainer.cxx:265
 AliITSRecPointContainer.cxx:266
 AliITSRecPointContainer.cxx:267
 AliITSRecPointContainer.cxx:268
 AliITSRecPointContainer.cxx:269
 AliITSRecPointContainer.cxx:270
 AliITSRecPointContainer.cxx:271
 AliITSRecPointContainer.cxx:272
 AliITSRecPointContainer.cxx:273
 AliITSRecPointContainer.cxx:274
 AliITSRecPointContainer.cxx:275
 AliITSRecPointContainer.cxx:276
 AliITSRecPointContainer.cxx:277
 AliITSRecPointContainer.cxx:278
 AliITSRecPointContainer.cxx:279
 AliITSRecPointContainer.cxx:280
 AliITSRecPointContainer.cxx:281
 AliITSRecPointContainer.cxx:282
 AliITSRecPointContainer.cxx:283
 AliITSRecPointContainer.cxx:284
 AliITSRecPointContainer.cxx:285
 AliITSRecPointContainer.cxx:286
 AliITSRecPointContainer.cxx:287
 AliITSRecPointContainer.cxx:288
 AliITSRecPointContainer.cxx:289
 AliITSRecPointContainer.cxx:290
 AliITSRecPointContainer.cxx:291
 AliITSRecPointContainer.cxx:292
 AliITSRecPointContainer.cxx:293
 AliITSRecPointContainer.cxx:294
 AliITSRecPointContainer.cxx:295
 AliITSRecPointContainer.cxx:296
 AliITSRecPointContainer.cxx:297
 AliITSRecPointContainer.cxx:298
 AliITSRecPointContainer.cxx:299