]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCDigitizer.cxx
New method to get the ratio between the expected and actual cluster shape. Will be...
[u/mrichter/AliRoot.git] / TPC / AliTPCDigitizer.cxx
index cfad412b4b67e94331034da75eed78b4c544b262..da806e16859c30ea1aee309a436fd6a719e511b6 100644 (file)
 #include "AliSimDigits.h"
 #include "AliLog.h"
 
+#include "AliTPCcalibDB.h"
+#include "AliTPCCalPad.h"
+#include "AliTPCCalROC.h"
+
 ClassImp(AliTPCDigitizer)
 
 //___________________________________________
-AliTPCDigitizer::AliTPCDigitizer() :AliDigitizer()
+  AliTPCDigitizer::AliTPCDigitizer() :AliDigitizer(),fDebug(0)
 {
+  //
 // Default ctor - don't use it
-  fDebug =0;
+//
+  
 }
 
 //___________________________________________
 AliTPCDigitizer::AliTPCDigitizer(AliRunDigitizer* manager) 
-    :AliDigitizer(manager)
+  :AliDigitizer(manager),fDebug(0)
 {
+  //
 // ctor which should be used
-  fDebug =0;
+//  
   AliDebug(2,"(AliRunDigitizer* manager) was processed");
 }
 
@@ -177,6 +184,7 @@ void AliTPCDigitizer::ExecFast(Option_t* option)
   param->SetZeroSup(2);
 
   Int_t zerosup = param->GetZeroSup(); 
+  AliTPCCalPad * gainTPC = AliTPCcalibDB::Instance()->GetPadGainFactor(); 
   //
   //Loop over segments of the TPC
     
@@ -188,7 +196,7 @@ void AliTPCDigitizer::ExecFast(Option_t* option)
       cerr<<"AliTPC warning: invalid segment ID ! "<<segmentID<<endl;
       continue;
      }
-
+    AliTPCCalROC * gainROC = gainTPC->GetCalROC(sec);  // pad gains per given sector
     digrow->SetID(segmentID);
 
     Int_t nrows = 0;
@@ -260,13 +268,18 @@ void AliTPCDigitizer::ExecFast(Option_t* option)
            ptr[i]++;
          }
         q/=16.;  //conversion factor
+       Float_t gain = gainROC->GetValue(row,elem/nrows);  // get gain for given - pad-row pad
+       if (gain<0.5){
+         printf("problem\n");
+       }
+       q*= gain;
         //       Float_t noise  = gRandom->Gaus(0,param->GetNoise()*param->GetNoiseNormFac());  
         Float_t noise  = pTPC->GetNoise();
         q+=noise;
         q=TMath::Nint(q);
         if (q > zerosup)
          { 
-          if(q > param->GetADCSat()) q = (Short_t)(param->GetADCSat());
+          if(q >= param->GetADCSat()) q = (Short_t)(param->GetADCSat() - 1);
           //digrow->SetDigitFast((Short_t)q,rows,col);  
           *pdig1 =Short_t(q);
           for (Int_t tr=0;tr<3;tr++)
@@ -371,6 +384,7 @@ void AliTPCDigitizer::ExecSave(Option_t* option)
   Int_t zerosup = param->GetZeroSup();
   //Loop over segments of the TPC
     
+  AliTPCCalPad * gainTPC = AliTPCcalibDB::Instance()->GetPadGainFactor();
   for (Int_t n=0; n<nentries; n++) {
     rl = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(0));
     gime = rl->GetLoader("TPCLoader");
@@ -378,7 +392,8 @@ void AliTPCDigitizer::ExecSave(Option_t* option)
 
     digarr[0]->ExpandBuffer();
     digarr[0]->ExpandTrackBuffer();
-           
+
+
     for (Int_t i=1;i<nInputs; i++){ 
 //      fManager->GetInputTreeTPCS(i)->GetEntryWithIndex(digarr[0]->GetID(),digarr[0]->GetID());      
       rl = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(i));
@@ -397,6 +412,7 @@ void AliTPCDigitizer::ExecSave(Option_t* option)
       continue;
     }
 
+    AliTPCCalROC * gainROC = gainTPC->GetCalROC(sec);  // pad gains per given sector
     digrow->SetID(digarr[0]->GetID());
 
     Int_t nrows = digarr[0]->GetNRows();
@@ -434,12 +450,14 @@ void AliTPCDigitizer::ExecSave(Option_t* option)
         }
        q/=16.;  //conversion factor
        //       Float_t noise  = gRandom->Gaus(0,param->GetNoise()*param->GetNoiseNormFac());  
+       Float_t gain = gainROC->GetValue(row,col);
+       q*= gain;
        Float_t noise  = pTPC->GetNoise();
        q+=noise;
         q=TMath::Nint(q);
         if (q > zerosup){ 
          
-         if(q > param->GetADCSat()) q = (Short_t)(param->GetADCSat());
+         if(q >= param->GetADCSat()) q = (Short_t)(param->GetADCSat() - 1);
          digrow->SetDigitFast((Short_t)q,rows,col);  
          // *pdig1 =Short_t(q);
          for (Int_t tr=0;tr<3;tr++){