bug fixed
authorbasanta <basanta@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Nov 2010 17:37:11 +0000 (17:37 +0000)
committerbasanta <basanta@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Nov 2010 17:37:11 +0000 (17:37 +0000)
PMD/AliPMDDDLRawData.cxx
PMD/AliPMDDDLRawData.h
PMD/AliPMDDigitizer.cxx

index 18efcb2..faca049 100644 (file)
@@ -225,9 +225,6 @@ void AliPMDDDLRawData::WritePMDRawData(TTree *treeD)
       Int_t  iskip[5];
       UInt_t ddlEndWord[2] = {0xDEADFACE, 0xDEADFACE};
 
-      Int_t bknJunk = 0;
-
-
       for (Int_t iblock = 0; iblock < 2; iblock++)
        {
          // DSP Block Header
@@ -321,8 +318,6 @@ void AliPMDDDLRawData::WritePMDRawData(TTree *treeD)
 
                  outfile->WriteBuffer((char*)patchBusHeaderWord,4*sizeof(UInt_t));
 
-                 bknJunk += patchbusRDL;
-
                  for (Int_t iword = 0; iword < patchbusRDL; iword++)
                    {
                      buffer[iword] = busPatch[busno][iword];
@@ -376,11 +371,8 @@ void AliPMDDDLRawData::GetUMDigitsData(TTree *treeD, Int_t imodule,
   UInt_t mcmno = 0, chno = 0;
   UInt_t adc = 0;
   Int_t  det = 0, smn = 0, irow = 0, icol = 0;
-  Int_t  parity = 0;
+  UInt_t  parity = 0;
   
-  //  Int_t totPatchBus = 0, bPatchBus = 0, ePatchBus = 0;
-  //  Int_t ibus = 0, totmcm = 0, rows = 0, cols = 0, rowe = 0, cole = 0;
-  //  Int_t moduleno = 0;
   Int_t busno = 0;
   Int_t patchBusNo[kMaxBus], mcmperBus[kMaxBus];
   Int_t startRowBus[kMaxBus], startColBus[kMaxBus];
@@ -440,7 +432,9 @@ void AliPMDDDLRawData::GetUMDigitsData(TTree *treeD, Int_t imodule,
       smn    = pmddigit->GetSMNumber();
       irow   = pmddigit->GetRow();
       icol   = pmddigit->GetColumn();
-      adc    = (UInt_t) pmddigit->GetADC();
+      Float_t aadc = pmddigit->GetADC();
+      if (aadc < 0.) aadc = 0.;
+      adc    = (UInt_t) aadc;
 
       TransformS2H(smn,irow,icol);
       
@@ -791,17 +785,17 @@ void AliPMDDDLRawData::GetMCMCh(Int_t imodule, Int_t row, Int_t col,
 
 //____________________________________________________________________________
 
-Int_t AliPMDDDLRawData::ComputeParity(UInt_t baseword)
+UInt_t AliPMDDDLRawData::ComputeParity(UInt_t baseword)
 {
   // Generate the parity bit
 
-  Int_t count = 0;
+  UInt_t count = 0;
   for(Int_t j=0; j<29; j++)
     {
       if (baseword & 0x01 ) count++;
       baseword >>= 1;
     }
-  Int_t parity = count%2;
+  UInt_t parity = count%2;
   return parity;
 }
 //____________________________________________________________________________
index 313d9cd..f3003e5 100644 (file)
@@ -57,11 +57,11 @@ class AliPMDDDLRawData:public TObject
   AliPMDddlinfoData  *fDdlinfo;    //! ddl info data
   AliPMDMappingData  *fMapData;    //! Mapping data
 
-  Int_t ComputeParity(UInt_t baseword);
+  UInt_t ComputeParity(UInt_t baseword);
 
   TClonesArray *fDigits;    //! List of digits
 
-  ClassDef(AliPMDDDLRawData,10)    // To make RAW Data
+  ClassDef(AliPMDDDLRawData,11)    // To make RAW Data
 };
 #endif
 
index 25475dd..39171b4 100644 (file)
@@ -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)
     {