#include <TClonesArray.h>
#include <TFile.h>
#include <TH1F.h>
#include <TH1I.h>
#include <TH2F.h>
#include <TNtupleD.h>
#include <TParameter.h>
#include <TMath.h>
#include "AliLog.h"
#include "AliCorrQADataMakerRec.h"
#include "AliQAChecker.h"
ClassImp(AliCorrQADataMakerRec)
AliCorrQADataMakerRec::AliCorrQADataMakerRec(AliQADataMaker ** qadm ) :
AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kCORR), "Corr Quality Assurance Data Maker"),
fMaxRawVar(0),
fqadm(qadm),
fVarvalue(NULL)
{
fCorrNt = new TNtupleD *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++)
fCorrNt[specie] = NULL ;
}
AliCorrQADataMakerRec::AliCorrQADataMakerRec(const AliCorrQADataMakerRec& qadm) :
AliQADataMakerRec(qadm),
fMaxRawVar(qadm.fMaxRawVar),
fqadm(qadm.fqadm),
fVarvalue(NULL)
{
if ( fMaxRawVar > 0 ) {
fVarvalue = new Double_t[fMaxRawVar] ;
memcpy(fVarvalue, qadm.fVarvalue, fMaxRawVar*sizeof(Double_t));
}
fCorrNt = new TNtupleD *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++)
fCorrNt[specie] = qadm.fCorrNt[specie] ;
}
AliCorrQADataMakerRec& AliCorrQADataMakerRec::operator = (const AliCorrQADataMakerRec& qadm )
{
if(this != &qadm) {
AliQADataMakerRec::operator=(qadm);
fMaxRawVar = qadm.fMaxRawVar;
fqadm = qadm.fqadm;
delete [] fVarvalue;
if ( fMaxRawVar > 0 ) {
fVarvalue = new Double_t[fMaxRawVar] ;
memcpy(fVarvalue, qadm.fVarvalue, fMaxRawVar*sizeof(Double_t));
} else fVarvalue = 0;
fCorrNt = new TNtupleD *[AliRecoParam::kNSpecies] ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++)
fCorrNt[specie] = qadm.fCorrNt[specie] ;
}
return *this;
}
AliCorrQADataMakerRec::~AliCorrQADataMakerRec()
{
delete [] fCorrNt ;
delete [] fVarvalue ;
}
void AliCorrQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** )
{
if (task == AliQAv1::kRAWS) {
AliQAChecker::Instance()->Run(AliQAv1::kCORR, task, fCorrNt) ;
}
}
void AliCorrQADataMakerRec::InitESDs()
{
AliInfo("TO BE IMPLEMENTED") ;
ClonePerTrigClass(AliQAv1::kESDS);
}
void AliCorrQADataMakerRec::InitRaws()
{
if (fCorrNt && fCorrNt[AliRecoParam::AConvert(fEventSpecie)])
return ;
if (!fCorrNt) {
fCorrNt = new TNtupleD *[AliRecoParam::kNSpecies] ; ;
for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++)
fCorrNt[specie] = NULL ;
}
if ( fRawsQAList )
{
delete[] fRawsQAList ;
fRawsQAList = NULL ;
}
TString varlist("") ;
for ( Int_t detIndex = 0 ; detIndex < AliQAv1::kNDET ; detIndex++ ) {
AliQADataMaker * qadm = fqadm[detIndex] ;
if ( ! qadm )
continue ;
TList * list = qadm->GetParameterList() ;
if (list) {
TIter next(list) ;
TParameter<double> * p ;
while ( (p = static_cast<TParameter<double>*>(next()) ) ) {
varlist.Append(p->GetName()) ;
varlist.Append(":") ;
fMaxRawVar++ ;
}
}
}
varlist = varlist.Strip(TString::kTrailing, ':') ;
if (fMaxRawVar == 0) {
AliWarning("NTUPLE not created") ;
} else {
char * name = Form("%s_%s", AliQAv1::GetQACorrName(), AliRecoParam::GetEventSpecieName(fEventSpecie)) ;
fCorrNt[AliRecoParam::AConvert(fEventSpecie)] = new TNtupleD(name, "Raws data correlation among detectors", varlist.Data()) ;
fVarvalue = new Double_t[fMaxRawVar] ;
}
ClonePerTrigClass(AliQAv1::kRAWS);
}
void AliCorrQADataMakerRec::InitRecPoints()
{
AliInfo("TO BE IMPLEMENTED") ;
ClonePerTrigClass(AliQAv1::kRECPOINTS);
}
void AliCorrQADataMakerRec::InitRecoParams()
{
AliInfo("TO BE IMPLEMENTED") ;
}
void AliCorrQADataMakerRec::MakeESDs(AliESDEvent * )
{
AliInfo("TO BE IMPLEMENTED") ;
IncEvCountCycleESDs();
IncEvCountTotalESDs();
}
void AliCorrQADataMakerRec::MakeRaws(AliRawReader *)
{
if ( !fCorrNt || ! fCorrNt[AliRecoParam::AConvert(fEventSpecie)])
InitRaws() ;
if ( fMaxRawVar > 0 ) {
Int_t index = 0 ;
for ( Int_t detIndex = 0 ; detIndex < AliQAv1::kNDET ; detIndex++ ) {
AliQADataMaker * qadm = fqadm[detIndex] ;
if ( ! qadm )
continue ;
TList * list = qadm->GetParameterList() ;
if (list) {
TIter next(list) ;
TParameter<double> * p ;
while ( (p = static_cast<TParameter<double>*>(next()) ) ) {
if (index >= fMaxRawVar) {
AliError(Form("Variables list size exceeded (%d) !",index));
break;
}
fVarvalue[index] = p->GetVal() ;
index++ ;
}
}
}
static_cast<TNtupleD*>(fCorrNt[AliRecoParam::AConvert(fEventSpecie)])->Fill(fVarvalue);
}
IncEvCountCycleRaws();
IncEvCountTotalRaws();
}
void AliCorrQADataMakerRec::MakeRecPoints(TTree * )
{
AliInfo("TO BE IMPLEMENTED") ;
IncEvCountCycleRecPoints();
IncEvCountTotalRecPoints();
}
void AliCorrQADataMakerRec::StartOfDetectorCycle()
{
}
AliCorrQADataMakerRec.cxx:1 AliCorrQADataMakerRec.cxx:2 AliCorrQADataMakerRec.cxx:3 AliCorrQADataMakerRec.cxx:4 AliCorrQADataMakerRec.cxx:5 AliCorrQADataMakerRec.cxx:6 AliCorrQADataMakerRec.cxx:7 AliCorrQADataMakerRec.cxx:8 AliCorrQADataMakerRec.cxx:9 AliCorrQADataMakerRec.cxx:10 AliCorrQADataMakerRec.cxx:11 AliCorrQADataMakerRec.cxx:12 AliCorrQADataMakerRec.cxx:13 AliCorrQADataMakerRec.cxx:14 AliCorrQADataMakerRec.cxx:15 AliCorrQADataMakerRec.cxx:16 AliCorrQADataMakerRec.cxx:17 AliCorrQADataMakerRec.cxx:18 AliCorrQADataMakerRec.cxx:19 AliCorrQADataMakerRec.cxx:20 AliCorrQADataMakerRec.cxx:21 AliCorrQADataMakerRec.cxx:22 AliCorrQADataMakerRec.cxx:23 AliCorrQADataMakerRec.cxx:24 AliCorrQADataMakerRec.cxx:25 AliCorrQADataMakerRec.cxx:26 AliCorrQADataMakerRec.cxx:27 AliCorrQADataMakerRec.cxx:28 AliCorrQADataMakerRec.cxx:29 AliCorrQADataMakerRec.cxx:30 AliCorrQADataMakerRec.cxx:31 AliCorrQADataMakerRec.cxx:32 AliCorrQADataMakerRec.cxx:33 AliCorrQADataMakerRec.cxx:34 AliCorrQADataMakerRec.cxx:35 AliCorrQADataMakerRec.cxx:36 AliCorrQADataMakerRec.cxx:37 AliCorrQADataMakerRec.cxx:38 AliCorrQADataMakerRec.cxx:39 AliCorrQADataMakerRec.cxx:40 AliCorrQADataMakerRec.cxx:41 AliCorrQADataMakerRec.cxx:42 AliCorrQADataMakerRec.cxx:43 AliCorrQADataMakerRec.cxx:44 AliCorrQADataMakerRec.cxx:45 AliCorrQADataMakerRec.cxx:46 AliCorrQADataMakerRec.cxx:47 AliCorrQADataMakerRec.cxx:48 AliCorrQADataMakerRec.cxx:49 AliCorrQADataMakerRec.cxx:50 AliCorrQADataMakerRec.cxx:51 AliCorrQADataMakerRec.cxx:52 AliCorrQADataMakerRec.cxx:53 AliCorrQADataMakerRec.cxx:54 AliCorrQADataMakerRec.cxx:55 AliCorrQADataMakerRec.cxx:56 AliCorrQADataMakerRec.cxx:57 AliCorrQADataMakerRec.cxx:58 AliCorrQADataMakerRec.cxx:59 AliCorrQADataMakerRec.cxx:60 AliCorrQADataMakerRec.cxx:61 AliCorrQADataMakerRec.cxx:62 AliCorrQADataMakerRec.cxx:63 AliCorrQADataMakerRec.cxx:64 AliCorrQADataMakerRec.cxx:65 AliCorrQADataMakerRec.cxx:66 AliCorrQADataMakerRec.cxx:67 AliCorrQADataMakerRec.cxx:68 AliCorrQADataMakerRec.cxx:69 AliCorrQADataMakerRec.cxx:70 AliCorrQADataMakerRec.cxx:71 AliCorrQADataMakerRec.cxx:72 AliCorrQADataMakerRec.cxx:73 AliCorrQADataMakerRec.cxx:74 AliCorrQADataMakerRec.cxx:75 AliCorrQADataMakerRec.cxx:76 AliCorrQADataMakerRec.cxx:77 AliCorrQADataMakerRec.cxx:78 AliCorrQADataMakerRec.cxx:79 AliCorrQADataMakerRec.cxx:80 AliCorrQADataMakerRec.cxx:81 AliCorrQADataMakerRec.cxx:82 AliCorrQADataMakerRec.cxx:83 AliCorrQADataMakerRec.cxx:84 AliCorrQADataMakerRec.cxx:85 AliCorrQADataMakerRec.cxx:86 AliCorrQADataMakerRec.cxx:87 AliCorrQADataMakerRec.cxx:88 AliCorrQADataMakerRec.cxx:89 AliCorrQADataMakerRec.cxx:90 AliCorrQADataMakerRec.cxx:91 AliCorrQADataMakerRec.cxx:92 AliCorrQADataMakerRec.cxx:93 AliCorrQADataMakerRec.cxx:94 AliCorrQADataMakerRec.cxx:95 AliCorrQADataMakerRec.cxx:96 AliCorrQADataMakerRec.cxx:97 AliCorrQADataMakerRec.cxx:98 AliCorrQADataMakerRec.cxx:99 AliCorrQADataMakerRec.cxx:100 AliCorrQADataMakerRec.cxx:101 AliCorrQADataMakerRec.cxx:102 AliCorrQADataMakerRec.cxx:103 AliCorrQADataMakerRec.cxx:104 AliCorrQADataMakerRec.cxx:105 AliCorrQADataMakerRec.cxx:106 AliCorrQADataMakerRec.cxx:107 AliCorrQADataMakerRec.cxx:108 AliCorrQADataMakerRec.cxx:109 AliCorrQADataMakerRec.cxx:110 AliCorrQADataMakerRec.cxx:111 AliCorrQADataMakerRec.cxx:112 AliCorrQADataMakerRec.cxx:113 AliCorrQADataMakerRec.cxx:114 AliCorrQADataMakerRec.cxx:115 AliCorrQADataMakerRec.cxx:116 AliCorrQADataMakerRec.cxx:117 AliCorrQADataMakerRec.cxx:118 AliCorrQADataMakerRec.cxx:119 AliCorrQADataMakerRec.cxx:120 AliCorrQADataMakerRec.cxx:121 AliCorrQADataMakerRec.cxx:122 AliCorrQADataMakerRec.cxx:123 AliCorrQADataMakerRec.cxx:124 AliCorrQADataMakerRec.cxx:125 AliCorrQADataMakerRec.cxx:126 AliCorrQADataMakerRec.cxx:127 AliCorrQADataMakerRec.cxx:128 AliCorrQADataMakerRec.cxx:129 AliCorrQADataMakerRec.cxx:130 AliCorrQADataMakerRec.cxx:131 AliCorrQADataMakerRec.cxx:132 AliCorrQADataMakerRec.cxx:133 AliCorrQADataMakerRec.cxx:134 AliCorrQADataMakerRec.cxx:135 AliCorrQADataMakerRec.cxx:136 AliCorrQADataMakerRec.cxx:137 AliCorrQADataMakerRec.cxx:138 AliCorrQADataMakerRec.cxx:139 AliCorrQADataMakerRec.cxx:140 AliCorrQADataMakerRec.cxx:141 AliCorrQADataMakerRec.cxx:142 AliCorrQADataMakerRec.cxx:143 AliCorrQADataMakerRec.cxx:144 AliCorrQADataMakerRec.cxx:145 AliCorrQADataMakerRec.cxx:146 AliCorrQADataMakerRec.cxx:147 AliCorrQADataMakerRec.cxx:148 AliCorrQADataMakerRec.cxx:149 AliCorrQADataMakerRec.cxx:150 AliCorrQADataMakerRec.cxx:151 AliCorrQADataMakerRec.cxx:152 AliCorrQADataMakerRec.cxx:153 AliCorrQADataMakerRec.cxx:154 AliCorrQADataMakerRec.cxx:155 AliCorrQADataMakerRec.cxx:156 AliCorrQADataMakerRec.cxx:157 AliCorrQADataMakerRec.cxx:158 AliCorrQADataMakerRec.cxx:159 AliCorrQADataMakerRec.cxx:160 AliCorrQADataMakerRec.cxx:161 AliCorrQADataMakerRec.cxx:162 AliCorrQADataMakerRec.cxx:163 AliCorrQADataMakerRec.cxx:164 AliCorrQADataMakerRec.cxx:165 AliCorrQADataMakerRec.cxx:166 AliCorrQADataMakerRec.cxx:167 AliCorrQADataMakerRec.cxx:168 AliCorrQADataMakerRec.cxx:169 AliCorrQADataMakerRec.cxx:170 AliCorrQADataMakerRec.cxx:171 AliCorrQADataMakerRec.cxx:172 AliCorrQADataMakerRec.cxx:173 AliCorrQADataMakerRec.cxx:174 AliCorrQADataMakerRec.cxx:175 AliCorrQADataMakerRec.cxx:176 AliCorrQADataMakerRec.cxx:177 AliCorrQADataMakerRec.cxx:178 AliCorrQADataMakerRec.cxx:179 AliCorrQADataMakerRec.cxx:180 AliCorrQADataMakerRec.cxx:181 AliCorrQADataMakerRec.cxx:182 AliCorrQADataMakerRec.cxx:183 AliCorrQADataMakerRec.cxx:184 AliCorrQADataMakerRec.cxx:185 AliCorrQADataMakerRec.cxx:186 AliCorrQADataMakerRec.cxx:187 AliCorrQADataMakerRec.cxx:188 AliCorrQADataMakerRec.cxx:189 AliCorrQADataMakerRec.cxx:190 AliCorrQADataMakerRec.cxx:191 AliCorrQADataMakerRec.cxx:192 AliCorrQADataMakerRec.cxx:193 AliCorrQADataMakerRec.cxx:194 AliCorrQADataMakerRec.cxx:195 AliCorrQADataMakerRec.cxx:196 AliCorrQADataMakerRec.cxx:197 AliCorrQADataMakerRec.cxx:198 AliCorrQADataMakerRec.cxx:199 AliCorrQADataMakerRec.cxx:200 AliCorrQADataMakerRec.cxx:201 AliCorrQADataMakerRec.cxx:202 AliCorrQADataMakerRec.cxx:203 AliCorrQADataMakerRec.cxx:204 AliCorrQADataMakerRec.cxx:205 AliCorrQADataMakerRec.cxx:206 AliCorrQADataMakerRec.cxx:207 AliCorrQADataMakerRec.cxx:208 AliCorrQADataMakerRec.cxx:209 AliCorrQADataMakerRec.cxx:210 AliCorrQADataMakerRec.cxx:211 AliCorrQADataMakerRec.cxx:212 AliCorrQADataMakerRec.cxx:213 AliCorrQADataMakerRec.cxx:214 AliCorrQADataMakerRec.cxx:215 AliCorrQADataMakerRec.cxx:216 AliCorrQADataMakerRec.cxx:217 AliCorrQADataMakerRec.cxx:218 AliCorrQADataMakerRec.cxx:219 AliCorrQADataMakerRec.cxx:220 AliCorrQADataMakerRec.cxx:221 AliCorrQADataMakerRec.cxx:222 AliCorrQADataMakerRec.cxx:223 AliCorrQADataMakerRec.cxx:224 AliCorrQADataMakerRec.cxx:225 AliCorrQADataMakerRec.cxx:226 AliCorrQADataMakerRec.cxx:227 AliCorrQADataMakerRec.cxx:228 AliCorrQADataMakerRec.cxx:229 AliCorrQADataMakerRec.cxx:230 AliCorrQADataMakerRec.cxx:231 AliCorrQADataMakerRec.cxx:232 AliCorrQADataMakerRec.cxx:233 AliCorrQADataMakerRec.cxx:234 AliCorrQADataMakerRec.cxx:235 AliCorrQADataMakerRec.cxx:236 AliCorrQADataMakerRec.cxx:237 AliCorrQADataMakerRec.cxx:238 AliCorrQADataMakerRec.cxx:239 AliCorrQADataMakerRec.cxx:240 AliCorrQADataMakerRec.cxx:241 AliCorrQADataMakerRec.cxx:242 AliCorrQADataMakerRec.cxx:243 AliCorrQADataMakerRec.cxx:244 AliCorrQADataMakerRec.cxx:245 AliCorrQADataMakerRec.cxx:246 AliCorrQADataMakerRec.cxx:247 AliCorrQADataMakerRec.cxx:248 AliCorrQADataMakerRec.cxx:249 AliCorrQADataMakerRec.cxx:250 AliCorrQADataMakerRec.cxx:251 AliCorrQADataMakerRec.cxx:252 AliCorrQADataMakerRec.cxx:253 AliCorrQADataMakerRec.cxx:254 AliCorrQADataMakerRec.cxx:255 AliCorrQADataMakerRec.cxx:256 AliCorrQADataMakerRec.cxx:257 AliCorrQADataMakerRec.cxx:258 AliCorrQADataMakerRec.cxx:259 AliCorrQADataMakerRec.cxx:260 AliCorrQADataMakerRec.cxx:261 AliCorrQADataMakerRec.cxx:262 AliCorrQADataMakerRec.cxx:263 AliCorrQADataMakerRec.cxx:264