]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changed the data format to pass to the Make methods
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Oct 2007 11:00:27 +0000 (11:00 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Oct 2007 11:00:27 +0000 (11:00 +0000)
PHOS/AliPHOSQualAssDataMaker.cxx
PHOS/AliPHOSQualAssDataMaker.h
STEER/AliQualAssDataMaker.cxx
STEER/AliQualAssDataMaker.h
STEER/AliReconstruction.cxx

index 59dac0f2034be71bcb7f1b7794671feab15499ba..e769076ca679244740a7b4f60f9cf3554daa0da7 100644 (file)
@@ -27,6 +27,7 @@
 #include <TFile.h> 
 #include <TH1F.h> 
 #include <TH1I.h> 
+#include <TH2F.h> 
 
 // --- Standard library ---
 
@@ -41,6 +42,7 @@
 #include "AliPHOSEmcRecPoint.h" 
 #include "AliPHOSRecParticle.h" 
 #include "AliPHOSTrackSegment.h" 
+#include "AliPHOSRawDecoder.h"
 
 ClassImp(AliPHOSQualAssDataMaker)
            
@@ -144,9 +146,26 @@ void AliPHOSQualAssDataMaker::InitRecPoints()
 void AliPHOSQualAssDataMaker::InitRaws()
 {
   // create Raws histograms in Raws subdir
-  TH1F * h0 = new TH1F("hEmcPhosRaws",    "EMCA Raws in PHOS",       100, 0., 100.) ; 
+  TH1I * h0 = new TH1I("hPhosModules",    "Hits in EMCA PHOS modules",       6, 0, 6) ; 
   h0->Sumw2() ;
   Add2RawsList(h0, 0) ;
+  const Int_t modMax = 5 ; 
+  TH2I * h1[modMax] ; 
+  for (Int_t mod = 0; modMax < 5; mod++) {
+   char name[16] ; 
+   sprintf(name, "hPHOSMod%d", mod) ; 
+   char title[32] ; 
+   sprintf(title, "Raws x Columns for PHOS module %d", mod) ;  
+   h1[mod] = new TH2I(name, title, 64, -5, 59, 76, -5, 71) ; 
+   Add2RawsList(h1[mod], mod+1) ;
+  }
+  TH1F * h6 = new TH1F("hPhosRawtime", "Time of raw hits in PHOS", 100, 0, 100.) ; 
+  h6->Sumw2() ;
+  Add2RawsList(h6, 6) ;
+  TH1F * h7 = new TH1F("hPhosRawEnergy", "Energy of raw hits in PHOS", 1100, 0, 1023) ; 
+  h7->Sumw2() ;
+  Add2RawsList(h7, 7) ;
 }
 
 //____________________________________________________________________________ 
@@ -187,38 +206,28 @@ void AliPHOSQualAssDataMaker::MakeESDs(AliESDEvent * esd)
 }
 
 //____________________________________________________________________________
-void AliPHOSQualAssDataMaker::MakeHits(TObject * data)
+void AliPHOSQualAssDataMaker::MakeHits(TClonesArray * hits)
 {
   //make QA data from Hits
 
-  TClonesArray * hits = dynamic_cast<TClonesArray *>(data) ; 
-  if (!hits) {
-    AliError("Wrong type of hits container") ; 
-  } else {
     GetHitsData(1)->Fill(hits->GetEntriesFast()) ; 
     TIter next(hits) ; 
     AliPHOSHit * hit ; 
     while ( (hit = dynamic_cast<AliPHOSHit *>(next())) ) {
       GetHitsData(0)->Fill( hit->GetEnergy()) ;
     }
-  } 
 }
 //____________________________________________________________________________
-void AliPHOSQualAssDataMaker::MakeDigits(TObject * data)
+void AliPHOSQualAssDataMaker::MakeDigits(TClonesArray * digits)
 {
   // makes data from Digits
 
-  TClonesArray * digits = dynamic_cast<TClonesArray *>(data) ; 
-  if (!digits) {
-    AliError("Wrong type of digits container") ; 
-  } else {
     GetDigitsData(1)->Fill(digits->GetEntriesFast()) ; 
     TIter next(digits) ; 
     AliPHOSDigit * digit ; 
     while ( (digit = dynamic_cast<AliPHOSDigit *>(next())) ) {
       GetDigitsData(0)->Fill( digit->GetEnergy()) ;
     }  
-  }
 }
 
 //____________________________________________________________________________
@@ -236,9 +245,21 @@ void AliPHOSQualAssDataMaker::MakeDigits(TObject * data)
 // }
 
 //____________________________________________________________________________
-void AliPHOSQualAssDataMaker::MakeRaws(TObject * data)
+void AliPHOSQualAssDataMaker::MakeRaws(AliRawReader* rawReader)
 {
-    GetRawsData(1)->Fill(99) ; 
+  rawReader->Reset() ; 
+  AliPHOSRawDecoder decoder(rawReader);
+  while (decoder.NextDigit()) {
+   Int_t module  = decoder.GetModule() ;
+   Int_t row     = decoder.GetRow() ;
+   Int_t col     = decoder.GetColumn() ;
+   Double_t time = decoder.GetTime() ;
+   Double_t energy  = decoder.GetEnergy() ;          
+   GetRawsData(0)->Fill(module) ; 
+   GetRawsData(module+1)->Fill(row, col) ; 
+   GetRawsData(6)->Fill(time) ; 
+   GetRawsData(7)->Fill(energy) ; 
+  } 
 }
 
 //____________________________________________________________________________
@@ -286,21 +307,16 @@ void AliPHOSQualAssDataMaker::MakeRecPoints(TTree * clustersTree)
 }
 
 //____________________________________________________________________________
-void AliPHOSQualAssDataMaker::MakeSDigits(TObject * data)
+void AliPHOSQualAssDataMaker::MakeSDigits(TClonesArray * sdigits)
 {
   // makes data from SDigits
   
-  TClonesArray * sdigits = dynamic_cast<TClonesArray *>(data) ; 
-  if (!sdigits) {
-    AliError("Wrong type of sdigits container") ; 
-  } else {
-    GetSDigitsData(1)->Fill(sdigits->GetEntriesFast()) ; 
+       GetSDigitsData(1)->Fill(sdigits->GetEntriesFast()) ; 
     TIter next(sdigits) ; 
     AliPHOSDigit * sdigit ; 
     while ( (sdigit = dynamic_cast<AliPHOSDigit *>(next())) ) {
       GetSDigitsData(0)->Fill( sdigit->GetEnergy()) ;
     } 
-  }
 }
 
 //____________________________________________________________________________
index 664195ccd0e680777ef07ca5ce3363f936c3e915..abb7c3d7b4385a29d04d9b6d82498af8eafcb95f 100644 (file)
@@ -41,12 +41,12 @@ private:
   //virtual void   InitTrackSegments() ; 
   virtual void   InitSDigits() ; 
   virtual void   MakeESDs(AliESDEvent * esd) ;
-  virtual void   MakeHits(TObject * hits) ;
-  virtual void   MakeDigits(TObject * digits) ; 
+  virtual void   MakeHits(TClonesArray * hits) ;
+  virtual void   MakeDigits(TClonesArray * digits) ; 
   // virtual void   MakeRecParticles(TTree * recpar) ; 
   virtual void   MakeRecPoints(TTree * recpo) ; 
-  virtual void   MakeRaws(TObject * data) ; 
-  virtual void   MakeSDigits(TObject * sigits) ; 
+  virtual void   MakeRaws(AliRawReader* rawReader) ; 
+  virtual void   MakeSDigits(TClonesArray * sigits) ; 
   //virtual void   MakeTrackSegments(TTree *ts ) ; 
   virtual void   StartOfDetectorCycle() ; 
 
index ad3ba66cd6615376005a067dde325116936beb1e..844904c72be2be47e103bce2bc6f251669b56e7e 100644 (file)
@@ -28,6 +28,7 @@
 #include <TFile.h>
 #include <TList.h> 
 #include <TTree.h>
+#include <TClonesArray.h>
 
 // --- Standard library ---
 
@@ -35,6 +36,7 @@
 #include "AliLog.h"
 #include "AliQualAssDataMaker.h"
 #include "AliESDEvent.h"
+#include "AliRawReader.h"
 
 ClassImp(AliQualAssDataMaker)
   
@@ -149,26 +151,46 @@ void AliQualAssDataMaker::Exec(AliQualAss::TASKINDEX task, TObject * data)
   switch (task) { 
   
   case AliQualAss::kRAWS:
+  {
     AliInfo("Processing Raws QA") ; 
-    MakeRaws(data) ;
+       AliRawReader * rawReader = dynamic_cast<AliRawReader *>(data) ; 
+    if (rawReader) 
+         MakeRaws(rawReader) ;
+        else
+         AliError("Wrong data type") ;     
     break ; 
-
+  }
   case AliQualAss::kHITS:
-    AliInfo("Processing Hits QA") ; 
-    MakeHits(data) ;
+  {  
+       AliInfo("Processing Hits QA") ; 
+       TClonesArray * hits = dynamic_cast<TClonesArray *>(data) ; 
+    if (hits) 
+     MakeHits(hits) ;
+       else 
+     AliError("Wrong type of hits container") ;
     break ; 
-
+  }
   case AliQualAss::kSDIGITS:
+  {
     AliInfo("Processing SDigits QA") ; 
-    MakeSDigits(data) ;
+    TClonesArray * sdigits = dynamic_cast<TClonesArray *>(data) ; 
+       if (sdigits) 
+      MakeSDigits(sdigits) ;
+        else    
+      AliError("Wrong type of sdigits container") ; 
     break ; 
-    
+  }  
   case AliQualAss::kDIGITS:
-    MakeDigits(data) ;
+  {
+    TClonesArray * digits = dynamic_cast<TClonesArray *>(data) ; 
+    if (digits) 
+         MakeDigits(digits) ;
+        else 
+      AliError("Wrong type of digits container") ; 
     break ;  
-   case AliQualAss::kRECPOINTS:
-    {
+  }
+  case AliQualAss::kRECPOINTS:
+  {
      AliInfo("Processing RecPoints QA") ; 
      TTree * recpoints = dynamic_cast<TTree *>(data) ; 
     if (recpoints) 
@@ -176,7 +198,7 @@ void AliQualAssDataMaker::Exec(AliQualAss::TASKINDEX task, TObject * data)
     else 
       AliError("Wrong type of recpoints container") ; 
     break ;  
-    }
+  }
    case AliQualAss::kTRACKSEGMENTS:
     AliInfo("Processing Track Segments QA: not existing anymore") ; 
 //     TTree * ts = dynamic_cast<TTree *>(data) ; 
index 52dd37629f0e0513463d327581494403822b1d03..7bbe98d695f5d081db36ef9b9a3636ee1be450b5 100644 (file)
@@ -23,6 +23,8 @@ class TDirectory;
 class TObject; 
 class TTree; 
 class AliESDEvent;
+class AliRawReader;
+class TClonesArray;
 
 // --- Standard library ---
 
@@ -74,12 +76,12 @@ protected:
   virtual void   InitSDigits()       {AliInfo("To be implemented by detectors");}
   //virtual void   InitTrackSegments() {AliInfo("To ne implemented by detectors");}
   virtual void   MakeESDs(AliESDEvent * )          {AliInfo("To be implemented by detectors");} 
-  virtual void   MakeHits(TObject * )              {AliInfo("To be implemented by detectors");} 
-  virtual void   MakeDigits(TObject * )            {AliInfo("To be implemented by detectors");} 
+  virtual void   MakeHits(TClonesArray * )         {AliInfo("To be implemented by detectors");} 
+  virtual void   MakeDigits(TClonesArray * )       {AliInfo("To be implemented by detectors");} 
   //  virtual void   MakeRecParticles(TClonesArray * ) {AliInfo("To be implemented by detectors");} 
-  virtual void   MakeRaws(TObject * )              {AliInfo("To be implemented by detectors");} 
+  virtual void   MakeRaws(AliRawReader *)          {AliInfo("To be implemented by detectors");} 
   virtual void   MakeRecPoints(TTree * )           {AliInfo("To be implemented by detectors");} 
-  virtual void   MakeSDigits(TObject * )           {AliInfo("To be implemented by detectors");} 
+  virtual void   MakeSDigits(TClonesArray * )      {AliInfo("To be implemented by detectors");} 
   //virtual void   MakeTrackSegments(TTree * )       {AliInfo("To be implemented by detectors");} 
   void           ResetCycle() { fCycleCounter = 0 ; } 
   virtual void   StartOfDetectorCycle() {AliInfo("To be implemented by detectors");} 
index c3883d3ab1a3d52b473d8b381bc55c4e7d59f60c..85b692fb9b71c0d179e5a3681f08a7fc2436c162 100644 (file)
@@ -2719,11 +2719,7 @@ AliQualAssDataMaker * AliReconstruction::GetQualAssDataMaker(Int_t iDet)
   }
   if (qadm) {
     AliInfo(Form("Initializing quality assurance data maker for %s", fgkDetectorName[iDet]));
-   //FIXME: get the run number
-    Int_t run = 0 ;
-   //EMXIF     
-    qadm->Init(AliQualAss::kRECPOINTS, run, GetQACycles(fgkDetectorName[iDet]));
-    qadm->Init(AliQualAss::kESDS, run) ; 
+    qadm->Init(AliQualAss::kRECPOINTS, fRawReader->GetRunNumber(), GetQACycles(fgkDetectorName[iDet]));
     qadm->StartOfCycle(AliQualAss::kRECPOINTS);
     qadm->StartOfCycle(AliQualAss::kESDS, "same") ;    
     fQualAssDataMaker[iDet] = qadm;