#include "AliLoader.h"
#include "AliConfig.h"
#include "AliMagF.h"
-#include "AliRunDigitizer.h"
+#include "AliDigitizationInput.h"
#include "AliDigitizer.h"
#include "AliHeader.h"
#include "AliCDBManager.h"
return *this;
}
//____________________________________________________________________________
-AliPMDDigitizer::AliPMDDigitizer(AliRunDigitizer* manager):
- AliDigitizer(manager),
+AliPMDDigitizer::AliPMDDigitizer(AliDigitizationInput* digInput):
+ AliDigitizer(digInput),
fRunLoader(0),
fPMDHit(0),
fPMD(0),
}
//____________________________________________________________________________
-void AliPMDDigitizer::Exec(Option_t *option)
+void AliPMDDigitizer::Digitize(Option_t *option)
{
// Does the event merging and digitization
const char *cdeb = strstr(option,"deb");
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)
// 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++)
{
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();
// 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++)
{
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)
{