]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSQADataMakerSim.cxx
Several nonlinearity corrections implemented
[u/mrichter/AliRoot.git] / PHOS / AliPHOSQADataMakerSim.cxx
index 41878dbfbbcd9c1fcf31a2a94d56268fc0cf0ecc..b825c52663ad3561a239d23f2c5a7351e431798e 100644 (file)
@@ -44,22 +44,18 @@ ClassImp(AliPHOSQADataMakerSim)
            
 //____________________________________________________________________________ 
 AliPHOSQADataMakerSim::AliPHOSQADataMakerSim() : 
-  AliQADataMakerSim(AliQA::GetDetName(AliQA::kPHOS), "PHOS Quality Assurance Data Maker"),
-  fHits(0x0)
+  AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kPHOS), "PHOS Quality Assurance Data Maker")
 {
   // ctor
-  fHits = new TClonesArray("AliPHOSHit", 1000);
 }
 
 //____________________________________________________________________________ 
 AliPHOSQADataMakerSim::AliPHOSQADataMakerSim(const AliPHOSQADataMakerSim& qadm) :
-  AliQADataMakerSim(),
-  fHits(0x0)
+  AliQADataMakerSim()
 {
   //copy ctor 
   SetName((const char*)qadm.GetName()) ; 
   SetTitle((const char*)qadm.GetTitle()); 
-  fHits = new TClonesArray("AliPHOSHit", 1000);
 }
 
 //__________________________________________________________________
@@ -72,50 +68,54 @@ AliPHOSQADataMakerSim& AliPHOSQADataMakerSim::operator = (const AliPHOSQADataMak
 }
  
 //____________________________________________________________________________ 
-void AliPHOSQADataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray * list)
+void AliPHOSQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
 {
   //Detector specific actions at end of cycle
   // do the QA checking
-  AliQAChecker::Instance()->Run(AliQA::kPHOS, task, list) ;  
+  AliQAChecker::Instance()->Run(AliQAv1::kPHOS, task, list) ;  
 }
 
 //____________________________________________________________________________ 
 void AliPHOSQADataMakerSim::InitHits()
 {
   // create Hits histograms in Hits subdir
-  Bool_t expert   = kTRUE ; 
-  TH1F * h0 = new TH1F("hPhosHits",    "Hits energy distribution in PHOS",       100, 0., 100.) ; 
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  TH1F * h0 = new TH1F("hPhosHits",    "Hits energy distribution in PHOS;Energy [MeV];Counts",       100, 0., 100.) ; 
   h0->Sumw2() ;
-  Add2HitsList(h0, 0, !expert) ;
-  TH1I * h1 = new TH1I("hPhosHitsMul", "Hits multiplicity distribution in PHOS", 500, 0., 10000) ; 
+  Add2HitsList(h0, kHits, !expert, image) ;
+  TH1I * h1 = new TH1I("hPhosHitsMul", "Hits multiplicity distribution in PHOS;# of Hits;Entries", 500, 0., 10000) ; 
   h1->Sumw2() ;
-  Add2HitsList(h1, 1, !expert) ;
+  Add2HitsList(h1, kHitsMul, !expert, image) ;
+  
 }
 
 //____________________________________________________________________________ 
 void AliPHOSQADataMakerSim::InitDigits()
 {
   // create Digits histograms in Digits subdir
-  Bool_t expert   = kTRUE ; 
-  TH1I * h0 = new TH1I("hPhosDigits",    "Digits amplitude distribution in PHOS",    500, 0, 5000) ; 
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  TH1I * h0 = new TH1I("hPhosDigits",    "Digits amplitude distribution in PHOS;Amplitude [ADC counts];Counts",    500, 0, 1000) ; 
   h0->Sumw2() ;
-  Add2DigitsList(h0, 0, !expert) ;
-  TH1I * h1 = new TH1I("hPhosDigitsMul", "Digits multiplicity distribution in PHOS", 500, 0, 1000) ; 
+  Add2DigitsList(h0, kDigits, !expert, image) ;
+  TH1I * h1 = new TH1I("hPhosDigitsMul", "Digits multiplicity distribution in PHOS;# of Digits;Entries", 2000, 0, 10000) ; 
   h1->Sumw2() ;
-  Add2DigitsList(h1, 1, !expert) ;
+  Add2DigitsList(h1, kDigitsMul, !expert, image) ;
 }
 
 //____________________________________________________________________________ 
 void AliPHOSQADataMakerSim::InitSDigits()
 {
   // create SDigits histograms in SDigits subdir
-  Bool_t expert   = kTRUE ; 
-  TH1F * h0 = new TH1F("hPhosSDigits",    "SDigits energy distribution in PHOS",       100, 0., 100.) ; 
+  const Bool_t expert   = kTRUE ; 
+  const Bool_t image    = kTRUE ; 
+  TH1F * h0 = new TH1F("hPhosSDigits",    "SDigits energy distribution in PHOS; Energy [MeV];Counts",       500, 0., 1000.) ; 
   h0->Sumw2() ;
-  Add2SDigitsList(h0, 0, !expert) ;
-  TH1I * h1 = new TH1I("hPhosSDigitsMul", "SDigits multiplicity distribution in PHOS", 500, 0,  10000) ; 
+  Add2SDigitsList(h0, kSDigits, !expert, image) ;
+  TH1I * h1 = new TH1I("hPhosSDigitsMul", "SDigits multiplicity distribution in PHOS;# of SDigits;Entries", 500, 0,  1000) ; 
   h1->Sumw2() ;
-  Add2SDigitsList(h1, 1, !expert) ;
+  Add2SDigitsList(h1, kSDigitsMul, !expert, image) ;
 }
 
 //____________________________________________________________________________
@@ -123,10 +123,10 @@ void AliPHOSQADataMakerSim::MakeHits()
 {
   //make QA data from Hits
   
-  TIter next(fHits) ; 
+  TIter next(fHitsArray) ; 
   AliPHOSHit * hit ; 
   while ( (hit = dynamic_cast<AliPHOSHit *>(next())) ) {
-    GetHitsData(0)->Fill( hit->GetEnergy()) ;
+    GetHitsData(kHits)->Fill( hit->GetEnergy()) ;
   }
 }
 
@@ -135,77 +135,88 @@ void AliPHOSQADataMakerSim::MakeHits(TTree * hitTree)
 {
   // make QA data from Hit Tree
   
+  if (fHitsArray)
+    fHitsArray->Clear() ; 
+  else
+    fHitsArray = new TClonesArray("AliPHOSHit", 1000);
+
   TBranch * branch = hitTree->GetBranch("PHOS") ;
   if ( ! branch ) {
     AliWarning("PHOS branch in Hit Tree not found") ; 
   } else {
     Int_t nHits = 0;
-    branch->SetAddress(&fHits) ;
+    branch->SetAddress(&fHitsArray) ;
     for (Int_t ientry = 0 ; ientry < branch->GetEntries() ; ientry++) {
       branch->GetEntry(ientry) ;
-      nHits += fHits->GetEntriesFast();
+      nHits += fHitsArray->GetEntriesFast();
       MakeHits() ; 
-      fHits->Clear();
+      fHitsArray->Clear();
     }  
     GetHitsData(1)->Fill(nHits) ;
   }
 }
 
 //____________________________________________________________________________
-void AliPHOSQADataMakerSim::MakeDigits(TClonesArray * digits)
+void AliPHOSQADataMakerSim::MakeDigits()
 {
   // makes data from Digits
-
-    GetDigitsData(1)->Fill(digits->GetEntriesFast()) ; 
-    TIter next(digits) ; 
-    AliPHOSDigit * digit ; 
-    while ( (digit = dynamic_cast<AliPHOSDigit *>(next())) ) {
-      GetDigitsData(0)->Fill( digit->GetEnergy()) ;
-    }  
+  GetDigitsData(1)->Fill(fDigitsArray->GetEntriesFast()) ; 
+  TIter next(fDigitsArray) ; 
+  AliPHOSDigit * digit ; 
+  while ( (digit = dynamic_cast<AliPHOSDigit *>(next())) ) {
+    GetDigitsData(kDigits)->Fill( digit->GetEnergy()) ;
+  }  
 }
 
 //____________________________________________________________________________
 void AliPHOSQADataMakerSim::MakeDigits(TTree * digitTree)
 {
        // makes data from Digit Tree
-       TClonesArray * digits = new TClonesArray("AliPHOSDigit", 1000) ; 
+       if (fDigitsArray) 
+    fDigitsArray->Clear() ; 
+  else
+    fDigitsArray = new TClonesArray("AliPHOSDigit", 1000) ; 
 
        TBranch * branch = digitTree->GetBranch("PHOS") ;
        if ( ! branch ) {
                AliWarning("PHOS branch in Digit Tree not found") ; 
        } else {
-               branch->SetAddress(&digits) ;
+               branch->SetAddress(&fDigitsArray) ;
                branch->GetEntry(0) ; 
-               MakeDigits(digits) ; 
+               MakeDigits() ; 
        }
 }
 
 //____________________________________________________________________________
-void AliPHOSQADataMakerSim::MakeSDigits(TClonesArray * sdigits)
+void AliPHOSQADataMakerSim::MakeSDigits()
 {
   // makes data from SDigits
-  
-       GetSDigitsData(1)->Fill(sdigits->GetEntriesFast()) ; 
-    TIter next(sdigits) ; 
-    AliPHOSDigit * sdigit ; 
-    while ( (sdigit = dynamic_cast<AliPHOSDigit *>(next())) ) {
-      GetSDigitsData(0)->Fill( sdigit->GetEnergy()) ;
-    
+
+  GetSDigitsData(1)->Fill(fSDigitsArray->GetEntriesFast()) ; 
+  TIter next(fSDigitsArray) ; 
+  AliPHOSDigit * sdigit ; 
+  while ( (sdigit = dynamic_cast<AliPHOSDigit *>(next())) ) {
+    GetSDigitsData(kSDigits)->Fill( sdigit->GetEnergy()) ;
+  } 
 }
 
 //____________________________________________________________________________
 void AliPHOSQADataMakerSim::MakeSDigits(TTree * sdigitTree)
 {
        // makes data from SDigit Tree
-       TClonesArray * sdigits = new TClonesArray("AliPHOSDigit", 1000) ; 
-
+       if (fSDigitsArray) 
+    fSDigitsArray->Clear() ; 
+  else
+    fSDigitsArray = new TClonesArray("AliPHOSDigit", 1000) ; 
+  
        TBranch * branch = sdigitTree->GetBranch("PHOS") ;
        if ( ! branch ) {
                AliWarning("PHOS branch in SDigit Tree not found") ; 
        } else {
-               branch->SetAddress(&sdigits) ;
+               branch->SetAddress(&fSDigitsArray) ;
                branch->GetEntry(0) ;
-               MakeSDigits(sdigits) ; 
+               MakeSDigits() ; 
        }
 }