]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSRcuDA1.cxx
Fixes for Coverity defects
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRcuDA1.cxx
index 5b75bdfbb0279b29acf21a467c986cb351d18eaa..4803c6d8354505de819ff54e6d7306a51222cd58 100644 (file)
@@ -13,32 +13,43 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(),
   // Checks existence of histograms which might have been left
   // from the previous runs to continue their filling.
   // Histogram names: module_iX_iZ_gain for TH2 and  module_iX_iZ for TH1.
-  // Root file name: PHOS_ModuleX_Calib.root, where X - module number.
+  // Root file name: PHOS_ModuleX_RCUY_Calib.root, where X - module number,
+  // Y - RCU number. If no RCU specified (rcu<0), file name is simply
+  // PHOS_ModuleX_Calib.root.
   
-  char name[128];
-  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");
 
-  TObjArray* objr = (TObjArray*)fHistoFile->Get(fHistoArray.GetName());
-
   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);
-      if(objr)
-       hist1 = (TH1F*)objr->FindObject(hname);
+      hist1 = (TH1F*)fHistoFile->Get(hname);
       if(hist1) { 
        fHgLgRatio[iX][iZ] = hist1;
        fHistoArray.Add(hist1);
@@ -47,9 +58,11 @@ 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);
-       if(objr)
-         hist2 = (TH2F*)objr->FindObject(hname);
+       
+       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;
          fHistoArray.Add(hist2);
@@ -72,21 +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];
-  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) {
@@ -142,7 +170,7 @@ void AliPHOSRcuDA1::FillHistograms(Float_t e[64][56][2], Float_t t[64][56][2])
     for (Int_t iZ=0; iZ<56; iZ++) {
       
       // HG/LG
-      if(e[iX][iZ][0]>1 && e[iX][iZ][1]>1 ) {
+      if(e[iX][iZ][0]>10. && e[iX][iZ][1]>10. && e[iX][iZ][1]<900.) {
        
        if(fHgLgRatio[iX][iZ]) {
          //printf("iX=%d iZ=%d,e[iX][iZ][1]=%.3f,e[iX][iZ][0]=%.3f, t1=%.3f,t0=%.3f\n",
@@ -172,7 +200,7 @@ void AliPHOSRcuDA1::FillHistograms(Float_t e[64][56][2], Float_t t[64][56][2])
        else {
          sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain);
          sprintf(htitl,"Energy vs TOF for crystal %d_%d_%d and gain %d",fMod,iX,iZ,iGain);
-         fTimeEnergy[iX][iZ][iGain] = new TH2F(hname,htitl,1024,0.,1024.,100,0.,100);
+         fTimeEnergy[iX][iZ][iGain] = new TH2F(hname,htitl,100,0.,1024.,50,0.,50.);
          fTimeEnergy[iX][iZ][iGain]->Fill(e[iX][iZ][iGain],t[iX][iZ][iGain]);
          fHistoArray.Add(fTimeEnergy[iX][iZ][iGain]);
        }