ALIROOT-5433 Transition to CDHv3 in HLT
[u/mrichter/AliRoot.git] / HLT / EMCAL / AliHLTEMCALDigitMakerComponent.cxx
index 10d14a6..ddcb261 100644 (file)
@@ -14,7 +14,6 @@
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-
 #include "AliHLTEMCALDigitMakerComponent.h"
 #include "AliHLTCaloDigitMaker.h"
 #include "AliHLTCaloDigitDataStruct.h"
@@ -125,25 +124,29 @@ AliHLTEMCALDigitMakerComponent::GetOutputDataSize(unsigned long& constBase, doub
 
 int 
 AliHLTEMCALDigitMakerComponent::DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
-                                       AliHLTComponentTriggerData& /*trigData*/, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
+                                       AliHLTComponentTriggerData& /* trigData */, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
                                        std::vector<AliHLTComponentBlockData>& outputBlocks)
 {
+
+  //patch in order to skip calib events
+  if(! IsDataEvent()) return 0;
+
   //see header file for documentation
   UInt_t offset           = 0; 
   UInt_t mysize           = 0;
   Int_t digitCount        = 0;
   Int_t ret               = 0;
-
+  
   const AliHLTComponentBlockData* iter = 0; 
   unsigned long ndx; 
-
+  
   UInt_t specification = 0;
   AliHLTCaloChannelDataHeaderStruct* tmpChannelData = 0;
   
   //  fDigitMakerPtr->SetDigitHeaderPtr(reinterpret_cast<AliHLTCaloDigitHeaderStruct*>(outputPtr));
-
+  
   fDigitMakerPtr->SetDigitDataPtr(reinterpret_cast<AliHLTCaloDigitDataStruct*>(outputPtr));
-
+  
   for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
     {
       iter = blocks+ndx;
@@ -159,39 +162,45 @@ AliHLTEMCALDigitMakerComponent::DoEvent(const AliHLTComponentEventData& evtData,
        {
          AliHLTEMCALMapper mapper(iter->fSpecification);
          module = mapper.GetModuleFromSpec(iter->fSpecification);
+         
+         if (module>=0) {
          
-         for(Int_t x = 0; x < NXCOLUMNSMOD ; x++) // PTH  
-           {
-
-          for(Int_t z = 0; z <  NZROWSMOD ; z++) // PTH
-             {
-              fDigitMakerPtr->SetBadChannel(x, z, fPedestalData->IsBadChannel(module, z+1, x+1));
-           }
-        }
-        //delete fBadChannelMap;
-        fBCMInitialised = true;
-      }
-  
+           for(Int_t x = 0; x < NXCOLUMNSMOD ; x++) // PTH  
+             for(Int_t z = 0; z <  NZROWSMOD ; z++) // PTH
+        // FR 
+               fDigitMakerPtr->SetBadChannel(x, z, fPedestalData->IsBadChannel(module, z, x));
+           //delete fBadChannelMap;  
+           fBCMInitialised = true;
+         }
+         else 
+           HLTError("Error setting pedestal with module value of %d", module);
+         
+       }
+      
       if(!fGainsInitialised)
        {
-         AliHLTEMCALMapper mapper(iter->fSpecification);;
-         module = mapper.GetModuleFromSpec(iter->fSpecification);
          
-         for(Int_t x = 0; x < NXCOLUMNSMOD; x++)   //PTH
-           {
+         AliHLTEMCALMapper mapper(iter->fSpecification);
+         module = mapper.GetModuleFromSpec(iter->fSpecification);
+           
+           if (module>=0) {
+             
+             for(Int_t x = 0; x < NXCOLUMNSMOD; x++)   //PTH
+               for(Int_t z = 0; z < NZROWSMOD; z++)   //PTH
+                 // FR setting gains 
+                 fDigitMakerPtr->SetGain(x, z, HGLGFACTOR, fCalibData->GetADCchannel(module, z, x));
              
-            for(Int_t z = 0; z < NZROWSMOD; z++)   //PTH
-              {
-                // FR setting gains 
-              fDigitMakerPtr->SetGain(x, z, HGLGFACTOR, fCalibData->GetADCchannel(module, z, x));
+             fGainsInitialised = true;
            }
-        }
-        fGainsInitialised = true;
-      }
+           else
+             HLTError("Error setting gains with module value of %d", module);
+       }
+      
       specification |= iter->fSpecification;
       tmpChannelData = reinterpret_cast<AliHLTCaloChannelDataHeaderStruct*>(iter->fPtr);
     
       ret = fDigitMakerPtr->MakeDigits(tmpChannelData, size-(digitCount*sizeof(AliHLTCaloDigitDataStruct)));
+      
       if(ret == -1) 
        {
          HLTError("Trying to write over buffer size");