]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSBeamTestDigSPD.cxx
new SDD preprocessor + removal of eff C++ warning (base) - E. Crescio
[u/mrichter/AliRoot.git] / ITS / AliITSBeamTestDigSPD.cxx
index 9e666590517c5c8cad89ebcc0e40ab488454ca91..d0da3f9a4722b8ceac1b88c5962152fc3828889f 100644 (file)
@@ -6,15 +6,16 @@
 //                                                //
 ////////////////////////////////////////////////////
 
-
 #include "AliITSdigitSPD.h"
-#include "AliRawReaderDate.h"
+#include "AliRawReader.h"
+#include "AliRawReader.h"
 #include "AliRawDataHeader.h"
 #include "AliITSRawStreamSPD.h"
 #include "AliITSBeamTestDigSPD.h"
-#include "AliITSBeamTest.h"
-
-
+#include "AliITSgeom.h"
+#include <TBranch.h>
+#include <TTree.h>
+#include "AliITSEventHeader.h"
 ClassImp(AliITSBeamTestDigSPD)
 
 
@@ -55,31 +56,47 @@ void AliITSBeamTestDigSPD::Exec(Option_t* /*opt*/)
   //Reads raw data for SPD, fill SPD digits tree
 
 
-  TBranch* branch = fTreeD->GetBranch("ITSDigitSPD");
-  TClonesArray** newdigits = new TClonesArray*[fBt->GetNSPD()];
+  if(!fITSgeom){
+    Error("Exec","fITSgeom is null!");
+    return;
+  }
+  TBranch* branch = fTreeD->GetBranch("ITSDigitsSPD");
+
+  Int_t nsdd=0;
+  Int_t nspd=0;
+  Int_t nssd=0;
+  for(Int_t nlay=1;nlay<=fITSgeom->GetNlayers();nlay++){
+    for(Int_t nlad=1;nlad<=fITSgeom->GetNladders(nlay);nlad++){
+      for(Int_t ndet=1;ndet<=fITSgeom->GetNdetectors(nlay);ndet++){
+       Int_t index=fITSgeom->GetModuleIndex(nlay,nlad,ndet);
+       if(fITSgeom->GetModuleTypeName(index)=="kSPD") nspd++;
+       if(fITSgeom->GetModuleTypeName(index)=="kSDD") nsdd++;
+       if(fITSgeom->GetModuleTypeName(index)=="kSSD") nssd++;
+      }
+    }
+  }
+  Int_t maxn=nspd+nsdd+nssd;
+
+  TClonesArray** newdigits = new TClonesArray*[maxn];
 
-   Int_t* idig = new Int_t[fBt->GetNSPD()];
 
-  
+  Int_t* idig = new Int_t[maxn];
 
-  for (Int_t idet =0; idet < fBt->GetNSPD();idet++){
+  for (Int_t idet =0; idet <maxn;idet++){
      newdigits[idet]=new TClonesArray("AliITSdigitSPD");
      idig[idet]=0;  
    }
   
 
-
-  //cout <<"still here"<< endl;
-  AliITSRawStreamSPD str(fReaderDate);
+  AliITSRawStreamSPD str(fReader);
 
-  fReaderDate->SelectEquipment(17,211,211);
+  fReader->SelectEquipment(17,211,211);
 
   while(str.Next()){  
 
-    const AliRawDataHeader* rdh = fReaderDate->GetDataHeader();
-    UChar_t blockAttributes = fReaderDate->GetBlockAttributes();     
-    UInt_t statusBits = fReaderDate->GetStatusBits();     
+    const AliRawDataHeader* rdh = fReader->GetDataHeader();
+    UChar_t blockAttributes = fReader->GetBlockAttributes();     
+    UInt_t statusBits = fReader->GetStatusBits();     
     UInt_t orbitNumber = rdh->fEventID2;                        
     UShort_t  bunchCross = rdh->fEventID1;      
       // UInt_t DataSize = rdh->fSize;                               
@@ -96,15 +113,7 @@ void AliITSBeamTestDigSPD::Exec(Option_t* /*opt*/)
     Int_t row = str.GetRow();
     Int_t col = str.GetColumn();
 
-
-
-    //    if (modID == 0 || modID == 1) {
-    // cout <<"Mod ID " << modID  <<" Row : "<< row << "Col : " << col << endl; 
-     //}
-
-
-    const Int_t kdgt[3]={row,col,1};
-    
+    const Int_t kdgt[3]={col,row,1};
     //    newdigits = new TClonesArray*[fBt->GetNSPD()];
 
     new ((*newdigits[modID])[idig[modID]]) AliITSdigitSPD(kdgt);
@@ -133,21 +142,21 @@ void AliITSBeamTestDigSPD::Exec(Option_t* /*opt*/)
     } // while(str.Next());
     
 
-    for(Int_t n=0;n<fBt->GetNSPD();n++){
+    for(Int_t n=0;n<maxn;n++){
       branch->SetAddress(&newdigits[n]);
-      branch->Fill();  
+      branch->Fill(); 
+
    }
     
-    fTreeD->SetEntries(fBt->GetNSDD()+fBt->GetNSPD()+fBt->GetNSSD());
+    fTreeD->SetEntries(maxn);
   
        
-  
-    fReaderDate->Reset();
+    fReader->Reset();
     fTreeD->AutoSave();
    
 
-    for(Int_t n=0;n<fBt->GetNSPD();n++){
-    delete newdigits[n];
+    for(Int_t n=0;n<maxn;n++){
+      delete newdigits[n];
     }
 
     delete[] newdigits;