]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZEROQADataMakerSim.cxx
Corrections in order to properly simulate the VZERO trigger gates. Needed some manual...
[u/mrichter/AliRoot.git] / VZERO / AliVZEROQADataMakerSim.cxx
index 21b66457b198eaa3f0d89e18c4d4695868c9b8e1..84954da2b603813d0fb4e3bf495cb4d9e906a96b 100644 (file)
@@ -72,6 +72,7 @@ void AliVZEROQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjA
 {
   //Detector specific actions at end of cycle
   // do the QA checking
+  ResetEventTrigClasses();
   AliQAChecker::Instance()->Run(AliQAv1::kVZERO, task, list) ;
 }
 
@@ -91,7 +92,8 @@ void AliVZEROQADataMakerSim::InitHits()
   TH1I * h1 = new TH1I("hHitCellNumber", "Hit cell distribution in VZERO;# of Hits;Entries", 80, 0, 79) ; 
   h1->Sumw2() ;
   Add2HitsList(h1, 1, !expert, image) ;  
-    
+  //
+  ClonePerTrigClass(AliQAv1::kHITS); // this should be the last line    
 }
 
 //____________________________________________________________________________ 
@@ -101,11 +103,8 @@ void AliVZEROQADataMakerSim::InitDigits()
   const Bool_t expert   = kTRUE ; 
   const Bool_t image    = kTRUE ; 
   
-  char TDCname[100];
-  char ADCname[100];
   TH1I *fhDigTDC[64]; 
   TH1I *fhDigADC[64]; 
-  char texte[100];
 
   // create Digits histograms in Digits subdir
   TH1I * h0 = new TH1I("hDigitMultiplicity", "Digits multiplicity distribution in VZERO;# of Digits;Entries", 100, 0, 99) ; 
@@ -114,35 +113,32 @@ void AliVZEROQADataMakerSim::InitDigits()
   
   for (Int_t i=0; i<64; i++)
     {
-       sprintf(TDCname, "hDigitTDC%d", i);
-       sprintf(texte,"Digit TDC in cell %d; TDC value;Entries",i);    
-       fhDigTDC[i] = new TH1I(TDCname,texte,300,0.,149.);
-       
-       sprintf(ADCname,"hDigitADC%d",i);
-       sprintf(texte,"Digit ADC in cell %d;ADC value;Entries",i);
-       fhDigADC[i]= new TH1I(ADCname,texte,1024,0.,1023.);
+       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+64, !expert, image);  
      }  
+  //
+  ClonePerTrigClass(AliQAv1::kDIGITS); // this should be the last line
 }
 
 
 //____________________________________________________________________________
-void AliVZEROQADataMakerSim::MakeHits(TClonesArray * hits)
+void AliVZEROQADataMakerSim::MakeHits()
 {
        //make QA data from Hits
 
-    GetHitsData(0)->Fill(hits->GetEntriesFast()) ;    // fills Hit multiplicity
-    Int_t nhits = hits->GetEntriesFast();
-    for (Int_t ihit=0;ihit<nhits;ihit++) 
-       {
-          AliVZEROhit  * VZEROHit   = (AliVZEROhit*) hits->UncheckedAt(ihit);
+  Int_t nhits = fHitsArray->GetEntriesFast();
+  FillHitsData(0,nhits) ;    // fills Hit multiplicity
+  for (Int_t ihit=0;ihit<nhits;ihit++) 
+    {
+          AliVZEROhit  * VZEROHit   = (AliVZEROhit*) fHitsArray->UncheckedAt(ihit);
           if (!VZEROHit) {
              AliError("The unchecked hit doesn't exist");
              break;
           }
-          GetHitsData(1)->Fill(VZEROHit->Cell());
+          FillHitsData(1,VZEROHit->Cell());
        }
 }
 
@@ -152,7 +148,10 @@ void AliVZEROQADataMakerSim::MakeHits(TClonesArray * hits)
 void AliVZEROQADataMakerSim::MakeHits(TTree *hitTree)
 {
   //fills QA histos for Hits
-  TClonesArray * hits = new TClonesArray("AliVZEROhit", 1000);
+ if (fHitsArray)
+   fHitsArray->Clear() ; 
+  else 
+    fHitsArray = new TClonesArray("AliVZEROhit", 1000);
   
   TBranch * branch = hitTree->GetBranch("VZERO") ;
   if ( ! branch ) {
@@ -160,45 +159,53 @@ void AliVZEROQADataMakerSim::MakeHits(TTree *hitTree)
   } else {
 
    if (branch) {
-      branch->SetAddress(&hits);
+      branch->SetAddress(&fHitsArray);
     }else{
       AliError("Branch VZERO hit not found");
       exit(111);
     } 
+    // Check id histograms already created for this Event Specie
+    if ( ! GetHitsData(0) )
+      InitHits() ;
+    
     Int_t ntracks    = (Int_t) hitTree->GetEntries();
     
     if (ntracks<=0) return;
     // Start loop on tracks in the hits containers
     for (Int_t track=0; track<ntracks;track++) {
       branch->GetEntry(track);
-      GetHitsData(0)->Fill(hits->GetEntriesFast()) ;    // fills Hit multiplicity
-      Int_t nhits = hits->GetEntriesFast();
+      Int_t nhits = fHitsArray->GetEntriesFast();
+      FillHitsData(0,nhits) ;    // fills Hit multiplicity
       for (Int_t ihit=0;ihit<nhits;ihit++) 
        {
-         AliVZEROhit  * VZEROHit   = (AliVZEROhit*) hits->UncheckedAt(ihit);
+         AliVZEROhit  * VZEROHit   = (AliVZEROhit*) fHitsArray->UncheckedAt(ihit);
          if (!VZEROHit) {
            AliError("The unchecked hit doesn't exist");
            break;
          }
-         GetHitsData(1)->Fill(VZEROHit->Cell());        
+         FillHitsData(1,VZEROHit->Cell());      
        }
     }
   }
+  //
+  IncEvCountCycleHits();
+  IncEvCountTotalHits();
+  //
 }
 
 
 //____________________________________________________________________________
-void AliVZEROQADataMakerSim::MakeDigits(TClonesArray * digits)
+void AliVZEROQADataMakerSim::MakeDigits()
 {
   // makes data from Digits
 
-    GetDigitsData(0)->Fill(digits->GetEntriesFast()) ; 
-    TIter next(digits) ; 
+  FillDigitsData(0,fDigitsArray->GetEntriesFast()) ; 
+  TIter next(fDigitsArray) ; 
     AliVZEROdigit *VZERODigit ; 
     while ( (VZERODigit = dynamic_cast<AliVZEROdigit *>(next())) ) {
          Int_t   PMNumber  = VZERODigit->PMNumber();         
-         GetDigitsData(PMNumber +1)->Fill( VZERODigit->Time()) ;    // in 100 of picoseconds
-        GetDigitsData(PMNumber +1+64)->Fill( VZERODigit->ADC()) ;
+         FillDigitsData(PMNumber +1, VZERODigit->Time()) ;    // in 100 of picoseconds
+        FillDigitsData(PMNumber +1+64, VZERODigit->ADC()) ;
     }  
 }
 
@@ -208,16 +215,23 @@ void AliVZEROQADataMakerSim::MakeDigits(TTree *digitTree)
 {
     // makes data from Digit Tree
        
-    TClonesArray * digits = new TClonesArray("AliVZEROdigit", 1000) ; 
+  if (fDigitsArray)
+    fDigitsArray->Clear() ; 
+  else 
+    fDigitsArray = new TClonesArray("AliVZEROdigit", 1000) ; 
 
     TBranch * branch = digitTree->GetBranch("VZERODigit") ;
     if ( ! branch ) {
          AliWarning("VZERO branch in Digit Tree not found") ; 
     } else {
-         branch->SetAddress(&digits) ;
+         branch->SetAddress(&fDigitsArray) ;
          branch->GetEntry(0) ; 
-         MakeDigits(digits) ; 
+         MakeDigits() ; 
     }  
+    //
+    IncEvCountCycleDigits();
+    IncEvCountTotalDigits();
+    //    
 }