Warnings corrected + QA changes + ZDC y can be set in Config.C
authorcoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Apr 2010 07:32:32 +0000 (07:32 +0000)
committercoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Apr 2010 07:32:32 +0000 (07:32 +0000)
ZDC/AliGenZDC.cxx
ZDC/AliZDCPreprocessor.cxx
ZDC/AliZDCQAChecker.cxx
ZDC/AliZDCQAChecker.h
ZDC/AliZDCQADataMakerRec.cxx
ZDC/AliZDCQADataMakerRec.h
ZDC/AliZDCQADataMakerSim.cxx
ZDC/AliZDCQADataMakerSim.h
ZDC/AliZDCReconstructor.cxx
ZDC/AliZDCv3.cxx
ZDC/AliZDCv3.h

index 2e3a307..7247512 100644 (file)
@@ -77,12 +77,11 @@ AliGenZDC::AliGenZDC(Int_t npart)
   fName = "AliGenZDC";
   fTitle = "Generation of Test Particles for ZDCs";
   
-  Int_t i, j;
-  for(i=0; i<201; i++){
+  for(Int_t i=0; i<201; i++){
      fProbintp[i] = 0;
      fProbintn[i] = 0;
+     fPp[i] = 0;
   }
-  for(j=0; j<3; j++) fPp[i] = 0;
 }
 
 //_____________________________________________________________________________
index 77f3e70..1bf6f63 100644 (file)
@@ -543,7 +543,7 @@ UInt_t AliZDCPreprocessor::ProcessPedestalData()
        return 10;
      }
      Log(Form("File %s connected to process pedestal data", pedFileName));
-     Float_t pedVal[(2*knZDCch)][2];
+     Float_t pedVal[(3*knZDCch)][2];
      for(Int_t k=0; k<(2*knZDCch); k++){
         for(Int_t j=0; j<2; j++){
            int aleggi = fscanf(file,"%f",&pedVal[k][j]);
index a68042f..932e83e 100644 (file)
@@ -192,14 +192,14 @@ Double_t * AliZDCQAChecker::Check(AliQAv1::ALITASK_t index, TObjArray ** list,
              else if(irawHisto==1) sumADCZNA = hdata->GetMean();
              else if(irawHisto==2) sumADCZPC = hdata->GetMean();
              else if(irawHisto==3) sumADCZPA = hdata->GetMean();
-             else if(irawHisto==4) adcQZNC = hdata->GetMean();
-             else if(irawHisto==5) adcQZNA = hdata->GetMean();
-             else if(irawHisto==6) adcQZPC = hdata->GetMean();
-             else if(irawHisto==7) adcQZPA = hdata->GetMean();
-             else if(irawHisto==8)  adcCZNC = hdata->GetMean();
-             else if(irawHisto==9)  adcCZNA = hdata->GetMean();
-             else if(irawHisto==10) adcCZPC = hdata->GetMean();
-             else if(irawHisto==11) adcCZPA = hdata->GetMean();
+             else if(irawHisto==6) adcQZNC = hdata->GetMean();
+             else if(irawHisto==7) adcQZNA = hdata->GetMean();
+             else if(irawHisto==8) adcQZPC = hdata->GetMean();
+             else if(irawHisto==9) adcQZPA = hdata->GetMean();
+             else if(irawHisto==10) adcCZNC = hdata->GetMean();
+             else if(irawHisto==11) adcCZNA = hdata->GetMean();
+             else if(irawHisto==12) adcCZPC = hdata->GetMean();
+             else if(irawHisto==13) adcCZPA = hdata->GetMean();
            }
            //
            // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
@@ -312,14 +312,14 @@ Double_t * AliZDCQAChecker::Check(AliQAv1::ALITASK_t index, TObjArray ** list,
              else if(esdInd==3) sumADCZNA = hdata->GetMean();
              else if(esdInd==4) sumADCZPC = hdata->GetMean();
              else if(esdInd==5) sumADCZPA = hdata->GetMean();
-             else if(esdInd==6) pmQZNC = hdata->GetMean();
-             else if(esdInd==7) pmQZNA = hdata->GetMean();
-             else if(esdInd==8) pmQZPC = hdata->GetMean();
-             else if(esdInd==9) pmQZPA = hdata->GetMean();
-             else if(esdInd==10) pmCZNC = hdata->GetMean();
-             else if(esdInd==11) pmCZNA = hdata->GetMean();
-             else if(esdInd==12) pmCZPC = hdata->GetMean();
-             else if(esdInd==13) pmCZPA = hdata->GetMean();
+             else if(esdInd==8) pmQZNC = hdata->GetMean();
+             else if(esdInd==9) pmQZNA = hdata->GetMean();
+             else if(esdInd==10) pmQZPC = hdata->GetMean();
+             else if(esdInd==11) pmQZPA = hdata->GetMean();
+             else if(esdInd==12) pmCZNC = hdata->GetMean();
+             else if(esdInd==13) pmCZNA = hdata->GetMean();
+             else if(esdInd==14) pmCZPC = hdata->GetMean();
+             else if(esdInd==15) pmCZPA = hdata->GetMean();
            }
            //
            // --- Check whether (sum PMQi - PMC)/PMC < percentageDiff
index bd4cae2..6914ec7 100644 (file)
@@ -10,7 +10,7 @@
 //                                                 //
 //////////////////////////////////////////////////////
 
-#include "AliQA.h"
+#include "AliQAv1.h"
 #include "AliQACheckerBase.h"
 
 class AliZDCQAChecker: public AliQACheckerBase {
index 410d186..a7ad01d 100644 (file)
@@ -36,6 +36,7 @@
 #include "AliZDCReco.h"
 #include "AliRawReader.h"
 #include "AliZDCQADataMakerRec.h"
+#include "AliZDCPedestals.h"
 #include "AliZDCRawStream.h"
 #include "AliZDCDigit.h"
 #include "AliESDZDC.h"
@@ -46,7 +47,7 @@ ClassImp(AliZDCQADataMakerRec)
 //____________________________________________________________________________ 
   AliZDCQADataMakerRec::AliZDCQADataMakerRec() : 
   AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kZDC), "ZDC Quality Assurance Data Maker"), 
-  fDigit(0)
+  fPedCalibData(0x0)
 {
   // ctor
 }
@@ -54,7 +55,8 @@ ClassImp(AliZDCQADataMakerRec)
 //____________________________________________________________________________ 
 AliZDCQADataMakerRec::AliZDCQADataMakerRec(const AliZDCQADataMakerRec& qadm) :
   AliQADataMakerRec(),      
-  fDigit(0)
+  fPedCalibData(0x0)
+
 {
   //copy ctor 
   SetName((const char*)qadm.GetName()); 
@@ -71,115 +73,61 @@ AliZDCQADataMakerRec& AliZDCQADataMakerRec::operator = (const AliZDCQADataMakerR
 }
 
 //____________________________________________________________________________ 
-void AliZDCQADataMakerRec::InitDigits()
+AliZDCPedestals* AliZDCQADataMakerRec::GetPedCalibData() const
+{
+
+  // Retrieving pedestal calibration object from OCDB
+  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Pedestals");
+  if(!entry) AliWarning("No calibration data loaded!");  
+
+  AliZDCPedestals *calibdata = (AliZDCPedestals*)  (entry->GetObject());
+  if(!calibdata) AliFatal("Wrong calibration object in calibration  file!");
+
+  return calibdata;
+
+}
+
+//____________________________________________________________________________
+void AliZDCQADataMakerRec::InitRaws()
 {
   // create Digits histograms in Digits subdir
-  //
   const Bool_t expert   = kTRUE ; 
   const Bool_t image    = kTRUE ; 
   
+  // **************************** NON EXPERT HISTOS ****************************
+  TH1F * hZNCSpectrum = new TH1F("hZNCSpectrum","ZNC spectrum;Amplitude [ADC counts];Counts",100,0.,3000.);
+  TH1F * hZPCSpectrum = new TH1F("hZPCSpectrum","ZPC spectrum;Amplitude [ADC counts];Counts",100,0.,3000.);
+  TH1F * hZNASpectrum = new TH1F("hZNASpectrum","ZNA spectrum;Amplitude [ADC counts];Counts",100,0.,3000.);
+  TH1F * hZPASpectrum = new TH1F("hZPASpectrum","ZPA spectrum;Amplitude [ADC counts];Counts",100,0.,3000.);
+  TH1F * hZEM1Spectrum = new TH1F("hZEM1Spectrum","ZEM1 spectrum;Amplitude [ADC counts];Counts",100,0.,2000.);
+  TH1F * hZEM2Spectrum = new TH1F("hZEM2Spectrum","ZEM2 spectrum;Amplitude [ADC counts];Counts",100,0.,2000.);
+  Add2RawsList(hZNCSpectrum, 0, !expert, image);
+  Add2RawsList(hZNASpectrum, 1, !expert, image);
+  Add2RawsList(hZPCSpectrum, 2, !expert, image);
+  Add2RawsList(hZPASpectrum, 3, !expert, image);
+  Add2RawsList(hZEM1Spectrum, 4, !expert, image);
+  Add2RawsList(hZEM2Spectrum, 5, !expert, image);
+  
+  // **************************** EXPERT HISTOS ****************************
   // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hDigitPMCZNC = new TH1F("hDigitPMCZNC", "Digit common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPMCZNA = new TH1F("hDigitPMCZNA", "Digit common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPMCZPC = new TH1F("hDigitPMCZPC", "Digit common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPMCZPA = new TH1F("hDigitPMCZPA", "Digit common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPMZEM1 = new TH1F("hDigitPMZEM1", "Digit ZEM1 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPMZEM2 = new TH1F("hDigitPMZEM2", "Digit ZEM2 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPMCZNC, 0 , !expert, image);
-  Add2DigitsList(hDigitPMCZNA, 1 , !expert, image);
-  Add2DigitsList(hDigitPMCZPC, 2, !expert, image);
-  Add2DigitsList(hDigitPMCZPA, 3, !expert, image);
-  Add2DigitsList(hDigitPMZEM1, 4, !expert, image);
-  Add2DigitsList(hDigitPMZEM2, 5, !expert, image);
-  // 
-  // ------------------- LOW GAIN CHAIN ---------------------------
-  TH1F * hDigitPMCZNClg = new TH1F("hDigitPMCZNClg", "Digit common lg ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hDigitPMCZNAlg = new TH1F("hDigitPMCZNAlg", "Digit common lg ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hDigitPMCZPClg = new TH1F("hDigitPMCZPClg", "Digit common lg ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hDigitPMCZPAlg = new TH1F("hDigitPMCZPAlg", "Digit common lg ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hDigitPMZEM1lg = new TH1F("hDigitPMZEM1lg", "Digit ZEM1 PMT lg;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hDigitPMZEM2lg = new TH1F("hDigitPMZEM2lg", "Digit ZEM2 PMT lg;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  Add2DigitsList(hDigitPMCZNClg, 6, expert, !image);
-  Add2DigitsList(hDigitPMCZNAlg, 7, expert, !image);
-  Add2DigitsList(hDigitPMCZPClg, 8, expert, !image);
-  Add2DigitsList(hDigitPMCZPAlg, 9, expert, !image);
-  Add2DigitsList(hDigitPMZEM1lg, 10, !expert, image);
-  Add2DigitsList(hDigitPMZEM2lg, 11, !expert, image);
-  //
-  // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hDigitPM1ZNC = new TH1F("hDigitPM1ZNC", "Digit PM1 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZNC = new TH1F("hDigitPM2ZNC", "Digit PM2 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZNC = new TH1F("hDigitPM3ZNC", "Digit PM3 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZNC = new TH1F("hDigitPM4ZNC", "Digit PM4 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZNC, 12, !expert, image);
-  Add2DigitsList(hDigitPM2ZNC, 13, !expert, image);
-  Add2DigitsList(hDigitPM3ZNC, 14, !expert, image);
-  Add2DigitsList(hDigitPM4ZNC, 15, !expert, image);
-  // 
-  TH1F * hDigitPM1ZPC = new TH1F("hDigitPM1ZPC", "Digit PM1 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZPC = new TH1F("hDigitPM2ZPC", "Digit PM2 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZPC = new TH1F("hDigitPM3ZPC", "Digit PM3 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZPC = new TH1F("hDigitPM4ZPC", "Digit PM4 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZPC, 16, !expert, image);
-  Add2DigitsList(hDigitPM2ZPC, 17, !expert, image);
-  Add2DigitsList(hDigitPM3ZPC, 18, !expert, image);
-  Add2DigitsList(hDigitPM4ZPC, 19, !expert, image);
-  //
-  TH1F * hDigitPM1ZNA = new TH1F("hDigitPM1ZNA", "Digit PM1 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZNA = new TH1F("hDigitPM2ZNA", "Digit PM2 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZNA = new TH1F("hDigitPM3ZNA", "Digit PM3 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZNA = new TH1F("hDigitPM4ZNA", "Digit PM4 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZNA, 20, !expert, image);
-  Add2DigitsList(hDigitPM2ZNA, 21, !expert, image);
-  Add2DigitsList(hDigitPM3ZNA, 22, !expert, image);
-  Add2DigitsList(hDigitPM4ZNA, 23, !expert, image);
-  // 
-  TH1F * hDigitPM1ZPA = new TH1F("hDigitPM1ZPA", "Digit PM1 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZPA = new TH1F("hDigitPM2ZPA", "Digit PM2 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZPA = new TH1F("hDigitPM3ZPA", "Digit PM3 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZPA = new TH1F("hDigitPM4ZPA", "Digit PM4 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZPA, 24, !expert, image);
-  Add2DigitsList(hDigitPM2ZPA, 25, !expert, image);
-  Add2DigitsList(hDigitPM3ZPA, 26, !expert, image);
-  Add2DigitsList(hDigitPM4ZPA, 27, !expert, image);
+  TH1F * hRawSumQZNC = new TH1F("hRawSumQZNC", "Raw sumQ ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawSumQZNA = new TH1F("hRawSumQZNA", "Raw sumQ ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawSumQZPC = new TH1F("hRawSumQZPC", "Raw sumQ ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawSumQZPA = new TH1F("hRawSumQZPA", "Raw sumQ ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  Add2RawsList(hRawSumQZNC, 10, expert, !image);
+  Add2RawsList(hRawSumQZNA, 11, expert, !image);
+  Add2RawsList(hRawSumQZPC, 12, expert, !image);
+  Add2RawsList(hRawSumQZPA, 13, expert, !image);
   //
-  // ------------------- LOW GAIN CHAIN ---------------------------
-  TH1F * hDigitPM1ZNClg = new TH1F("hDigitPM1ZNClg", "Digit PM1 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZNClg = new TH1F("hDigitPM2ZNClg", "Digit PM2 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZNClg = new TH1F("hDigitPM3ZNClg", "Digit PM3 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZNClg = new TH1F("hDigitPM4ZNClg", "Digit PM4 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZNClg, 28, !expert, image);
-  Add2DigitsList(hDigitPM2ZNClg, 29, !expert, image);
-  Add2DigitsList(hDigitPM3ZNClg, 30, !expert, image);
-  Add2DigitsList(hDigitPM4ZNClg, 31, !expert, image);
-  // 
-  TH1F * hDigitPM1ZPClg = new TH1F("hDigitPM1ZPClg", "Digit PM1 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZPClg = new TH1F("hDigitPM2ZPClg", "Digit PM2 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZPClg = new TH1F("hDigitPM3ZPClg", "Digit PM3 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZPClg = new TH1F("hDigitPM4ZPClg", "Digit PM4 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZPClg, 32, !expert, image);
-  Add2DigitsList(hDigitPM2ZPClg, 33, !expert, image);
-  Add2DigitsList(hDigitPM3ZPClg, 34, !expert, image);
-  Add2DigitsList(hDigitPM4ZPClg, 35, !expert, image);
+  TH1F * hRawPMCZNC = new TH1F("hRawPMCZNC", "Raw ZNC PMC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawPMCZNA = new TH1F("hRawPMCZNA", "Raw ZNA PMC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawPMCZPC = new TH1F("hRawPMCZPC", "Raw ZPC PMC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  TH1F * hRawPMCZPA = new TH1F("hRawPMCZPA", "Raw ZPA PMC;Amplitude [ADC counts];Counts",100, 0., 1000.);
+  Add2RawsList(hRawPMCZNC, 6, expert, !image);
+  Add2RawsList(hRawPMCZNA, 7, expert, !image);
+  Add2RawsList(hRawPMCZPC, 8, expert, !image);
+  Add2RawsList(hRawPMCZPA, 9, expert, !image);
   //
-  TH1F * hDigitPM1ZNAlg = new TH1F("hDigitPM1ZNAlg", "Digit PM1 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZNAlg = new TH1F("hDigitPM2ZNAlg", "Digit PM2 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZNAlg = new TH1F("hDigitPM3ZNAlg", "Digit PM3 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZNAlg = new TH1F("hDigitPM4ZNAlg", "Digit PM4 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZNAlg, 36, !expert, image);
-  Add2DigitsList(hDigitPM2ZNAlg, 37, !expert, image);
-  Add2DigitsList(hDigitPM3ZNAlg, 38, !expert, image);
-  Add2DigitsList(hDigitPM4ZNAlg, 39, !expert, image);
-  // 
-  TH1F * hDigitPM1ZPAlg = new TH1F("hDigitPM1ZPAlg", "Digit PM1 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM2ZPAlg = new TH1F("hDigitPM2ZPAlg", "Digit PM2 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM3ZPAlg = new TH1F("hDigitPM3ZPAlg", "Digit PM3 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hDigitPM4ZPAlg = new TH1F("hDigitPM4ZPAlg", "Digit PM4 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2DigitsList(hDigitPM1ZPAlg, 40, !expert, image);
-  Add2DigitsList(hDigitPM2ZPAlg, 41, !expert, image);
-  Add2DigitsList(hDigitPM3ZPAlg, 42, !expert, image);
-  Add2DigitsList(hDigitPM4ZPAlg, 43, !expert, image);
-  
 }
 
 //____________________________________________________________________________
@@ -190,143 +138,32 @@ void AliZDCQADataMakerRec::InitRecPoints()
   const Bool_t image  = kTRUE ; 
   //
   // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hRecZNCTot = new TH1F("hRecZNCTot", "Rec signal in ZNC;Amplitude [ADC counts];Counts", 100, 0., 6000.);
-  TH1F * hRecZNATot = new TH1F("hRecZNATot", "Rec signal in ZNA;Amplitude [ADC counts];Counts", 100, 0., 6000.);
-  TH1F * hRecZPCTot = new TH1F("hRecZPCTot", "Rec signal in ZPC;Amplitude [ADC counts];Counts", 100, 0., 10000.);
-  TH1F * hRecZPATot = new TH1F("hRecZPATot", "Rec signal in ZPA;Amplitude [ADC counts];Counts", 100, 0., 10000.);
-  Add2RecPointsList(hRecZNCTot, 0, expert, !image);
-  Add2RecPointsList(hRecZNATot, 1, expert, !image);
-  Add2RecPointsList(hRecZPCTot, 2, expert, !image);
-  Add2RecPointsList(hRecZPATot, 3, expert, !image);
+  TH1F * hRecZNCTot = new TH1F("hRecZNCTot", "Rec signal in ZNC;Amplitude [ADC counts];Counts", 100, 0., 2000.);
+  TH1F * hRecZNATot = new TH1F("hRecZNATot", "Rec signal in ZNA;Amplitude [ADC counts];Counts", 100, 0., 2000.);
+  TH1F * hRecZPCTot = new TH1F("hRecZPCTot", "Rec signal in ZPC;Amplitude [ADC counts];Counts", 100, 0., 8000.);
+  TH1F * hRecZPATot = new TH1F("hRecZPATot", "Rec signal in ZPA;Amplitude [ADC counts];Counts", 100, 0., 8000.);
+  Add2RecPointsList(hRecZNCTot, 0, !expert, image);
+  Add2RecPointsList(hRecZNATot, 1, !expert, image);
+  Add2RecPointsList(hRecZPCTot, 2, !expert, image);
+  Add2RecPointsList(hRecZPATot, 3, !expert, image);
   //
-  TH1F * hRecSumQZNC = new TH1F("hRecSumQZNC", "Rec summed 4 ZNC quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecSumQZNA = new TH1F("hRecSumQZNA", "Rec summed 4 ZNA quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecSumQZPC = new TH1F("hRecSumQZPC", "Rec summed 4 ZPC quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecSumQZPA = new TH1F("hRecSumQZPA", "Rec summed 4 ZPA quadrants;Amplitude [ADC counts];Counts",100, 0., 4000.);
+  TH1F * hRecSumQZNC = new TH1F("hRecSumQZNC", "Rec summed 4 ZNC quadrants;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecSumQZNA = new TH1F("hRecSumQZNA", "Rec summed 4 ZNA quadrants;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecSumQZPC = new TH1F("hRecSumQZPC", "Rec summed 4 ZPC quadrants;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecSumQZPA = new TH1F("hRecSumQZPA", "Rec summed 4 ZPA quadrants;Amplitude [ADC counts];Counts",100, 0., 2000.);
   Add2RecPointsList(hRecSumQZNC, 4, expert, !image);
   Add2RecPointsList(hRecSumQZNA, 5, expert, !image);
   Add2RecPointsList(hRecSumQZPC, 6, expert, !image);
   Add2RecPointsList(hRecSumQZPA, 7, expert, !image);
   //
-  TH1F * hRecPMCZNC = new TH1F("hRecPMCZNC", "Rec common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecPMCZNA = new TH1F("hRecPMCZNA", "Rec common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecPMCZPC = new TH1F("hRecPMCZPC", "Rec common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  TH1F * hRecPMCZPA = new TH1F("hRecPMCZPA", "Rec common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 4000.);
-  Add2RecPointsList(hRecPMCZNC, 8 , !expert, image);
-  Add2RecPointsList(hRecPMCZNA, 9 , !expert, image);
-  Add2RecPointsList(hRecPMCZPC, 10, !expert, image);
-  Add2RecPointsList(hRecPMCZPA, 11, !expert, image); 
-}
-
-
-//____________________________________________________________________________
-void AliZDCQADataMakerRec::InitRaws()
-{
-  // create Digits histograms in Digits subdir
-  const Bool_t expert   = kTRUE ; 
-  const Bool_t image    = kTRUE ; 
-  //
-  // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hRawPMCZNC = new TH1F("hRawPMCZNC", "Raw common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZNA = new TH1F("hRawPMCZNA", "Raw common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZPC = new TH1F("hRawPMCZPC", "Raw common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZPA = new TH1F("hRawPMCZPA", "Raw common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMZEM1 = new TH1F("hRawPMZEM1", "Raw ZEM1 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMZEM2 = new TH1F("hRawPMZEM2", "Raw ZEM2 PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPMCZNC, 0 , !expert, image);
-  Add2RawsList(hRawPMCZNA, 1 , !expert, image);
-  Add2RawsList(hRawPMCZPC, 2, !expert, image);
-  Add2RawsList(hRawPMCZPA, 3, !expert, image);
-  Add2RawsList(hRawPMZEM1, 4, !expert, image);
-  Add2RawsList(hRawPMZEM2, 5, !expert, image);
-  // 
-  // ------------------- LOW GAIN CHAIN ---------------------------
-  TH1F * hRawPMCZNClg = new TH1F("hRawPMCZNClg", "Raw common lg ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZNAlg = new TH1F("hRawPMCZNAlg", "Raw common lg ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZPClg = new TH1F("hRawPMCZPClg", "Raw common lg ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMCZPAlg = new TH1F("hRawPMCZPAlg", "Raw common lg ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMZEM1lg = new TH1F("hRawPMZEM1lg", "Raw ZEM1 PMT lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPMZEM2lg = new TH1F("hRawPMZEM2lg", "Raw ZEM2 PMT lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPMCZNClg, 6, expert, !image);
-  Add2RawsList(hRawPMCZNAlg, 7, expert, !image);
-  Add2RawsList(hRawPMCZPClg, 8, expert, !image);
-  Add2RawsList(hRawPMCZPAlg, 9, expert, !image);
-  Add2RawsList(hRawPMZEM1lg, 10, !expert, image);
-  Add2RawsList(hRawPMZEM2lg, 11, !expert, image);
-  //
-  // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hRawPM1ZNC = new TH1F("hRawPM1ZNC", "Raw PM1 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZNC = new TH1F("hRawPM2ZNC", "Raw PM2 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZNC = new TH1F("hRawPM3ZNC", "Raw PM3 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZNC = new TH1F("hRawPM4ZNC", "Raw PM4 ZNC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZNC, 12, !expert, image);
-  Add2RawsList(hRawPM2ZNC, 13, !expert, image);
-  Add2RawsList(hRawPM3ZNC, 14, !expert, image);
-  Add2RawsList(hRawPM4ZNC, 15, !expert, image);
-  // 
-  TH1F * hRawPM1ZPC = new TH1F("hRawPM1ZPC", "Raw PM1 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZPC = new TH1F("hRawPM2ZPC", "Raw PM2 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZPC = new TH1F("hRawPM3ZPC", "Raw PM3 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZPC = new TH1F("hRawPM4ZPC", "Raw PM4 ZPC;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZPC, 16, !expert, image);
-  Add2RawsList(hRawPM2ZPC, 17, !expert, image);
-  Add2RawsList(hRawPM3ZPC, 18, !expert, image);
-  Add2RawsList(hRawPM4ZPC, 19, !expert, image);
-  //
-  TH1F * hRawPM1ZNA = new TH1F("hRawPM1ZNA", "Raw PM1 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZNA = new TH1F("hRawPM2ZNA", "Raw PM2 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZNA = new TH1F("hRawPM3ZNA", "Raw PM3 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZNA = new TH1F("hRawPM4ZNA", "Raw PM4 ZNA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZNA, 20, !expert, image);
-  Add2RawsList(hRawPM2ZNA, 21, !expert, image);
-  Add2RawsList(hRawPM3ZNA, 22, !expert, image);
-  Add2RawsList(hRawPM4ZNA, 23, !expert, image);
-  // 
-  TH1F * hRawPM1ZPA = new TH1F("hRawPM1ZPA", "Raw PM1 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZPA = new TH1F("hRawPM2ZPA", "Raw PM2 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZPA = new TH1F("hRawPM3ZPA", "Raw PM3 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZPA = new TH1F("hRawPM4ZPA", "Raw PM4 ZPA;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZPA, 24, !expert, image);
-  Add2RawsList(hRawPM2ZPA, 25, !expert, image);
-  Add2RawsList(hRawPM3ZPA, 26, !expert, image);
-  Add2RawsList(hRawPM4ZPA, 27, !expert, image);
-  //
-  // ------------------- LOW GAIN CHAIN ---------------------------
-  TH1F * hRawPM1ZNClg = new TH1F("hRawPM1ZNClg", "Raw PM1 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZNClg = new TH1F("hRawPM2ZNClg", "Raw PM2 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZNClg = new TH1F("hRawPM3ZNClg", "Raw PM3 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZNClg = new TH1F("hRawPM4ZNClg", "Raw PM4 ZNC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZNClg, 28, !expert, image);
-  Add2RawsList(hRawPM2ZNClg, 29, !expert, image);
-  Add2RawsList(hRawPM3ZNClg, 30, !expert, image);
-  Add2RawsList(hRawPM4ZNClg, 31, !expert, image);
-  // 
-  TH1F * hRawPM1ZPClg = new TH1F("hRawPM1ZPClg", "Raw PM1 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZPClg = new TH1F("hRawPM2ZPClg", "Raw PM2 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZPClg = new TH1F("hRawPM3ZPClg", "Raw PM3 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZPClg = new TH1F("hRawPM4ZPClg", "Raw PM4 ZPC lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZPClg, 32, !expert, image);
-  Add2RawsList(hRawPM2ZPClg, 33, !expert, image);
-  Add2RawsList(hRawPM3ZPClg, 34, !expert, image);
-  Add2RawsList(hRawPM4ZPClg, 35, !expert, image);
-  //
-  TH1F * hRawPM1ZNAlg = new TH1F("hRawPM1ZNAlg", "Raw PM1 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZNAlg = new TH1F("hRawPM2ZNAlg", "Raw PM2 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZNAlg = new TH1F("hRawPM3ZNAlg", "Raw PM3 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZNAlg = new TH1F("hRawPM4ZNAlg", "Raw PM4 ZNA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZNAlg, 36, !expert, image);
-  Add2RawsList(hRawPM2ZNAlg, 37, !expert, image);
-  Add2RawsList(hRawPM3ZNAlg, 38, !expert, image);
-  Add2RawsList(hRawPM4ZNAlg, 39, !expert, image);
-  // 
-  TH1F * hRawPM1ZPAlg = new TH1F("hRawPM1ZPAlg", "Raw PM1 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM2ZPAlg = new TH1F("hRawPM2ZPAlg", "Raw PM2 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM3ZPAlg = new TH1F("hRawPM3ZPAlg", "Raw PM3 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  TH1F * hRawPM4ZPAlg = new TH1F("hRawPM4ZPAlg", "Raw PM4 ZPA lg;Amplitude [ADC counts];Counts",100, 0., 1000.);
-  Add2RawsList(hRawPM1ZPAlg, 40, !expert, image);
-  Add2RawsList(hRawPM2ZPAlg, 41, !expert, image);
-  Add2RawsList(hRawPM3ZPAlg, 42, !expert, image);
-  Add2RawsList(hRawPM4ZPAlg, 43, !expert, image);
+  TH1F * hRecPMCZNC = new TH1F("hRecPMCZNC", "Rec common ZNC PMT;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecPMCZNA = new TH1F("hRecPMCZNA", "Rec common ZNA PMT;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecPMCZPC = new TH1F("hRecPMCZPC", "Rec common ZPC PMT;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  TH1F * hRecPMCZPA = new TH1F("hRecPMCZPA", "Rec common ZPA PMT;Amplitude [ADC counts];Counts",100, 0., 2000.);
+  Add2RecPointsList(hRecPMCZNC, 8 , expert, !image);
+  Add2RecPointsList(hRecPMCZNA, 9 , expert, !image);
+  Add2RecPointsList(hRecPMCZPC, 10, expert, !image);
+  Add2RecPointsList(hRecPMCZPA, 11, expert, !image); 
 }
 
 //____________________________________________________________________________
@@ -337,38 +174,43 @@ void AliZDCQADataMakerRec::InitESDs()
   const Bool_t expert = kTRUE ; 
   const Bool_t image  = kTRUE ; 
   
-  TH2F * hZNC  = new TH2F("hZNC", "Centroid in ZNC", 100, -5.,5.,100,-5.,5.);
-  TH2F * hZNA  = new TH2F("hZNA", "Centroid in ZNA", 100, -5.,5.,100,-5.,5.);
-  Add2ESDsList(hZNC, 0, !expert, image);
-  Add2ESDsList(hZNA, 1, !expert, image);
+  TH2F * hZNCcentr  = new TH2F("hZNCcentr", "Centroid in ZNC;X [cm];Y[cm]", 100, -5.,5.,100,-5.,5.);
+  TH2F * hZNAcentr  = new TH2F("hZNAcentr", "Centroid in ZNA;X [cm];Y[cm]", 100, -5.,5.,100,-5.,5.);
+  Add2ESDsList(hZNCcentr, 0, !expert, image);
+  Add2ESDsList(hZNAcentr, 1, !expert, image);
   //
   // ------------------- HIGH GAIN CHAIN ---------------------------
-  TH1F * hESDZNCTot = new TH1F("hESDZNCTot", "Energy in ZNC", 100, 0., 6000.);
-  TH1F * hESDZNATot = new TH1F("hESDZNATot", "Energy in ZNA", 100, 0., 6000.);
-  TH1F * hESDZPCTot = new TH1F("hESDZPCTot", "Energy in ZPC", 100, 0., 10000.);
-  TH1F * hESDZPATot = new TH1F("hESDZPATot", "Energy in ZPA", 100, 0., 10000.);
-  Add2ESDsList(hESDZNCTot, 2, expert, !image);
-  Add2ESDsList(hESDZNATot, 3, expert, !image);
-  Add2ESDsList(hESDZPCTot, 4, expert, !image);
-  Add2ESDsList(hESDZPATot, 5, expert, !image);
+  TH1F * hESDZNCTot = new TH1F("hESDZNCTot", "Energy in ZNC", 100, 0., 4000.);
+  TH1F * hESDZNATot = new TH1F("hESDZNATot", "Energy in ZNA", 100, 0., 4000.);
+  TH1F * hESDZPCTot = new TH1F("hESDZPCTot", "Energy in ZPC", 100, 0., 4000.);
+  TH1F * hESDZPATot = new TH1F("hESDZPATot", "Energy in ZPA", 100, 0., 4000.);
+  Add2ESDsList(hESDZNCTot, 2, !expert, image);
+  Add2ESDsList(hESDZNATot, 3, !expert, image);
+  Add2ESDsList(hESDZPCTot, 4, !expert, image);
+  Add2ESDsList(hESDZPATot, 5, !expert, image);
+  //
+  TH1F * hESDZEM1 = new TH1F("hESDZEM1", "Energy in ZEM1", 100, 0., 2000.);
+  TH1F * hESDZEM2 = new TH1F("hESDZEM2", "Energy in ZEM2", 100, 0., 2000.);
+  Add2ESDsList(hESDZEM1,6, !expert, image);
+  Add2ESDsList(hESDZEM2,7, !expert, image);
   //
-  TH1F * hESDSumQZNC = new TH1F("hESDSumQZNC", "Sum of 4 ZNC energy",100, 0., 4000.);
-  TH1F * hESDSumQZNA = new TH1F("hESDSumQZNA", "Sum of 4 ZNA energy",100, 0., 4000.);
-  TH1F * hESDSumQZPC = new TH1F("hESDSumQZPC", "Sum of 4 ZPC energy",100, 0., 4000.);
-  TH1F * hESDSumQZPA = new TH1F("hESDSumQZPA", "Sum of 4 ZPA energy",100, 0., 4000.);
-  Add2ESDsList(hESDSumQZNC, 6, expert, !image);
-  Add2ESDsList(hESDSumQZNA, 7, expert, !image);
-  Add2ESDsList(hESDSumQZPC, 8, expert, !image);
-  Add2ESDsList(hESDSumQZPA, 9, expert, !image);
+  TH1F * hESDSumQZNC = new TH1F("hESDSumQZNC", "Sum of 4 ZNC energy",100, 0., 2000.);
+  TH1F * hESDSumQZNA = new TH1F("hESDSumQZNA", "Sum of 4 ZNA energy",100, 0., 2000.);
+  TH1F * hESDSumQZPC = new TH1F("hESDSumQZPC", "Sum of 4 ZPC energy",100, 0., 2000.);
+  TH1F * hESDSumQZPA = new TH1F("hESDSumQZPA", "Sum of 4 ZPA energy",100, 0., 2000.);
+  Add2ESDsList(hESDSumQZNC, 8, expert, !image);
+  Add2ESDsList(hESDSumQZNA, 9, expert, !image);
+  Add2ESDsList(hESDSumQZPC, 10, expert, !image);
+  Add2ESDsList(hESDSumQZPA, 11, expert, !image);
   //
-  TH1F * hESDPMCZNC = new TH1F("hESDPMCZNC", "Energy in common ZNC PMT",100, 0., 4000.);
-  TH1F * hESDPMCZNA = new TH1F("hESDPMCZNA", "Energy in common ZNA PMT",100, 0., 4000.);
-  TH1F * hESDPMCZPC = new TH1F("hESDPMCZPC", "Energy in common ZPC PMT",100, 0., 4000.);
-  TH1F * hESDPMCZPA = new TH1F("hESDPMCZPA", "Energy in common ZPA PMT",100, 0., 4000.);
-  Add2ESDsList(hESDPMCZNC, 10, !expert, image);
-  Add2ESDsList(hESDPMCZNA, 11, !expert, image);
-  Add2ESDsList(hESDPMCZPC, 12, !expert, image);
-  Add2ESDsList(hESDPMCZPA, 13, !expert, image);
+  TH1F * hESDPMCZNC = new TH1F("hESDPMCZNC", "Energy in ZNC PMC",100, 0., 2000.);
+  TH1F * hESDPMCZNA = new TH1F("hESDPMCZNA", "Energy in ZNA PMC",100, 0., 2000.);
+  TH1F * hESDPMCZPC = new TH1F("hESDPMCZPC", "Energy in ZPC PMC",100, 0., 2000.);
+  TH1F * hESDPMCZPA = new TH1F("hESDPMCZPA", "Energy in ZPA PMC",100, 0., 2000.);
+  Add2ESDsList(hESDPMCZNC, 12, expert, !image);
+  Add2ESDsList(hESDPMCZNA, 13, expert, !image);
+  Add2ESDsList(hESDPMCZPC, 14, expert, !image);
+  Add2ESDsList(hESDPMCZPA, 15, expert, !image);
   // 
   // ------------------- LOW GAIN CHAIN ---------------------------
   TH1F * hESDZNCTotlg = new TH1F("hESDZNCTotlg", "ESD lg signal in ZNC", 100, 0., 6000.);
@@ -384,139 +226,130 @@ void AliZDCQADataMakerRec::InitESDs()
   TH1F * hESDSumQZNAlg = new TH1F("hESDSumQZNAlg", "Sum of 4 lg ZNA sectors",100, 0., 4000.);
   TH1F * hESDSumQZPClg = new TH1F("hESDSumQZPClg", "Sum of 4 lg ZPC sectors",100, 0., 4000.);
   TH1F * hESDSumQZPAlg = new TH1F("hESDSumQZPAlg", "Sum of 4 lg ZPA sectors",100, 0., 4000.);
-  Add2ESDsList(hESDSumQZNClg, 18, expert, !image);
-  Add2ESDsList(hESDSumQZNAlg, 19, expert, !image);
-  Add2ESDsList(hESDSumQZPClg, 20, expert, !image);
-  Add2ESDsList(hESDSumQZPAlg, 21, expert, !image);
+  Add2ESDsList(hESDSumQZNClg, 16, expert, !image);
+  Add2ESDsList(hESDSumQZNAlg, 17, expert, !image);
+  Add2ESDsList(hESDSumQZPClg, 18, expert, !image);
+  Add2ESDsList(hESDSumQZPAlg, 19, expert, !image);
   //
   TH1F * hESDPMCZNClg = new TH1F("hESDPMCZNClg", "Signal in common ZNC lg PMT",100, 0., 4000.);
   TH1F * hESDPMCZNAlg = new TH1F("hESDPMCZNAlg", "Signal in common ZNA lg PMT",100, 0., 4000.);
   TH1F * hESDPMCZPClg = new TH1F("hESDPMCZPClg", "Signal in common ZPC lg PMT",100, 0., 4000.);
   TH1F * hESDPMCZPAlg = new TH1F("hESDPMCZPAlg", "Signal in common ZPA lg PMT",100, 0., 4000.);
-  Add2ESDsList(hESDPMCZNClg, 22, expert, !image);
-  Add2ESDsList(hESDPMCZNAlg, 23, expert, !image);
-  Add2ESDsList(hESDPMCZPClg, 24, expert, !image);
-  Add2ESDsList(hESDPMCZPAlg, 25, expert, !image);
+  Add2ESDsList(hESDPMCZNClg, 20, expert, !image);
+  Add2ESDsList(hESDPMCZNAlg, 21, expert, !image);
+  Add2ESDsList(hESDPMCZPClg, 22, expert, !image);
+  Add2ESDsList(hESDPMCZPAlg, 23, expert, !image);
 }
 
-//___________________________________________________________________________
-void AliZDCQADataMakerRec::MakeDigits(TTree *digitTree)
+//____________________________________________________________________________
+void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
 {
-  // Check id histograms already created for this Event Specie
-  if(!GetDigitsData(0)) InitDigits() ;
-  
-  TBranch * branch = digitTree->GetBranch("ZDC");
-  if(!branch){
-    AliError("ZDC branch in Digit Tree not found"); 
-    return;
-  } 
+  // Filling Raws QA histos
+  //
+  // Check if histograms already created for this Event Specie
+  if(!GetRawsData(0)) InitRaws();
   
+  // Parameters for mean value pedestal subtraction
+  int const kNch = 24;
+  Float_t meanPed[2*kNch];    
+  for(Int_t jj=0; jj<2*kNch; jj++) meanPed[jj] = fPedCalibData->GetMeanPed(jj);
   
-  branch->SetAddress(&fDigit);
+  AliZDCRawStream stream(rawReader);
+  while(stream.Next()){
   
-  Long64_t ndig = digitTree->GetEntries();
-
-  for(Int_t i=0; i<ndig; i++){
-    digitTree->GetEntry(i);
-    if(fDigit->GetSector(0)==1 && fDigit->GetSector(1)!=5){
-      if(fDigit->GetSector(1)==0){
-             GetDigitsData(0)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(6)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==1){
-             GetDigitsData(12)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(28)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==2){
-             GetDigitsData(13)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(29)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==3){
-             GetDigitsData(14)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(30)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==4){
-             GetDigitsData(15)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(31)->Fill(fDigit->GetADCValue(1));
-      }
-    }
-    else if(fDigit->GetSector(0)==2){
-      if(fDigit->GetSector(1)==0){
-             GetDigitsData(2)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(8)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==1){
-             GetDigitsData(16)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(32)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==2){
-             GetDigitsData(17)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(33)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==3){
-             GetDigitsData(18)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(34)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==4){
-             GetDigitsData(19)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(35)->Fill(fDigit->GetADCValue(1));
-      }
+    Float_t zncSignal=0., znaSignal=0., zpcSignal=0., zpaSignal=0.;
+    Float_t zncSumQ=0., znaSumQ=0., zpcSumQ=0., zpaSumQ=0.;
+    Bool_t isZNCFired=kFALSE, isZPCFired=kFALSE, isZNAFired=kFALSE, isZPAFired=kFALSE;
+    
+    if(stream.IsADCDataWord() && 
+     (stream.GetADCModule()==0 || stream.GetADCModule()==1)){
+     
+       Int_t det = stream.GetSector(0);
+       Int_t quad = stream.GetSector(1);
+       Int_t gain = stream.GetADCGain();
+       Int_t pedindex=0;
+       
+       // Stuff for pedestal subtraction
+       if(quad != 5){ // ZDCs (not reference PTMs)
+        if(det == 1){    
+          pedindex = quad;
+          if(gain == 0){
+           Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           zncSignal  += pedSubVal; 
+           isZNCFired = kTRUE;
+           if(quad!=0) zncSumQ += pedSubVal;
+           else GetRawsData(10)->Fill(pedSubVal);
+         }
+        }
+        else if(det == 2){ 
+          pedindex = quad+5;
+          if(gain == 0){
+           Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           zpcSignal += pedSubVal; 
+           isZPCFired = kTRUE;
+           if(quad!=0) zpcSumQ += pedSubVal;
+           else GetRawsData(12)->Fill(pedSubVal);
+         }
+        }
+        else if(det == 3){ 
+          pedindex = quad+9;
+          if(quad==1){     
+            if(gain == 0){
+             Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             GetRawsData(4)->Fill(pedSubVal);
+           }
+          }
+          else if(quad==2){ 
+            if(gain == 0){
+             Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+             GetRawsData(5)->Fill(pedSubVal); 
+           }
+          }
+        }
+        else if(det == 4){      
+          pedindex = quad+12;
+          if(gain == 0){
+           Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           znaSignal  += (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           isZNAFired = kTRUE;
+           if(quad!=0) znaSumQ += pedSubVal;
+           else GetRawsData(11)->Fill(pedSubVal);
+         }
+        }
+        else if(det == 5){
+          pedindex = quad+17;
+          if(gain == 0){
+           Float_t pedSubVal = (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           zpaSignal  += (Float_t) (stream.GetADCValue()-meanPed[pedindex]); 
+           isZPAFired = kTRUE;
+           if(quad!=0) zpaSumQ += pedSubVal;
+           else GetRawsData(13)->Fill(pedSubVal);
+         }
+        }
+       }
+       
+    } //IsADCDataWord
+    //
+    if(isZNCFired){
+      GetRawsData(0)->Fill(zncSignal);
+      GetRawsData(6)->Fill(zncSumQ);
     }
-    else if(fDigit->GetSector(0)==3){
-      if(fDigit->GetSector(1)==1){
-             GetDigitsData(4)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(10)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==2){
-             GetDigitsData(5)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(11)->Fill(fDigit->GetADCValue(1));
-      }
+    if(isZPCFired){
+      GetRawsData(2)->Fill(zpcSignal);
+      GetRawsData(8)->Fill(zncSumQ);
     }
-    else if(fDigit->GetSector(0)==4 && fDigit->GetSector(1)!=5){
-      if(fDigit->GetSector(1)==0){
-             GetDigitsData(1)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(7)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==1){
-             GetDigitsData(20)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(36)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==2){
-             GetDigitsData(21)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(37)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==3){
-             GetDigitsData(22)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(38)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==4){
-             GetDigitsData(23)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(39)->Fill(fDigit->GetADCValue(1));
-      }
+    if(isZNAFired){ 
+      GetRawsData(1)->Fill(znaSignal);
+      GetRawsData(7)->Fill(znaSumQ);
     }
-    else if(fDigit->GetSector(0)==5){
-      if(fDigit->GetSector(1)==0){
-             GetDigitsData(3)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(9)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==1){
-             GetDigitsData(24)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(40)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==2){
-             GetDigitsData(25)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(41)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==3){
-             GetDigitsData(26)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(42)->Fill(fDigit->GetADCValue(1));
-      }
-      else if(fDigit->GetSector(1)==4){
-             GetDigitsData(27)->Fill(fDigit->GetADCValue(0));
-             GetDigitsData(43)->Fill(fDigit->GetADCValue(1));
-      }
+    if(isZPAFired){ 
+      GetRawsData(3)->Fill(zpaSignal);
+      GetRawsData(9)->Fill(znaSumQ);
     }
-  }
+    
+  } //stream.Next()
+
+//   stream.Delete();
 }
 
 //____________________________________________________________________________
@@ -560,144 +393,25 @@ void AliZDCQADataMakerRec::MakeRecPoints(TTree * clustersTree)
   }
   
   GetRecPointsData(0)->Fill(sum_ZNC);
-  GetRecPointsData(1)->Fill(sum_ZPC);
-  GetRecPointsData(2)->Fill(sum_ZNA);
+  GetRecPointsData(1)->Fill(sum_ZNA);
+  GetRecPointsData(2)->Fill(sum_ZPC);
   GetRecPointsData(3)->Fill(sum_ZPA);
   //
   GetRecPointsData(4)->Fill(sumQ_ZNC);
-  GetRecPointsData(5)->Fill(sumQ_ZPC);
-  GetRecPointsData(6)->Fill(sumQ_ZNA);
+  GetRecPointsData(5)->Fill(sumQ_ZNA);
+  GetRecPointsData(6)->Fill(sumQ_ZPC);
   GetRecPointsData(7)->Fill(sumQ_ZPA);
   
 }  
 
 //____________________________________________________________________________
-void AliZDCQADataMakerRec::MakeRaws(AliRawReader *rawReader)
-{
-  // Filling Raws QA histos
-  //
-  // Check if histograms already created for this Event Specie
-  if(!GetRawsData(0)) InitRaws();
-  
-  AliZDCRawStream stream(rawReader);
-  while(stream.Next()){
-    if(stream.IsADCDataWord() && 
-     (stream.GetADCModule()==0 || stream.GetADCModule()==1)){
-     
-       if(stream.GetSector(0)==1 && stream.GetSector(1)!=5){ 
-         if(stream.GetSector(1)==0){
-          if(stream.GetADCGain()==0) GetRawsData(0)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(6)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==1){
-          if(stream.GetADCGain()==0) GetRawsData(12)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(28)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==2){
-          if(stream.GetADCGain()==0) GetRawsData(13)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(29)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==3){
-          if(stream.GetADCGain()==0) GetRawsData(14)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(30)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==4){
-          if(stream.GetADCGain()==0) GetRawsData(15)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(31)->Fill(stream.GetADCValue());
-        }
-       }
-       else if(stream.GetSector(0)==2){ 
-         if(stream.GetSector(1)==0){
-          if(stream.GetADCGain()==0) GetRawsData(2)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(8)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==1){
-          if(stream.GetADCGain()==0) GetRawsData(16)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(32)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==2){
-          if(stream.GetADCGain()==0) GetRawsData(17)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(33)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==3){
-          if(stream.GetADCGain()==0) GetRawsData(18)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(34)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==4){
-          if(stream.GetADCGain()==0) GetRawsData(19)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(35)->Fill(stream.GetADCValue());
-        }
-       }
-       else if(stream.GetSector(0)==3){
-         if(stream.GetSector(1)==1){ // ZEM1
-          if(stream.GetADCGain()==0) GetRawsData(4)->Fill(stream.GetADCValue());
-          else GetRawsData(10)->Fill(stream.GetADCValue());
-        }
-         else if(stream.GetSector(1)==2){ // ZEM2
-          if(stream.GetADCGain()==0) GetRawsData(5)->Fill(stream.GetADCValue());
-          else GetRawsData(11)->Fill(stream.GetADCValue());
-        }
-       }
-       else if(stream.GetSector(0)==4 && stream.GetSector(1)!=5){
-         if(stream.GetSector(1)==0){
-          if(stream.GetADCGain()==0) GetRawsData(1)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(7)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==1){
-          if(stream.GetADCGain()==0) GetRawsData(20)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(36)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==2){
-          if(stream.GetADCGain()==0) GetRawsData(21)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(37)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==3){
-          if(stream.GetADCGain()==0) GetRawsData(22)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(38)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==4){
-          if(stream.GetADCGain()==0) GetRawsData(23)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(39)->Fill(stream.GetADCValue());
-        }
-       }
-       else if(stream.GetSector(0)==5){
-         if(stream.GetSector(1)==0){
-          if(stream.GetADCGain()==0) GetRawsData(3)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(9)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==1){
-          if(stream.GetADCGain()==0) GetRawsData(24)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(40)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==2){
-          if(stream.GetADCGain()==0) GetRawsData(25)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(41)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==3){
-          if(stream.GetADCGain()==0) GetRawsData(26)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(42)->Fill(stream.GetADCValue());
-        }
-        else if(stream.GetSector(1)==4){
-          if(stream.GetADCGain()==0) GetRawsData(27)->Fill(stream.GetADCValue());
-          else if(stream.GetADCGain()==1) GetRawsData(43)->Fill(stream.GetADCValue());
-        }
-       }
-    }
-    
-  }
-
-//   stream.Delete();
-}
-
-//____________________________________________________________________________
 void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd)
 {
   // make QA data from ESDs
   //
   
   // Check id histograms already created for this Event Specie
-  if(!GetESDsData(0))
-    InitESDs() ;
+  if(!GetESDsData(0)) InitESDs() ;
 
   AliESDZDC * zdcESD =  esd->GetESDZDC();
   //
@@ -719,6 +433,8 @@ void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd)
   GetESDsData(3)->Fill(esd->GetZDCN2Energy());
   GetESDsData(4)->Fill(esd->GetZDCP1Energy());
   GetESDsData(5)->Fill(esd->GetZDCP2Energy());
+  GetESDsData(6)->Fill(esd->GetZDCEMEnergy(0));
+  GetESDsData(7)->Fill(esd->GetZDCEMEnergy(1));
   //
   Double_t sumQZNC=0., sumQZPC=0., sumQZNA=0., sumQZPA=0.;
   Double_t sumQZNC_lg=0., sumQZPC_lg=0., sumQZNA_lg=0., sumQZPA_lg=0.;
@@ -738,15 +454,15 @@ void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd)
   //
   for(Int_t i=0; i<5; i++){
      if(i==0){
-       GetESDsData(10)->Fill(towZNC[i]);
-       GetESDsData(11)->Fill(towZNA[i]);
-       GetESDsData(12)->Fill(towZPC[i]);
-       GetESDsData(13)->Fill(towZPA[i]);
+       GetESDsData(12)->Fill(towZNC[i]);
+       GetESDsData(13)->Fill(towZNA[i]);
+       GetESDsData(14)->Fill(towZPC[i]);
+       GetESDsData(15)->Fill(towZPA[i]);
        //
-       GetESDsData(22)->Fill(towZNC_lg[i]);
-       GetESDsData(23)->Fill(towZNA_lg[i]);
-       GetESDsData(24)->Fill(towZPC_lg[i]);
-       GetESDsData(25)->Fill(towZPA_lg[i]);
+       GetESDsData(20)->Fill(towZNC_lg[i]);
+       GetESDsData(21)->Fill(towZNA_lg[i]);
+       GetESDsData(22)->Fill(towZPC_lg[i]);
+       GetESDsData(23)->Fill(towZPA_lg[i]);
      }
      else{
        sumQZNC += towZNC[i];
@@ -760,21 +476,23 @@ void AliZDCQADataMakerRec::MakeESDs(AliESDEvent * esd)
        sumQZPA_lg += towZPA_lg[i];
      }
   }
-  GetESDsData(6)->Fill(sumQZNC);
-  GetESDsData(7)->Fill(sumQZNA);
-  GetESDsData(8)->Fill(sumQZPC);
-  GetESDsData(9)->Fill(sumQZPA);
+  GetESDsData(8)->Fill(sumQZNC);
+  GetESDsData(9)->Fill(sumQZNA);
+  GetESDsData(10)->Fill(sumQZPC);
+  GetESDsData(11)->Fill(sumQZPA);
   //
-  GetESDsData(18)->Fill(sumQZNC_lg);
-  GetESDsData(19)->Fill(sumQZNA_lg);
-  GetESDsData(20)->Fill(sumQZPC_lg);
-  GetESDsData(21)->Fill(sumQZPA_lg);
+  GetESDsData(16)->Fill(sumQZNC_lg);
+  GetESDsData(17)->Fill(sumQZNA_lg);
+  GetESDsData(18)->Fill(sumQZPC_lg);
+  GetESDsData(19)->Fill(sumQZPA_lg);
 }
 
 //____________________________________________________________________________
 void AliZDCQADataMakerRec::StartOfDetectorCycle()
 {
   //Detector specific actions at start of cycle
+
+  fPedCalibData = GetPedCalibData();
   
 }
 
index 704335d..a986336 100644 (file)
 
 
 #include "AliQADataMakerRec.h"
+#include "AliQAv1.h"
 
-class AliZDCDigit;
+class AliCDBManager;
+class AliCDBEntry;
+class AliCDBStorage;
+class AliZDCPedestals;
 
 class AliZDCQADataMakerRec: public AliQADataMakerRec {
 
@@ -22,23 +26,22 @@ public:
   AliZDCQADataMakerRec(const AliZDCQADataMakerRec& qadm) ;   
   AliZDCQADataMakerRec& operator = (const AliZDCQADataMakerRec& qadm) ;
   virtual ~AliZDCQADataMakerRec() {;} // dtor
+  AliZDCPedestals  *GetPedCalibData() const; 
+  
   
 private:
   virtual void   InitESDs(); 
-  virtual void   InitDigits() ; 
   virtual void   InitRecPoints();
   virtual void   InitRaws(); 
-  virtual void   MakeDigits(TTree * /*recTree*/) ;
-  virtual void   MakeDigits()  {return;}
   virtual void   MakeRecPoints(TTree * /*recTree*/);
   virtual void   MakeRaws(AliRawReader* rawReader) ; 
   virtual void   MakeESDs(AliESDEvent * esd) ;
-  virtual void   StartOfDetectorCycle() ; 
+  virtual void   StartOfDetectorCycle(); 
   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list) ;
 
-  AliZDCDigit    *fDigit;      //! Pointer to digit in tree  
+  AliZDCPedestals *fPedCalibData; //! pedestal calibration data
  
-  ClassDef(AliZDCQADataMakerRec,1)  // description 
+  ClassDef(AliZDCQADataMakerRec,3)  // description 
 
 };
 
index e14f459..9f10372 100644 (file)
 #include "AliZDCQADataMakerSim.h"\r
 #include "AliZDCHit.h"\r
 #include "AliZDCDigit.h"\r
-#include "AliZDCRawStream.h"\r
 \r
 ClassImp(AliZDCQADataMakerSim)\r
            \r
 //____________________________________________________________________________ \r
   AliZDCQADataMakerSim::AliZDCQADataMakerSim() : \r
-      AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kZDC), "ZDC Quality Assurance Data Maker"),\r
-      fDigit(0)\r
+      AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kZDC), "ZDC Quality Assurance Data Maker")\r
 {\r
   // ctor\r
 }\r
 \r
 //____________________________________________________________________________ \r
 AliZDCQADataMakerSim::AliZDCQADataMakerSim(const AliZDCQADataMakerSim& qadm) :\r
-    AliQADataMakerSim(), \r
-    fDigit(0) \r
+    AliQADataMakerSim()\r
 {\r
   //copy ctor \r
   SetName((const char*)qadm.GetName()); \r
@@ -147,10 +144,10 @@ void AliZDCQADataMakerSim::InitDigits()
   TH1F * hDigZNATotlg = new TH1F("hDigZNATotlg", "Digit lg signal in ZNA", 100, 0., 6000.);\r
   TH1F * hDigZPCTotlg = new TH1F("hDigZPCTotlg", "Digit lg signal in ZPC", 100, 0., 6000.);\r
   TH1F * hDigZPATotlg = new TH1F("hDigZPATotlg", "Digit lg signal in ZPA", 100, 0., 6000.);\r
-  Add2DigitsList(hDigZNCTotlg, 12, !expert, image);\r
-  Add2DigitsList(hDigZNATotlg, 13, !expert, image);\r
-  Add2DigitsList(hDigZPCTotlg, 14, !expert, image);\r
-  Add2DigitsList(hDigZPATotlg, 15, !expert, image);\r
+  Add2DigitsList(hDigZNCTotlg, 12, expert, !image);\r
+  Add2DigitsList(hDigZNATotlg, 13, expert, !image);\r
+  Add2DigitsList(hDigZPCTotlg, 14, expert, !image);\r
+  Add2DigitsList(hDigZPATotlg, 15, expert, !image);\r
   //\r
   TH1F * hDigSumQZNClg = new TH1F("hDigSumQZNClg", "Signal in 4 ZNC PMQlg",100, 0., 4000.);\r
   TH1F * hDigSumQZNAlg = new TH1F("hDigSumQZNAlg", "Signal in 4 ZNA PMQlg",100, 0., 4000.);\r
@@ -176,11 +173,9 @@ void AliZDCQADataMakerSim::InitDigits()
 void AliZDCQADataMakerSim::MakeHits()\r
 {\r
   //filling QA histos for Hits\r
-  //\r
 \r
   // Check id histograms already created for this Event Specie\r
-  if ( ! GetHitsData(0) )\r
-    InitHits() ;\r
+  if( !GetHitsData(0) ) InitHits();\r
   \r
   TIter next(fHitsArray); \r
   AliZDCHit * hit; \r
@@ -236,12 +231,9 @@ void AliZDCQADataMakerSim::MakeHits()
 void AliZDCQADataMakerSim::MakeHits(TTree * hitTree)\r
 {\r
   // make QA data from Hit Tree\r
-  //\r
-  if(!hitTree){\r
-    AliError("Hit Tree not found!"); \r
-    return;\r
-  }\r
-  //\r
+  \r
+  if(fHitsArray) fHitsArray->Clear() ; \r
+  else fHitsArray = new TClonesArray("AliZDCHit", 1000);\r
 \r
   TBranch * branch = hitTree->GetBranch("ZDC") ;\r
 \r
@@ -250,104 +242,82 @@ void AliZDCQADataMakerSim::MakeHits(TTree * hitTree)
     return;\r
   } \r
   else{\r
-    if (fHitsArray) \r
-      fHitsArray->Clear() ;                    \r
-    char** add = (char**) (branch->GetAddress());\r
-    if(add){\r
-        fHitsArray = (TClonesArray*)(*add);\r
-    } \r
-    else{\r
-        if(!fHitsArray) fHitsArray = new TClonesArray("AliZDCHit", 1000);\r
-        branch->SetAddress(&fHitsArray);\r
-    }\r
-    Int_t ntracks = (Int_t) hitTree->GetEntries();\r
-    if (ntracks<=0) return;\r
-    //\r
-    for(Int_t itrack=0; itrack<ntracks; itrack++){\r
-        \r
-        branch->GetEntry(itrack);\r
-        //\r
-        MakeHits(); \r
-        fHitsArray->Clear();\r
-    }  \r
+    Int_t nHits = 0;\r
+    branch->SetAddress(&fHitsArray) ;\r
+    for (Int_t ientry = 0 ; ientry < branch->GetEntries() ; ientry++) {\r
+      branch->GetEntry(ientry) ;\r
+      nHits += fHitsArray->GetEntriesFast();\r
+      MakeHits() ; \r
+      fHitsArray->Clear();\r
+    }  \r
   }\r
 }\r
 \r
 //___________________________________________________________________________\r
-void AliZDCQADataMakerSim::MakeDigits(TTree *digitTree )\r
+void AliZDCQADataMakerSim::MakeDigits()\r
 {\r
-  // makes data from Digit Tree\r
-  TBranch * branch = digitTree->GetBranch("ZDC");\r
-  if(!branch){\r
-    AliError("ZDC branch in Digit Tree not found"); \r
-    return;\r
-  } \r
-  \r
-  // Check id histograms already created for this Event Specie\r
-  if ( ! GetDigitsData(0) )\r
-    InitDigits() ;\r
-  \r
-  branch->SetAddress(&fDigit);\r
-  \r
-  Int_t ndig = digitTree->GetEntries();\r
-   \r
+  // makes data from Digits\r
+  if( !GetDigitsData(0) ) InitDigits();\r
\r
+  TIter next(fDigitsArray); \r
+  AliZDCDigit * digit;\r
+     \r
   Float_t adcSum_ZNC=0., adcSum_ZNA=0., adcSum_ZPC=0., adcSum_ZPA=0.;\r
   Float_t adcSumQ_ZNC=0., adcSumQ_ZNA=0., adcSumQ_ZPC=0., adcSumQ_ZPA=0.;\r
   Float_t adcSum_ZNC_lg=0., adcSum_ZNA_lg=0., adcSum_ZPC_lg=0., adcSum_ZPA_lg=0.;\r
   Float_t adcSumQ_ZNC_lg=0., adcSumQ_ZNA_lg=0., adcSumQ_ZPC_lg=0., adcSumQ_ZPA_lg=0.;\r
-  //\r
-  for(Int_t i = 0; i < ndig; i++){\r
-      digitTree->GetEntry(i);\r
-      if(fDigit->GetSector(0)==1){\r
-         adcSum_ZNC += fDigit->GetADCValue(0);\r
-         adcSum_ZNC_lg += fDigit->GetADCValue(1);\r
+  \r
+  while ( (digit = dynamic_cast<AliZDCDigit *>(next())) ) {\r
+      if(digit->GetSector(0)==1){\r
+         adcSum_ZNC += digit->GetADCValue(0);\r
+         adcSum_ZNC_lg += digit->GetADCValue(1);\r
          //\r
-         if(fDigit->GetSector(1)!=0){\r
-             adcSumQ_ZNC += fDigit->GetADCValue(0);\r
-             adcSumQ_ZNC_lg+= fDigit->GetADCValue(1);\r
+         if(digit->GetSector(1)!=0){\r
+             adcSumQ_ZNC += digit->GetADCValue(0);\r
+             adcSumQ_ZNC_lg+= digit->GetADCValue(1);\r
          }\r
          else{\r
-             GetDigitsData(8)->Fill(fDigit->GetADCValue(0));\r
-             GetDigitsData(20)->Fill(fDigit->GetADCValue(1));\r
+             GetDigitsData(8)->Fill(digit->GetADCValue(0));\r
+             GetDigitsData(20)->Fill(digit->GetADCValue(1));\r
          }\r
       }\r
-      else if(fDigit->GetSector(0)==2){\r
-         adcSum_ZPC += fDigit->GetADCValue(0);\r
-         adcSum_ZPC_lg += fDigit->GetADCValue(1);\r
+      else if(digit->GetSector(0)==2){\r
+         adcSum_ZPC += digit->GetADCValue(0);\r
+         adcSum_ZPC_lg += digit->GetADCValue(1);\r
          //\r
-         if(fDigit->GetSector(1)!=0){\r
-             adcSumQ_ZPC += fDigit->GetADCValue(0);\r
-             adcSumQ_ZPC_lg+= fDigit->GetADCValue(1);\r
+         if(digit->GetSector(1)!=0){\r
+             adcSumQ_ZPC += digit->GetADCValue(0);\r
+             adcSumQ_ZPC_lg+= digit->GetADCValue(1);\r
          }\r
          else{\r
-             GetDigitsData(10)->Fill(fDigit->GetADCValue(0));\r
-             GetDigitsData(22)->Fill(fDigit->GetADCValue(1));\r
+             GetDigitsData(10)->Fill(digit->GetADCValue(0));\r
+             GetDigitsData(22)->Fill(digit->GetADCValue(1));\r
          }\r
       }\r
-      else if(fDigit->GetSector(0)==4){\r
-         adcSum_ZNA += fDigit->GetADCValue(0);\r
-         adcSum_ZNA_lg += fDigit->GetADCValue(1);\r
+      else if(digit->GetSector(0)==4){\r
+         adcSum_ZNA += digit->GetADCValue(0);\r
+         adcSum_ZNA_lg += digit->GetADCValue(1);\r
          //\r
-         if(fDigit->GetSector(1)!=0){\r
-             adcSumQ_ZNA += fDigit->GetADCValue(0);\r
-             adcSumQ_ZNA_lg+= fDigit->GetADCValue(1);\r
+         if(digit->GetSector(1)!=0){\r
+             adcSumQ_ZNA += digit->GetADCValue(0);\r
+             adcSumQ_ZNA_lg+= digit->GetADCValue(1);\r
          }\r
          else{\r
-             GetDigitsData(9)->Fill(fDigit->GetADCValue(0));\r
-             GetDigitsData(21)->Fill(fDigit->GetADCValue(1));\r
+             GetDigitsData(9)->Fill(digit->GetADCValue(0));\r
+             GetDigitsData(21)->Fill(digit->GetADCValue(1));\r
          }\r
       }\r
-      else if(fDigit->GetSector(0)==5){\r
-         adcSum_ZPA += fDigit->GetADCValue(0);\r
-         adcSum_ZPA_lg += fDigit->GetADCValue(1);\r
+      else if(digit->GetSector(0)==5){\r
+         adcSum_ZPA += digit->GetADCValue(0);\r
+         adcSum_ZPA_lg += digit->GetADCValue(1);\r
          //\r
-         if(fDigit->GetSector(1)!=0){\r
-             adcSumQ_ZPA += fDigit->GetADCValue(0);\r
-             adcSumQ_ZPA_lg+= fDigit->GetADCValue(1);\r
+         if(digit->GetSector(1)!=0){\r
+             adcSumQ_ZPA += digit->GetADCValue(0);\r
+             adcSumQ_ZPA_lg+= digit->GetADCValue(1);\r
          }\r
          else{\r
-             GetDigitsData(11)->Fill(fDigit->GetADCValue(0));\r
-             GetDigitsData(23)->Fill(fDigit->GetADCValue(1));\r
+             GetDigitsData(11)->Fill(digit->GetADCValue(0));\r
+             GetDigitsData(23)->Fill(digit->GetADCValue(1));\r
          }\r
       }\r
   }\r
@@ -371,6 +341,25 @@ void AliZDCQADataMakerSim::MakeDigits(TTree *digitTree )
   GetDigitsData(17)->Fill(adcSumQ_ZNA_lg);\r
   GetDigitsData(18)->Fill(adcSumQ_ZPC_lg);\r
   GetDigitsData(19)->Fill(adcSumQ_ZPA_lg);\r
+\r
+}\r
+\r
+//___________________________________________________________________________\r
+void AliZDCQADataMakerSim::MakeDigits(TTree *digitTree)\r
+{\r
+  // makes data from Digit Tree\r
+  if(fDigitsArray) fDigitsArray->Clear() ; \r
+  else fDigitsArray = new TClonesArray("AliZDCDigit", 1000) ; \r
+\r
+  TBranch * branch = digitTree->GetBranch("ZDC");\r
+  if(!branch){\r
+    AliError("ZDC branch in Digit Tree not found"); \r
+    return;\r
+  } \r
+  \r
+  branch->SetAddress(&fDigitsArray);\r
+  branch->GetEntry(0) ; \r
+  MakeDigits() ; \r
 }\r
 \r
 //____________________________________________________________________________\r
index a7a7e7c..4c817d5 100644 (file)
@@ -10,8 +10,6 @@
 //                                                 //\r
 //////////////////////////////////////////////////////\r
 \r
-class AliZDCDigit;\r
-\r
 #include "AliQADataMakerSim.h"\r
 class AliZDCQADataMakerSim: public AliQADataMakerSim {\r
 \r
@@ -27,16 +25,14 @@ private:
   virtual void   InitSDigits() {;} \r
   virtual void   MakeHits();\r
   virtual void   MakeHits(TTree * hitTree);\r
-  virtual void   MakeDigits(){;} \r
+  virtual void   MakeDigits(); \r
   virtual void   MakeDigits(TTree * digTree);\r
   virtual void   MakeSDigits() {;} \r
   virtual void   MakeSDigits(TTree * /*sdigTree*/) {;}\r
   virtual void   StartOfDetectorCycle(); \r
   virtual void   EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list);\r
-  //\r
-  AliZDCDigit    *fDigit;      //! Pointer to digit in tree  \r
   \r
-  ClassDef(AliZDCQADataMakerSim,2)  // description \r
+  ClassDef(AliZDCQADataMakerSim, 3)  // description \r
 \r
 };\r
 \r
index ce38c6a..5af38c1 100644 (file)
@@ -151,11 +151,13 @@ void AliZDCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) co
   }  
   
   Int_t digNentries = digitsTree->GetEntries();
-  Float_t ootDigi[kNch];
+  Float_t ootDigi[kNch]; Int_t i=0;
   // -- Reading out-of-time signals (last kNch entries) for current event
   if(fPedSubMode==1){
     for(Int_t iDigit=kNch; iDigit<digNentries; iDigit++){
-       ootDigi[iDigit] = digitsTree->GetEntry(iDigit);
+       if(i<=kNch) ootDigi[i] = digitsTree->GetEntry(iDigit);
+       else AliWarning(" Can't read more out of time values: index>kNch !!!\n");
+       i++;
     }
   }
   
@@ -650,7 +652,7 @@ void AliZDCReconstructor::ReconstructEventpp(TTree *clustersTree,
      equalCoeffZP2[ji] = fTowCalibData->GetZP2EqualCoeff(ji); 
   }
   // --- Energy calibration factors ------------------------------------
-  Float_t calibEne[4];
+  Float_t calibEne[6];
   // **** Energy calibration coefficient set to 1 
   // **** (no trivial way to calibrate in p-p runs)
   for(Int_t ij=0; ij<6; ij++) calibEne[ij] = fEnCalibData->GetEnCalib(ij);
index 2f262d4..7e4ff2b 100644 (file)
@@ -165,13 +165,13 @@ AliZDCv3::AliZDCv3(const char *name, const char *title) :
   fDimZP[1] = 6.;
   fDimZP[2] = 75.;    
   fPosZNC[0] = 0.;
-  fPosZNC[1] = 1.2;
+  fPosZNC[1] = 0.;
   fPosZNC[2] = -11397.3; 
   fPosZPC[0] = 24.35;
   fPosZPC[1] = 0.;
   fPosZPC[2] = -11389.3; 
   fPosZNA[0] = 0.;
-  fPosZNA[1] = 1.2;
+  fPosZNA[1] = 0.;
   fPosZNA[2] = 11395.8;  
   fPosZPA[0] = 24.35;
   fPosZPA[1] = 0.;
@@ -2363,7 +2363,7 @@ void AliZDCv3::StepManager()
   Int_t   j, vol[2]={0,0}, ibeta=0, ialfa=0, ibe=0, nphe=0;
   Float_t hits[13], x[3], xdet[3], um[3], ud[3];
   Float_t destep=0., be=0., out=0.;
-  Double_t s[3], p[3];
+  Double_t s[3], p[4];
   const char *knamed;
   //
   for(j=0;j<13;j++) hits[j]=-999.;
index 663a0be..0baf10d 100644 (file)
@@ -33,6 +33,12 @@ public:
   void SetVCollCentre(Float_t centre) {fVCollCentreY = centre;}
   void SetLumiLength(Float_t length) {fLumiLength = length;}
   
+  void SetYZNC(Float_t yZNC) {fPosZNC[1] = yZNC;}
+  void SetYZNA(Float_t yZNA) {fPosZNC[1] = yZNA;}
+  
+  void SetYZPC(Float_t yZPC) {fPosZPC[1] = yZPC;}
+  void SetYZPA(Float_t yZPA) {fPosZPC[1] = yZPA;}
+  
  
 protected: