cout<<" GetAliTaskName "<<AliQA::GetAliTaskName(index)<<" index "<<index<<endl;
- Double_t test = 0.0 ;
+ Double_t test = 10.0 ;
+
Int_t count = 0 ;
- Double_t nent[100];
- memset(nent,0,100*sizeof(Double_t));
- Double_t w[100];
- memset(w,1,100*sizeof(Double_t));
+ Double_t nent[200], nentraw[200];
+ TString hname[200];
+ const char *cname;
+ memset(nent,0,200*sizeof(Double_t));
+ Double_t w[200];
+ memset(w,1,200*sizeof(Double_t));
TH1 *fhRecLEDAmp[24]; TH1 * fhRecQTC[24];
TH1 *fhOnlineMean = 0x0;
TH1 * fhRecMean = 0x0;
while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
if (hdata) {
nent[count] = hdata->GetEntries();
- AliDebug(10,Form("count %i %s -> %f",count, hdata->GetName(),nent[count])) ;
-
+ cname = hdata->GetName();
+ hname[count] = cname;
+ AliDebug(10,Form("count %i %s -> %f",count, hname[count].Data(),nent[count])) ;
+
if(index==2){
if(count>23 && count<48)fhRecLEDAmp[count-24] = hdata;
if(count>47 && count<72)fhRecQTC[count-48] = hdata;
if(count == 72) fhOnlineMean = hdata;
if(count == 73) fhRecMean = hdata;
}
+
count++ ;
+
Double_t rv = 0.;
if(hdata->GetEntries()>0) rv = 1;
// AliInfo(Form("%s -> %f", hdata->GetName(), rv)) ;
test += rv ;
+
}
else{
AliError("Data type cannot be processed") ;
}
}
-
+
if (count != 0) {
if (test==0) {
AliWarning("Histograms are there, but they are all empty: setting flag to kWARNING");
meanLED = fhRecLEDAmp[idet]->GetMean();
meanQTC = fhRecQTC[idet]->GetMean();
if (TMath::Abs(meanLED-meanQTC)> 1.)
- AliWarning(Form("Amplitude measurements are different in channel %i : Amp LED %f -> Amp QTC %f",idet,meanLED, meanQTC)) ;
+ AliWarning(Form("Amplitude measurements are different in channel %i : Amp LED %f -> Amp QTC %f",idet,meanLED, meanQTC)) ;
}
}
- else
- {
- AliDebug(10,Form(" MaxElement %f ", TMath::MaxElement(count,nent)));
- if(TMath::MaxElement(count,nent) > 1000) {
- Double_t mean = TMath::Mean(count,nent,w);
- AliDebug(10,Form(" Mean %f ", mean));
- for (Int_t i=0; i<count; i++)
- {
- Double_t diff = TMath::Abs(nent[i]-mean);
- if (diff > 0.1*mean )
- AliWarning(Form("Problem in Number of entried in hist %i is %f\n", i, nent[i])) ;
- }
+
+
+ if (index == 0) {
+ Int_t realNumber = Int_t(nent[0]);
+ for (Int_t i=77; i<count; i++)
+ {
+ Double_t diff = TMath::Abs(nent[i]-realNumber);
+ if (diff > 0.1*realNumber )
+ AliWarning(Form("Problem in Number of entried in hist %s is %f\n",hname[i].Data() , nent[i])) ;
+ }
}
- }
}
+
}
+
+
} // if (list->GetEntries() != 0
+
AliInfo(Form("Test Result = %f", test)) ;
+
return test ;
}
+
#include "AliQAChecker.h"
#include "AliT0RawReader.h"
-//#include "iostream.h"
+#include "iostream.h"
ClassImp(AliT0QADataMakerRec)
//____________________________________________________________________________
// create Raw histograms in Raw subdir
// printf(" AliT0QADataMakerRec::InitRaws() started\n");
TString timename, ampname, qtcname;
+ TString timeCalname, ampCalname, qtcCalname;
TH1F* fhRefPoint = new TH1F("hRefPoint","Ref Point", 10,1252170, 1252180);
Add2RawsList( fhRefPoint,0);
TH1F *fhRawCFD[24]; TH1F * fhRawLEDamp[24]; TH1F *fhRawQTC[24];
+ TH1F *fhRawCFDcal[24]; TH1F * fhRawLEDampcal[24]; TH1F *fhRawQTCcal[24];
for (Int_t i=0; i<24; i++)
{
Add2RawsList( fhRawORA,75);
TH1F* fhRawORC = new TH1F("hRawORC","online OR C", 100,2000,2300);
Add2RawsList( fhRawORC,76);
-
+ for (Int_t i=0; i<24; i++)
+ {
+ // for events with trigger CALIBRATION_EVENT
+ timeCalname ="hRawCFDcal";
+ ampCalname = "hRawLEDcal";
+ qtcCalname = "hRawQTCcal";
+ timeCalname += i;
+ ampCalname += i;
+ qtcCalname += i;
+ fhRawCFDcal[i] = new TH1F(timeCalname.Data(), timeCalname.Data(),1000,4000,6000);
+ Add2RawsList( fhRawCFDcal[i],76+i+1);
+ fhRawLEDampcal[i] = new TH1F(ampCalname.Data(), ampCalname.Data(),100,300,600);
+ Add2RawsList( fhRawLEDampcal[i],76+i+24+1);
+ fhRawQTCcal[i] = new TH1F(qtcCalname.Data(), qtcCalname.Data(),1000,0,7000);
+ Add2RawsList( fhRawQTCcal[i],76+i+48+1);
+ }
+ TH1F* fhRawMeanCal = new TH1F("hRawMeanCal","online mean signal, calibration event",
+ 1000,7000,8000);
+ Add2RawsList( fhRawMeanCal,149);
+ TH1F* fhRawVertexCal = new TH1F("hRawVertexCal","online vertex signal, calibration even ",
+ 1000,7000,8000);
+ Add2RawsList( fhRawVertexCal,150);
+ TH1F* fhRawORAcal = new TH1F("hRawORAcal","online OR A", 200,5000,7000);
+ Add2RawsList( fhRawORAcal,151);
+ TH1F* fhRawORCcal = new TH1F("hRawORCcal","online OR C", 200,5000,7000);
+ Add2RawsList( fhRawORCcal,152);
+ TH1F* fhMultcal = new TH1F("hMultcal","full mulltiplicity", 1000,0,10000);
+ Add2RawsList( fhMultcal,153);
+ TH1F* fhMultScal = new TH1F("hMultScal","full multiplicity with semi-central trigger",
+ 1000,0,10000);
+ Add2RawsList( fhMultScal,154);
+ TH1F* fhMultCcal = new TH1F("hMultCcal","full multiplicity with central trigger",
+ 1000,0,10000);
+ Add2RawsList( fhMultCcal,155);
}
//____________________________________________________________________________
void AliT0QADataMakerRec::MakeRaws( AliRawReader* rawReader)
{
//fills QA histos for RAW
+ Int_t shift=0;
AliT0RawReader *start = new AliT0RawReader(rawReader);
// start->Next();
if (! start->Next())
AliDebug(1,Form(" no raw data found!!"));
else
{
+
+ UInt_t type =rawReader->GetType();
+ // cout<<" !!!!! new event type = "<<type<<endl;
Int_t allData[110][5];
for (Int_t i0=0; i0<105; i0++)
{
GetRawsData(0) -> Fill( allData[0][0]);
allData[0][0] = allData[0][0] - 5000;
-
+ if (type == 8) shift=76;
+ if (type == 10) shift=0;
+
for (Int_t ik = 0; ik<12; ik++){
for (Int_t iHt=0; iHt<5; iHt++){
if(allData[ik+1][iHt]>0){
- GetRawsData(ik+1) -> Fill(allData[ik+1][iHt]-allData[0][0]);
- if(allData[2*ik+25][iHt] > 0 && allData[2*ik+26][iHt] > 0)
- GetRawsData(ik+48+1)->Fill(allData[2*ik+25][iHt]-allData[2*ik+26][iHt]);
- if(allData[ik+13][iHt]!=0 )
- GetRawsData(ik+24+1)->Fill(allData[ik+13][iHt]-allData[ik+1][iHt]);
- }
+ GetRawsData(shift+ik+1) -> Fill(allData[ik+1][iHt]-allData[0][0]);
+ // cout<<" type "<<type<<" shift "<<shift<<" koef "<<ik<<" index "<<shift+ik<<
+ // " time "<<allData[ik+1][iHt]-allData[0][0]<<endl;
+ if(allData[2*ik+25][iHt] > 0 && allData[2*ik+26][iHt] > 0)
+ GetRawsData(shift+ik+48+1)->Fill(allData[2*ik+25][iHt]-allData[2*ik+26][iHt]);
+ if(allData[ik+13][iHt]!=0 )
+ GetRawsData(shift+ik+24+1)->Fill(allData[ik+13][iHt]-allData[ik+1][iHt]);
+
}
}
-
+ }
for (Int_t ik = 12; ik<24; ik++) {
for (Int_t iHt=0; iHt<5; iHt++) {
if(allData[ik+45][iHt]>0) {
- GetRawsData(ik+1)->Fill(allData[ik+45][iHt]-allData[0][0]);
+ GetRawsData(shift+ik+1)->Fill(allData[ik+45][iHt]-allData[0][0]);
+ // cout<<" type "<<type<<" shift "<<shift<<" index "<<shift+ik<<
+ // " time "<<allData[ik+1][iHt]-allData[0][0]<<endl;
+
if(allData[2*ik+57][iHt]!=0 && allData[2*ik+58][iHt]!=0)
- GetRawsData(ik+48+1)->Fill(allData[2*ik+57][iHt]-allData[2*ik+58][iHt]);
+ GetRawsData(shift+ik+48+1)->Fill(allData[2*ik+57][iHt]-allData[2*ik+58][iHt]);
if(allData[ik+57][iHt] > 0 )
- GetRawsData(ik+24+1)->Fill(allData[ik+57][iHt]-allData[ik+45][iHt]);
+ GetRawsData(shift+ik+24+1)->Fill(allData[ik+57][iHt]-allData[ik+45][iHt]);
}
}
}
+ if(type == 10)
+ {
+ GetRawsData(73)->Fill(allData[49][0]-allData[0][0]);
+ GetRawsData(74)->Fill(allData[50][0]-allData[0][0]);
+ GetRawsData(75)->Fill(allData[51][0]-allData[0][0]);
+ GetRawsData(76)->Fill(allData[52][0]-allData[0][0]);
+ }
+ if(type == 8)
+ {
+ GetRawsData(149)->Fill(allData[49][0]-allData[0][0]);
+ GetRawsData(150)->Fill(allData[50][0]-allData[0][0]);
+ GetRawsData(151)->Fill(allData[51][0]-allData[0][0]);
+ GetRawsData(152)->Fill(allData[52][0]-allData[0][0]);
+ /* cout<<" and "<<allData[49][0]-allData[0][0]<<
+ " vertex "<<allData[50][0]-allData[0][0]<<
+ " ORA "<<allData[51][0]-allData[0][0]<<
+ " ORC "<<allData[52][0]-allData[0][0]<<endl;*/
- GetRawsData(72)->Fill(allData[49][0]-allData[0][0]);
- GetRawsData(73)->Fill(allData[50][0]-allData[0][0]);
- GetRawsData(74)->Fill(allData[51][0]-allData[0][0]);
- GetRawsData(75)->Fill(allData[52][0]-allData[0][0]);
-
+ GetRawsData(153)->Fill(allData[53][0]-allData[54][0]);
+ if(allData[55][0]) GetRawsData(154)->Fill(allData[53][0]-allData[54][0]);
+ if(allData[55][0]) GetRawsData(155)->Fill(allData[53][0]-allData[54][0]);
+
+ }
delete start;
}