#include <TClonesArray.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH1I.h>
#include <TH2F.h>
#include <TTree.h>
#include "AliESDCaloCluster.h"
#include "AliLog.h"
#include "AliEMCALDigit.h"
#include "AliEMCALHit.h"
#include "AliEMCALQADataMakerSim.h"
#include "AliQAChecker.h"
#include "AliEMCALSDigitizer.h"
ClassImp(AliEMCALQADataMakerSim)
AliEMCALQADataMakerSim::AliEMCALQADataMakerSim() :
AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kEMCAL), "EMCAL Quality Assurance Data Maker")
{
}
AliEMCALQADataMakerSim::AliEMCALQADataMakerSim(const AliEMCALQADataMakerSim& qadm) :
AliQADataMakerSim()
{
SetName((const char*)qadm.GetName()) ;
SetTitle((const char*)qadm.GetTitle());
}
AliEMCALQADataMakerSim& AliEMCALQADataMakerSim::operator = (const AliEMCALQADataMakerSim& qadm )
{
this->~AliEMCALQADataMakerSim();
new(this) AliEMCALQADataMakerSim(qadm);
return *this;
}
void AliEMCALQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
ResetEventTrigClasses();
AliQAChecker::Instance()->Run(AliQAv1::kEMCAL, task, list) ;
}
void AliEMCALQADataMakerSim::InitHits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1F * h0 = new TH1F("hEmcalHits", "Hits energy distribution in EMCAL;Energy [MeV];Counts", 200, 0., 2.) ;
h0->Sumw2() ;
Add2HitsList(h0, 0, !expert, image) ;
TH1I * h1 = new TH1I("hEmcalHitsMul", "Hits multiplicity distribution in EMCAL;# of Hits;Entries", 1000, 0, 10000) ;
h1->Sumw2() ;
Add2HitsList(h1, 1, !expert, image) ;
ClonePerTrigClass(AliQAv1::kHITS);
}
void AliEMCALQADataMakerSim::InitDigits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1I * h0 = new TH1I("hEmcalDigits", "Digits amplitude distribution in EMCAL;Amplitude [ADC counts];Counts", 500, 0, 500) ;
h0->Sumw2() ;
Add2DigitsList(h0, 0, !expert, image) ;
TH1I * h1 = new TH1I("hEmcalDigitsMul", "Digits multiplicity distribution in EMCAL;# of Digits;Entries", 200, 0, 2000) ;
h1->Sumw2() ;
Add2DigitsList(h1, 1, !expert, image) ;
ClonePerTrigClass(AliQAv1::kDIGITS);
}
void AliEMCALQADataMakerSim::InitSDigits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1F * h0 = new TH1F("hEmcalSDigits", "SDigits energy distribution in EMCAL;Energy [MeV];Counts", 200, 0., 20.) ;
h0->Sumw2() ;
Add2SDigitsList(h0, 0, !expert, image) ;
TH1I * h1 = new TH1I("hEmcalSDigitsMul", "SDigits multiplicity distribution in EMCAL;# of SDigits;Entries", 500, 0, 5000) ;
h1->Sumw2() ;
Add2SDigitsList(h1, 1, !expert, image) ;
ClonePerTrigClass(AliQAv1::kSDIGITS);
}
void AliEMCALQADataMakerSim::MakeHits()
{
FillHitsData(1,fHitsArray->GetEntriesFast()) ;
TIter next(fHitsArray) ;
AliEMCALHit * hit ;
while ( (hit = dynamic_cast<AliEMCALHit *>(next())) ) {
FillHitsData(0, hit->GetEnergy()) ;
}
}
void AliEMCALQADataMakerSim::MakeHits(TTree * hitTree)
{
if (fHitsArray)
fHitsArray->Clear() ;
else
fHitsArray = new TClonesArray("AliEMCALHit", 1000);
TBranch * branch = hitTree->GetBranch("EMCAL") ;
if ( ! branch ) { AliWarning("EMCAL branch in Hit Tree not found") ; return;}
branch->SetAddress(&fHitsArray) ;
for (Int_t ientry = 0 ; ientry < branch->GetEntries() ; ientry++) {
branch->GetEntry(ientry) ;
MakeHits() ;
fHitsArray->Clear() ;
}
IncEvCountCycleHits();
IncEvCountTotalHits();
}
void AliEMCALQADataMakerSim::MakeDigits()
{
FillDigitsData(1,fDigitsArray->GetEntriesFast()) ;
TIter next(fDigitsArray) ;
AliEMCALDigit * digit ;
while ( (digit = dynamic_cast<AliEMCALDigit *>(next())) ) {
FillDigitsData(0, digit->GetAmp()) ;
}
}
void AliEMCALQADataMakerSim::MakeDigits(TTree * digitTree)
{
if (fDigitsArray)
fDigitsArray->Clear("C") ;
else
fDigitsArray = new TClonesArray("AliEMCALDigit", 1000) ;
TBranch * branch = digitTree->GetBranch("EMCAL") ;
if ( ! branch ) { AliWarning("EMCAL branch in Digit Tree not found") ; return; }
branch->SetAddress(&fDigitsArray) ;
branch->GetEntry(0) ;
MakeDigits() ;
IncEvCountCycleDigits();
IncEvCountTotalDigits();
}
void AliEMCALQADataMakerSim::MakeSDigits()
{
AliEMCALSDigitizer* sDigitizer = new AliEMCALSDigitizer();
FillSDigitsData(1,fSDigitsArray->GetEntriesFast()) ;
TIter next(fSDigitsArray) ;
AliEMCALDigit * sdigit ;
while ( (sdigit = dynamic_cast<AliEMCALDigit *>(next())) ) {
FillSDigitsData(0, sDigitizer->Calibrate(sdigit->GetAmp())) ;
}
delete sDigitizer;
}
void AliEMCALQADataMakerSim::MakeSDigits(TTree * sdigitTree)
{
if (fSDigitsArray)
fSDigitsArray->Clear("C") ;
else
fSDigitsArray = new TClonesArray("AliEMCALDigit", 1000) ;
TBranch * branch = sdigitTree->GetBranch("EMCAL") ;
if ( ! branch ) { AliWarning("EMCAL branch in SDigit Tree not found"); return;}
branch->SetAddress(&fSDigitsArray);
branch->GetEntry(0);
MakeSDigits();
IncEvCountCycleSDigits();
IncEvCountTotalSDigits();
}
void AliEMCALQADataMakerSim::StartOfDetectorCycle()
{
}
AliEMCALQADataMakerSim.cxx:1 AliEMCALQADataMakerSim.cxx:2 AliEMCALQADataMakerSim.cxx:3 AliEMCALQADataMakerSim.cxx:4 AliEMCALQADataMakerSim.cxx:5 AliEMCALQADataMakerSim.cxx:6 AliEMCALQADataMakerSim.cxx:7 AliEMCALQADataMakerSim.cxx:8 AliEMCALQADataMakerSim.cxx:9 AliEMCALQADataMakerSim.cxx:10 AliEMCALQADataMakerSim.cxx:11 AliEMCALQADataMakerSim.cxx:12 AliEMCALQADataMakerSim.cxx:13 AliEMCALQADataMakerSim.cxx:14 AliEMCALQADataMakerSim.cxx:15 AliEMCALQADataMakerSim.cxx:16 AliEMCALQADataMakerSim.cxx:17 AliEMCALQADataMakerSim.cxx:18 AliEMCALQADataMakerSim.cxx:19 AliEMCALQADataMakerSim.cxx:20 AliEMCALQADataMakerSim.cxx:21 AliEMCALQADataMakerSim.cxx:22 AliEMCALQADataMakerSim.cxx:23 AliEMCALQADataMakerSim.cxx:24 AliEMCALQADataMakerSim.cxx:25 AliEMCALQADataMakerSim.cxx:26 AliEMCALQADataMakerSim.cxx:27 AliEMCALQADataMakerSim.cxx:28 AliEMCALQADataMakerSim.cxx:29 AliEMCALQADataMakerSim.cxx:30 AliEMCALQADataMakerSim.cxx:31 AliEMCALQADataMakerSim.cxx:32 AliEMCALQADataMakerSim.cxx:33 AliEMCALQADataMakerSim.cxx:34 AliEMCALQADataMakerSim.cxx:35 AliEMCALQADataMakerSim.cxx:36 AliEMCALQADataMakerSim.cxx:37 AliEMCALQADataMakerSim.cxx:38 AliEMCALQADataMakerSim.cxx:39 AliEMCALQADataMakerSim.cxx:40 AliEMCALQADataMakerSim.cxx:41 AliEMCALQADataMakerSim.cxx:42 AliEMCALQADataMakerSim.cxx:43 AliEMCALQADataMakerSim.cxx:44 AliEMCALQADataMakerSim.cxx:45 AliEMCALQADataMakerSim.cxx:46 AliEMCALQADataMakerSim.cxx:47 AliEMCALQADataMakerSim.cxx:48 AliEMCALQADataMakerSim.cxx:49 AliEMCALQADataMakerSim.cxx:50 AliEMCALQADataMakerSim.cxx:51 AliEMCALQADataMakerSim.cxx:52 AliEMCALQADataMakerSim.cxx:53 AliEMCALQADataMakerSim.cxx:54 AliEMCALQADataMakerSim.cxx:55 AliEMCALQADataMakerSim.cxx:56 AliEMCALQADataMakerSim.cxx:57 AliEMCALQADataMakerSim.cxx:58 AliEMCALQADataMakerSim.cxx:59 AliEMCALQADataMakerSim.cxx:60 AliEMCALQADataMakerSim.cxx:61 AliEMCALQADataMakerSim.cxx:62 AliEMCALQADataMakerSim.cxx:63 AliEMCALQADataMakerSim.cxx:64 AliEMCALQADataMakerSim.cxx:65 AliEMCALQADataMakerSim.cxx:66 AliEMCALQADataMakerSim.cxx:67 AliEMCALQADataMakerSim.cxx:68 AliEMCALQADataMakerSim.cxx:69 AliEMCALQADataMakerSim.cxx:70 AliEMCALQADataMakerSim.cxx:71 AliEMCALQADataMakerSim.cxx:72 AliEMCALQADataMakerSim.cxx:73 AliEMCALQADataMakerSim.cxx:74 AliEMCALQADataMakerSim.cxx:75 AliEMCALQADataMakerSim.cxx:76 AliEMCALQADataMakerSim.cxx:77 AliEMCALQADataMakerSim.cxx:78 AliEMCALQADataMakerSim.cxx:79 AliEMCALQADataMakerSim.cxx:80 AliEMCALQADataMakerSim.cxx:81 AliEMCALQADataMakerSim.cxx:82 AliEMCALQADataMakerSim.cxx:83 AliEMCALQADataMakerSim.cxx:84 AliEMCALQADataMakerSim.cxx:85 AliEMCALQADataMakerSim.cxx:86 AliEMCALQADataMakerSim.cxx:87 AliEMCALQADataMakerSim.cxx:88 AliEMCALQADataMakerSim.cxx:89 AliEMCALQADataMakerSim.cxx:90 AliEMCALQADataMakerSim.cxx:91 AliEMCALQADataMakerSim.cxx:92 AliEMCALQADataMakerSim.cxx:93 AliEMCALQADataMakerSim.cxx:94 AliEMCALQADataMakerSim.cxx:95 AliEMCALQADataMakerSim.cxx:96 AliEMCALQADataMakerSim.cxx:97 AliEMCALQADataMakerSim.cxx:98 AliEMCALQADataMakerSim.cxx:99 AliEMCALQADataMakerSim.cxx:100 AliEMCALQADataMakerSim.cxx:101 AliEMCALQADataMakerSim.cxx:102 AliEMCALQADataMakerSim.cxx:103 AliEMCALQADataMakerSim.cxx:104 AliEMCALQADataMakerSim.cxx:105 AliEMCALQADataMakerSim.cxx:106 AliEMCALQADataMakerSim.cxx:107 AliEMCALQADataMakerSim.cxx:108 AliEMCALQADataMakerSim.cxx:109 AliEMCALQADataMakerSim.cxx:110 AliEMCALQADataMakerSim.cxx:111 AliEMCALQADataMakerSim.cxx:112 AliEMCALQADataMakerSim.cxx:113 AliEMCALQADataMakerSim.cxx:114 AliEMCALQADataMakerSim.cxx:115 AliEMCALQADataMakerSim.cxx:116 AliEMCALQADataMakerSim.cxx:117 AliEMCALQADataMakerSim.cxx:118 AliEMCALQADataMakerSim.cxx:119 AliEMCALQADataMakerSim.cxx:120 AliEMCALQADataMakerSim.cxx:121 AliEMCALQADataMakerSim.cxx:122 AliEMCALQADataMakerSim.cxx:123 AliEMCALQADataMakerSim.cxx:124 AliEMCALQADataMakerSim.cxx:125 AliEMCALQADataMakerSim.cxx:126 AliEMCALQADataMakerSim.cxx:127 AliEMCALQADataMakerSim.cxx:128 AliEMCALQADataMakerSim.cxx:129 AliEMCALQADataMakerSim.cxx:130 AliEMCALQADataMakerSim.cxx:131 AliEMCALQADataMakerSim.cxx:132 AliEMCALQADataMakerSim.cxx:133 AliEMCALQADataMakerSim.cxx:134 AliEMCALQADataMakerSim.cxx:135 AliEMCALQADataMakerSim.cxx:136 AliEMCALQADataMakerSim.cxx:137 AliEMCALQADataMakerSim.cxx:138 AliEMCALQADataMakerSim.cxx:139 AliEMCALQADataMakerSim.cxx:140 AliEMCALQADataMakerSim.cxx:141 AliEMCALQADataMakerSim.cxx:142 AliEMCALQADataMakerSim.cxx:143 AliEMCALQADataMakerSim.cxx:144 AliEMCALQADataMakerSim.cxx:145 AliEMCALQADataMakerSim.cxx:146 AliEMCALQADataMakerSim.cxx:147 AliEMCALQADataMakerSim.cxx:148 AliEMCALQADataMakerSim.cxx:149 AliEMCALQADataMakerSim.cxx:150 AliEMCALQADataMakerSim.cxx:151 AliEMCALQADataMakerSim.cxx:152 AliEMCALQADataMakerSim.cxx:153 AliEMCALQADataMakerSim.cxx:154 AliEMCALQADataMakerSim.cxx:155 AliEMCALQADataMakerSim.cxx:156 AliEMCALQADataMakerSim.cxx:157 AliEMCALQADataMakerSim.cxx:158 AliEMCALQADataMakerSim.cxx:159 AliEMCALQADataMakerSim.cxx:160 AliEMCALQADataMakerSim.cxx:161 AliEMCALQADataMakerSim.cxx:162 AliEMCALQADataMakerSim.cxx:163 AliEMCALQADataMakerSim.cxx:164 AliEMCALQADataMakerSim.cxx:165 AliEMCALQADataMakerSim.cxx:166 AliEMCALQADataMakerSim.cxx:167 AliEMCALQADataMakerSim.cxx:168 AliEMCALQADataMakerSim.cxx:169 AliEMCALQADataMakerSim.cxx:170 AliEMCALQADataMakerSim.cxx:171 AliEMCALQADataMakerSim.cxx:172 AliEMCALQADataMakerSim.cxx:173 AliEMCALQADataMakerSim.cxx:174 AliEMCALQADataMakerSim.cxx:175 AliEMCALQADataMakerSim.cxx:176 AliEMCALQADataMakerSim.cxx:177 AliEMCALQADataMakerSim.cxx:178 AliEMCALQADataMakerSim.cxx:179 AliEMCALQADataMakerSim.cxx:180 AliEMCALQADataMakerSim.cxx:181 AliEMCALQADataMakerSim.cxx:182 AliEMCALQADataMakerSim.cxx:183 AliEMCALQADataMakerSim.cxx:184 AliEMCALQADataMakerSim.cxx:185 AliEMCALQADataMakerSim.cxx:186 AliEMCALQADataMakerSim.cxx:187 AliEMCALQADataMakerSim.cxx:188 AliEMCALQADataMakerSim.cxx:189 AliEMCALQADataMakerSim.cxx:190 AliEMCALQADataMakerSim.cxx:191 AliEMCALQADataMakerSim.cxx:192 AliEMCALQADataMakerSim.cxx:193 AliEMCALQADataMakerSim.cxx:194 AliEMCALQADataMakerSim.cxx:195 AliEMCALQADataMakerSim.cxx:196 AliEMCALQADataMakerSim.cxx:197 AliEMCALQADataMakerSim.cxx:198 AliEMCALQADataMakerSim.cxx:199 AliEMCALQADataMakerSim.cxx:200 AliEMCALQADataMakerSim.cxx:201 AliEMCALQADataMakerSim.cxx:202 AliEMCALQADataMakerSim.cxx:203 AliEMCALQADataMakerSim.cxx:204 AliEMCALQADataMakerSim.cxx:205 AliEMCALQADataMakerSim.cxx:206 AliEMCALQADataMakerSim.cxx:207 AliEMCALQADataMakerSim.cxx:208 AliEMCALQADataMakerSim.cxx:209 AliEMCALQADataMakerSim.cxx:210 AliEMCALQADataMakerSim.cxx:211 AliEMCALQADataMakerSim.cxx:212 AliEMCALQADataMakerSim.cxx:213 AliEMCALQADataMakerSim.cxx:214 AliEMCALQADataMakerSim.cxx:215 AliEMCALQADataMakerSim.cxx:216 AliEMCALQADataMakerSim.cxx:217 AliEMCALQADataMakerSim.cxx:218 AliEMCALQADataMakerSim.cxx:219 AliEMCALQADataMakerSim.cxx:220 AliEMCALQADataMakerSim.cxx:221 AliEMCALQADataMakerSim.cxx:222 AliEMCALQADataMakerSim.cxx:223 AliEMCALQADataMakerSim.cxx:224 AliEMCALQADataMakerSim.cxx:225 AliEMCALQADataMakerSim.cxx:226 AliEMCALQADataMakerSim.cxx:227 AliEMCALQADataMakerSim.cxx:228 AliEMCALQADataMakerSim.cxx:229 AliEMCALQADataMakerSim.cxx:230 AliEMCALQADataMakerSim.cxx:231 AliEMCALQADataMakerSim.cxx:232 AliEMCALQADataMakerSim.cxx:233 AliEMCALQADataMakerSim.cxx:234 AliEMCALQADataMakerSim.cxx:235 AliEMCALQADataMakerSim.cxx:236 AliEMCALQADataMakerSim.cxx:237 AliEMCALQADataMakerSim.cxx:238 AliEMCALQADataMakerSim.cxx:239 AliEMCALQADataMakerSim.cxx:240 AliEMCALQADataMakerSim.cxx:241 AliEMCALQADataMakerSim.cxx:242 AliEMCALQADataMakerSim.cxx:243 AliEMCALQADataMakerSim.cxx:244