]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PMD/AliPMDDigitizer.cxx
update from Marco
[u/mrichter/AliRoot.git] / PMD / AliPMDDigitizer.cxx
index 8392d621553051a40310b4edd313af79bb612df5..d77c940d4097a40d4e2ba42434259466fcbee49c 100644 (file)
@@ -40,7 +40,7 @@
 #include "AliLoader.h"
 #include "AliConfig.h"
 #include "AliMagF.h"
-#include "AliRunDigitizer.h"
+#include "AliDigitizationInput.h"
 #include "AliDigitizer.h"
 #include "AliHeader.h"
 #include "AliCDBManager.h"
@@ -128,8 +128,8 @@ AliPMDDigitizer & AliPMDDigitizer::operator=(const AliPMDDigitizer& /*digitizer*
   return *this;
 }
 //____________________________________________________________________________
-AliPMDDigitizer::AliPMDDigitizer(AliRunDigitizer* manager):
-  AliDigitizer(manager),
+AliPMDDigitizer::AliPMDDigitizer(AliDigitizationInput* digInput):
+  AliDigitizer(digInput),
   fRunLoader(0),
   fPMDHit(0),
   fPMD(0),
@@ -863,7 +863,7 @@ void AliPMDDigitizer::SDigits2Digits(Int_t ievt)
 
 }
 //____________________________________________________________________________
-void AliPMDDigitizer::Exec(Option_t *option)
+void AliPMDDigitizer::Digitize(Option_t *option)
 {
   // Does the event merging and digitization
   const char *cdeb = strstr(option,"deb");
@@ -872,17 +872,17 @@ void AliPMDDigitizer::Exec(Option_t *option)
       AliDebug(100," *** PMD Exec is called ***");
     }
 
-  Int_t ninputs = fManager->GetNinputs();
+  Int_t ninputs = fDigInput->GetNinputs();
   AliDebug(1,Form("Number of files to be processed = %d",ninputs));
   ResetCellADC();
 
   for (Int_t i = 0; i < ninputs; i++)
     {
-      Int_t troffset = fManager->GetMask(i);
+      Int_t troffset = fDigInput->GetMask(i);
       MergeSDigits(i, troffset);
     }
 
-  fRunLoader = AliRunLoader::GetRunLoader(fManager->GetOutputFolderName());
+  fRunLoader = AliRunLoader::GetRunLoader(fDigInput->GetOutputFolderName());
   fPMD  = (AliPMD*)gAlice->GetDetector("PMD");
   fPMDLoader = fRunLoader->GetLoader("PMDLoader");
   if (fPMDLoader == 0x0)
@@ -1064,7 +1064,7 @@ void AliPMDDigitizer::TrackAssignment2CPVCell()
                  // This block handles if a cell is fired
                  // many times by many tracks
                  status1  = new Int_t[nn];
-                 status2  = new Int_t[nn];
+                 status2  = new Int_t[2*nn];
                  trnarray = new Int_t[nn];
                  for (iz = 0; iz < nn; iz++)
                    {
@@ -1175,7 +1175,7 @@ void AliPMDDigitizer::TrackAssignment2CPVCell()
 void AliPMDDigitizer::MergeSDigits(Int_t filenumber, Int_t troffset)
 {
   // merging sdigits
-  fRunLoader = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(filenumber));
+  fRunLoader = AliRunLoader::GetRunLoader(fDigInput->GetInputFolderName(filenumber));
   fPMDLoader = fRunLoader->GetLoader("PMDLoader");
   fPMDLoader->LoadSDigits("read");
   TTree* treeS = fPMDLoader->TreeS();
@@ -1325,7 +1325,7 @@ void AliPMDDigitizer::TrackAssignment2Cell()
                  // This block handles if a cell is fired
                  // many times by many tracks
                  status1  = new Int_t[nn];
-                 status2  = new Int_t[nn];
+                 status2  = new Int_t[2*nn];
                  trnarray = new Int_t[nn];
                  for (iz = 0; iz < nn; iz++)
                    {
@@ -1452,9 +1452,13 @@ void AliPMDDigitizer::MeV2ADC(Float_t mev, Float_t & adc) const
   Float_t sigrr     = 0.605016 - 0.000273*adc12bit + 6.54e-8*adc12bit*adc12bit;
   Float_t adcwithrr = gRandom->Gaus(adc12bit,sigrr);
 
-  if(adcwithrr < 1600.0)
+  if(adcwithrr < 0.)
     {
-      adc = (Float_t) adcwithrr;
+      adc = 0.;
+    }
+  else if(adcwithrr >= 0. && adcwithrr < 1600.0)
+    {
+      adc = adcwithrr;
     }
   else if (adcwithrr >= 1600.0)
     {