]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSDDLRawData.cxx
In Open() and GotoEvent() try the ESD operations first, fallback to run-loader.
[u/mrichter/AliRoot.git] / ITS / AliITSDDLRawData.cxx
index ca7800dc153f85dc736e4a37b723929268f40625..343a5dead82e09df295ae480f6a0385d755ce3fa 100644 (file)
@@ -31,6 +31,7 @@
 #include "AliRawDataHeaderSim.h"
 #include "AliITSRawStreamSPD.h"
 #include "AliITSRawStreamSDD.h"
+#include "AliITSDDLModuleMapSDD.h"
 #include "AliITSRawStreamSSD.h"
 #include "AliITSIntMap.h"
 #include "AliBitPacking.h"
@@ -382,6 +383,7 @@ void AliITSDDLRawData::GetDigitsSPD(TClonesArray *ITSdigits,Int_t mod,Int_t ddl,
 
   Int_t chipLow  = AliITSRawStreamSPD::GetOnlineChipFromOffline(mod,0);
   Int_t chipHigh = AliITSRawStreamSPD::GetOnlineChipFromOffline(mod,159);
+
   if (chipLow>chipHigh) {chipLow  -= 4; chipHigh += 4;}
   UInt_t hs = AliITSRawStreamSPD::GetOnlineHSFromOffline(mod);
 
@@ -416,7 +418,7 @@ void AliITSDDLRawData::GetDigitsSPD(TClonesArray *ITSdigits,Int_t mod,Int_t ddl,
 
       //  insert digit into map...
       // (reverse order of cols and rows as in real raw data)
-      digMap->Insert(chip*256*32+(32-col)*256+(256-row),row);
+      digMap->Insert(chip*256*32+(31-col)*256+(255-row),row);
     }
   }
 
@@ -426,7 +428,7 @@ void AliITSDDLRawData::GetDigitsSPD(TClonesArray *ITSdigits,Int_t mod,Int_t ddl,
     for (UInt_t nHit=0; nHit<nrHits; nHit++) {
       Int_t key = digMap->GetKeyIndex(nHit);
       chip = key/(256*32);
-      Int_t col = 32 - (key%(256*32))/256;
+      Int_t col = 31 - (key%(256*32))/256;
       Int_t row = digMap->GetValIndex(nHit);
 
       if(previousChip==-1) { // first hit
@@ -496,20 +498,20 @@ Int_t AliITSDDLRawData::RawDataSPD(TBranch* branch){
   AliRawDataHeaderSim header;
 
   //loop over DDLs
-  for(Int_t i=0;i<AliDAQ::NumberOfDdls("ITSSPD");i++){
-    strcpy(fileName,AliDAQ::DdlFileName("ITSSPD",i)); //The name of the output file.
+  for(Int_t ddl=0;ddl<AliDAQ::NumberOfDdls("ITSSPD");ddl++){
+    strcpy(fileName,AliDAQ::DdlFileName("ITSSPD",ddl)); //The name of the output file.
     outfile = new AliFstream(fileName);
     //write Dummy DATA HEADER
     UInt_t dataHeaderPosition=outfile->Tellp();
     outfile->WriteBuffer((char*)(&header),sizeof(header));
     //Loops over Modules of a particular DDL
     for (Int_t mod=0; mod<AliITSRawStreamSPD::kModulesPerDDL; mod++){
-      Int_t moduleNumber = AliITSRawStreamSPD::GetModuleNumber(i, mod);
+      Int_t moduleNumber = AliITSRawStreamSPD::GetModuleNumber(ddl, mod);
       digits->Clear();
       branch->GetEvent(moduleNumber);
       //For each Module, buf contains the array of data words in Binary format   
       //fIndex gives the number of 32 bits words in the buffer for each module
-      GetDigitsSPD(digits,mod,i,buf);
+      GetDigitsSPD(digits,moduleNumber,ddl,buf);
       outfile->WriteBuffer((char *)buf,((fIndex+1)*sizeof(UInt_t)));
       for(Int_t i=0;i<(fIndex+1);i++){
        buf[i]=0;
@@ -578,7 +580,7 @@ Int_t AliITSDDLRawData::RawDataSSD(TBranch* branch){
 
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
-Int_t AliITSDDLRawData::RawDataSDD(TBranch* branch){
+Int_t AliITSDDLRawData::RawDataSDD(TBranch* branch, AliITSDDLModuleMapSDD* ddlsdd){
     //This method creates the Raw data files for SDD detectors
   const Int_t kSize=131072; //256*512
   UInt_t buf[kSize];      
@@ -609,7 +611,7 @@ Int_t AliITSDDLRawData::RawDataSDD(TBranch* branch){
 
     //Loops over Modules of a particular DDL
     for (Int_t mod=0; mod<AliITSRawStreamSDD::kModulesPerDDL; mod++){
-      Int_t moduleNumber = AliITSRawStreamSDD::GetModuleNumber(i, mod);
+      Int_t moduleNumber = ddlsdd->GetModuleNumber(i, mod);
       if(moduleNumber!=-1){
        digits->Clear();
        branch->GetEvent(moduleNumber);
@@ -689,4 +691,3 @@ void  AliITSDDLRawData::WriteHit(UInt_t *buf,Int_t RowAddr,Int_t HitAddr,UInt_t
   }//end else
   return;
 }//end WriteHit
-