]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSMapSDD.cxx
Fixes for Coverity warnings (M. van Leeuwen)
[u/mrichter/AliRoot.git] / ITS / AliITSMapSDD.cxx
index 6b730e343abada699d62c98cef562fb7f48c8897..70c8eb6b62c55ed3a7431a00cd4a5581d316a487 100644 (file)
 #include "TH1F.h"
 #include "TH2F.h"
 #include "AliITSMapSDD.h"
-
-const Int_t AliITSMapSDD::fgkNAnodePtsDefault = 1;
-const Int_t AliITSMapSDD::fgkNDriftPtsDefault = 72;
+#include "AliITSCorrMap1DSDD.h"
 
 ClassImp(AliITSMapSDD)
 //______________________________________________________________________
-AliITSMapSDD::AliITSMapSDD():
-TNamed("defaultmap",""),
-fNAnodePts(fgkNAnodePtsDefault),
-fNDriftPts(fgkNDriftPtsDefault)
+AliITSMapSDD::AliITSMapSDD():TNamed("defaultmap","")
 {
   // default constructor
+  for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
+    for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
+      fMap[iAn][iDr]=0;
+    }
+  }
 }
 //______________________________________________________________________
-AliITSMapSDD::AliITSMapSDD(Char_t *mapname):
-TNamed(mapname,""),
-fNAnodePts(fgkNAnodePtsDefault),
-fNDriftPts(fgkNDriftPtsDefault)
+AliITSMapSDD::AliITSMapSDD(Char_t *mapname):TNamed(mapname,"")
 {
   // standard constructor
+  for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
+    for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
+      fMap[iAn][iDr]=0;
+    }
+  }
+}
+
+//______________________________________________________________________
+void AliITSMapSDD::SetMap(TH2F* hmap){
+  // Fill map staring from 2D histo 
+  // with anodes on x axis and drift dist. on y axis
+  for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
+    for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
+      SetCellContent(iAn,iDr,hmap->GetBinContent(iAn+1,iDr+1));
+    }
+  }
 }
 //______________________________________________________________________
 Float_t AliITSMapSDD::GetCorrection(Float_t z, Float_t x, AliITSsegmentationSDD *seg){
@@ -55,20 +68,20 @@ Float_t AliITSMapSDD::GetCorrection(Float_t z, Float_t x, AliITSsegmentationSDD
   Int_t bina =(Int_t) seg->GetAnodeFromLocal(x,z);
   if(bina>nAnodes)  AliError("Wrong anode anumber!");
   if(bina>=nAnodesHybrid) bina-=nAnodesHybrid;
-  Float_t stept = seg->Dx()*kMicronTocm/(Float_t)fNDriftPts;
+  Float_t stept = seg->Dx()*kMicronTocm/(Float_t)fgkNDrifPts;
   Int_t bint = TMath::Abs((Int_t)(x/stept));
-  if(bint==fNDriftPts) bint-=1;
-  if(bint>=fNDriftPts) AliError("Wrong bin number along drift direction!");
+  if(bint==fgkNDrifPts) bint-=1;
+  if(bint>=fgkNDrifPts) AliError("Wrong bin number along drift direction!");
   return kMicronTocm*GetCellContent(bina,bint);
 }
 //______________________________________________________________________
 TH2F* AliITSMapSDD::GetMapHisto() const{
   // Returns a TH2F histogram with map of residuals
-  Char_t hname[50];
-  sprintf(hname,"h%s",GetName());
-  TH2F* hmap=new TH2F(hname,"",fNAnodePts,-0.5,255.5,fNDriftPts,0.,35.);
-  for(Int_t iAn=0;iAn<fNAnodePts; iAn++){
-    for(Int_t iDr=0;iDr<fNDriftPts; iDr++){
+  TString hname;
+  hname.Form("h%s",GetName());
+  TH2F* hmap=new TH2F(hname.Data(),"",fgkNAnodPts,-0.5,255.5,fgkNDrifPts,0.,35.);
+  for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
+    for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
       hmap->SetBinContent(iAn+1,iDr+1,GetCellContent(iAn,iDr));
     }
   }
@@ -77,13 +90,24 @@ TH2F* AliITSMapSDD::GetMapHisto() const{
 //______________________________________________________________________
 TH1F* AliITSMapSDD::GetResidualDistr(Float_t dmin, Float_t dmax) const{
   // Returns a TH1F histogram with distribution of residual
-  Char_t hname[50];
-  sprintf(hname,"hd%s",GetName());
-  TH1F* hd=new TH1F(hname,"",100,dmin,dmax);
-  for(Int_t iAn=0;iAn<fNAnodePts; iAn++){
-    for(Int_t iDr=0;iDr<fNDriftPts; iDr++){
+  TString hname;
+  hname.Form("hd%s",GetName());
+  TH1F* hd=new TH1F(hname.Data(),"",100,dmin,dmax);
+  for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
+    for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
       hd->Fill(GetCellContent(iAn,iDr));
     }
   }
   return hd;
 }
+//______________________________________________________________________
+AliITSCorrMapSDD* AliITSMapSDD::ConvertToNewFormat() const{
+  // convert correction map to new format  
+  Char_t* name=(Char_t*)GetName();
+  AliITSCorrMapSDD* newmap=new AliITSCorrMap1DSDD(name,fgkNDrifPts);
+  for(Int_t i=0; i<fgkNDrifPts; i++){
+    newmap->SetCellContent(0,i,GetCellContent(0,i));
+  }
+  return newmap;
+}
+