-/**************************************************************************
+ /**************************************************************************
* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
rv[specie] = 0.; // nothing to check
}
else {
- Double_t *stepbit=new Double_t[AliQAv1::kNBIT];
+ Double_t stepbit[AliQAv1::kNBIT];
Double_t histonumb= list[specie]->GetEntries();
CreateStepForBit(histonumb,stepbit);
TIter next1(list[specie]);
Bool_t skipped[6]={kFALSE,kFALSE,kFALSE,kFALSE,kFALSE,kFALSE};
// look for layers that we wanted to skip
while ( (hdata = dynamic_cast<TH1 *>(next1())) ) {
- if(!hdata) continue;
- TString hname = hdata->GetName();
- if(!hname.Contains("hESDSkippedLayers")) continue;
- for(Int_t k=1; k<7; k++) {
- if(hdata->GetBinContent(k)>0) {
- nskipped++;
- skipped[k-1]=kTRUE;
- }
- }
- }
+ if(hdata){
+ TString hname = hdata->GetName();
+ if(!hname.Contains("hESDSkippedLayers")) continue;
+ for(Int_t k=1; k<7; k++) {
+ if(hdata->GetBinContent(k)>0) {
+ nskipped++;
+ skipped[k-1]=kTRUE;
+ }
+ }
+ }
+ }
TIter next(list[specie]);
while ( (hdata = dynamic_cast<TH1 *>(next())) ) {
if(hdata){
AliDebug(AliQAv1::GetQADebugLevel(),Form("SA tracks have few points on layer %d - look at histogram hESDClustersSA",k));
}
}
- }
-
+ }//end clustermapsa
+
else if(hname.Contains("hESDClusterMapMI") && entries>0.){
// Check if there are layers with anomalously low
// contributing points to MI reconstructed tracks
AliDebug(AliQAv1::GetQADebugLevel(),Form("MI tracks have few points on layer %d - look at histogram hESDClustersMI",k));
}
}
- }
-
+ }//end clustermapmi
+
else if(hname.Contains("hESDClustersMI") && entries>0.){
// Check if 6 clusters MI tracks are the majority
AliDebug(AliQAv1::GetQADebugLevel(),Form("Processing histogram %s",hname.Data()));
AliDebug(AliQAv1::GetQADebugLevel(),Form("MI Tracks with %d clusters are more than tracks with %d clusters. Look at histogram hESDClustersMI",k-1,6-nskipped));
}
}
- }
-
+ }//end clustersmi
+
else if(hname.Contains("hESDClustersSA") && entries>0.){
// Check if 6 clusters SA tracks are the majority
AliDebug(AliQAv1::GetQADebugLevel(),Form("Processing histogram %s",hname.Data()));
AliDebug(AliQAv1::GetQADebugLevel(), Form("SA Tracks with %d clusters are more than tracks with %d clusters. Look at histogram hESDClustersSA",k-1,6-nskipped));
}
}
- }
-
+ }//end clusterssa
+
else if(hname.Contains("hSPDVertexZ") && entries>0.){
// Check if average Z vertex coordinate is -5 < z < 5 cm
AliDebug(AliQAv1::GetQADebugLevel(),Form("Processing histogram %s",hname.Data()));
verSPDZ = kFALSE;
AliDebug(AliQAv1::GetQADebugLevel(),Form("Average z vertex coordinate is at z= %10.4g cm",hdata->GetMean()));
}
- }
- }
- else{
- AliError("ESD Checker - invalid data type");
- }
- }
- rv[specie] = 0.;
- if(tested>0){
- if(tested == empty){
- rv[specie] = 2500.; // set to error
- AliWarning(Form("All ESD histograms are empty - specie=%d",specie));
- }
- else {
- rv[specie] = 2500.-1500.*(static_cast<Double_t>(tested-empty)/static_cast<Double_t>(tested)); // INFO if all histos are filled
- if(cluMapSA)rv[specie]-=200.;
- if(cluMapMI)rv[specie]-=200.;
- if(cluMI)rv[specie]-=200.;
- if(cluSA)rv[specie]-=200.;
- if(verSPDZ)rv[specie]-=199.; // down to 1 if everything is OK
- }
- }
+ }//end spdvertexz
+
+ else{ AliError("ESD Checker - invalid data type");}//end else
+
+ rv[specie] = 0.;
+ if(tested>0){
+ if(tested == empty){
+ rv[specie] = 2500.; // set to error
+ AliWarning(Form("All ESD histograms are empty - specie=%d",specie));
+ }
+ else {
+ rv[specie] = 2500.-1500.*(static_cast<Double_t>(tested-empty)/static_cast<Double_t>(tested)); // INFO if all histos are filled
+ if(cluMapSA)rv[specie]-=200.;
+ if(cluMapMI)rv[specie]-=200.;
+ if(cluMI)rv[specie]-=200.;
+ if(cluSA)rv[specie]-=200.;
+ if(verSPDZ)rv[specie]-=199.; // down to 1 if everything is OK
+ }
+ }//end tested
+ }//end hdata
+ }//end while
+ // AliDebug(AliQAv1::GetQADebugLevel(), Form("ESD - Tested %d histograms, Return value %f \n",tested,rv[specie]));
+ AliInfo(Form("ESD - Tested %d histograms, Return value %f \n",tested,rv[specie]));
}
- // AliDebug(AliQAv1::GetQADebugLevel(), Form("ESD - Tested %d histograms, Return value %f \n",tested,rv[specie]));
- AliInfo(Form("ESD - Tested %d histograms, Return value %f \n",tested,rv[specie]));
}
- } // end of ESD QA
+ } // end of ESD QA
else{
//____________________________________________________________________________
//drift
if(fDet == 0 || fDet == 2) {
fSDDChecker->SetTaskOffset(fSDDOffset);
+ fSDDChecker->SetEventSpecieForCheck(specie);
Double_t histoSDD=double(GetSDDHisto());
if(AliITSQADataMakerRec::AreEqual(histoSDD,0)==kFALSE){
Double_t *stepSDD=new Double_t[AliQAv1::kNBIT];
//____________________________________________________________________________
void AliITSQAChecker::SetDetTaskOffset(Int_t subdet,Int_t offset)
{
+ //returns the offset for each task and for each subdetector
switch(subdet){
case 1:
SetSPDTaskOffset(offset);
//____________________________________________________________________________
void AliITSQAChecker::SetDetHisto(Int_t subdet,Int_t histo)
{
+ //set the number od histograms for the subdetector
switch(subdet){
case 1:
SetSPDHisto(histo);
void AliITSQAChecker::InitQACheckerLimits()
{
-
+ //init the tolerance range for each QA bit
AliInfo("Setting of tolerance values\n");
Float_t lowtolerancevalue[AliQAv1::kNBIT];
void AliITSQAChecker::CreateStepForBit(Double_t histonumb,Double_t *steprange)
{
+ //creation of the step bit for each QA bit
for(Int_t bit=0;bit < AliQAv1::kNBIT; bit++)
{
//printf("%i\t %f \t %f \t %f \n",bit, fUpTestValue[bit],fLowTestValue[AliQAv1::kINFO],histonumb);
//_____________________________________________________________________________
void AliITSQAChecker::SetQA(AliQAv1::ALITASK_t index, Double_t * value) const
{
-
+ //Setting of the QA tolerance values
AliQAv1 * qa = AliQAv1::Instance(index) ;
//__________________________________________________________________
void AliITSQAChecker::MakeImage( TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode)
{
-
+ //make a summary image
//gStyle->SetPalette(1);
//Int_t nImages = 0 ;
TString cln(hdata->ClassName()) ;
if ( ! cln.Contains("TH") )
continue ;
- if(cln.Contains("TH2")) hdata->SetOption("colz");
+ if(cln.Contains("TH2"))
+ {
+ Float_t min=hdata->GetMinimum();
+ Float_t max=hdata->GetMaximum();
+ if(max>min) hdata->SetOption("colz");
+ }
}
break ;
}