#include <TClonesArray.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TDirectory.h>
#include "AliESDEvent.h"
#include "AliLog.h"
#include "AliT0digit.h"
#include "AliT0hit.h"
#include "AliT0RecPoint.h"
#include "AliT0QADataMakerSim.h"
#include "AliQAChecker.h"
#include "AliT0RawReader.h"
#include <Riostream.h>
ClassImp(AliT0QADataMakerSim)
AliT0QADataMakerSim::AliT0QADataMakerSim() :
AliQADataMakerSim(AliQAv1::GetDetName(AliQAv1::kT0), "T0 Quality Assurance Data Maker")
{
}
AliT0QADataMakerSim::AliT0QADataMakerSim(const AliT0QADataMakerSim& qadm) :
AliQADataMakerSim()
{
SetName((const char*)qadm.GetName()) ;
SetTitle((const char*)qadm.GetTitle());
}
AliT0QADataMakerSim& AliT0QADataMakerSim::operator = (const AliT0QADataMakerSim& qadm )
{
this->~AliT0QADataMakerSim();
new(this) AliT0QADataMakerSim(qadm);
return *this;
}
void AliT0QADataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
AliQAChecker::Instance()->Run(AliQAv1::kT0, task, list) ;
}
void AliT0QADataMakerSim::StartOfDetectorCycle()
{
}
void AliT0QADataMakerSim::InitHits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TString timename;
TH2F *fhHitsTimeA = new TH2F("hHitsTimeA", "Hits Efficiency;#PMT; Time [ns];", 13, 12, 25, 100,12,15 );
fhHitsTimeA->SetOption("COLZ");
Add2HitsList(fhHitsTimeA,0, !expert, image);
TH2F *fhHitsTimeC = new TH2F("hHitsTimeC", "Hits Efficiency;#PMT; Time [ns];", 13, 0, 13, 100,2,5 );
fhHitsTimeC->SetOption("COLZ");
Add2HitsList(fhHitsTimeC,1, !expert, image);
ClonePerTrigClass(AliQAv1::kHITS);
}
void AliT0QADataMakerSim::InitDigits()
{
const Bool_t expert = kTRUE ;
const Bool_t image = kTRUE ;
TH2F * fhDigCFD = new TH2F("fhDigCFD", " CFD digits; #PMT; CFD time [#channel]",25,-0.5,24.5,100,0,1000);
fhDigCFD->SetOption("COLZ");
Add2DigitsList( fhDigCFD,0);
TH2F *fhDigLEDamp = new TH2F("fhDigLEDamp", " LED-CFD digits; #PMT; amplitude LED-CFD [#channel]",25,-0.5,24.5,100,100,1000);
fhDigLEDamp->SetOption("COLZ");
Add2DigitsList( fhDigLEDamp,1, !expert, image);
TH2F * fhDigQTC = new TH2F("fhDigQTC", " QTC digits; #PMT; amplitude QTC [#channel]",25,-0.5,24.5,200,500,10000);
fhDigQTC->SetOption("COLZ");
Add2DigitsList( fhDigQTC,2, !expert, image);
ClonePerTrigClass(AliQAv1::kDIGITS);
}
void AliT0QADataMakerSim::MakeHits(TTree *hitTree)
{
if (fHitsArray)
fHitsArray->Clear() ;
else
fHitsArray = new TClonesArray("AliT0hit", 1000);
TBranch * branch = hitTree->GetBranch("T0") ;
if ( ! branch ) {
AliWarning("T0 branch in Hit Tree not found") ;
} else {
if (branch) {
branch->SetAddress(&fHitsArray);
}else{
AliError("Branch T0 hit not found");
exit(111);
}
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();
for (Int_t ihit=0;ihit<nhits;ihit++)
{
AliT0hit * startHit = (AliT0hit*) fHitsArray->UncheckedAt(ihit);
if (!startHit) {
AliError("The unchecked hit doesn't exist");
continue;
}
Int_t pmt=startHit->Pmt();
Float_t time = 0.001 * startHit->Time();
if(pmt<13) FillHitsData(1,pmt,time) ;
if(pmt>12) FillHitsData(0,pmt,time) ;
}
}
}
IncEvCountCycleHits();
IncEvCountTotalHits();
}
void AliT0QADataMakerSim::MakeDigits( TTree *digitsTree)
{
TArrayI *digCFD = new TArrayI(24);
TArrayI *digLED = new TArrayI(24);
TArrayI *digQT0 = new TArrayI(24);
TArrayI *digQT1 = new TArrayI(24);
Int_t refpoint=0;
TBranch *brDigits=digitsTree->GetBranch("T0");
AliT0digit *fDigits = new AliT0digit() ;
if (brDigits) {
brDigits->SetAddress(&fDigits);
}else{
AliError(Form("EXEC Branch T0 digits not found"));
return;
}
digitsTree->GetEvent(0);
digitsTree->GetEntry(0);
brDigits->GetEntry(0);
fDigits->GetTimeCFD(*digCFD);
fDigits->GetTimeLED(*digLED);
fDigits->GetQT0(*digQT0);
fDigits->GetQT1(*digQT1);
refpoint = fDigits->RefPoint();
for (Int_t i=0; i<24; i++)
{
if (digCFD->At(i)>0) {
Int_t cfd=digCFD->At(i)- refpoint;
FillDigitsData(0, i,cfd);
FillDigitsData(1, i,(digLED->At(i) - digCFD->At(i)));
FillDigitsData(2, i, (digQT1->At(i) - digQT0->At(i)));
}
}
delete digCFD;
delete digLED;
delete digQT0;
delete digQT1;
IncEvCountCycleDigits();
IncEvCountTotalDigits();
}
AliT0QADataMakerSim.cxx:1 AliT0QADataMakerSim.cxx:2 AliT0QADataMakerSim.cxx:3 AliT0QADataMakerSim.cxx:4 AliT0QADataMakerSim.cxx:5 AliT0QADataMakerSim.cxx:6 AliT0QADataMakerSim.cxx:7 AliT0QADataMakerSim.cxx:8 AliT0QADataMakerSim.cxx:9 AliT0QADataMakerSim.cxx:10 AliT0QADataMakerSim.cxx:11 AliT0QADataMakerSim.cxx:12 AliT0QADataMakerSim.cxx:13 AliT0QADataMakerSim.cxx:14 AliT0QADataMakerSim.cxx:15 AliT0QADataMakerSim.cxx:16 AliT0QADataMakerSim.cxx:17 AliT0QADataMakerSim.cxx:18 AliT0QADataMakerSim.cxx:19 AliT0QADataMakerSim.cxx:20 AliT0QADataMakerSim.cxx:21 AliT0QADataMakerSim.cxx:22 AliT0QADataMakerSim.cxx:23 AliT0QADataMakerSim.cxx:24 AliT0QADataMakerSim.cxx:25 AliT0QADataMakerSim.cxx:26 AliT0QADataMakerSim.cxx:27 AliT0QADataMakerSim.cxx:28 AliT0QADataMakerSim.cxx:29 AliT0QADataMakerSim.cxx:30 AliT0QADataMakerSim.cxx:31 AliT0QADataMakerSim.cxx:32 AliT0QADataMakerSim.cxx:33 AliT0QADataMakerSim.cxx:34 AliT0QADataMakerSim.cxx:35 AliT0QADataMakerSim.cxx:36 AliT0QADataMakerSim.cxx:37 AliT0QADataMakerSim.cxx:38 AliT0QADataMakerSim.cxx:39 AliT0QADataMakerSim.cxx:40 AliT0QADataMakerSim.cxx:41 AliT0QADataMakerSim.cxx:42 AliT0QADataMakerSim.cxx:43 AliT0QADataMakerSim.cxx:44 AliT0QADataMakerSim.cxx:45 AliT0QADataMakerSim.cxx:46 AliT0QADataMakerSim.cxx:47 AliT0QADataMakerSim.cxx:48 AliT0QADataMakerSim.cxx:49 AliT0QADataMakerSim.cxx:50 AliT0QADataMakerSim.cxx:51 AliT0QADataMakerSim.cxx:52 AliT0QADataMakerSim.cxx:53 AliT0QADataMakerSim.cxx:54 AliT0QADataMakerSim.cxx:55 AliT0QADataMakerSim.cxx:56 AliT0QADataMakerSim.cxx:57 AliT0QADataMakerSim.cxx:58 AliT0QADataMakerSim.cxx:59 AliT0QADataMakerSim.cxx:60 AliT0QADataMakerSim.cxx:61 AliT0QADataMakerSim.cxx:62 AliT0QADataMakerSim.cxx:63 AliT0QADataMakerSim.cxx:64 AliT0QADataMakerSim.cxx:65 AliT0QADataMakerSim.cxx:66 AliT0QADataMakerSim.cxx:67 AliT0QADataMakerSim.cxx:68 AliT0QADataMakerSim.cxx:69 AliT0QADataMakerSim.cxx:70 AliT0QADataMakerSim.cxx:71 AliT0QADataMakerSim.cxx:72 AliT0QADataMakerSim.cxx:73 AliT0QADataMakerSim.cxx:74 AliT0QADataMakerSim.cxx:75 AliT0QADataMakerSim.cxx:76 AliT0QADataMakerSim.cxx:77 AliT0QADataMakerSim.cxx:78 AliT0QADataMakerSim.cxx:79 AliT0QADataMakerSim.cxx:80 AliT0QADataMakerSim.cxx:81 AliT0QADataMakerSim.cxx:82 AliT0QADataMakerSim.cxx:83 AliT0QADataMakerSim.cxx:84 AliT0QADataMakerSim.cxx:85 AliT0QADataMakerSim.cxx:86 AliT0QADataMakerSim.cxx:87 AliT0QADataMakerSim.cxx:88 AliT0QADataMakerSim.cxx:89 AliT0QADataMakerSim.cxx:90 AliT0QADataMakerSim.cxx:91 AliT0QADataMakerSim.cxx:92 AliT0QADataMakerSim.cxx:93 AliT0QADataMakerSim.cxx:94 AliT0QADataMakerSim.cxx:95 AliT0QADataMakerSim.cxx:96 AliT0QADataMakerSim.cxx:97 AliT0QADataMakerSim.cxx:98 AliT0QADataMakerSim.cxx:99 AliT0QADataMakerSim.cxx:100 AliT0QADataMakerSim.cxx:101 AliT0QADataMakerSim.cxx:102 AliT0QADataMakerSim.cxx:103 AliT0QADataMakerSim.cxx:104 AliT0QADataMakerSim.cxx:105 AliT0QADataMakerSim.cxx:106 AliT0QADataMakerSim.cxx:107 AliT0QADataMakerSim.cxx:108 AliT0QADataMakerSim.cxx:109 AliT0QADataMakerSim.cxx:110 AliT0QADataMakerSim.cxx:111 AliT0QADataMakerSim.cxx:112 AliT0QADataMakerSim.cxx:113 AliT0QADataMakerSim.cxx:114 AliT0QADataMakerSim.cxx:115 AliT0QADataMakerSim.cxx:116 AliT0QADataMakerSim.cxx:117 AliT0QADataMakerSim.cxx:118 AliT0QADataMakerSim.cxx:119 AliT0QADataMakerSim.cxx:120 AliT0QADataMakerSim.cxx:121 AliT0QADataMakerSim.cxx:122 AliT0QADataMakerSim.cxx:123 AliT0QADataMakerSim.cxx:124 AliT0QADataMakerSim.cxx:125 AliT0QADataMakerSim.cxx:126 AliT0QADataMakerSim.cxx:127 AliT0QADataMakerSim.cxx:128 AliT0QADataMakerSim.cxx:129 AliT0QADataMakerSim.cxx:130 AliT0QADataMakerSim.cxx:131 AliT0QADataMakerSim.cxx:132 AliT0QADataMakerSim.cxx:133 AliT0QADataMakerSim.cxx:134 AliT0QADataMakerSim.cxx:135 AliT0QADataMakerSim.cxx:136 AliT0QADataMakerSim.cxx:137 AliT0QADataMakerSim.cxx:138 AliT0QADataMakerSim.cxx:139 AliT0QADataMakerSim.cxx:140 AliT0QADataMakerSim.cxx:141 AliT0QADataMakerSim.cxx:142 AliT0QADataMakerSim.cxx:143 AliT0QADataMakerSim.cxx:144 AliT0QADataMakerSim.cxx:145 AliT0QADataMakerSim.cxx:146 AliT0QADataMakerSim.cxx:147 AliT0QADataMakerSim.cxx:148 AliT0QADataMakerSim.cxx:149 AliT0QADataMakerSim.cxx:150 AliT0QADataMakerSim.cxx:151 AliT0QADataMakerSim.cxx:152 AliT0QADataMakerSim.cxx:153 AliT0QADataMakerSim.cxx:154 AliT0QADataMakerSim.cxx:155 AliT0QADataMakerSim.cxx:156 AliT0QADataMakerSim.cxx:157 AliT0QADataMakerSim.cxx:158 AliT0QADataMakerSim.cxx:159 AliT0QADataMakerSim.cxx:160 AliT0QADataMakerSim.cxx:161 AliT0QADataMakerSim.cxx:162 AliT0QADataMakerSim.cxx:163 AliT0QADataMakerSim.cxx:164 AliT0QADataMakerSim.cxx:165 AliT0QADataMakerSim.cxx:166 AliT0QADataMakerSim.cxx:167 AliT0QADataMakerSim.cxx:168 AliT0QADataMakerSim.cxx:169 AliT0QADataMakerSim.cxx:170 AliT0QADataMakerSim.cxx:171 AliT0QADataMakerSim.cxx:172 AliT0QADataMakerSim.cxx:173 AliT0QADataMakerSim.cxx:174 AliT0QADataMakerSim.cxx:175 AliT0QADataMakerSim.cxx:176 AliT0QADataMakerSim.cxx:177 AliT0QADataMakerSim.cxx:178 AliT0QADataMakerSim.cxx:179 AliT0QADataMakerSim.cxx:180 AliT0QADataMakerSim.cxx:181 AliT0QADataMakerSim.cxx:182 AliT0QADataMakerSim.cxx:183 AliT0QADataMakerSim.cxx:184 AliT0QADataMakerSim.cxx:185 AliT0QADataMakerSim.cxx:186 AliT0QADataMakerSim.cxx:187 AliT0QADataMakerSim.cxx:188 AliT0QADataMakerSim.cxx:189 AliT0QADataMakerSim.cxx:190 AliT0QADataMakerSim.cxx:191 AliT0QADataMakerSim.cxx:192 AliT0QADataMakerSim.cxx:193 AliT0QADataMakerSim.cxx:194 AliT0QADataMakerSim.cxx:195 AliT0QADataMakerSim.cxx:196 AliT0QADataMakerSim.cxx:197 AliT0QADataMakerSim.cxx:198 AliT0QADataMakerSim.cxx:199 AliT0QADataMakerSim.cxx:200 AliT0QADataMakerSim.cxx:201 AliT0QADataMakerSim.cxx:202 AliT0QADataMakerSim.cxx:203 AliT0QADataMakerSim.cxx:204 AliT0QADataMakerSim.cxx:205 AliT0QADataMakerSim.cxx:206 AliT0QADataMakerSim.cxx:207 AliT0QADataMakerSim.cxx:208 AliT0QADataMakerSim.cxx:209 AliT0QADataMakerSim.cxx:210 AliT0QADataMakerSim.cxx:211 AliT0QADataMakerSim.cxx:212 AliT0QADataMakerSim.cxx:213 AliT0QADataMakerSim.cxx:214 AliT0QADataMakerSim.cxx:215 AliT0QADataMakerSim.cxx:216 AliT0QADataMakerSim.cxx:217 AliT0QADataMakerSim.cxx:218 AliT0QADataMakerSim.cxx:219 AliT0QADataMakerSim.cxx:220 AliT0QADataMakerSim.cxx:221 AliT0QADataMakerSim.cxx:222 AliT0QADataMakerSim.cxx:223 AliT0QADataMakerSim.cxx:224 AliT0QADataMakerSim.cxx:225 AliT0QADataMakerSim.cxx:226 AliT0QADataMakerSim.cxx:227