#include "AliFMDHit.h"
#include "AliQAChecker.h"
#include "AliFMDParameters.h"
+#include "AliFMDSDigit.h"
//_____________________________________________________________________
// This is the class that collects the QA data for the FMD during simulation.
#endif
//_____________________________________________________________________
AliFMDQADataMakerSim::AliFMDQADataMakerSim()
- : AliQADataMakerSim(AliQA::GetDetName(AliQA::kFMD),
+ : AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kFMD),
"FMD Quality Assurance Data Maker"),
+ fSDigitsArray("AliFMDSDigit", 1000),
fDigitsArray("AliFMDDigit", 1000),
fHitsArray("AliFMDHit", 10)
{
//_____________________________________________________________________
AliFMDQADataMakerSim::AliFMDQADataMakerSim(const AliFMDQADataMakerSim& qadm)
: AliQADataMakerSim(),
+ fSDigitsArray(qadm.fSDigitsArray),
fDigitsArray(qadm.fDigitsArray),
fHitsArray(qadm.fHitsArray)
{
//_____________________________________________________________________
AliFMDQADataMakerSim& AliFMDQADataMakerSim::operator = (const AliFMDQADataMakerSim& qadm )
{
+ fSDigitsArray = qadm.fSDigitsArray;
fDigitsArray = qadm.fDigitsArray;
fHitsArray = qadm.fHitsArray;
}
//_____________________________________________________________________
-void AliFMDQADataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t task,
- TObjArray * list)
+void AliFMDQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task,
+ TObjArray ** list)
{
//Detector specific actions at end of cycle
// do the QA checking
"AliFMDQADataMakerSim","AliFMDQADataMakerSim",
"AliFMDQADataMakerSim::EndOfDetectorCycle",
"AliFMDQADataMakerSim.cxx",83);
- AliQAChecker::Instance()->Run(AliQA::kFMD, task, list) ;
+ AliQAChecker::Instance()->Run(AliQAv1::kFMD, task, list) ;
}
+//_____________________________________________________________________
+void AliFMDQADataMakerSim::InitSDigits()
+{
+ // create SDigits histograms in SDigits subdir
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1I* hADCCounts = new TH1I("hADCCounts","Dist of ADC counts;ADC counts;Entries",1024,0,1024);
+ hADCCounts->SetXTitle("ADC counts");
+ Add2SDigitsList(hADCCounts, 0, !expert, image);
+}
//____________________________________________________________________
void AliFMDQADataMakerSim::InitHits()
{
// create Digits histograms in Digits subdir
- TH1F* hEnergyOfHits = new TH1F("hEnergyOfHits","Energy distribution",100,0,3);
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1F* hEnergyOfHits = new TH1F("hEnergyOfHits","Energy distribution;Energy [MeV];Counts",100,0,3);
hEnergyOfHits->SetXTitle("Edep");
hEnergyOfHits->SetYTitle("Counts");
- Add2HitsList(hEnergyOfHits, 0);
+ Add2HitsList(hEnergyOfHits, 0, !expert, image);
}
//_____________________________________________________________________
void AliFMDQADataMakerSim::InitDigits()
{
// create Digits histograms in Digits subdir
- TH1I* hADCCounts = new TH1I("hADCCounts","Dist of ADC counts",1024,0,1024);
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+
+ TH1I* hADCCounts = new TH1I("hADCCounts","Dist of ADC counts; ADC counts;Entries",1024,0,1024);
hADCCounts->SetXTitle("ADC counts");
- Add2DigitsList(hADCCounts, 0);
+ Add2DigitsList(hADCCounts, 0, !expert, image);
}
//_____________________________________________________________________
void AliFMDQADataMakerSim::MakeHits(TClonesArray * hits)
{
+ // Check id histograms already created for this Event Specie
+ if ( ! GetHitsData(0) )
+ InitHits() ;
+
TIter next(hits);
AliFMDHit * hit;
while ((hit = static_cast<AliFMDHit *>(next())))
// makes data from Digits
if(!digits) return;
+ // Check id histograms already created for this Event Specie
+ if ( ! GetDigitsData(0) )
+ InitDigits() ;
+
for(Int_t i = 0 ; i < digits->GetEntriesFast() ; i++) {
//Raw ADC counts
AliFMDDigit* digit = static_cast<AliFMDDigit*>(digits->At(i));
MakeDigits(digitAddress) ;
}
+//_____________________________________________________________________
+void AliFMDQADataMakerSim::MakeSDigits(TClonesArray * sdigits)
+{
+ // makes data from Digits
+ if(!sdigits) return;
+
+ // Check id histograms already created for this Event Specie
+ if ( ! GetSDigitsData(0) )
+ InitSDigits() ;
+
+ for(Int_t i = 0 ; i < sdigits->GetEntriesFast() ; i++) {
+ //Raw ADC counts
+ AliFMDSDigit* sdigit = static_cast<AliFMDSDigit*>(sdigits->At(i));
+ GetSDigitsData(0)->Fill(sdigit->Counts());
+ }
+}
+
+//_____________________________________________________________________
+void AliFMDQADataMakerSim::MakeSDigits(TTree * sdigitTree)
+{
+
+ fSDigitsArray.Clear();
+ TBranch * branch = sdigitTree->GetBranch("FMD") ;
+ if (!branch) {
+ AliWarning("FMD branch in SDigit Tree not found") ;
+ return;
+ }
+ TClonesArray* sdigitAddress = &fSDigitsArray;
+ branch->SetAddress(&sdigitAddress) ;
+ branch->GetEntry(0) ;
+ MakeSDigits(sdigitAddress) ;
+}
+
//_____________________________________________________________________
void AliFMDQADataMakerSim::StartOfDetectorCycle()
{