Bug fix related to reconstruction of simulated data in raw format (E. Fragiacomo)
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Dec 2007 18:31:49 +0000 (18:31 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Dec 2007 18:31:49 +0000 (18:31 +0000)
ITS/AliITSClusterFinderV2SSD.cxx
ITS/AliITSRawStreamSSD.cxx
ITS/AliITSRawStreamSSD.h

index 4bbe26f..4d3c5c7 100644 (file)
@@ -220,7 +220,7 @@ void AliITSClusterFinderV2SSD::RawdataToClusters(AliRawReader* rawReader,TClones
   //------------------------------------------------------------
   rawReader->Reset();
   AliITSRawStreamSSD inputSSD(rawReader);
-  rawReader->SelectEquipment(-1,0,15);
+  //  rawReader->SelectEquipment(-1,0,15);
   FindClustersSSD(&inputSSD,clusters);
   
 }
@@ -276,6 +276,7 @@ void AliITSClusterFinderV2SSD::FindClustersSSD(AliITSRawStreamSSD* input,
       next = input->Next();
       ddl=input->GetDDL(); 
       ad=input->GetAD();
+           if((!next)&&(input->flag)) continue;
       adc = input->GetADC(); adc = (adc<6)? adc : adc - 2;
       strip = input->GetStrip();
       if(input->GetSideFlag()) strip=1535-strip;
index 05f67ae..20919b4 100644 (file)
@@ -23,6 +23,7 @@
 ///
 ///////////////////////////////////////////////////////////////////////////////
 
+#include "Riostream.h"
 #include "AliITSRawStreamSSD.h"
 #include "AliRawReader.h"
 #include "AliLog.h"
@@ -216,10 +217,11 @@ AliITSRawStreamSSD::AliITSRawStreamSSD(AliRawReader* rawReader) :
   fddl(0),
   fad(0),
   fadc(0),
-  fData(0)
-{
+  flag(0),
+  fData(0) {
   // create an object to read ITS SSD raw digits
   
+  //  fRawReader->Reset();
   fRawReader->Select("ITSSSD");
 }
 
@@ -228,7 +230,8 @@ Bool_t AliITSRawStreamSSD::Next()
 {
   // read the next raw digit
   // returns kFALSE if there is no digit left
-  
+
+  flag=0;
   fPrevModuleID = fModuleID;
   if (!fRawReader->ReadNextInt(fData)) return kFALSE;
   
@@ -240,18 +243,37 @@ Bool_t AliITSRawStreamSSD::Next()
   UInt_t adc =  (fData >> 24) & 0x0000000F;  // adc range 0 - 5 AND 8 - 13;
   UInt_t relModuleID = (slot-1) * 12;        // 0 - 96
   relModuleID += (adc<6) ? adc : (adc-2);   // adds 0 - 5 AND 6 - 11
+
+
+
+  flag=1;
   // relModuleID range 0 - 108
   if(relModuleID > kModulesPerDDL){
     fRawReader->AddMajorErrorLog(kWrongModuleIdErr,Form("Module ID = %d > %d (max)",relModuleID,kModulesPerDDL));
     AliWarning(Form("Module ID = %d > %d (max)",relModuleID,kModulesPerDDL));
     return kFALSE;
   }
+  if(relModuleID < 0){
+    AliWarning(Form("Module ID = %d < 0",relModuleID));
+    return kFALSE;
+  }
+  flag=0;
+
+
+
   fModuleID = fgkDDLModuleMap[fRawReader->GetDDLID()][relModuleID];
       
   fCoord2 =  (fData >> 12) & 0x000007FF; 
   fCoord1 = (fCoord2 < 768) ? 0 : 1; // strip 0 - 767 are Pside, strip 768 - 1535 are Nside
   fCoord2 = (fCoord1 == 0) ? fCoord2 : (1535 - fCoord2);
 
+  /*
+  cout<<"AliITSRawStreamSSD baseword="<<fData<<" slot="<<slot<<" adc="<<adc
+      <<" relModuleID="<<relModuleID<<" ddl="<<fRawReader->GetDDLID()
+      <<" coord1="<<fCoord1<<" coord2="<<fCoord2<<" signal"<<fSignal
+      <<" fModuleID="<<fModuleID<<endl;
+  */
+
   fadc=adc;
   fad=slot;
   fddl=fRawReader->GetDDLID();
index 923383a..19e81b1 100644 (file)
@@ -45,6 +45,7 @@ class AliITSRawStreamSSD: public AliITSRawStream {
     Int_t fad;
     Int_t fadc;
 
+    Bool_t flag;
 
   protected :
     static const Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL];  // mapping DDL/module -> module number