]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSQASSDDataMakerSim.cxx
Another histos for lumi
[u/mrichter/AliRoot.git] / ITS / AliITSQASSDDataMakerSim.cxx
index 93b0f686acf54654e82162ce3b51e46723c3a2c8..a65c3661715494486858102b81d64e0541561828 100644 (file)
@@ -59,7 +59,16 @@ fGenOffsetH(0),
 fGenOffsetS(0), 
 fGenOffsetD(0) 
 {
-  //ctor used to discriminate OnLine-Offline analysis   
+  //ctor used to discriminate OnLine-Offline analysis  
+  fGenOffsetH=  new Int_t[AliRecoParam::kNSpecies];                       
+  fGenOffsetS=  new Int_t[AliRecoParam::kNSpecies];                           
+  fGenOffsetD=  new Int_t[AliRecoParam::kNSpecies];
+  for(Int_t i=0; i<AliRecoParam::kNSpecies; i++) 
+    {
+      fGenOffsetH[i]= 0;
+      fGenOffsetS[i]= 0;
+      fGenOffsetD[i]= 0;
+    }  
 }
 
 //____________________________________________________________________________ 
@@ -90,43 +99,49 @@ AliITSQASSDDataMakerSim& AliITSQASSDDataMakerSim::operator = (const AliITSQASSDD
 //____________________________________________________________________________ 
 void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {
   //Detector specific actions at start of cycle
-  AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");
+  AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Start of SSD Cycle\n");
 }
 
 //____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t /*task*/, TObjArray* /*list*/) {
+void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t /*task*/, TObjArray** /*list*/) {
   // launch the QA checking
-  AliDebug(1,"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list)\n"); 
+  AliDebug(AliQAv1::GetQADebugLevel(),"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list)\n"); 
   
 //  AliQAChecker::Instance()->Run( AliQAv1::kITS , task, list);
 }
 
 //____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitDigits() { 
+Int_t AliITSQASSDDataMakerSim::InitDigits() { 
   // Initialization for DIGIT data - SSD -
-  fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  Int_t rv = 0 ; 
+ // fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();
 
   // custom code here
   TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",
-                                 ";SSD Module Number;N_{DIGITS}",
+                                 "SSD Digits Module;SSD Module Number;N_{DIGITS}",
                                  1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
-                                       fGenOffsetD + 0);
+  rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
+                                       fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
   fSSDhDTask += 1;
   TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",
-                                      ";N_{Strip};N_{Module}",
+                                      "SSD Digits Module Strip;N_{Strip};N_{Module}",
                                       1540,0,1540,1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
-                                       fGenOffsetD + 1);
+  rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
+                                       fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
   fSSDhDTask += 1;
 
-  AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhDTask));
-
+  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Digits histograms booked\n",fSSDhDTask));
+  return rv ; 
 }
 
 //____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) { 
+Int_t AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) 
+{ 
   // Fill QA for DIGIT - SSD -
+  Int_t rv = 0 ; 
+
   AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
   fITS->SetTreeAddress();
   TClonesArray *iSSDdigits  = fITS->DigitsAddress(2);
@@ -134,42 +149,51 @@ void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) {
     iSSDdigits->Clear();
     digits->GetEvent(iModule);    
     Int_t ndigits = iSSDdigits->GetEntries();
-    fAliITSQADataMakerSim->GetDigitsData(fGenOffsetD + 0)->Fill(iModule,ndigits);
+    fAliITSQADataMakerSim->FillDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule,ndigits);
     if(ndigits != 0)
-      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
+      AliDebug(AliQAv1::GetQADebugLevel(),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(fGenOffsetD + 1))->Fill(fStripNumber,iModule,dig->GetSignal());
+      fAliITSQADataMakerSim->FillDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1,fStripNumber,iModule,dig->GetSignal());
     }//digit loop
   }//module loop
+  //
+  return rv ; 
 }
 
 //____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitSDigits() { 
+Int_t AliITSQASSDDataMakerSim::InitSDigits() { 
   // Initialization for SDIGIT data - SSD -
-  fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  Int_t rv = 0 ; 
+  //fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();
 
   // custom code here
   TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",
-                                 ";SSD Module Number;N_{SDIGITS}",
+                                 "SSD SDigits Module;SSD Module Number;N_{SDIGITS}",
                                  1698,499.5,2197.5);  
-  fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
-                                        fGenOffsetS + 0);
+  rv = fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
+                                        fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
   fSSDhSTask += 1;  
 
-  AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhSTask));
+  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD SDigits histograms booked\n",fSSDhSTask));
+  //
+  return rv ; 
 }
 
 //____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { 
+Int_t AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) { 
   // Fill QA for SDIGIT - SSD -
+  Int_t rv = 0 ; 
   static TClonesArray iSSDEmpty("AliITSpListItem",10000);
   iSSDEmpty.Clear();
   TClonesArray *iSSDsdigits = &iSSDEmpty;
 
-  AliInfo(Form("Trying to access the sdigits histogram: %d\n",fGenOffsetS));
+  //  AliDebug(AliQAv1::GetQADebugLevel(), Form("Trying to access the sdigits histogram: %d\n",fGenOffsetS));
 
   TBranch *brchSDigits = sdigits->GetBranch("ITS");
   brchSDigits->SetAddress(&iSSDsdigits);
@@ -177,86 +201,95 @@ void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) {
     iSSDsdigits->Clear();
     sdigits->GetEvent(iModule);    
     Int_t ndigits = iSSDsdigits->GetEntries();
-    fAliITSQADataMakerSim->GetSDigitsData(fGenOffsetS + 0)->Fill(iModule,ndigits);
+    fAliITSQADataMakerSim->FillSDigitsData(fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule,ndigits);
     if(ndigits != 0)
-      AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
+      AliDebug(AliQAv1::GetQADebugLevel(),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
+//     for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
+//       AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);
+//       dig=0;
+//     }//digit loop
   }//module loop
+  //
+  return rv ; 
 }
 
 //____________________________________________________________________________ 
-void AliITSQASSDDataMakerSim::InitHits() { 
+Int_t AliITSQASSDDataMakerSim::InitHits() { 
   // Initialization for HITS data - SSD -
-  fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[AliRecoParam::kDefault])->GetEntries();
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  Int_t rv = 0 ; 
+
+  //fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[fEventSpecie])->GetEntries();
 
   // custom code here
   TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",
-                                 ";SDD Module Number;N_{HITS}",
+                                 "SSD Hits Module;SSD Module Number;N_{HITS}",
                                  1698,499.5,2197.5); 
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
-                                     fGenOffsetH + 0);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",
-                                  ";x [cm];Entries",
+                                  "SSD Hits Global X;x [cm];Entries",
                                   1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
-                                     fGenOffsetH + 1);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",
-                                  ";y [cm];Entries",
+                                  "SSD Hits Global Y;y [cm];Entries",
                                   1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
-                                     fGenOffsetH + 2);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",
-                                  ";z [cm];Entries",
+                                  "SSD Hits Global Z ;z [cm];Entries",
                                   1000,-60.,60.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
-                                     fGenOffsetH + 3);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",
-                                 ";x [cm];Entries",
+                                 "SSD Hits Local X;x [cm];Entries",
                                  1000,-4.,4.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
-                                     fGenOffsetH + 4);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",
-                                 ";y [cm];Entries",
+                                 "SSD Hits Local Y;y [cm];Entries",
                                  1000,-0.1,0.1);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
-                                     fGenOffsetH + 5);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",
-                                 ";z [cm];Entries",
+                                 "SSD Hits Local Z;z [cm];Entries",
                                  1000,-4.,4.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
-                                     fGenOffsetH + 6);
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6, !expert, image);
   fSSDhHTask += 1;
   TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",
-                                     ";log(dE/dx) [KeV];N_{Hits}",
+                                     "SSD Hits Ionization;log(dE/dx) [KeV];N_{Hits}",
                                      100,-7,-2);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
-                                     fGenOffsetH + 7 );
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7, !expert, image);
   fSSDhHTask += 1;
   TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",
-                                   ";x [cm];y [cm]",
+                                   "SSD Hits Global XY;x [cm];y [cm]",
                                    1000,-50.,50.,
                                    1000,-50.,50.);
-  fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
-                                     fGenOffsetH + 8 );
+  rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
+                                     fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8, !expert, image);
   fSSDhHTask += 1;
  
-  AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhHTask));
+  AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Hits histograms booked\n",fSSDhHTask));
+  return rv ; 
 }
 
 
 //____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { 
+Int_t AliITSQASSDDataMakerSim::MakeHits(TTree *hits) { 
   // Fill QA for HITS - SSD -
+  Int_t rv = 0 ; 
   AliITS *fITS  = (AliITS*)gAlice->GetModule("ITS");
   fITS->SetTreeAddress();
   Int_t nmodules;
@@ -267,39 +300,37 @@ void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) {
     TObjArray *arrHits = module->GetHits();
     Int_t nhits = arrHits->GetEntriesFast();
     if(nhits != 0)
-      AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));
+      AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Hits: %d",iModule,nhits));
     for (Int_t iHit = 0; iHit < nhits; iHit++) {
       AliITShit *hit = (AliITShit*) arrHits->At(iHit);
       
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 0)->Fill(iModule);
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 1)->Fill(hit->GetXG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 2)->Fill(hit->GetYG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 3)->Fill(hit->GetZG());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 4)->Fill(hit->GetXL());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 5)->Fill(hit->GetYL());
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 6)->Fill(hit->GetZL());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0,iModule);
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1,hit->GetXG());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2,hit->GetYG());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3,hit->GetZG());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4,hit->GetXL());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5,hit->GetYL());
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6,hit->GetZL());
       if(hit->GetIonization())
-       fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 7)->Fill(TMath::Log10(hit->GetIonization()));
-      fAliITSQADataMakerSim->GetHitsData(fGenOffsetH + 8)->Fill(hit->GetXG(),hit->GetYG());
+       fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7,TMath::Log10(hit->GetIonization()));
+      fAliITSQADataMakerSim->FillHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8,hit->GetXG(),hit->GetYG());
     }//hit loop
   }//module loop  
+  return rv ; 
 }
 
-
-
-
 //____________________________________________________________________________ 
-Int_t AliITSQASSDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task){
+Int_t AliITSQASSDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task,Int_t specie){
   // Returns histogram offset according to the specified task
   Int_t offset=0;
   if( task == AliQAv1::kHITS){
-    offset=fGenOffsetH;  
+    offset=fGenOffsetH[specie];  
   }
   else if( task == AliQAv1::kSDIGITS) {
-    offset=fGenOffsetS;   
+    offset=fGenOffsetS[specie];   
   }
   else if( task == AliQAv1::kDIGITS) {
-    offset=fGenOffsetD;   
+    offset=fGenOffsetD[specie];   
   }
   else {
     AliInfo("No task has been selected. TaskHisto set to zero.\n");
@@ -309,6 +340,23 @@ Int_t AliITSQASSDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task){
 }
 
 
+//____________________________________________________________________________ 
+void AliITSQASSDDataMakerSim::SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset,Int_t specie ){
+  // Returns histogram offset according to the specified task
+  if( task == AliQAv1::kHITS){
+    fGenOffsetH[specie] = offset;  
+  }
+  else if( task == AliQAv1::kSDIGITS) {
+    fGenOffsetS[specie] = offset;   
+  }
+  else if( task == AliQAv1::kDIGITS) {
+    fGenOffsetD[specie] = offset;   
+  }
+  else {
+    AliInfo("No task has been selected. TaskHisto set to zero.\n");
+  }
+}
+
 //____________________________________________________________________________ 
 Int_t AliITSQASSDDataMakerSim::GetTaskHisto(AliQAv1::TASKINDEX_t task) {
   // Returns the number of booked histograms for the selected task