#include "AliPHOSRecParticle.h"
#include "AliPHOSTrackSegment.h"
#include "AliPHOSRawDecoder.h"
+#include "AliPHOSReconstructor.h"
+#include "AliPHOSRecoParam.h"
ClassImp(AliPHOSQADataMaker)
}
//____________________________________________________________________________
-void AliPHOSQADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX task, TList * list)
+void AliPHOSQADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX task, TObjArray * list)
{
//Detector specific actions at end of cycle
// do the QA checking
void AliPHOSQADataMaker::InitESDs()
{
//create ESDs histograms in ESDs subdir
+
TH1F * h0 = new TH1F("hPhosESDs", "ESDs energy distribution in PHOS", 100, 0., 100.) ;
h0->Sumw2() ;
Add2ESDsList(h0, 0) ;
Add2DigitsList(h0, 0) ;
TH1I * h1 = new TH1I("hPhosDigitsMul", "Digits multiplicity distribution in PHOS", 500, 0, 1000) ;
h1->Sumw2() ;
- Add2DigitsList(h1, 0) ;
+ Add2DigitsList(h1, 1) ;
}
//____________________________________________________________________________
void AliPHOSQADataMaker::MakeESDs(AliESDEvent * esd)
{
// make QA data from ESDs
-
- Int_t maxClu = esd->GetNumberOfPHOSClusters() ;
- Int_t index = 0, count = 0 ;
- for ( index = 0 ; index < maxClu; index++ ) {
- AliESDCaloCluster * clu = esd->GetCaloCluster(index) ;
- GetESDsData(0)->Fill(clu->E()) ;
- count++ ;
+
+ Int_t count = 0 ;
+ for ( Int_t index = 0; index < esd->GetNumberOfCaloClusters() ; index++ ) {
+ AliESDCaloCluster * clu = esd->GetCaloCluster(index) ;
+ if ( clu->IsPHOS() ) {
+ GetESDsData(0)->Fill(clu->E()) ;
+ count++ ;
+ }
}
GetESDsData(1)->Fill(count) ;
}
//____________________________________________________________________________
void AliPHOSQADataMaker::MakeHits(TClonesArray * hits)
{
- //make QA data from Hits
+ //make QA data from Hits
GetHitsData(1)->Fill(hits->GetEntriesFast()) ;
TIter next(hits) ;
GetHitsData(0)->Fill( hit->GetEnergy()) ;
}
}
+
+//____________________________________________________________________________
+void AliPHOSQADataMaker::MakeHits(TTree * hitTree)
+{
+ // make QA data from Hit Tree
+
+ TClonesArray * hits = new TClonesArray("AliPHOSHit", 1000);
+
+ TBranch * branch = hitTree->GetBranch("PHOS") ;
+ if ( ! branch ) {
+ AliWarning("PHOS branch in Hit Tree not found") ;
+ } else {
+ TClonesArray * tmp = new TClonesArray("AliPHOSHit", 1000) ;
+ branch->SetAddress(&tmp) ;
+ Int_t index = 0 ;
+ for (Int_t ientry = 0 ; ientry < branch->GetEntries() ; ientry++) {
+ branch->GetEntry(ientry) ;
+ for (Int_t ihit = 0 ; ihit < tmp->GetEntries() ; ihit++) {
+ AliPHOSHit * hit = dynamic_cast<AliPHOSHit *> (tmp->At(ihit)) ;
+ new((*hits)[index]) AliPHOSHit(*hit) ;
+ index++ ;
+ }
+ }
+ tmp->Delete() ;
+ delete tmp ;
+ MakeHits(hits) ;
+ }
+}
+
//____________________________________________________________________________
void AliPHOSQADataMaker::MakeDigits(TClonesArray * digits)
{
}
}
+//____________________________________________________________________________
+void AliPHOSQADataMaker::MakeDigits(TTree * digitTree)
+{
+ // makes data from Digit Tree
+ TClonesArray * digits = new TClonesArray("AliPHOSDigit", 1000) ;
+
+ TBranch * branch = digitTree->GetBranch("PHOS") ;
+ if ( ! branch ) {
+ AliWarning("PHOS branch in Digit Tree not found") ;
+ } else {
+ branch->SetAddress(&digits) ;
+ branch->GetEntry(0) ;
+ MakeDigits(digits) ;
+ }
+}
+
//____________________________________________________________________________
// void AliPHOSQADataMaker::MakeRecParticles(TTree * recpar)
// {
const Int_t modMax = 5 ;
rawReader->Reset() ;
AliPHOSRawDecoder decoder(rawReader);
- decoder.SetOldRCUFormat(kTRUE);
- decoder.SubtractPedestals(kTRUE);
-
+ decoder.SetOldRCUFormat (AliPHOSReconstructor::GetRecoParamEmc()->IsOldRCUFormat());
+ decoder.SubtractPedestals(AliPHOSReconstructor::GetRecoParamEmc()->SubtractPedestals());
Int_t count = 0 ;
while (decoder.NextDigit()) {
Int_t module = decoder.GetModule() ;
}
}
+//____________________________________________________________________________
+void AliPHOSQADataMaker::MakeSDigits(TTree * sdigitTree)
+{
+ // makes data from SDigit Tree
+ TClonesArray * sdigits = new TClonesArray("AliPHOSDigit", 1000) ;
+
+ TBranch * branch = sdigitTree->GetBranch("PHOS") ;
+ if ( ! branch ) {
+ AliWarning("PHOS branch in SDigit Tree not found") ;
+ } else {
+ branch->SetAddress(&sdigits) ;
+ branch->GetEntry(0) ;
+ MakeSDigits(sdigits) ;
+ }
+}
+
//____________________________________________________________________________
// void AliPHOSQADataMaker::MakeTrackSegments(TTree * ts)
// {