Fix bug affecting the data decoding in the DAs (F. Prino)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Sep 2008 14:30:37 +0000 (14:30 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 12 Sep 2008 14:30:37 +0000 (14:30 +0000)
ITS/AliITSRawStreamSDD.cxx
ITS/AliITSRawStreamSDD.h
ITS/AliITSRawStreamSDDCompressed.cxx
ITS/AliITSRawStreamSDDCompressed.h

index c0ad643ef65fdde1e35198bf1a69bd7378ae3db7..75f2e8136bade331cc11a95a916611a7762be626 100644 (file)
@@ -42,8 +42,6 @@ fEightBitSignal(0),
 fDecompressAmbra(kTRUE)
 {
 // create an object to read ITS SDD raw digits
-  fDDLModuleMap=new AliITSDDLModuleMapSDD();
-  fDDLModuleMap->SetDefaultMap();
   Reset();
   for(Int_t im=0;im<kSDDModules;im++){
     fLowThresholdArray[im][0]=0;
@@ -199,7 +197,6 @@ Bool_t AliITSRawStreamSDD::Next()
          fCoord1 = fAnode[fCarlosId][fChannel];
          fCoord2 = fTimeBin[fCarlosId][fChannel];
          fTimeBin[fCarlosId][fChannel]++;
-         //printf("Data read, Module=%d , Anode=%d , Time=%d , Charge=%d\n",fModuleID,fCoord1,fCoord2,fSignal);
          return kTRUE;
        }
       }
index a17bc97519ddb929ec79dacc5f8a48003c4fa63a..d0ca61e641f62411c6143bcfcaff361274541564 100644 (file)
@@ -37,12 +37,15 @@ class AliITSRawStreamSDD: public AliITSRawStream {
     virtual void     SetDecompressAmbra(Bool_t deco=kTRUE){
       fDecompressAmbra=deco;
     }
-    virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){fDDLModuleMap->SetDDLMap(ddlsdd);}
+    virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){
+      if(!fDDLModuleMap) fDDLModuleMap=new AliITSDDLModuleMapSDD();
+      fDDLModuleMap->SetDDLMap(ddlsdd);}
     virtual void     SetLowCarlosThreshold(Int_t th, Int_t i)
       {fLowThreshold[i]=th;}
     virtual void     SetZeroSuppLowThreshold(Int_t iMod, Int_t iSid, Int_t th) 
       {fLowThresholdArray[iMod][iSid]=th;}
     Int_t   GetModuleNumber(UInt_t iDDL, UInt_t iModule) const {
+      if(!fDDLModuleMap) return kSPDModules+1; // dummy module number if the DDL map is not set (case of DAs)
       return fDDLModuleMap->GetModuleNumber(iDDL,iModule);
     }
     virtual void     Reset(); 
index 11bf8ac23806fe4869ccfae6083509bc38063c8d..d08f8f9343592d69800b0c30eb7f312e4d1fa24d 100644 (file)
@@ -81,8 +81,6 @@ fJitter(0),
 fDDL(0)
 {
 // create an object to read ITS SDD raw digits
-  fDDLModuleMap=new AliITSDDLModuleMapSDD();
-  fDDLModuleMap->SetDefaultMap();
   for(Int_t im=0;im<kSDDModules;im++){
     fLowThresholdArray[im][0]=0;
     fLowThresholdArray[im][1]=0;
index 9e09868046d4aff1d92ec11bc15de6bb8e443dcf..368f0415b50e1b24edf4a855796d918a3c7b24e5 100644 (file)
@@ -33,10 +33,14 @@ class AliITSRawStreamSDDCompressed: public AliITSRawStream {
     virtual Int_t    ReadJitter() const {return 0;}
     virtual Int_t    GetCarlosId() const {return fCarlosId;}
 
-    virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){fDDLModuleMap->SetDDLMap(ddlsdd);}
+    virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){
+      if(!fDDLModuleMap) fDDLModuleMap=new AliITSDDLModuleMapSDD();
+      fDDLModuleMap->SetDDLMap(ddlsdd);
+    }
     virtual void     SetZeroSuppLowThreshold(Int_t iMod, Int_t iSid, Int_t th) 
       {fLowThresholdArray[iMod][iSid]=th;}
     Int_t   GetModuleNumber(UInt_t iDDL, UInt_t iModule) const {
+      if(!fDDLModuleMap) return kSPDModules+1; // dummy module number if the DDL map is not set (case of DAs)
       return fDDLModuleMap->GetModuleNumber(iDDL,iModule);
     }