///////////////////////////////////////////////////////////////////////
#include <TClonesArray.h>
-#include <TFile.h>
-#include <TH1I.h>
+//#include <TFile.h>
+//#include <TH1I.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TTree.h>
#include <TMath.h>
+#include "AliLog.h"
+
#include "AliTOFdigit.h"
#include "AliTOFSDigit.h"
#include "AliTOFhitT0.h"
#include "AliTOFQADataMakerSim.h"
#include "AliQAChecker.h"
-#include "AliLog.h"
#include "AliTOFGeometry.h"
//____________________________________________________________________________
AliTOFQADataMakerSim::AliTOFQADataMakerSim() :
- AliQADataMakerSim(AliQA::GetDetName(AliQA::kTOF), "TOF Quality Assurance Data Maker")
+ AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kTOF), "TOF Quality Assurance Data Maker")
{
//
// ctor
//
// create Hits histograms in Hits subdir
//
- TH1F * h0 = new TH1F("hTOFHits", "Number of TOF Hits ",301, -1.02, 5.) ;
+
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1F * h0 = new TH1F("hTOFHits", "Number of TOF Hits;TOF hit number [10 power];Counts ",301, -1.02, 5.) ;
h0->Sumw2() ;
- Add2HitsList(h0, 0) ;
+ Add2HitsList(h0, 0, !expert, image) ;
- TH1F * h1 = new TH1F("hTOFHitsTime", "Hits Time Spectrum in TOF (ns)", 2000, 0., 200) ;
+ TH1F * h1 = new TH1F("hTOFHitsTime", "Hits Time Spectrum in TOF (ns);Simulated TOF time [ns];Counts", 2000, 0., 200) ;
h1->Sumw2() ;
- Add2HitsList(h1, 1) ;
+ Add2HitsList(h1, 1, !expert, image) ;
- TH1F * h2 = new TH1F("hTOFHitsLength", "Length Spectrum in TOF (cm)", 500, 0., 500) ;
+ TH1F * h2 = new TH1F("hTOFHitsLength", "Length Spectrum in TOF (cm);Track length from primary vertex till hit TOF pad [cm];Counts", 500, 0., 500) ;
h2->Sumw2() ;
- Add2HitsList(h2, 2) ;
+ Add2HitsList(h2, 2, !expert, image) ;
- TH2F * h3 = new TH2F("hTOFHitsClusMap","Hits vs TOF eta-phi",183, -0.5, 182.5,865,-0.5,864.5) ;
+ TH2F * h3 = new TH2F("hTOFHitsClusMap","Hits vs TOF eta-phi;2*strip+padz (eta);48*sector+padx (phi)",183, -0.5, 182.5,865,-0.5,864.5) ;
h3->Sumw2() ;
- Add2HitsList(h3, 3) ;
+ h3->GetYaxis()->SetTitleOffset(1.15);
+ Add2HitsList(h3, 3, !expert, image) ;
}
//____________________________________________________________________________
//
// create Digits histograms in Digits subdir
//
- TH1F * h0 = new TH1F("hTOFDigits", "Number of TOF Digits ",301, -1.02, 5.) ; h0->Sumw2() ;
- Add2DigitsList(h0, 0) ;
- TH1F * h1 = new TH1F("hTOFDigitsTime", "Digits Time Spectrum in TOF (ns)", 2000, 0., 200) ;
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1F * h0 = new TH1F("hTOFDigits", "Number of TOF Digit;TOF digit number [10 power];Counts ",301, -1.02, 5.) ;
+ h0->Sumw2() ;
+ Add2DigitsList(h0, 0, !expert, image) ;
+
+ TH1F * h1 = new TH1F("hTOFDigitsTime", "Digits Time Spectrum in TOF (ns);Digitized TOF time [ns];Counts", 2000, 0., 200) ;
h1->Sumw2() ;
- Add2DigitsList(h1, 1) ;
+ Add2DigitsList(h1, 1, !expert, image) ;
- TH1F * h2 = new TH1F("hTOFDigitsToT", "Digits ToT Spectrum in TOF (ns)", 500, 0., 50) ;
+ TH1F * h2 = new TH1F("hTOFDigitsToT", "Digits ToT Spectrum in TOF (ns);Digitized TOF time [ns];Counts", 500, 0., 50) ;
h2->Sumw2() ;
- Add2DigitsList(h2, 2) ;
+ Add2DigitsList(h2, 2, !expert, image) ;
- TH2F * h3 = new TH2F("hTOFDigitsClusMap","Digits vs TOF eta-phi",183, -0.5, 182.5,865,-0.5,864.5) ;
+ TH2F * h3 = new TH2F("hTOFDigitsClusMap","Digits vs TOF eta-phi;2*strip+padz (eta);48*sector+padx (phi)",183, -0.5, 182.5,865,-0.5,864.5) ;
h3->Sumw2() ;
- Add2DigitsList(h3, 3) ;
+ h3->GetYaxis()->SetTitleOffset(1.15);
+ Add2DigitsList(h3, 3, !expert, image) ;
}
//
// create SDigits histograms in SDigits subdir
//
- TH1F * h0 = new TH1F("hTOFSDigits", "Number of TOF SDigits ",301, -1.02, 5.) ; h0->Sumw2() ;
- Add2SDigitsList(h0, 0) ;
- TH1F * h1 = new TH1F("hTOFSDigitsTime", "SDigits Time Spectrum in TOF (ns)", 2000, 0., 200) ;
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1F * h0 = new TH1F("hTOFSDigits", "Number of TOF SDigits;TOF sdigit number [10 power];Counts ",301, -1.02, 5.) ;
+ h0->Sumw2() ;
+ Add2SDigitsList(h0, 0, !expert, image) ;
+
+ TH1F * h1 = new TH1F("hTOFSDigitsTime", "SDigits Time Spectrum in TOF (ns);SDigitized TOF time [ns];Counts", 2000, 0., 200) ;
h1->Sumw2() ;
- Add2SDigitsList(h1, 1) ;
+ Add2SDigitsList(h1, 1, !expert, image) ;
- TH2F * h2 = new TH2F("hTOFSDigitsClusMap","SDigits vs TOF eta-phi",183, -0.5, 182.5,865,-0.5,864.5) ;
+ TH2F * h2 = new TH2F("hTOFSDigitsClusMap","SDigits vs TOF eta-phi;2*strip+padz (eta);48*sector+padx (phi)",183, -0.5, 182.5,865,-0.5,864.5) ;
h2->Sumw2() ;
- Add2SDigitsList(h2, 2) ;
+ h2->GetYaxis()->SetTitleOffset(1.15);
+ Add2SDigitsList(h2, 2, !expert, image) ;
}
//____________________________________________________________________________
-void AliTOFQADataMakerSim::MakeHits(TClonesArray * hits)
+void AliTOFQADataMakerSim::MakeHits()
{
//
//make QA data from Hits
Int_t in[5];
Int_t out[5];
- Int_t nentries=hits->GetEntriesFast();
+ Int_t nentries= fHitsArray->GetEntriesFast();
if(nentries<=0) {
GetHitsData(0)->Fill(-1.) ;
} else{
GetHitsData(0)->Fill(TMath::Log10(nentries)) ;
}
- TIter next(hits) ;
+ TIter next(fHitsArray) ;
AliTOFhitT0 * hit ;
while ( (hit = dynamic_cast<AliTOFhitT0 *>(next())) ) {
GetMapIndeces(in,out);
GetHitsData(3)->Fill( out[0],out[1]) ;//hit map
}
-
}
//
if(!hitTree){
AliError("can't get the tree with TOF hits !");
- return;
+ return;
}
TBranch * branch = hitTree->GetBranch("TOF") ;
return;
}
- TClonesArray * hits = new TClonesArray("AliTOFhitT0", 1000);
- TClonesArray * dummy = new TClonesArray("AliTOFhitT0", 1000);
- branch->SetAddress(&dummy);
- Int_t index = 0 ;
+ if (fHitsArray)
+ fHitsArray->Clear() ;
+ else
+ fHitsArray = new TClonesArray("AliTOFhitT0", 1000) ;
+
+ branch->SetAddress(&fHitsArray);
for (Int_t ientry = 0 ; ientry < branch->GetEntries() ; ientry++) {
branch->GetEntry(ientry) ;
- for (Int_t ihit = 0 ; ihit < dummy->GetEntries() ; ihit++) {
- AliTOFhitT0 * hit = dynamic_cast<AliTOFhitT0 *> (dummy->At(ihit)) ;
- new((*hits)[index]) AliTOFhitT0(*hit) ;
- index++ ;
- }
+ MakeHits() ;
+ fHitsArray->Clear() ;
}
-
- dummy->Delete();
- delete dummy;
- MakeHits(hits) ;
-
}
//____________________________________________________________________________
-void AliTOFQADataMakerSim::MakeDigits(TClonesArray * digits)
+void AliTOFQADataMakerSim::MakeDigits()
{
//
// makes data from Digits
//
+
Double_t tdc2ns=AliTOFGeometry::TdcBinWidth()*1E-3;
Double_t tot2ns=AliTOFGeometry::ToTBinWidth()*1E-3;
Int_t in[5];
Int_t out[5];
- Int_t nentries=digits->GetEntriesFast();
+ Int_t nentries=fDigitsArray->GetEntriesFast();
if(nentries<=0){
GetDigitsData(0)->Fill(-1.) ;
}else{
GetDigitsData(0)->Fill(TMath::Log10(nentries)) ;
}
- TIter next(digits) ;
+ TIter next(fDigitsArray) ;
AliTOFdigit * digit ;
while ( (digit = dynamic_cast<AliTOFdigit *>(next())) ) {
//
// makes data from Digit Tree
//
- TClonesArray * digits = new TClonesArray("AliTOFdigit", 1000) ;
+ if (fDigitsArray)
+ fDigitsArray->Clear() ;
+ else
+ fDigitsArray = new TClonesArray("AliTOFdigit", 1000) ;
TBranch * branch = digitTree->GetBranch("TOF") ;
if ( ! branch ) {
AliError("TOF branch in Digit Tree not found") ;
return;
}
- branch->SetAddress(&digits) ;
+ branch->SetAddress(&fDigitsArray) ;
branch->GetEntry(0) ;
- MakeDigits(digits) ;
+ MakeDigits() ;
}
//____________________________________________________________________________
-void AliTOFQADataMakerSim::MakeSDigits(TClonesArray * sdigits)
+void AliTOFQADataMakerSim::MakeSDigits()
{
//
// makes data from SDigits
//
-
+
Double_t tdc2ns=AliTOFGeometry::TdcBinWidth()*1E-3;
Int_t in[5];
Int_t out[5];
- Int_t nentries=sdigits->GetEntriesFast();
+ Int_t nentries=fSDigitsArray->GetEntriesFast();
if(nentries<=0){
GetSDigitsData(0)->Fill(-1.) ;
}else{
GetSDigitsData(0)->Fill(TMath::Log10(nentries)) ;
}
- TIter next(sdigits) ;
+ TIter next(fSDigitsArray) ;
AliTOFSDigit * sdigit ;
while ( (sdigit = dynamic_cast<AliTOFSDigit *>(next())) ) {
//
// makes data from SDigit Tree
//
- TClonesArray * sdigits = new TClonesArray("AliTOFSDigit", 1000) ;
+ if (fSDigitsArray)
+ fSDigitsArray->Clear() ;
+ else
+ fSDigitsArray = new TClonesArray("AliTOFSDigit", 1000) ;
TBranch * branch = sdigitTree->GetBranch("TOF") ;
if ( ! branch ) {
AliError("TOF branch in SDigit Tree not found") ;
return;
}
- branch->SetAddress(&sdigits) ;
+ branch->SetAddress(&fSDigitsArray) ;
branch->GetEntry(0) ;
- MakeSDigits(sdigits) ;
+ MakeSDigits() ;
}
//____________________________________________________________________________
}
//____________________________________________________________________________
-void AliTOFQADataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX task, TObjArray * list)
+void AliTOFQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
//Detector specific actions at end of cycle
// do the QA checking
- AliQAChecker::Instance()->Run(AliQA::kTOF, task, list) ;
+ AliQAChecker::Instance()->Run(AliQAv1::kTOF, task, list) ;
}
//____________________________________________________________________________
void AliTOFQADataMakerSim::GetMapIndeces(Int_t* in , Int_t* out)