Reduce memory used by SDD calibration objects in OCDB (F. Prino)
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 28 May 2008 16:38:59 +0000 (16:38 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 28 May 2008 16:38:59 +0000 (16:38 +0000)
ITS/AliITSDriftSpeedSDD.cxx
ITS/AliITSDriftSpeedSDD.h
ITS/AliITSMapSDD.cxx
ITS/AliITSMapSDD.h
ITS/Calib/DriftSpeedSDD/Run0_9999999_v0_s0.root
ITS/Calib/MapsAnodeSDD/Run0_9999999_v0_s0.root
ITS/Calib/MapsTimeSDD/Run0_9999999_v0_s0.root

index 680febca403b255396c0a4947726857b38faefbc..c5c8d2a936a67ef240b41a1c958e889c379c140b 100644 (file)
@@ -67,5 +67,5 @@ void AliITSDriftSpeedSDD::PrintDriftSpeedParameters() const {
   // printout drift speed parametrization
   printf("Injector event #%d at time %d\n",fEvNum,fTimestamp);
   printf("Coefficients of %d degree poly fit:\n",fPolDeg);
-  for(Int_t i=0; i<fgkMaxPolDeg+1; i++) printf("par[%d]=%f\n",i,fDriftSpeedParam[i]);
+  for(Int_t i=0; i<fgkMaxPolDeg+1; i++) printf("par[%d]=%G\n",i,fDriftSpeedParam[i]);
 }
index 79695cd645f2e5f49ba078788a66d61bf07d56f1..278977f40fa415dcde5b97d7941e0b2b789f7a40 100644 (file)
@@ -36,7 +36,7 @@ class AliITSDriftSpeedSDD : public TObject {
 
   Int_t GetEventNumber() const {return fEvNum;}
   UInt_t GetEventTimestamp() const {return fTimestamp;}
-  Double_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];}
+  Float_t GetDriftSpeedParameter(Int_t i) const {return fDriftSpeedParam[i];}
   Double_t GetDriftSpeedAtAnode(Double_t nAnode) const{
     Double_t drSpeed=fDriftSpeedParam[fgkMaxPolDeg];
     for(Int_t i=fgkMaxPolDeg-1; i>=0; --i) drSpeed=fDriftSpeedParam[i]+nAnode*drSpeed;
@@ -44,11 +44,12 @@ class AliITSDriftSpeedSDD : public TObject {
   }
 
  protected:
-  static const Int_t fgkMaxPolDeg=5; // max. degree of the poly fit
+  static const UShort_t fgkMaxPolDeg=5; // max. degree of the poly fit
   Int_t fEvNum;  // event number of injector event
   UInt_t fTimestamp; // event timestamp
-  Int_t fPolDeg;    // degree of the ploy fit to drift speed vs. anode
-  Double32_t fDriftSpeedParam[fgkMaxPolDeg+1];  // coefficients of the poly fit
-  ClassDef(AliITSDriftSpeedSDD,2);
+  Char_t fPolDeg;    // degree of the ploy fit to drift speed vs. anode
+                     // saved as char since 1 byte is enough
+  Float_t fDriftSpeedParam[fgkMaxPolDeg+1];  // coefficients of the poly fit
+  ClassDef(AliITSDriftSpeedSDD,3);
 };
 #endif
index cef0d2bc8bea2e27770151f423a59f4f64e1f686..661487476f954d5ba1806a14477b924993c3eb60 100644 (file)
@@ -54,7 +54,7 @@ void AliITSMapSDD::SetMap(TH2F* hmap){
   // 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++){
-      fMap[iAn][iDr]=hmap->GetBinContent(iAn+1,iDr+1);
+      SetCellContent(iAn,iDr,hmap->GetBinContent(iAn+1,iDr+1));
     }
   }
 }
@@ -81,7 +81,7 @@ TH2F* AliITSMapSDD::GetMapHisto() const{
   TH2F* hmap=new TH2F(hname,"",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,fMap[iAn][iDr]);
+      hmap->SetBinContent(iAn+1,iDr+1,GetCellContent(iAn,iDr));
     }
   }
   return hmap;
@@ -94,7 +94,7 @@ TH1F* AliITSMapSDD::GetResidualDistr(Float_t dmin, Float_t dmax) const{
   TH1F* hd=new TH1F(hname,"",100,dmin,dmax);
   for(Int_t iAn=0;iAn<fgkNAnodPts; iAn++){
     for(Int_t iDr=0;iDr<fgkNDrifPts; iDr++){
-      hd->Fill(fMap[iAn][iDr]);
+      hd->Fill(GetCellContent(iAn,iDr));
     }
   }
   return hd;
index adb6a246df3238456562f8fa498cc627835668ce..e40198c2910bca4ffbaa05bfbe67e4ea54b2ed19 100644 (file)
@@ -35,11 +35,11 @@ class AliITSMapSDD : public TNamed {
     return kTRUE;
   }
   void SetCellContent(Int_t iAn, Int_t iTb, Float_t devMicron){
-    if(CheckBounds(iAn,iTb)) fMap[iAn][iTb]=devMicron;
+    if(CheckBounds(iAn,iTb)) fMap[iAn][iTb]=(Short_t)(devMicron*10.+0.5);
   }
 
   Float_t GetCellContent(Int_t iAn, Int_t iTb) const {
-    if(CheckBounds(iAn,iTb)) return fMap[iAn][iTb];
+    if(CheckBounds(iAn,iTb)) return (Float_t)fMap[iAn][iTb]/10.;
     else return 0.;
   }
   Float_t GetCorrection(Float_t z, Float_t x, AliITSsegmentationSDD *seg);
@@ -52,8 +52,11 @@ class AliITSMapSDD : public TNamed {
  protected:
   static const Int_t fgkNAnodPts = 256; // number of map points along anodes
   static const Int_t fgkNDrifPts = 72; // number of map points along anodes
-  Float_t fMap[fgkNAnodPts][fgkNDrifPts];   // map of deviations
+  Short_t fMap[fgkNAnodPts][fgkNDrifPts];   // map of deviations
+                                            // stored as Short_t: integer 
+                                            // values from -32000 to 32000
+                                            // in the range -3.2 - 3.2 mm
 
-  ClassDef(AliITSMapSDD,1);
+  ClassDef(AliITSMapSDD,2);
 };
 #endif
index 0e365d094e4053966713fd8ff3e9dd20c5414a03..81539fbd9d2374d22686f35fe3032b2ecac923f4 100644 (file)
Binary files a/ITS/Calib/DriftSpeedSDD/Run0_9999999_v0_s0.root and b/ITS/Calib/DriftSpeedSDD/Run0_9999999_v0_s0.root differ
index 299fc0ab33b18cae52e52a3f48bec407226fad5c..1abe3c5665c3357a2f2913de5f11486d6f68a0e3 100644 (file)
Binary files a/ITS/Calib/MapsAnodeSDD/Run0_9999999_v0_s0.root and b/ITS/Calib/MapsAnodeSDD/Run0_9999999_v0_s0.root differ
index b4caf266040dd956c60bfa8a756459f04dacbacb..bc0fa710b9c82d6b0e76063b29d91c27b688aa89 100644 (file)
Binary files a/ITS/Calib/MapsTimeSDD/Run0_9999999_v0_s0.root and b/ITS/Calib/MapsTimeSDD/Run0_9999999_v0_s0.root differ