]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSQASDDDataMakerSim.cxx
1.The QA data created on demand according to the event species at filling time. 2...
[u/mrichter/AliRoot.git] / ITS / AliITSQASDDDataMakerSim.cxx
index 2b861bb1d038c8ae2f98029dbade8d1a72fbea33..57e846726261252e42882eab325be6884187cf2d 100644 (file)
@@ -102,42 +102,48 @@ void AliITSQASDDDataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t /*task*/,
 }\r
 \r
 //____________________________________________________________________________ \r
-void AliITSQASDDDataMakerSim::InitDigits()\r
+Int_t AliITSQASDDDataMakerSim::InitDigits()\r
 { \r
   // Initialization for DIGIT data - SDD -  \r
   const Bool_t expert   = kTRUE ; \r
   const Bool_t image    = kTRUE ;\r
-  \r
-  fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();\r
+  Int_t rv = 0 ; \r
+  //fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();\r
   //fSDDhTask must be incremented by one unit every time a histogram is ADDED to the QA List\r
   TH1F* h0=new TH1F("SDD DIGITS Module Pattern","SDD DIGITS Module Pattern",260,239.5,499.5);       //hmod\r
   h0->GetXaxis()->SetTitle("SDD Module Number");\r
   h0->GetYaxis()->SetTitle("# DIGITS");\r
-  fAliITSQADataMakerSim->Add2DigitsList(h0,fGenOffsetD, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2DigitsList(h0,fGenOffsetD, !expert, image);\r
   fSDDhDTask ++;\r
   TH1F* h1=new TH1F("SDD Anode Distribution","SDD DIGITS Anode Distribution",512,-0.5,511.5);      //hanocc\r
   h1->GetXaxis()->SetTitle("Anode Number");\r
   h1->GetYaxis()->SetTitle("# DIGITS");\r
-  fAliITSQADataMakerSim->Add2DigitsList(h1,1+fGenOffsetD, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2DigitsList(h1,1+fGenOffsetD, !expert, image);\r
   fSDDhDTask ++;\r
   TH1F* h2=new TH1F("SDD Tbin Distribution","SDD DIGITS Tbin Distribution",256,-0.5,255.5);      //htbocc\r
   h2->GetXaxis()->SetTitle("Tbin Number");\r
   h2->GetYaxis()->SetTitle("# DIGITS");\r
-  fAliITSQADataMakerSim->Add2DigitsList(h2,2+fGenOffsetD, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2DigitsList(h2,2+fGenOffsetD, !expert, image);\r
   fSDDhDTask ++;\r
   TH1F* h3=new TH1F("SDD ADC Counts Distribution","SDD DIGITS ADC Counts Distribution",200,0.,1024.);          //hsig\r
   h3->GetXaxis()->SetTitle("ADC Value");\r
   h3->GetYaxis()->SetTitle("# DIGITS");\r
-  fAliITSQADataMakerSim->Add2DigitsList(h3,3+fGenOffsetD, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2DigitsList(h3,3+fGenOffsetD, !expert, image);\r
   fSDDhDTask ++;\r
   AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SDD Digits histograms booked\n",fSDDhDTask));\r
+  return rv ; \r
 }\r
 \r
 //____________________________________________________________________________\r
-void AliITSQASDDDataMakerSim::MakeDigits(TTree * digits)\r
+Int_t AliITSQASDDDataMakerSim::MakeDigits(TTree * digits)\r
 { \r
 \r
   // Fill QA for DIGIT - SDD -\r
+  Int_t rv = 0 ; \r
+  // Check id histograms already created for this Event Specie\r
+  if ( ! fAliITSQADataMakerSim->GetDigitsData(fGenOffsetD) )\r
+    rv = InitDigits() ;\r
\r
   AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");\r
   fITS->SetTreeAddress();\r
   TClonesArray *iITSdigits  = fITS->DigitsAddress(1);\r
@@ -156,47 +162,53 @@ void AliITSQASDDDataMakerSim::MakeDigits(TTree * digits)
       fAliITSQADataMakerSim->GetDigitsData(3+fGenOffsetD)->Fill(sig);\r
     }\r
   }\r
+  return rv ; \r
 }\r
 \r
 //____________________________________________________________________________ \r
-void AliITSQASDDDataMakerSim::InitSDigits()\r
+Int_t AliITSQASDDDataMakerSim::InitSDigits()\r
 { \r
   // Initialization for SDIGIT data - SDD -\r
   const Bool_t expert   = kTRUE ; \r
   const Bool_t image    = kTRUE ;\r
-  \r
-  fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();\r
+  Int_t rv = 0 ; \r
+  //fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();\r
   //fSDDhTask must be incremented by one unit every time a histogram is ADDED to the QA List\r
   TH1F* h0=new TH1F("SDD SDIGITS Module Pattern","SDIGITS SDD Module Pattern",260,239.5,499.5);       //hmod\r
   h0->GetXaxis()->SetTitle("SDD Module Number");\r
   h0->GetYaxis()->SetTitle("# SDIGITS");\r
-  fAliITSQADataMakerSim->Add2SDigitsList(h0,fGenOffsetS, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2SDigitsList(h0,fGenOffsetS, !expert, image);\r
   fSDDhSTask ++;\r
   TH1F* h1=new TH1F("SDD Anode Distribution","SDIGITS SDD Anode Distribution",512,-0.5,511.5);      //hanocc\r
   h1->GetXaxis()->SetTitle("Anode Number");\r
   h1->GetYaxis()->SetTitle("# SDIGITS");\r
-  fAliITSQADataMakerSim->Add2SDigitsList(h1,1+fGenOffsetS, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2SDigitsList(h1,1+fGenOffsetS, !expert, image);\r
   fSDDhSTask ++;\r
   TH1F* h2=new TH1F("SDD Tbin Distribution","SDIGITS SDD Tbin Distribution",256,-0.5,255.5);      //htbocc\r
   h2->GetXaxis()->SetTitle("Tbin Number");\r
   h2->GetYaxis()->SetTitle("# SDIGITS");\r
-  fAliITSQADataMakerSim->Add2SDigitsList(h2,2+fGenOffsetS);\r
+  rv = fAliITSQADataMakerSim->Add2SDigitsList(h2,2+fGenOffsetS);\r
   fSDDhSTask ++;\r
   TH1F* h3=new TH1F("SDD ADC Counts Distribution","SDIGITS SDD ADC Counts Distribution",200,0.,1024.);          //hsig\r
   h3->GetXaxis()->SetTitle("ADC Value");\r
   h3->GetYaxis()->SetTitle("# SDIGITS");\r
-  fAliITSQADataMakerSim->Add2SDigitsList(h3,3+fGenOffsetS, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2SDigitsList(h3,3+fGenOffsetS, !expert, image);\r
   fSDDhSTask ++;\r
 \r
   AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SDD SDigits histograms booked\n",fSDDhSTask));\r
+  return rv ; \r
 }\r
 \r
 //____________________________________________________________________________\r
-void AliITSQASDDDataMakerSim::MakeSDigits(TTree * sdigits)\r
+Int_t AliITSQASDDDataMakerSim::MakeSDigits(TTree * sdigits)\r
 { \r
   // Fill QA for SDIGIT - SDD -\r
-\r
-  AliITSsegmentationSDD* seg = new AliITSsegmentationSDD();\r
+  Int_t rv = 0 ; \r
+  // Check id histograms already created for this Event Specie\r
+  if ( ! fAliITSQADataMakerSim->GetSDigitsData(fGenOffsetS) )\r
+    rv = InitSDigits() ;\r
+  \r
+   AliITSsegmentationSDD* seg = new AliITSsegmentationSDD();\r
   Int_t nan=seg->Npz();\r
   Int_t ntb=seg->Npx();\r
   Int_t scaleSize=4;\r
@@ -230,53 +242,60 @@ void AliITSQASDDDataMakerSim::MakeSDigits(TTree * sdigits)
     }\r
     delete sdig;\r
   }\r
+  return rv ; \r
 }\r
 \r
 //____________________________________________________________________________ \r
-void AliITSQASDDDataMakerSim::InitHits()\r
+Int_t AliITSQASDDDataMakerSim::InitHits()\r
 { \r
 \r
   // Initialization for HITS data - SDD -\r
   const Bool_t expert   = kTRUE ; \r
   const Bool_t image    = kTRUE ;\r
-  \r
-  fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[AliRecoParam::kDefault])->GetEntries();\r
+  Int_t rv = 0 ; \r
+\r
+  //fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[AliRecoParam::kDefault])->GetEntries();\r
   //fSDDhTask must be incremented by one unit every time a histogram is ADDED to the QA List\r
   //printf("AliITSQASDDDataMakerSim::InitHits called \n");\r
   TH1F *h0=new TH1F("SDD HITS Module Pattern","SDD HITS Module Pattern",260,239.5,499.5);  \r
   h0->GetXaxis()->SetTitle("SDD Module Number");\r
   h0->GetYaxis()->SetTitle("# HITS");\r
-  fAliITSQADataMakerSim->Add2HitsList(h0,fGenOffsetH, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2HitsList(h0,fGenOffsetH, !expert, image);\r
   fSDDhHTask ++;\r
   TH1F *h1=new TH1F("SDD HIT lenght along local Y Coord","SDD HIT lenght along local Y Coord",200,0.,350.);\r
   h1->GetXaxis()->SetTitle("HIT lenght (um)");\r
   h1->GetYaxis()->SetTitle("# HITS");\r
-  fAliITSQADataMakerSim->Add2HitsList(h1,1+fGenOffsetH, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2HitsList(h1,1+fGenOffsetH, !expert, image);\r
   fSDDhHTask ++;\r
   TH1F *h2=new TH1F("SDD HIT lenght along local Y Coord - Zoom","SDD HIT lenght along local Y Coord - Zoom",200,250.,350.);\r
   h2->GetXaxis()->SetTitle("HIT lenght (um)");\r
   h2->GetYaxis()->SetTitle("# HITS");\r
-  fAliITSQADataMakerSim->Add2HitsList(h2,2+fGenOffsetH, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2HitsList(h2,2+fGenOffsetH, !expert, image);\r
   fSDDhHTask ++;\r
   TH1F *h3=new TH1F("SDD Deposited Energy Distribution (loc Y > 200um)","SDD HITS Deposited Energy Distribution (loc Y > 200um)",200,0.,350.);\r
   h3->GetXaxis()->SetTitle("ADC counts ");\r
   h3->GetYaxis()->SetTitle("# HITS");\r
-  fAliITSQADataMakerSim->Add2HitsList(h3,3+fGenOffsetH, !expert, image);\r
+  rv = fAliITSQADataMakerSim->Add2HitsList(h3,3+fGenOffsetH, !expert, image);\r
   fSDDhHTask ++;\r
   AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SDD Hits histograms booked\n",fSDDhHTask));\r
+  return rv ; \r
 }\r
 \r
 //____________________________________________________________________________\r
-void AliITSQASDDDataMakerSim::MakeHits(TTree * hits)\r
+Int_t AliITSQASDDDataMakerSim::MakeHits(TTree * hits)\r
 { \r
   // Fill QA for HITS - SDD -\r
-\r
-  AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");\r
+  Int_t rv = 0 ; \r
+  // Check id histograms already created for this Event Specie\r
+  if ( ! fAliITSQADataMakerSim->GetHitsData(fGenOffsetH) )\r
+    rv = InitHits() ;\r
+  \r
+   AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");\r
   fITS->SetTreeAddress();\r
   Int_t nmodules;\r
   if(!(fITS->InitModules(-1,nmodules))){\r
     AliError("ITS geometry not available - nothing done");\r
-    return;\r
+    return rv;\r
   }\r
  \r
   fITS->FillModules(hits,0);\r
@@ -298,11 +317,12 @@ void AliITSQASDDDataMakerSim::MakeHits(TTree * hits)
       fAliITSQADataMakerSim->GetHitsData(1+fGenOffsetH)->Fill(dyloc);\r
       Float_t edep=hit->GetIonization()*1000000;\r
       if(dyloc>200.){ \r
-       fAliITSQADataMakerSim->GetHitsData(2+fGenOffsetH)->Fill(edep);\r
-       fAliITSQADataMakerSim->GetHitsData(3+fGenOffsetH)->Fill(dyloc);\r
+        fAliITSQADataMakerSim->GetHitsData(2+fGenOffsetH)->Fill(edep);\r
+        fAliITSQADataMakerSim->GetHitsData(3+fGenOffsetH)->Fill(dyloc);\r
       }\r
     }\r
   }\r
+  return rv ; \r
 }\r
 \r
 //_______________________________________________________________\r
@@ -326,6 +346,22 @@ Int_t AliITSQASDDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task){
   return offset;\r
 }\r
 \r
+//____________________________________________________________________________ \r
+void AliITSQASDDDataMakerSim::SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset){\r
+  // Returns histogram offset according to the specified task\r
+  if( task == AliQAv1::kHITS){\r
+    fGenOffsetH = offset;  \r
+  }\r
+  else if( task == AliQAv1::kSDIGITS) {\r
+    fGenOffsetS = offset;   \r
+  }\r
+  else if( task == AliQAv1::kDIGITS) {\r
+    fGenOffsetD = offset;   \r
+  }\r
+  else {\r
+    AliInfo("No task has been selected. TaskHisto set to zero.\n");\r
+  }\r
+}\r
 \r
 //_______________________________________________________________\r
 \r