Coverity fixes.
authorpolicheh <policheh@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 Dec 2010 18:00:01 +0000 (18:00 +0000)
committerpolicheh <policheh@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 Dec 2010 18:00:01 +0000 (18:00 +0000)
15 files changed:
PHOS/AliPHOSClusterizerv1.cxx
PHOS/AliPHOSCpvDA1.cxx
PHOS/AliPHOSDA2.cxx
PHOS/AliPHOSDApi0mip.cxx
PHOS/AliPHOSDigitizer.cxx
PHOS/AliPHOSEmcRecPoint.cxx
PHOS/AliPHOSEvalRecPoint.cxx
PHOS/AliPHOSFastRecParticle.cxx
PHOS/AliPHOSGeoUtils.cxx
PHOS/AliPHOSGeometry.cxx
PHOS/AliPHOSRcuDA1.cxx
PHOS/AliPHOSSDigitizer.cxx
PHOS/AliPHOSSupportGeometry.cxx
PHOS/AliPHOSSurvey.cxx
PHOS/AliPHOSTrackSegmentMakerv2.cxx

index 5c693a3..edeb446 100644 (file)
@@ -203,7 +203,11 @@ AliPHOSClusterizerv1::AliPHOSClusterizerv1() :
 {
   // default ctor (to be used mainly by Streamer)
   
-  fDefaultInit = kTRUE ; 
+  fDefaultInit = kTRUE ;
+  
+  for(Int_t i=0; i<53760; i++){
+    fDigitsUsed[i]=0 ;
+  }
 }
 
 //____________________________________________________________________________
@@ -220,6 +224,10 @@ AliPHOSClusterizerv1::AliPHOSClusterizerv1(AliPHOSGeometry *geom) :
 {
   // ctor with the indication of the file where header Tree and digits Tree are stored
   
+  for(Int_t i=0; i<53760; i++){
+    fDigitsUsed[i]=0 ;
+  }
+  
   Init() ;
   fDefaultInit = kFALSE ; 
 }
index 876ee7c..bdcbcf8 100644 (file)
@@ -37,25 +37,28 @@ AliPHOSCpvDA1::AliPHOSCpvDA1(int module) : TNamed(),
   // Root file name: CPV_ModuleX_Calib.root, where X - module number.
   
   char name[128];
-  sprintf(name,"CPV_Module%d_Calib",fMod);
+  TString sname="CPV_Module%d_Calib";
+  snprintf(name,sname.Length(),sname.Data(),fMod);
   SetName(name);
 
   char title[128];
-  sprintf(title,"Calibration Detector Algorithm for CPV module %d",fMod);
+  TString stitle="Calibration Detector Algorithm for CPV module %d";
+  snprintf(title,stitle.Length(),stitle.Data(),fMod);
   SetTitle(title);
 
   char rootname[128];
-  sprintf(rootname,"%s.root",GetName());
+  TString srootname="%s.root";
+  snprintf(rootname,srootname.Length(),srootname.Data(),GetName());
 
   fHistoFile =  new TFile(rootname,"update");
 
   char hname[128];
   TH1F* hist1=0;
+  TString shname="%d_%d_%d";
 
   for(Int_t iX=0; iX<128; iX++) {
     for(Int_t iZ=0; iZ<56; iZ++) {
-
-      sprintf(hname,"%d_%d_%d",fMod,iX,iZ);
+      snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ);
       hist1 = (TH1F*)fHistoFile->Get(hname);
       if(hist1) fCharge[iX][iZ] = hist1;
       else
index f1a6a5b..023a0f3 100644 (file)
@@ -14,13 +14,15 @@ AliPHOSDA2::AliPHOSDA2(int module) : TNamed(),
   // Root file name: PHOS_ModuleX_BCM.root, where X - module number.
   
   char name[128];
-  sprintf(name,"PHOS_Module%d_BCM",fMod);
+  TString sname="PHOS_Module%d_BCM";
+  snprintf(name,sname.Length(),sname.Data(),fMod);
   SetName(name);
 
   SetTitle("Detector Algorithm to check for PHOS channels quality");
 
   char rootname[128];
-  sprintf(rootname,"%s.root",GetName());
+  TString srootname="%s.root";
+  snprintf(rootname,srootname.Length(),srootname.Data(),GetName());
 
   fHistoFile =  new TFile(rootname,"recreate"); // new file!
   
@@ -51,18 +53,20 @@ AliPHOSDA2::AliPHOSDA2(Int_t module, TObjArray* oldHistos) : TNamed(),
   // Do not produce an output file!
 
   char name[128];
-  sprintf(name,"PHOS_Module%d_BCM",fMod);
+  TString sname="PHOS_Module%d_BCM";
+  snprintf(name,sname.Length(),sname.Data(),fMod);
   SetName(name);
 
   SetTitle("Detector Algorithm to check for PHOS channels quality");
 
   char hname[128];
   TH1F* hist1=0;
+  TString shname = "%d_%d_%d_%d";
 
   for(Int_t iX=0; iX<64; iX++) {
     for(Int_t iZ=0; iZ<56; iZ++) {
       for(Int_t iGain=0; iGain<2; iGain++) {
-       sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain);
+       snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain);
        if(oldHistos) 
          hist1 = (TH1F*)oldHistos->FindObject(hname);
        if(hist1) fHQuality[iX][iZ][iGain] = hist1;
@@ -87,12 +91,13 @@ AliPHOSDA2::AliPHOSDA2(const AliPHOSDA2& da) : TNamed(da),
 
   char hname[128];
   TH1F* hist1=0;
+  TString shname = "%d_%d_%d_%d";
 
   for(Int_t iX=0; iX<64; iX++) {
     for(Int_t iZ=0; iZ<56; iZ++) {
       for(Int_t iGain=0; iGain<2; iGain++) {
 
-       sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain);
+       snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain);
        hist1 = (TH1F*)da.fHistoFile->Get(hname);
        if(hist1) fHQuality[iX][iZ][iGain] = new TH1F(*hist1);
        else
index 5b1cc3b..acdbb64 100644 (file)
@@ -37,9 +37,13 @@ AliPHOSDApi0mip::AliPHOSDApi0mip(int module,int iterid,char* fopt) :
   // Constructor
 
   char hname[1024], htitle[1024];
-  sprintf(hname,"AliPHOSDApi0mip_mod%d_iter%d",module,iterid);
+
+  TString shname="AliPHOSDApi0mip_mod%d_iter%d";
+  snprintf(hname,shname.Length(),shname.Data(),module,iterid);
   SetName(hname);
-  sprintf(htitle,"PHOS MIP/pi0 Calibration DA for Module:%d Iteration:%d",module,iterid);
+
+  TString shtitle="PHOS MIP/pi0 Calibration DA for Module:%d Iteration:%d";
+  snprintf(htitle,shtitle.Length(),shtitle.Data(),module,iterid);
   SetTitle(htitle);
 
   fMod = module;
@@ -51,7 +55,9 @@ AliPHOSDApi0mip::AliPHOSDApi0mip(int module,int iterid,char* fopt) :
   fCreateHist = false;
 
   char fname[1024];
-  sprintf(fname,"AliPHOSDApi0mip_mod%d.root",module);
+
+  TString sfname="AliPHOSDApi0mip_mod%d.root";
+  snprintf(fname,sfname.Length(),sfname.Data(),module);
   fTFile = TFile::Open(fname,fopt);
 }
 //----------------------------------------------------------------
@@ -63,7 +69,9 @@ AliPHOSDApi0mip::AliPHOSDApi0mip(const AliPHOSDApi0mip& da):
   // Copy Constructor
 
   char fname[1024], hname[1024], htitle[1024];;
-  sprintf(fname,"%s.root",GetName());
+
+  TString sfname="%s.root";
+  snprintf(fname,sfname.Length(),sfname.Data(),GetName());
   fTFile = TFile::Open(fname,"RECREATE");
   fEvent = 0;
   fEventClustered = false;
@@ -91,8 +99,13 @@ AliPHOSDApi0mip::AliPHOSDApi0mip(const AliPHOSDApi0mip& da):
   if( da.fCreateTree ){
     // Create new ttree instead of copy.
     fCreateTree = true;
-    sprintf(hname,"tevt_mod%d_iter%d",fMod,fIterId);
-    sprintf(htitle,"Calibration for Module:%d Iteration:%d",fMod,fIterId);
+
+    TString shname="tevt_mod%d_iter%d";
+    snprintf(hname,shname.Length(),shname.Data(),fMod,fIterId);
+
+    TString shtitle="Calibration for Module:%d Iteration:%d";
+    snprintf(htitle,shtitle.Length(),shtitle.Data(),fMod,fIterId);
+
     fTTree = new TTree(hname,htitle);
     fTTree->Branch("AliPHOSDATreeEvent","AliPHOSDATreeEvent",&fEvent);
   } else {
index 732d999..f8fa706 100644 (file)
@@ -256,10 +256,12 @@ AliPHOSDigitizer::AliPHOSDigitizer(AliRunDigitizer * rd) :
   // dtor
   AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
   if(rl){                                                                                                                               
-    AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));                                                                 
-    phosLoader->CleanDigitizer() ;
+    AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));    
+    
+    if(phosLoader)
+      phosLoader->CleanDigitizer() ;
   }
-
+  
   delete [] fInputFileNames ; 
   delete [] fEventNames ; 
 
index 9b11b71..0e553a2 100644 (file)
@@ -72,6 +72,10 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint() :
   fMulDigit   = 0 ;  
   fAmp   = 0. ;   
   fLocPos.SetX(1000000.)  ;      //Local position should be evaluated
+
+  fLambda[0] = 0.;
+  fLambda[1] = 0.;
+
 }
 
 //____________________________________________________________________________
@@ -86,6 +90,9 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint(const char * opt) :
   fMulDigit   = 0 ;  
   fAmp   = 0. ;   
   fLocPos.SetX(1000000.)  ;      //Local position should be evaluated
+  
+  fLambda[0] = 0.;
+  fLambda[1] = 0.;
 }
 
 //____________________________________________________________________________
@@ -101,7 +108,11 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint(const AliPHOSEmcRecPoint & rp) :
   fAmp        = rp.fAmp ;   
   if (rp.fMulDigit>0) fEnergyList = new Float_t[rp.fMulDigit] ;
   for(Int_t index = 0 ; index < fMulDigit ; index++) 
-    fEnergyList[index] = rp.fEnergyList[index] ; 
+    fEnergyList[index] = rp.fEnergyList[index] ;
+
+  for(Int_t i=0; i<2; i++) {
+    fLambda[i] = rp.fLambda[i];
+  }
 }
 
 //____________________________________________________________________________
index aab9010..d97708a 100644 (file)
@@ -74,7 +74,9 @@ AliPHOSEvalRecPoint::AliPHOSEvalRecPoint(Bool_t cpv, AliPHOSEvalRecPoint* parent
     Fatal("ctor", "Couldn't find working pool") ; 
   }
 
-  fParent = wPool->IndexOf((TObject*)parent);
+  if(wPool)
+    fParent = wPool->IndexOf((TObject*)parent);
+
   fChi2Dof = parent->Chi2Dof();
 
   if(cpv) {
index de56102..35142d9 100644 (file)
@@ -51,6 +51,11 @@ AliPHOSFastRecParticle::AliPHOSFastRecParticle() :
   fType(0)
 {
   // ctor
+
+  for(Int_t i=0; i<AliPID::kSPECIESN; i++) {
+    fPID[i] = -111.;
+  }
+  
 }
 
 //____________________________________________________________________________
@@ -79,7 +84,12 @@ AliPHOSFastRecParticle::AliPHOSFastRecParticle() :
   fVt          = rp.fVt;
   fPolarTheta  = rp.fPolarTheta;
   fPolarPhi    = rp.fPolarPhi;
-  fParticlePDG = rp.fParticlePDG; 
+  fParticlePDG = rp.fParticlePDG;
+
+  for(Int_t i=0; i<AliPID::kSPECIESN; i++) {
+    fPID[i] = rp.fPID[i];
+  }
 }
 
 //____________________________________________________________________________
@@ -110,7 +120,11 @@ AliPHOSFastRecParticle::AliPHOSFastRecParticle() :
   fPolarTheta  = p.fPolarTheta;
   fPolarPhi    = p.fPolarPhi;
   fParticlePDG = p.fParticlePDG; 
-
+  
+  for(Int_t i=0; i<AliPID::kSPECIESN; i++) {
+    fPID[i] = p.fPID[i];
+  }
+  
 }
 
 //____________________________________________________________________________
index cd13736..2f10ee8 100644 (file)
@@ -56,6 +56,19 @@ AliPHOSGeoUtils::AliPHOSGeoUtils():
 {
     // default ctor 
     // must be kept public for root persistency purposes, but should never be called by the outside world
+  
+  fXtlArrSize[0]=0.;   
+  fXtlArrSize[1]=0.;                                                                           
+  fXtlArrSize[2]=0.; 
+  
+  for(Int_t mod=0; mod<5; mod++){
+    fEMCMatrix[mod]=0 ;
+    for(Int_t istrip=0; istrip<224; istrip++)
+      fStripMatrix[mod][istrip]=0 ;
+    fCPVMatrix[mod]=0;
+    fPHOSMatrix[mod]=0 ;
+  }
+
 }  
 
 //____________________________________________________________________________
@@ -580,7 +593,8 @@ const TGeoHMatrix * AliPHOSGeoUtils::GetMatrixForCPV(Int_t mod)const {
   if(gGeoManager){ 
     char path[255] ;
     //now apply possible shifts and rotations
-    sprintf(path,"/ALIC_1/PHOS_%d/PCPV_1",mod) ;
+    TString spath = "/ALIC_1/PHOS_%d/PCPV_1";
+    snprintf(path,spath.Length(),spath.Data(),mod) ;
     if (!gGeoManager->cd(path)){
       AliWarning(Form("Geo manager can not find path %s \n",path));
       return 0 ;
@@ -605,8 +619,11 @@ const TGeoHMatrix * AliPHOSGeoUtils::GetMatrixForPHOS(Int_t mod)const {
 
   //If GeoManager exists, take matrixes from it
   if(gGeoManager){
+
     char path[255] ;
-    sprintf(path,"/ALIC_1/PHOS_%d",mod) ;
+    TString spath = "/ALIC_1/PHOS_%d";
+    snprintf(path,spath.Length(),spath.Data(),mod) ;
+
     if (!gGeoManager->cd(path)){
       AliWarning(Form("Geo manager can not find path %s \n",path));
       return 0 ;
index 070e3fa..0fae4bf 100644 (file)
@@ -61,6 +61,11 @@ AliPHOSGeometry::AliPHOSGeometry() :
     // default ctor 
     // must be kept public for root persistency purposes, but should never be called by the outside world
     fgGeom          = 0 ;
+
+    fPHOSParams[0] = 0.;
+    fPHOSParams[1] = 0.;
+    fPHOSParams[2] = 0.;
+    fPHOSParams[3] = 0.;
 }  
 
 //____________________________________________________________________________
@@ -244,18 +249,20 @@ void AliPHOSGeometry::GetGlobalPHOS(const AliPHOSRecPoint* recPoint, TVector3 &
   char path[100] ; 
   Double_t dy ;
   if(tmpPHOS->IsEmc()){
-    sprintf(path,"/ALIC_1/PHOS_%d/PEMC_1/PCOL_1/PTIO_1/PCOR_1/PAGA_1/PTII_1",tmpPHOS->GetPHOSMod()) ;
+    TString spath="/ALIC_1/PHOS_%d/PEMC_1/PCOL_1/PTIO_1/PCOR_1/PAGA_1/PTII_1";
+    snprintf(path,spath.Length(),spath.Data(),tmpPHOS->GetPHOSMod()) ;
 //    sprintf(path,"/ALIC_1/PHOS_%d",tmpPHOS->GetPHOSMod()) ;
     dy=fCrystalShift ;
   }
   else{
-    sprintf(path,"/ALIC_1/PHOS_%d/PCPV_1",tmpPHOS->GetPHOSMod()) ;
+    TString spath="/ALIC_1/PHOS_%d/PCPV_1";
+    snprintf(path,spath.Length(),spath.Data(),tmpPHOS->GetPHOSMod()) ;
     dy= GetCPVBoxSize(1)/2. ; //center of CPV module 
   }
   Double_t pos[3]={gpos.X(),gpos.Y()-dy,gpos.Z()} ;
   if(tmpPHOS->IsEmc())
     pos[2]=-pos[2] ; //Opposite z directions in EMC matrix and local frame!!!
-  Double_t posC[3];
+  Double_t posC[3] = {};
   //now apply possible shifts and rotations
   if (!gGeoManager->cd(path)){
     AliFatal("Geo manager can not find path \n");
index 18b9139..4803c6d 100644 (file)
@@ -17,15 +17,23 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(),
   // Y - RCU number. If no RCU specified (rcu<0), file name is simply
   // PHOS_ModuleX_Calib.root.
   
-  char name[128];
-  if(rcu<0) sprintf(name,"PHOS_Module%d_Calib",fMod);
-  else sprintf(name,"PHOS_Module%d_RCU%d_Calib",fMod,fRCU);
-  SetName(name);
+  char name[128]; TString sname;
 
+  if(rcu<0) { 
+    sname="PHOS_Module%d_Calib";
+    snprintf(name,sname.Length(),sname.Data(),fMod);
+  }
+  else {
+    sname="PHOS_Module%d_RCU%d_Calib";
+    snprintf(name,sname.Length(),sname.Data(),fMod,fRCU);
+  }
+
+  SetName(name);
   SetTitle("Calibration Detector Algorithm");
 
-  char rootname[128];
-  sprintf(rootname,"%s.root",GetName());
+  char rootname[128]; 
+  TString srootname="%s.root";
+  snprintf(rootname,srootname.Length(),srootname.Data(),GetName());
 
   fHistoFile =  new TFile(rootname,"update");
   fHistoArray.SetName("histo_container");
@@ -33,11 +41,14 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(),
   char hname[128];
   TH1F* hist1=0;
   TH2F* hist2=0;
+  TString shname;
 
   for(Int_t iX=0; iX<64; iX++) {
     for(Int_t iZ=0; iZ<56; iZ++) {
+      
+      shname = "%d_%d_%d";
+      snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ);
 
-      sprintf(hname,"%d_%d_%d",fMod,iX,iZ);
       hist1 = (TH1F*)fHistoFile->Get(hname);
       if(hist1) { 
        fHgLgRatio[iX][iZ] = hist1;
@@ -47,7 +58,10 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(),
        fHgLgRatio[iX][iZ] = 0;
 
       for(Int_t iGain=0; iGain<2; iGain++) {
-       sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain);
+       
+       shname = "%d_%d_%d_%d";
+       snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain);
+       
        hist2 = (TH2F*)fHistoFile->Get(hname);
        if(hist2) {
          fTimeEnergy[iX][iZ][iGain] = hist2;
@@ -71,22 +85,33 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu, TObjArray* oldTimeEnergy)
   // oldTimeEnergy is an array of histograms kept from the previous run.
   // By default the final histograms will not be saved to the root file.
 
-  char name[128];
-  if(rcu<0) sprintf(name,"PHOS_Module%d_Calib",fMod);
-  else sprintf(name,"PHOS_Module%d_RCU%d_Calib",fMod,fRCU);
-  SetName(name);
+  char name[128]; TString sname;
+
+  if(rcu<0) {
+    sname="PHOS_Module%d_Calib";
+    snprintf(name,sname.Length(),sname.Data(),fMod);
+  }
+  else {
+    sname="PHOS_Module%d_RCU%d_Calib";
+    snprintf(name,sname.Length(),sname.Data(),fMod,fRCU);
+  }
   
+  SetName(name);
   SetTitle("Calibration Detector Algorithm");
+  
   fHistoArray.SetName("histo_container");
   
   char hname[128];
   TH1F* hist1=0;
   TH2F* hist2=0;
+  TString shname;
 
   for(Int_t iX=0; iX<64; iX++) {
     for(Int_t iZ=0; iZ<56; iZ++) {
       
-      sprintf(hname,"%d_%d_%d",fMod,iX,iZ);
+      shname = "%d_%d_%d";
+      snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ);
+      
       if(oldTimeEnergy)
        hist1 = (TH1F*)oldTimeEnergy->FindObject(hname);
       if(hist1) {
@@ -97,7 +122,10 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu, TObjArray* oldTimeEnergy)
         fHgLgRatio[iX][iZ] = 0;
       
       for(Int_t iGain=0; iGain<2; iGain++) {
-        sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain);
+       
+        shname = "%d_%d_%d_%d";
+        snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain);
+       
        if(oldTimeEnergy)
          hist2 = (TH2F*)oldTimeEnergy->FindObject(hname);
         if(hist2) {
index 78fe69d..9c6aaa9 100644 (file)
@@ -152,7 +152,8 @@ AliPHOSSDigitizer::~AliPHOSSDigitizer() {
   if(rl){
     AliPHOSLoader * phosLoader = 
       dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
-    phosLoader->CleanSDigitizer() ;
+    if(phosLoader)
+      phosLoader->CleanSDigitizer() ;
   }
 }
 
index 656164e..cb832c6 100644 (file)
@@ -51,6 +51,10 @@ AliPHOSSupportGeometry::AliPHOSSupportGeometry() :
   fRailPart3[1] =    5.0;
   fRailPart3[2] = fRailLength;
 
+  fRailPos[0] = 0.;
+  fRailPos[1] = 0.;
+  fRailPos[2] = 0.;
+
   fRailOuterSize[0] = fRailPart1[0];
   fRailOuterSize[1] = fRailPart1[1]*2 + fRailPart2[1] + fRailPart3[1];
   fRailOuterSize[2] = fRailLength;
index 2d8e0b7..06a0483 100644 (file)
@@ -104,6 +104,11 @@ AliPHOSSurvey::AliPHOSSurvey(const TString &txtFileName)
   Double_t *zReal = new Double_t[fStrNum * 2];//3
 
   for (Int_t i = 0; i < fStrNum * 2; ++i) {
+    xReal[i] = 0.;
+    zReal[i] = 0.;
+  }
+  
+  for (Int_t i = 0; i < fStrNum * 2; ++i) {
     if (!inputFile) {
       AliError("Error while reading input file.");
       delete [] xReal;
index 6eb2920..7df3d11 100644 (file)
@@ -101,6 +101,8 @@ AliPHOSTrackSegmentMakerv2::AliPHOSTrackSegmentMakerv2() :
   fTrackSegments(NULL)
 {
   // default ctor (to be used mainly by Streamer)
+
+  for(Int_t i=0; i<5; i++)fNtpcTracks[i]=0 ;
   InitParameters() ; 
 }
 
@@ -120,6 +122,8 @@ AliPHOSTrackSegmentMakerv2::AliPHOSTrackSegmentMakerv2(AliPHOSGeometry *geom) :
   fTrackSegments(NULL)
 {
   // ctor
+  for(Int_t i=0; i<5; i++)fNtpcTracks[i]=0 ;
+
   InitParameters() ; 
   Init() ;
   fESD = 0;