#include <TClonesArray.h>
#include <TFile.h>
#include <TH1F.h>
#include <TDirectory.h>
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliADdigit.h"
#include "AliADSDigit.h"
#include "AliADhit.h"
#include "AliADQADataMakerSim.h"
#include "AliQAChecker.h"
ClassImp(AliADQADataMakerSim)
AliADQADataMakerSim::AliADQADataMakerSim() :
AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kAD), "AD Quality Assurance Data Maker")
{
}
AliADQADataMakerSim::AliADQADataMakerSim(const AliADQADataMakerSim& qadm) :
AliQADataMakerSim()
{
SetName((const char*)qadm.GetName()) ;
SetTitle((const char*)qadm.GetTitle());
}
AliADQADataMakerSim& AliADQADataMakerSim::operator = (const AliADQADataMakerSim& qadm )
{
this->~AliADQADataMakerSim();
new(this) AliADQADataMakerSim(qadm);
return *this;
}
void AliADQADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
ResetEventTrigClasses();
AliQAChecker::Instance()->Run(AliQAv1::kAD, task, list) ;
}
void AliADQADataMakerSim::InitHits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1I * h0 = new TH1I("hHitMultiplicity", "Hit multiplicity distribution in AD;# of Hits;Entries", 300, 0, 299) ;
h0->Sumw2() ;
Add2HitsList(h0, 0, !expert, image) ;
TH1I * h1 = new TH1I("hHitCellNumber", "Hit cell distribution in AD;Cell;# of Hits", 16, 0, 16) ;
h1->Sumw2() ;
Add2HitsList(h1, 1, !expert, image) ;
TH1I * h2 = new TH1I("hHitNPhotons", "Number of photons per hit in AD;# of Photons;Entries", 1000, 0, 50000) ;
h2->Sumw2() ;
Add2HitsList(h2, 2, expert, image) ;
ClonePerTrigClass(AliQAv1::kHITS);
}
void AliADQADataMakerSim::InitSDigits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1I *fhSDigCharge[16];
TH1I * h0 = new TH1I("hSDigitMultiplicity", "SDigits multiplicity distribution in AD;# of Digits;Entries", 100, 0, 99) ;
h0->Sumw2() ;
Add2DigitsList(h0, 0, !expert, image) ;
for (Int_t i=0; i<16; i++)
{
fhSDigCharge[i] = new TH1I(Form("hSDigitCharge%d", i),Form("SDigit charges in cell %d; Time;Entries",i),1700,0.,1700);
Add2SDigitsList(fhSDigCharge[i],i+1, !expert, image);
}
ClonePerTrigClass(AliQAv1::kSDIGITS);
}
void AliADQADataMakerSim::InitDigits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH1I *fhDigTDC[16];
TH1I *fhDigADC[16];
TH1I * h0 = new TH1I("hDigitMultiplicity", "Digits multiplicity distribution in AD;# of Digits;Entries", 100, 0, 99) ;
h0->Sumw2() ;
Add2DigitsList(h0, 0, !expert, image) ;
for (Int_t i=0; i<16; i++)
{
fhDigTDC[i] = new TH1I(Form("hDigitTDC%d", i),Form("Digit TDC in cell %d; TDC value;Entries",i),300,0.,149.);
fhDigADC[i]= new TH1I(Form("hDigitADC%d", i),Form("Digit ADC in cell %d;ADC value;Entries",i),1024,0.,1023.);
Add2DigitsList(fhDigTDC[i],i+1, !expert, image);
Add2DigitsList(fhDigADC[i],i+1+16, !expert, image);
}
ClonePerTrigClass(AliQAv1::kDIGITS);
}
void AliADQADataMakerSim::MakeHits()
{
Int_t nhits = fHitsArray->GetEntriesFast();
FillHitsData(0,nhits) ;
for (Int_t ihit=0;ihit<nhits;ihit++)
{
AliADhit * ADHit = (AliADhit*) fHitsArray->UncheckedAt(ihit);
if (!ADHit) {
AliError("The unchecked hit doesn't exist");
break;
}
FillHitsData(1,ADHit->GetCell());
FillHitsData(2,ADHit->GetNphot());
}
}
void AliADQADataMakerSim::MakeHits(TTree *hitTree)
{
if (fHitsArray)
fHitsArray->Clear() ;
else
fHitsArray = new TClonesArray("AliADhit", 1000);
TBranch * branch = hitTree->GetBranch("AD") ;
if ( ! branch ) {
AliWarning("AD branch in Hit Tree not found") ;
} else {
if (branch) {
branch->SetAddress(&fHitsArray);
}else{
AliError("Branch AD hit not found");
exit(111);
}
if ( ! GetHitsData(0) )
InitHits() ;
Int_t ntracks = (Int_t) hitTree->GetEntries();
if (ntracks<=0) return;
for (Int_t track=0; track<ntracks;track++) {
branch->GetEntry(track);
Int_t nhits = fHitsArray->GetEntriesFast();
FillHitsData(0,nhits) ;
for (Int_t ihit=0;ihit<nhits;ihit++)
{
AliADhit * ADHit = (AliADhit*) fHitsArray->UncheckedAt(ihit);
if (!ADHit) {
AliError("The unchecked hit doesn't exist");
break;
}
FillHitsData(1,ADHit->GetCell());
FillHitsData(2,ADHit->GetNphot());
}
}
}
IncEvCountCycleHits();
IncEvCountTotalHits();
}
void AliADQADataMakerSim::MakeSDigits(TTree *sdigitTree)
{
if (fSDigitsArray)
fSDigitsArray->Clear() ;
else
fSDigitsArray = new TClonesArray("AliADSDigit", 1000) ;
TBranch * branch = sdigitTree->GetBranch("ADSDigit") ;
if ( ! branch ) {
AliWarning("AD branch in SDigit Tree not found") ;
} else {
branch->SetAddress(&fSDigitsArray) ;
branch->GetEntry(0) ;
MakeSDigits() ;
}
IncEvCountCycleDigits();
IncEvCountTotalDigits();
}
void AliADQADataMakerSim::MakeSDigits()
{
FillSDigitsData(0,fSDigitsArray->GetEntriesFast()) ;
TIter next(fSDigitsArray) ;
AliADSDigit *ADSDigit ;
while ( (ADSDigit = dynamic_cast<AliADSDigit *>(next())) ) {
Int_t PMNumber = ADSDigit->PMNumber();
FillSDigitsData(PMNumber +1, ADSDigit->GetNBins()) ;
}
}
void AliADQADataMakerSim::MakeDigits()
{
FillDigitsData(0,fDigitsArray->GetEntriesFast()) ;
TIter next(fDigitsArray) ;
AliADdigit *ADDigit ;
while ( (ADDigit = dynamic_cast<AliADdigit *>(next())) ) {
Int_t PMNumber = ADDigit->PMNumber();
FillDigitsData(PMNumber +1, ADDigit->Time()) ;
FillDigitsData(PMNumber +1+16, ADDigit->ADC()) ;
}
}
void AliADQADataMakerSim::MakeDigits(TTree *digitTree)
{
if (fDigitsArray)
fDigitsArray->Clear() ;
else
fDigitsArray = new TClonesArray("AliADdigit", 1000) ;
TBranch * branch = digitTree->GetBranch("ADDigit") ;
if ( ! branch ) {
AliWarning("AD branch in Digit Tree not found") ;
} else {
branch->SetAddress(&fDigitsArray) ;
branch->GetEntry(0) ;
MakeDigits() ;
}
IncEvCountCycleDigits();
IncEvCountTotalDigits();
}
void AliADQADataMakerSim::StartOfDetectorCycle()
{
}
AliADQADataMakerSim.cxx:1 AliADQADataMakerSim.cxx:2 AliADQADataMakerSim.cxx:3 AliADQADataMakerSim.cxx:4 AliADQADataMakerSim.cxx:5 AliADQADataMakerSim.cxx:6 AliADQADataMakerSim.cxx:7 AliADQADataMakerSim.cxx:8 AliADQADataMakerSim.cxx:9 AliADQADataMakerSim.cxx:10 AliADQADataMakerSim.cxx:11 AliADQADataMakerSim.cxx:12 AliADQADataMakerSim.cxx:13 AliADQADataMakerSim.cxx:14 AliADQADataMakerSim.cxx:15 AliADQADataMakerSim.cxx:16 AliADQADataMakerSim.cxx:17 AliADQADataMakerSim.cxx:18 AliADQADataMakerSim.cxx:19 AliADQADataMakerSim.cxx:20 AliADQADataMakerSim.cxx:21 AliADQADataMakerSim.cxx:22 AliADQADataMakerSim.cxx:23 AliADQADataMakerSim.cxx:24 AliADQADataMakerSim.cxx:25 AliADQADataMakerSim.cxx:26 AliADQADataMakerSim.cxx:27 AliADQADataMakerSim.cxx:28 AliADQADataMakerSim.cxx:29 AliADQADataMakerSim.cxx:30 AliADQADataMakerSim.cxx:31 AliADQADataMakerSim.cxx:32 AliADQADataMakerSim.cxx:33 AliADQADataMakerSim.cxx:34 AliADQADataMakerSim.cxx:35 AliADQADataMakerSim.cxx:36 AliADQADataMakerSim.cxx:37 AliADQADataMakerSim.cxx:38 AliADQADataMakerSim.cxx:39 AliADQADataMakerSim.cxx:40 AliADQADataMakerSim.cxx:41 AliADQADataMakerSim.cxx:42 AliADQADataMakerSim.cxx:43 AliADQADataMakerSim.cxx:44 AliADQADataMakerSim.cxx:45 AliADQADataMakerSim.cxx:46 AliADQADataMakerSim.cxx:47 AliADQADataMakerSim.cxx:48 AliADQADataMakerSim.cxx:49 AliADQADataMakerSim.cxx:50 AliADQADataMakerSim.cxx:51 AliADQADataMakerSim.cxx:52 AliADQADataMakerSim.cxx:53 AliADQADataMakerSim.cxx:54 AliADQADataMakerSim.cxx:55 AliADQADataMakerSim.cxx:56 AliADQADataMakerSim.cxx:57 AliADQADataMakerSim.cxx:58 AliADQADataMakerSim.cxx:59 AliADQADataMakerSim.cxx:60 AliADQADataMakerSim.cxx:61 AliADQADataMakerSim.cxx:62 AliADQADataMakerSim.cxx:63 AliADQADataMakerSim.cxx:64 AliADQADataMakerSim.cxx:65 AliADQADataMakerSim.cxx:66 AliADQADataMakerSim.cxx:67 AliADQADataMakerSim.cxx:68 AliADQADataMakerSim.cxx:69 AliADQADataMakerSim.cxx:70 AliADQADataMakerSim.cxx:71 AliADQADataMakerSim.cxx:72 AliADQADataMakerSim.cxx:73 AliADQADataMakerSim.cxx:74 AliADQADataMakerSim.cxx:75 AliADQADataMakerSim.cxx:76 AliADQADataMakerSim.cxx:77 AliADQADataMakerSim.cxx:78 AliADQADataMakerSim.cxx:79 AliADQADataMakerSim.cxx:80 AliADQADataMakerSim.cxx:81 AliADQADataMakerSim.cxx:82 AliADQADataMakerSim.cxx:83 AliADQADataMakerSim.cxx:84 AliADQADataMakerSim.cxx:85 AliADQADataMakerSim.cxx:86 AliADQADataMakerSim.cxx:87 AliADQADataMakerSim.cxx:88 AliADQADataMakerSim.cxx:89 AliADQADataMakerSim.cxx:90 AliADQADataMakerSim.cxx:91 AliADQADataMakerSim.cxx:92 AliADQADataMakerSim.cxx:93 AliADQADataMakerSim.cxx:94 AliADQADataMakerSim.cxx:95 AliADQADataMakerSim.cxx:96 AliADQADataMakerSim.cxx:97 AliADQADataMakerSim.cxx:98 AliADQADataMakerSim.cxx:99 AliADQADataMakerSim.cxx:100 AliADQADataMakerSim.cxx:101 AliADQADataMakerSim.cxx:102 AliADQADataMakerSim.cxx:103 AliADQADataMakerSim.cxx:104 AliADQADataMakerSim.cxx:105 AliADQADataMakerSim.cxx:106 AliADQADataMakerSim.cxx:107 AliADQADataMakerSim.cxx:108 AliADQADataMakerSim.cxx:109 AliADQADataMakerSim.cxx:110 AliADQADataMakerSim.cxx:111 AliADQADataMakerSim.cxx:112 AliADQADataMakerSim.cxx:113 AliADQADataMakerSim.cxx:114 AliADQADataMakerSim.cxx:115 AliADQADataMakerSim.cxx:116 AliADQADataMakerSim.cxx:117 AliADQADataMakerSim.cxx:118 AliADQADataMakerSim.cxx:119 AliADQADataMakerSim.cxx:120 AliADQADataMakerSim.cxx:121 AliADQADataMakerSim.cxx:122 AliADQADataMakerSim.cxx:123 AliADQADataMakerSim.cxx:124 AliADQADataMakerSim.cxx:125 AliADQADataMakerSim.cxx:126 AliADQADataMakerSim.cxx:127 AliADQADataMakerSim.cxx:128 AliADQADataMakerSim.cxx:129 AliADQADataMakerSim.cxx:130 AliADQADataMakerSim.cxx:131 AliADQADataMakerSim.cxx:132 AliADQADataMakerSim.cxx:133 AliADQADataMakerSim.cxx:134 AliADQADataMakerSim.cxx:135 AliADQADataMakerSim.cxx:136 AliADQADataMakerSim.cxx:137 AliADQADataMakerSim.cxx:138 AliADQADataMakerSim.cxx:139 AliADQADataMakerSim.cxx:140 AliADQADataMakerSim.cxx:141 AliADQADataMakerSim.cxx:142 AliADQADataMakerSim.cxx:143 AliADQADataMakerSim.cxx:144 AliADQADataMakerSim.cxx:145 AliADQADataMakerSim.cxx:146 AliADQADataMakerSim.cxx:147 AliADQADataMakerSim.cxx:148 AliADQADataMakerSim.cxx:149 AliADQADataMakerSim.cxx:150 AliADQADataMakerSim.cxx:151 AliADQADataMakerSim.cxx:152 AliADQADataMakerSim.cxx:153 AliADQADataMakerSim.cxx:154 AliADQADataMakerSim.cxx:155 AliADQADataMakerSim.cxx:156 AliADQADataMakerSim.cxx:157 AliADQADataMakerSim.cxx:158 AliADQADataMakerSim.cxx:159 AliADQADataMakerSim.cxx:160 AliADQADataMakerSim.cxx:161 AliADQADataMakerSim.cxx:162 AliADQADataMakerSim.cxx:163 AliADQADataMakerSim.cxx:164 AliADQADataMakerSim.cxx:165 AliADQADataMakerSim.cxx:166 AliADQADataMakerSim.cxx:167 AliADQADataMakerSim.cxx:168 AliADQADataMakerSim.cxx:169 AliADQADataMakerSim.cxx:170 AliADQADataMakerSim.cxx:171 AliADQADataMakerSim.cxx:172 AliADQADataMakerSim.cxx:173 AliADQADataMakerSim.cxx:174 AliADQADataMakerSim.cxx:175 AliADQADataMakerSim.cxx:176 AliADQADataMakerSim.cxx:177 AliADQADataMakerSim.cxx:178 AliADQADataMakerSim.cxx:179 AliADQADataMakerSim.cxx:180 AliADQADataMakerSim.cxx:181 AliADQADataMakerSim.cxx:182 AliADQADataMakerSim.cxx:183 AliADQADataMakerSim.cxx:184 AliADQADataMakerSim.cxx:185 AliADQADataMakerSim.cxx:186 AliADQADataMakerSim.cxx:187 AliADQADataMakerSim.cxx:188 AliADQADataMakerSim.cxx:189 AliADQADataMakerSim.cxx:190 AliADQADataMakerSim.cxx:191 AliADQADataMakerSim.cxx:192 AliADQADataMakerSim.cxx:193 AliADQADataMakerSim.cxx:194 AliADQADataMakerSim.cxx:195 AliADQADataMakerSim.cxx:196 AliADQADataMakerSim.cxx:197 AliADQADataMakerSim.cxx:198 AliADQADataMakerSim.cxx:199 AliADQADataMakerSim.cxx:200 AliADQADataMakerSim.cxx:201 AliADQADataMakerSim.cxx:202 AliADQADataMakerSim.cxx:203 AliADQADataMakerSim.cxx:204 AliADQADataMakerSim.cxx:205 AliADQADataMakerSim.cxx:206 AliADQADataMakerSim.cxx:207 AliADQADataMakerSim.cxx:208 AliADQADataMakerSim.cxx:209 AliADQADataMakerSim.cxx:210 AliADQADataMakerSim.cxx:211 AliADQADataMakerSim.cxx:212 AliADQADataMakerSim.cxx:213 AliADQADataMakerSim.cxx:214 AliADQADataMakerSim.cxx:215 AliADQADataMakerSim.cxx:216 AliADQADataMakerSim.cxx:217 AliADQADataMakerSim.cxx:218 AliADQADataMakerSim.cxx:219 AliADQADataMakerSim.cxx:220 AliADQADataMakerSim.cxx:221 AliADQADataMakerSim.cxx:222 AliADQADataMakerSim.cxx:223 AliADQADataMakerSim.cxx:224 AliADQADataMakerSim.cxx:225 AliADQADataMakerSim.cxx:226 AliADQADataMakerSim.cxx:227 AliADQADataMakerSim.cxx:228 AliADQADataMakerSim.cxx:229 AliADQADataMakerSim.cxx:230 AliADQADataMakerSim.cxx:231 AliADQADataMakerSim.cxx:232 AliADQADataMakerSim.cxx:233 AliADQADataMakerSim.cxx:234 AliADQADataMakerSim.cxx:235 AliADQADataMakerSim.cxx:236 AliADQADataMakerSim.cxx:237 AliADQADataMakerSim.cxx:238 AliADQADataMakerSim.cxx:239 AliADQADataMakerSim.cxx:240 AliADQADataMakerSim.cxx:241 AliADQADataMakerSim.cxx:242 AliADQADataMakerSim.cxx:243 AliADQADataMakerSim.cxx:244 AliADQADataMakerSim.cxx:245 AliADQADataMakerSim.cxx:246 AliADQADataMakerSim.cxx:247 AliADQADataMakerSim.cxx:248 AliADQADataMakerSim.cxx:249 AliADQADataMakerSim.cxx:250 AliADQADataMakerSim.cxx:251 AliADQADataMakerSim.cxx:252 AliADQADataMakerSim.cxx:253 AliADQADataMakerSim.cxx:254 AliADQADataMakerSim.cxx:255 AliADQADataMakerSim.cxx:256 AliADQADataMakerSim.cxx:257 AliADQADataMakerSim.cxx:258 AliADQADataMakerSim.cxx:259 AliADQADataMakerSim.cxx:260 AliADQADataMakerSim.cxx:261 AliADQADataMakerSim.cxx:262 AliADQADataMakerSim.cxx:263 AliADQADataMakerSim.cxx:264 AliADQADataMakerSim.cxx:265 AliADQADataMakerSim.cxx:266 AliADQADataMakerSim.cxx:267 AliADQADataMakerSim.cxx:268 AliADQADataMakerSim.cxx:269 AliADQADataMakerSim.cxx:270 AliADQADataMakerSim.cxx:271 AliADQADataMakerSim.cxx:272 AliADQADataMakerSim.cxx:273 AliADQADataMakerSim.cxx:274 AliADQADataMakerSim.cxx:275 AliADQADataMakerSim.cxx:276 AliADQADataMakerSim.cxx:277 AliADQADataMakerSim.cxx:278 AliADQADataMakerSim.cxx:279 AliADQADataMakerSim.cxx:280 AliADQADataMakerSim.cxx:281 AliADQADataMakerSim.cxx:282 AliADQADataMakerSim.cxx:283 AliADQADataMakerSim.cxx:284 AliADQADataMakerSim.cxx:285 AliADQADataMakerSim.cxx:286 AliADQADataMakerSim.cxx:287 AliADQADataMakerSim.cxx:288 AliADQADataMakerSim.cxx:289 AliADQADataMakerSim.cxx:290 AliADQADataMakerSim.cxx:291 AliADQADataMakerSim.cxx:292 AliADQADataMakerSim.cxx:293 AliADQADataMakerSim.cxx:294 AliADQADataMakerSim.cxx:295 AliADQADataMakerSim.cxx:296 AliADQADataMakerSim.cxx:297 AliADQADataMakerSim.cxx:298 AliADQADataMakerSim.cxx:299 AliADQADataMakerSim.cxx:300 AliADQADataMakerSim.cxx:301 AliADQADataMakerSim.cxx:302 AliADQADataMakerSim.cxx:303 AliADQADataMakerSim.cxx:304 AliADQADataMakerSim.cxx:305 AliADQADataMakerSim.cxx:306 AliADQADataMakerSim.cxx:307 AliADQADataMakerSim.cxx:308 AliADQADataMakerSim.cxx:309 AliADQADataMakerSim.cxx:310 AliADQADataMakerSim.cxx:311 AliADQADataMakerSim.cxx:312 AliADQADataMakerSim.cxx:313 AliADQADataMakerSim.cxx:314 AliADQADataMakerSim.cxx:315 AliADQADataMakerSim.cxx:316 AliADQADataMakerSim.cxx:317 AliADQADataMakerSim.cxx:318