Add range for RandomEMC, RandomCPV
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 28 Jul 2006 17:25:11 +0000 (17:25 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 28 Jul 2006 17:25:11 +0000 (17:25 +0000)
PHOS/AliPHOSCalibData.cxx
PHOS/AliPHOSCalibData.h
PHOS/macros/CalibrationDB/AliPHOSSetCDB.C

index 588af79f25c98a8c86c3b86fff7a57fc2d98b82d..8b7ba83b06a8eaceadf54b5aee9f78a61a252096 100644 (file)
@@ -273,10 +273,11 @@ void AliPHOSCalibData::SetADCpedestalCpv(Int_t module, Int_t column, Int_t row,
 }
 
 //________________________________________________________________
-void AliPHOSCalibData::RandomEmc()
+void AliPHOSCalibData::RandomEmc(Float_t ccMin, Float_t ccMax)
 {
   // Create decalibrated EMC with calibration coefficients and pedestals
   // randomly distributed within hard-coded limits
+  // Default spread of calibration parameters is Cmax/Cmin = 4, (Cmax-Cmin)/2 = 1
 
   if(fCalibDataEmc) delete fCalibDataEmc;
   fCalibDataEmc = new AliPHOSEmcCalibData("PHOS-EMC");
@@ -289,7 +290,7 @@ void AliPHOSCalibData::RandomEmc()
   for(Int_t module=1; module<6; module++) {
     for(Int_t column=1; column<57; column++) {
       for(Int_t row=1; row<65; row++) {
-        adcChannelEmc =rn.Uniform(0.5,1.5); // Cmax/Cmin = 4, (Cmax-Cmin)/2 = 1
+        adcChannelEmc =rn.Uniform(ccMin,ccMax);
         adcPedestalEmc=rn.Uniform(0.0,0.0); // 0 spread of pedestals
         fCalibDataEmc->SetADCchannelEmc(module,column,row,adcChannelEmc);
         fCalibDataEmc->SetADCpedestalEmc(module,column,row,adcPedestalEmc);
@@ -300,10 +301,11 @@ void AliPHOSCalibData::RandomEmc()
 }
 
 //________________________________________________________________
-void AliPHOSCalibData::RandomCpv()
+void AliPHOSCalibData::RandomCpv(Float_t ccMin, Float_t ccMax)
 {
   // Create decalibrated CPV with calibration coefficients and pedestals
   // randomly distributed within hard-coded limits
+  // Default spread of calibration parameters is  0.0012 +- 25%
 
   if(fCalibDataCpv) delete fCalibDataCpv;
   fCalibDataCpv = new AliPHOSCpvCalibData("PHOS-CPV");
@@ -316,7 +318,7 @@ void AliPHOSCalibData::RandomCpv()
   for(Int_t module=1; module<6; module++) {
     for(Int_t column=1; column<57; column++) {
       for(Int_t row=1; row<129; row++) {
-       adcChannelCpv =rn.Uniform(0.0009,0.0015); // 0.0012 +- 25%
+       adcChannelCpv =rn.Uniform(ccMin,ccMax);
         adcPedestalCpv=rn.Uniform(0.0048,0.0192); // Ped[max]/Ped[min] = 4, <Ped> = 0.012
         fCalibDataCpv->SetADCchannelCpv(module,column,row,adcChannelCpv);
         fCalibDataCpv->SetADCpedestalCpv(module,column,row,adcPedestalCpv);
index 418785bedee6c7dffd51a9aca910a5ee91d63a97..bf7173edc1975ad88656628619547cdc551e2cb9 100644 (file)
@@ -28,8 +28,8 @@ class AliPHOSCalibData: public TNamed {
   virtual void Print(Option_t *option = "") const; 
   
   void CreateNew();
-  void RandomEmc();
-  void RandomCpv();
+  void RandomEmc(Float_t ccMin=0.5   , Float_t ccMax=1.5);
+  void RandomCpv(Float_t ccMin=0.0009, Float_t ccMax=0.0015);
 
   Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const;
   Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const;
index a78e6510bf4b6cde41487315b3e0044edfa78994..7df4a8361be2d090f79e4cc5a8c053cc103ab045 100644 (file)
@@ -36,12 +36,17 @@ void AliPHOSSetCDB()
                  "Set random decalibration calibration coefficients");
   menu->AddButton("Set calibration equal to invers decalibration coefficients","SetCC(2)",
                  "Set calibration coefficients inverse to decalibration ones");
+  menu->AddButton("Residual calibration","SetCC(3)",
+                 "Set residual decalibration calibration coefficients");
+
   menu->AddButton("Read equal CC","GetCC(0)",
                  "Read initial equal calibration coefficients");
   menu->AddButton("Read random CC","GetCC(1)",
                  "Read random decalibration calibration coefficients");
   menu->AddButton("Read inverse CC","GetCC(2)",
                  "Read calibration coefficients inverse to decalibration ones");
+  menu->AddButton("Read residual CC","GetCC(3)",
+                 "Read residial calibration coefficients");
   menu->Show();
 }
 
@@ -132,31 +137,14 @@ void SetCC(Int_t flag=0)
     }
   }
   else if (flag == 3) {
-    // First read decalibration DB
-    DBFolder  ="local://DeCalibDB";
+    DBFolder  ="local://ResidualCalibDB";
     firstRun  =  0;
-    lastRun   = 10;
-    objFormat = "PHOS decalibration pedestals and ADC gain factors (5x64x56)";
+    lastRun   =  999999;
+    objFormat = "PHOS residual ADC gain factors (5x64x56)";
+    
     cdb = new AliPHOSCalibData();    
-
-    for (Int_t module=1; module<=nMod; module++) {
-      for (Int_t column=1; column<=nCol; column++) {
-       for (Int_t row=1; row<=nRow; row++) {
-         cdb->SetADCchannelEmc(module,column,row,2.);
-         cdb->SetADCpedestalEmc(module,column,row,0.5);
-       }
-      }
-    }
-
-    for (Int_t module=1; module<=nMod; module++) {
-      for (Int_t column=1; column<=nCol*2; column++) {
-       for (Int_t row=1; row<=nRow; row++) {
-         cdb->SetADCchannelCpv(module,column,row,3.);
-         cdb->SetADCpedestalCpv(module,column,row,1.5);
-       }
-      }
-    }
+    cdb->RandomEmc(0.98,1.02);
+    cdb->RandomCpv(0.00115,0.00125);
   }
   
   //Store calibration data into database
@@ -199,6 +187,10 @@ void GetCC(Int_t flag=0)
     DBFolder  ="local://InverseCalibDB";
     runNumber = 200;
   }
+  else if (flag == 2) {
+    DBFolder  ="local://ResidualCalibDB";
+    runNumber = 0;
+  }
 
   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
   AliCDBManager::Instance()->SetSpecificStorage("PHOS",DBFolder.Data());
@@ -215,8 +207,7 @@ void GetCC(Int_t flag=0)
   cPed ->Divide(1,5);
   cGain->Divide(1,5);
 
-//   for (Int_t module=1; module<=nMod; module++) {
-  for (Int_t module=1; module<=1; module++) {
+  for (Int_t module=1; module<=nMod; module++) {
     TString namePed="hPed";
     namePed+=module;
     TString titlePed="Pedestals in module ";