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