]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSQASSDDataMakerSim.cxx
Added method SetTaskOffset in ITS checkers. Updated data members containing the numbe...
[u/mrichter/AliRoot.git] / ITS / AliITSQASSDDataMakerSim.cxx
index 1a91eb23a9c41de223225a47799e3f0e5d628104..33df56b09c722bbb6726bf8c38e0f548a8711249 100644 (file)
-/**************************************************************************
- * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $Id$   */
-
-//  *************************************************************
-//  Checks the quality assurance 
-//  by comparing with reference data
-//  contained in a DB
-//  -------------------------------------------------------------
-//  W. Ferrarese + P. Cerello Feb 2008
-//  INFN Torino
-//  SSD QA part: P. Christakoglou - NIKHEF/UU
-
-// --- ROOT system ---
-#include <TTree.h>
-#include <TH1.h>
-#include <TH2.h>
-#include <TMath.h>
-// --- Standard library ---
-
-// --- AliRoot header files ---
-#include "AliITS.h"
-#include "AliITSmodule.h"
-#include "AliITShit.h"
-#include "AliITSdigit.h"
-#include "AliITSpListItem.h"
-#include "AliRun.h"
-#include "AliITSQADataMakerSim.h"
-#include "AliITSQASSDDataMakerSim.h"
-#include "AliLog.h"
-#include "AliQA.h"
-#include "AliQAChecker.h"
-#include "AliRawReader.h"
-
-ClassImp(AliITSQASSDDataMakerSim)
-
-//____________________________________________________________________________ 
-AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :
-TObject(),
-fAliITSQADataMakerSim(aliITSQADataMakerSim),
-fSSDhDigits(0),
-fSSDhSDigits(0),
-fSSDhHits(0),
-fGenOffset(0) {
-  //ctor used to discriminate OnLine-Offline analysis   
-}
-
-//____________________________________________________________________________ 
-AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :
-TObject(),
-fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),
-fSSDhDigits(qadm.fSSDhDigits),
-fSSDhSDigits(qadm.fSSDhSDigits),
-fSSDhHits(qadm.fSSDhHits),
-fGenOffset(qadm.fGenOffset) {
-  //copy ctor 
-  fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ; 
-  fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());
-  }
-
-//__________________________________________________________________
-AliITSQASSDDataMakerSim& AliITSQASSDDataMakerSim::operator = (const AliITSQASSDDataMakerSim& qac ) {
-  // Equal operator.
-  this->~AliITSQASSDDataMakerSim();
-  new(this) AliITSQASSDDataMakerSim(qac);
-  return *this;
-}
-
-//____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {
-  //Detector specific actions at start of cycle
-  AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");
-}
-
-//____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list) {
-  // launch the QA checking
-  AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); 
-  
-  AliQAChecker::Instance()->Run( AliQA::kITS , task, list);
-}
-
-//____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitDigits() { 
-  // Initialization for DIGIT data - SSD -
-  fGenOffset = (fAliITSQADataMakerSim->fDigitsQAList)->GetEntries();
-
-  // custom code here
-  TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",
-                                 ";SSD Module Number;N_{DIGITS}",
-                                 1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
-                                       fGenOffset + fSSDhDigits);
-  fSSDhDigits += 1;
-  TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",
-                                      ";N_{Strip};N_{Module}",
-                                      1540,0,1540,1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
-                                       fGenOffset + fSSDhDigits);
-  fSSDhDigits += 1;
-
-  AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhDigits));
-
-}
-
-//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) { 
-  // Fill QA for DIGIT - SSD -
-  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
-  fITS->SetTreeAddress();
-  TClonesArray *iSSDdigits  = fITS->DigitsAddress(2);
-  for(Int_t iModule = 500; iModule < 2198; iModule++) {
-    iSSDdigits->Clear();
-    digits->GetEvent(iModule);    
-    Int_t ndigits = iSSDdigits->GetEntries();
-    fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);
-    if(ndigits != 0)
-      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
-    for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
-      AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);
-      Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;
-      ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 1))->Fill(fStripNumber,iModule,dig->GetSignal());
-    }//digit loop
-  }//module loop
-}
-
-//____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitSDigits() { 
-  // Initialization for SDIGIT data - SSD -
-  fGenOffset = (fAliITSQADataMakerSim->fSDigitsQAList)->GetEntries();
-
-  // custom code here
-  TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",
-                                 ";SSD Module Number;N_{SDIGITS}",
-                                 1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
-                                        fGenOffset + fSSDhSDigits);
-  fSSDhSDigits += 1;  
-
-  AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhSDigits));
-}
-
-//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { 
-  // Fill QA for SDIGIT - SSD -
-  static TClonesArray iSSDEmpty("AliITSpListItem",10000);
-  iSSDEmpty.Clear();
-  TClonesArray *iSSDsdigits = &iSSDEmpty;
-
-  TBranch *brchSDigits = sdigits->GetBranch("ITS");
-  brchSDigits->SetAddress(&iSSDsdigits);
-  for(Int_t iModule = 500; iModule < 2198; iModule++) {
-    iSSDsdigits->Clear();
-    sdigits->GetEvent(iModule);    
-    Int_t ndigits = iSSDsdigits->GetEntries();
-    fAliITSQADataMakerSim->GetSDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);
-    if(ndigits != 0)
-      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
-
-    for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
-      AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);
-      dig=0;
-    }//digit loop
-  }//module loop
-}
-
-//____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitHits() { 
-  // Initialization for HITS data - SSD -
-  fGenOffset = (fAliITSQADataMakerSim->fHitsQAList)->GetEntries();
-
-  // custom code here
-  TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",
-                                 ";SDD Module Number;N_{HITS}",
-                                 1698,499.5,2197.5); 
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",
-                                  ";x [cm];Entries",
-                                  1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",
-                                  ";y [cm];Entries",
-                                  1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",
-                                  ";z [cm];Entries",
-                                  1000,-60.,60.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",
-                                 ";x [cm];Entries",
-                                 1000,-4.,4.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",
-                                 ";y [cm];Entries",
-                                 1000,-0.1,0.1);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",
-                                 ";z [cm];Entries",
-                                 1000,-4.,4.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",
-                                     ";log(dE/dx) [KeV];N_{Hits}",
-                                     100,-7,-2);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",
-                                   ";x [cm];y [cm]",
-                                   1000,-50.,50.,
-                                   1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
-                                     fGenOffset + fSSDhHits);
-  fSSDhHits += 1;
-  AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhHits));
-}
-
-
-//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { 
-  // Fill QA for HITS - SSD -
-  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
-  fITS->SetTreeAddress();
-  Int_t nmodules;
-  fITS->InitModules(-1,nmodules);
-  fITS->FillModules(hits,0);
-  for(Int_t iModule = 500; iModule < 2198; iModule++) {
-    AliITSmodule *module = fITS->GetModule(iModule);
-    TObjArray *arrHits = module->GetHits();
-    Int_t nhits = arrHits->GetEntriesFast();
-    if(nhits != 0)
-      AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));
-    for (Int_t iHit = 0; iHit < nhits; iHit++) {
-      AliITShit *hit = (AliITShit*) arrHits->At(iHit);
-      
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 0)->Fill(iModule);
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 1)->Fill(hit->GetXG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 2)->Fill(hit->GetYG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 3)->Fill(hit->GetZG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 4)->Fill(hit->GetXL());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 5)->Fill(hit->GetYL());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 6)->Fill(hit->GetZL());
-      if(hit->GetIonization())
-       fAliITSQADataMakerSim->GetHitsData(fGenOffset + 7)->Fill(TMath::Log10(hit->GetIonization()));
-      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 8)->Fill(hit->GetXG(),hit->GetYG());
-    }//hit loop
-  }//module loop  
-}
+/**************************************************************************\r
+ * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *\r
+ *                                                                        *\r
+ * Author: The ALICE Off-line Project.                                    *\r
+ * Contributors are mentioned in the code where appropriate.              *\r
+ *                                                                        *\r
+ * Permission to use, copy, modify and distribute this software and its   *\r
+ * documentation strictly for non-commercial purposes is hereby granted   *\r
+ * without fee, provided that the above copyright notice appears in all   *\r
+ * copies and that both the copyright notice and this permission notice   *\r
+ * appear in the supporting documentation. The authors make no claims     *\r
+ * about the suitability of this software for any purpose. It is          *\r
+ * provided "as is" without express or implied warranty.                  *\r
+ **************************************************************************/\r
+\r
+/* $Id$   */\r
+\r
+//  *************************************************************\r
+//  Checks the quality assurance \r
+//  by comparing with reference data\r
+//  contained in a DB\r
+//  -------------------------------------------------------------\r
+//  W. Ferrarese + P. Cerello Feb 2008\r
+//  INFN Torino\r
+//  SSD QA part: P. Christakoglou - NIKHEF/UU\r
+\r
+// --- ROOT system ---\r
+#include <TTree.h>\r
+#include <TH1.h>\r
+#include <TH2.h>\r
+#include <TMath.h>\r
+// --- Standard library ---\r
+\r
+// --- AliRoot header files ---\r
+#include "AliITS.h"\r
+#include "AliITSmodule.h"\r
+#include "AliITShit.h"\r
+#include "AliITSdigit.h"\r
+#include "AliITSpListItem.h"\r
+#include "AliRun.h"\r
+#include "AliITSQADataMakerSim.h"\r
+#include "AliITSQASSDDataMakerSim.h"\r
+#include "AliLog.h"\r
+#include "AliQA.h"\r
+#include "AliQAChecker.h"\r
+#include "AliRawReader.h"\r
+\r
+ClassImp(AliITSQASSDDataMakerSim)\r
+\r
+//____________________________________________________________________________ \r
+AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :\r
+TObject(),\r
+fAliITSQADataMakerSim(aliITSQADataMakerSim),\r
+fSSDhTask(0),\r
+fGenOffset(0) {\r
+  //ctor used to discriminate OnLine-Offline analysis   \r
+}\r
+\r
+//____________________________________________________________________________ \r
+AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :\r
+TObject(),\r
+fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),\r
+fSSDhTask(qadm.fSSDhTask),\r
+fGenOffset(qadm.fGenOffset) {\r
+  //copy ctor \r
+  fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ; \r
+  fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());\r
+  }\r
+\r
+//__________________________________________________________________\r
+AliITSQASSDDataMakerSim& AliITSQASSDDataMakerSim::operator = (const AliITSQASSDDataMakerSim& qac ) {\r
+  // Equal operator.\r
+  this->~AliITSQASSDDataMakerSim();\r
+  new(this) AliITSQASSDDataMakerSim(qac);\r
+  return *this;\r
+}\r
+\r
+//____________________________________________________________________________ \r
+void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {\r
+  //Detector specific actions at start of cycle\r
+  AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");\r
+}\r
+\r
+//____________________________________________________________________________ \r
+void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t /*task*/, TObjArray* /*list*/) {\r
+  // launch the QA checking\r
+  AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); \r
+  \r
+  //AliQAChecker::Instance()->Run( AliQA::kITS , task, list);\r
+}\r
+\r
+//____________________________________________________________________________ \r
+void AliITSQASSDDataMakerSim::InitDigits() { \r
+  // Initialization for DIGIT data - SSD -\r
+  fGenOffset = (fAliITSQADataMakerSim->fDigitsQAList)->GetEntries();\r
+\r
+  // custom code here\r
+  TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",\r
+                                 ";SSD Module Number;N_{DIGITS}",\r
+                                 1698,499.5,2197.5);  \r
+  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,\r
+                                       fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",\r
+                                      ";N_{Strip};N_{Module}",\r
+                                      1540,0,1540,1698,499.5,2197.5);  \r
+  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,\r
+                                       fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+\r
+  AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhTask));\r
+\r
+}\r
+\r
+//____________________________________________________________________________\r
+void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) { \r
+  // Fill QA for DIGIT - SSD -\r
+  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");\r
+  fITS->SetTreeAddress();\r
+  TClonesArray *iSSDdigits  = fITS->DigitsAddress(2);\r
+  for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
+    iSSDdigits->Clear();\r
+    digits->GetEvent(iModule);    \r
+    Int_t ndigits = iSSDdigits->GetEntries();\r
+    fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);\r
+    if(ndigits != 0)\r
+      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
\r
+    for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
+      AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);\r
+      Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;\r
+      ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 1))->Fill(fStripNumber,iModule,dig->GetSignal());\r
+    }//digit loop\r
+  }//module loop\r
+}\r
+\r
+//____________________________________________________________________________ \r
+void AliITSQASSDDataMakerSim::InitSDigits() { \r
+  // Initialization for SDIGIT data - SSD -\r
+  fGenOffset = (fAliITSQADataMakerSim->fSDigitsQAList)->GetEntries();\r
+\r
+  // custom code here\r
+  TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",\r
+                                 ";SSD Module Number;N_{SDIGITS}",\r
+                                 1698,499.5,2197.5);  \r
+  fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,\r
+                                        fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;  \r
+\r
+  AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhTask));\r
+}\r
+\r
+//____________________________________________________________________________\r
+void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { \r
+  // Fill QA for SDIGIT - SSD -\r
+  static TClonesArray iSSDEmpty("AliITSpListItem",10000);\r
+  iSSDEmpty.Clear();\r
+  TClonesArray *iSSDsdigits = &iSSDEmpty;\r
+\r
+  TBranch *brchSDigits = sdigits->GetBranch("ITS");\r
+  brchSDigits->SetAddress(&iSSDsdigits);\r
+  for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
+    iSSDsdigits->Clear();\r
+    sdigits->GetEvent(iModule);    \r
+    Int_t ndigits = iSSDsdigits->GetEntries();\r
+    fAliITSQADataMakerSim->GetSDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);\r
+    if(ndigits != 0)\r
+      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));\r
+\r
+    for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {\r
+      AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);\r
+      dig=0;\r
+    }//digit loop\r
+  }//module loop\r
+}\r
+\r
+//____________________________________________________________________________ \r
+void AliITSQASSDDataMakerSim::InitHits() { \r
+  // Initialization for HITS data - SSD -\r
+  fGenOffset = (fAliITSQADataMakerSim->fHitsQAList)->GetEntries();\r
+\r
+  // custom code here\r
+  TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",\r
+                                 ";SDD Module Number;N_{HITS}",\r
+                                 1698,499.5,2197.5); \r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",\r
+                                  ";x [cm];Entries",\r
+                                  1000,-50.,50.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",\r
+                                  ";y [cm];Entries",\r
+                                  1000,-50.,50.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",\r
+                                  ";z [cm];Entries",\r
+                                  1000,-60.,60.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",\r
+                                 ";x [cm];Entries",\r
+                                 1000,-4.,4.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",\r
+                                 ";y [cm];Entries",\r
+                                 1000,-0.1,0.1);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",\r
+                                 ";z [cm];Entries",\r
+                                 1000,-4.,4.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",\r
+                                     ";log(dE/dx) [KeV];N_{Hits}",\r
+                                     100,-7,-2);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
+  TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",\r
+                                   ";x [cm];y [cm]",\r
+                                   1000,-50.,50.,\r
+                                   1000,-50.,50.);\r
+  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,\r
+                                     fGenOffset + fSSDhTask);\r
+  fSSDhTask += 1;\r
\r
+  AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhTask));\r
+}\r
+\r
+\r
+//____________________________________________________________________________\r
+void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { \r
+  // Fill QA for HITS - SSD -\r
+  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");\r
+  fITS->SetTreeAddress();\r
+  Int_t nmodules;\r
+  fITS->InitModules(-1,nmodules);\r
+  fITS->FillModules(hits,0);\r
+  for(Int_t iModule = 500; iModule < 2198; iModule++) {\r
+    AliITSmodule *module = fITS->GetModule(iModule);\r
+    TObjArray *arrHits = module->GetHits();\r
+    Int_t nhits = arrHits->GetEntriesFast();\r
+    if(nhits != 0)\r
+      AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));\r
+    for (Int_t iHit = 0; iHit < nhits; iHit++) {\r
+      AliITShit *hit = (AliITShit*) arrHits->At(iHit);\r
+      \r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 0)->Fill(iModule);\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 1)->Fill(hit->GetXG());\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 2)->Fill(hit->GetYG());\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 3)->Fill(hit->GetZG());\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 4)->Fill(hit->GetXL());\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 5)->Fill(hit->GetYL());\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 6)->Fill(hit->GetZL());\r
+      if(hit->GetIonization())\r
+       fAliITSQADataMakerSim->GetHitsData(fGenOffset + 7)->Fill(TMath::Log10(hit->GetIonization()));\r
+      fAliITSQADataMakerSim->GetHitsData(fGenOffset + 8)->Fill(hit->GetXG(),hit->GetYG());\r
+    }//hit loop\r
+  }//module loop  \r
+}\r