More QA histograms for hits and digits
authormbroz <Michal.Broz@cern.ch>
Sat, 31 Jan 2015 15:56:43 +0000 (16:56 +0100)
committermbroz <Michal.Broz@cern.ch>
Sat, 31 Jan 2015 15:56:43 +0000 (16:56 +0100)
AD/ADsim/AliADQADataMakerSim.cxx

index 89a7799..1da249c 100644 (file)
@@ -94,9 +94,17 @@ void AliADQADataMakerSim::InitHits()
   h1->Sumw2() ;
   Add2HitsList(h1, 1, !expert, image) ; 
   
-  TH1I * h2 = new TH1I("hHitNPhotons", "Number of photons per hit in AD;# of Photons;Entries", 1000, 0, 50000) ; 
+  TH1I * h2 = new TH1I("hHitNPhotons", "Number of photons per hit in AD;# of Photons;Entries", 100000, 0, 100000) ; 
   h2->Sumw2() ;
-  Add2HitsList(h2, 2, expert, image) ;  
+  Add2HitsList(h2, 2, !expert, image) ;
+  
+  TH2I * h3 = new TH2I("hCellNPhotons", "Number of photons per cell in AD;Cell;# of Photons", 16, 0, 16, 100000, 0, 100000) ; 
+  h2->Sumw2() ;
+  Add2HitsList(h3, 3, !expert, image) ;
+  
+  TH2D * h4 = new TH2D("hCellTof", "Time of flight per cell in AD;Cell;Time of Flight [ns]", 16, 0, 16, 6000,40,100) ; 
+  h2->Sumw2() ;
+  Add2HitsList(h4, 4, !expert, image) ;  
  
   //
   ClonePerTrigClass(AliQAv1::kHITS); // this should be the last line    
@@ -115,7 +123,7 @@ void AliADQADataMakerSim::InitSDigits()
   // create SDigits histograms in SDigits subdir
   TH1I * h0 = new TH1I("hSDigitMultiplicity", "SDigits multiplicity distribution in AD;# of Digits;Entries", 100, 0, 99) ; 
   h0->Sumw2() ;
-  Add2DigitsList(h0, 0, !expert, image) ;
+  Add2SDigitsList(h0, 0, !expert, image) ;
   
   for (Int_t i=0; i<16; i++)
     {
@@ -123,7 +131,7 @@ void AliADQADataMakerSim::InitSDigits()
        
        Add2SDigitsList(fhSDigCharge[i],i+1, !expert, image);
        
-     }  
+     }   
   //
   ClonePerTrigClass(AliQAv1::kSDIGITS); // this should be the last line
 }
@@ -136,23 +144,44 @@ void AliADQADataMakerSim::InitDigits()
   // create Digits histograms in Digits subdir
   const Bool_t expert   = kTRUE ; 
   const Bool_t image    = kTRUE ; 
-  
-  TH1I *fhDigTDC[16]; 
-  TH1I *fhDigADC[16]; 
 
   // create Digits histograms in Digits subdir
   TH1I * h0 = new TH1I("hDigitMultiplicity", "Digits multiplicity distribution in AD;# of Digits;Entries", 100, 0, 99) ; 
   h0->Sumw2() ;
   Add2DigitsList(h0, 0, !expert, image) ;
+     
+  TH2D * h1 = new TH2D("hDigitLeadingTimePerPM", "Leading time distribution per PM in AD;PM number;Leading Time [ns]",16,0,16, 1000, 200, 300); 
+  h1->Sumw2() ;
+  Add2DigitsList(h1, 1, !expert, image) ; 
   
-  for (Int_t i=0; i<16; i++)
-    {
-       fhDigTDC[i] = new TH1I(Form("hDigitTDC%d", i),Form("Digit TDC in cell %d; TDC value;Entries",i),300,0.,149.);
-       fhDigADC[i]= new TH1I(Form("hDigitADC%d", i),Form("Digit ADC in cell %d;ADC value;Entries",i),1024,0.,1023.);
-       
-       Add2DigitsList(fhDigTDC[i],i+1, !expert, image);
-       Add2DigitsList(fhDigADC[i],i+1+16, !expert, image);  
-     }  
+  TH2D * h2 = new TH2D("hDigitTimeWidthPerPM", "Time width distribution per PM in AD;PM number;Time width [ns]",16,0,16, 1000, 0, 100); 
+  h2->Sumw2() ;
+  Add2DigitsList(h2, 2, !expert, image) ;
+  
+  TH2I * h3 = new TH2I("hDigitChargePerClockPerPM", "Charge array per PM in AD;PM number; Clock",16,0,16,21, -10.5, 10.5);
+  h3->Sumw2();
+  Add2DigitsList(h3, 3, !expert, image) ;
+  
+  TH1I * h4 = new TH1I("hDigitBBflagsAD","Number of BB flags in AD; # of BB flags; Entries",17,-0.5,16.5);
+  h4->Sumw2();
+  Add2DigitsList(h4, 4, !expert, image) ;
+  
+  TH1I * h5 = new TH1I("hDigitBBflagsADA","Number of BB flags in ADA; # of BB flags; Entries",9,-0.5,8.5);
+  h5->Sumw2();
+  Add2DigitsList(h5, 5, !expert, image) ;
+  
+  TH1I * h6 = new TH1I("hDigitBBflagsADC","Number of BB flags in ADC; # of BB flags; Entries",9,-0.5,8.5);
+  h6->Sumw2();
+  Add2DigitsList(h6, 6, !expert, image) ;
+  
+  TH2D * h7 = new TH2D("hDigitTotalChargePerPM", "Total Charge per PM in AD;PM number; Charge [ADC counts]",16,0,16,10000,0,10000);
+  h7->Sumw2();
+  Add2DigitsList(h7, 7, !expert, image) ;
+  
+  TH2I * h8 = new TH2I("hDigitMaxChargeClockPerPM", "Clock with maximum charge per PM in AD;PM number; Clock ",16,0,16,21, -10.5, 10.5);
+  h8->Sumw2();
+  Add2DigitsList(h8, 8, !expert, image) ;
+   
   //
   ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
 }
@@ -174,6 +203,8 @@ void AliADQADataMakerSim::MakeHits()
           }
           FillHitsData(1,ADHit->GetCell());
           FillHitsData(2,ADHit->GetNphot());
+          FillHitsData(3,ADHit->GetCell(),ADHit->GetNphot());
+          FillHitsData(4,ADHit->GetCell(),ADHit->GetTof());
        }
 }
 
@@ -219,7 +250,9 @@ void AliADQADataMakerSim::MakeHits(TTree *hitTree)
            break;
          }
          FillHitsData(1,ADHit->GetCell());
-         FillHitsData(2,ADHit->GetNphot());     
+         FillHitsData(2,ADHit->GetNphot());
+         FillHitsData(3,ADHit->GetCell(),ADHit->GetNphot());
+         FillHitsData(4,ADHit->GetCell(),ADHit->GetTof());      
        }
     }
   }
@@ -265,8 +298,7 @@ void AliADQADataMakerSim::MakeSDigits()
     AliADSDigit *ADSDigit ; 
     while ( (ADSDigit = dynamic_cast<AliADSDigit *>(next())) ) {
          Int_t   PMNumber  = ADSDigit->PMNumber();       
-         FillSDigitsData(PMNumber +1, ADSDigit->GetNBins()) ; 
-        
+         FillSDigitsData(PMNumber +1, ADSDigit->GetNBins()) ;
     }  
 }
 
@@ -278,11 +310,32 @@ void AliADQADataMakerSim::MakeDigits()
   FillDigitsData(0,fDigitsArray->GetEntriesFast()) ; 
   TIter next(fDigitsArray) ; 
     AliADdigit *ADDigit ; 
+    Int_t nBBflagsADA = 0;
+    Int_t nBBflagsADC = 0;
+    
     while ( (ADDigit = dynamic_cast<AliADdigit *>(next())) ) {
-         Int_t   PMNumber  = ADDigit->PMNumber();    
-         FillDigitsData(PMNumber +1, ADDigit->Time()) ;    // in 100 of picoseconds
-        FillDigitsData(PMNumber +1+16, ADDigit->ADC()) ;
-    }  
+         Int_t totCharge = 0;
+         Int_t   PMNumber  = ADDigit->PMNumber();
+
+        if(PMNumber<8 && ADDigit->GetBBflag()) nBBflagsADA++;
+        if(PMNumber>7 && ADDigit->GetBBflag()) nBBflagsADC++;
+        
+        Short_t adc[21];
+        for(Int_t iClock=0; iClock<21; iClock++) { 
+        adc[iClock]= ADDigit->ChargeADC(iClock);
+        FillDigitsData(3, PMNumber,(float)iClock-10,(float)adc[iClock]);
+        totCharge += adc[iClock];
+        }
+           
+         FillDigitsData(1,PMNumber,ADDigit->Time()); 
+        FillDigitsData(2,PMNumber,ADDigit->Width());
+        FillDigitsData(7,PMNumber,totCharge);
+        FillDigitsData(8,PMNumber,TMath::LocMax(21,adc)-10); 
+        
+    }
+    FillDigitsData(4,nBBflagsADA+nBBflagsADC);
+    FillDigitsData(5,nBBflagsADA);
+    FillDigitsData(6,nBBflagsADC);  
 }
 
 //____________________________________________________________________________