#include <TPDGCode.h>
#include <TH1F.h>
+#include "AliQAChecker.h"
#include "AliGlobalQADataMaker.h"
#include "AliGeomManager.h"
#include "AliESDEvent.h"
#include "AliESDv0.h"
+#include "AliRawReader.h"
ClassImp(AliGlobalQADataMaker)
+//____________________________________________________________________________
+void AliGlobalQADataMaker::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray ** list)
+{
+ //Detector specific actions at end of cycle
+ // do the QA checking
+ AliQAChecker::Instance()->Run(AliQA::kGLOBAL, task, list) ;
+}
+
+//____________________________________________________________________________
+void AliGlobalQADataMaker::InitRaws()
+{
+ // create Raws histograms in Raws subdir
+}
+
+//____________________________________________________________________________
void AliGlobalQADataMaker::InitRecPoints() {
//------------------------------------------------------
// This function books the histograms of *track*residuals*
// as a part of global QA
//------------------------------------------------------
- Char_t *name[]={
+ const Char_t *name[]={
"SPD1 residuals Y","SPD1 residuals Z",
"SPD2 residuals Y","SPD2 residuals Z",
"SDD1 residuals Y","SDD1 residuals Z",
Add2RecPointsList(h,i+1);
}
+ Add2RecPointsList(
+ new TH1F("SSD1 absolute residuals Y for Z<0 (cm)",
+ "SSD1 absolute residuals Y for Z<0 (cm)",100,-2.,2.),40);
Add2RecPointsList(
new TH1F("SSD1 absolute residuals Z for Z<0 (cm)",
- "SSD1 absolute residuals Z for Z<0 (cm)",100,-2.,2.),40);
+ "SSD1 absolute residuals Z for Z<0 (cm)",100,-2.,2.),41);
+ Add2RecPointsList(
+ new TH1F("SSD1 absolute residuals Y for Z>0 (cm)",
+ "SSD1 absolute residuals Y for Z>0 (cm)",100,-2.,2.),42);
Add2RecPointsList(
new TH1F("SSD1 absolute residuals Z for Z>0 (cm)",
- "SSD1 absolute residuals Z for Z>0 (cm)",100,-2.,2.),41);
+ "SSD1 absolute residuals Z for Z>0 (cm)",100,-2.,2.),43);
+
+
+ Add2RecPointsList(
+ new TH1F("SSD2 absolute residuals Y for Z<0 (cm)",
+ "SSD2 absolute residuals Y for Z<0 (cm)",100,-3.,3.),44);
Add2RecPointsList(
new TH1F("SSD2 absolute residuals Z for Z<0 (cm)",
- "SSD2 absolute residuals Z for Z<0 (cm)",100,-3.,3.),42);
+ "SSD2 absolute residuals Z for Z<0 (cm)",100,-3.,3.),45);
+ Add2RecPointsList(
+ new TH1F("SSD2 absolute residuals Y for Z>0 (cm)",
+ "SSD2 absolute residuals Y for Z>0 (cm)",100,-3.,3.),46);
Add2RecPointsList(
new TH1F("SSD2 absolute residuals Z for Z>0 (cm)",
- "SSD2 absolute residuals Z for Z>0 (cm)",100,-3.,3.),43);
+ "SSD2 absolute residuals Z for Z>0 (cm)",100,-3.,3.),47);
}
+//____________________________________________________________________________
void AliGlobalQADataMaker::InitESDs() {
//------------------------------------------------------
// This function books the ESD QA histograms
//------------------------------------------------------
{// Cluster related QA
- Char_t *name[]={
+ const Char_t *name[]={
"Fraction of the assigned clusters in ITS",
"Fraction of the assigned clusters in TPC",
"Fraction of the assigned clusters in TRD"
}
{// Track related QA
- Char_t *name[]={
+ const Char_t *name[]={
"Track azimuthal distribution (rad)", // kTrk0
"Track pseudo-rapidity distribution", // kTrk1
"TPC: track momentum distribution (GeV)", // kTrk2
}
{// V0 related QA
- Char_t *name[]={
+ const Char_t *name[]={
"K0s mass (GeV)",
"Lambda0 + Lambda0Bar mass (GeV)"
};
}
{// PID related QA
- Char_t *name[]={
+ const Char_t *name[]={
"ITS: dEdx (ADC) for particles with momentum 0.4 - 0.5 (GeV)",
"TPC: dEdx (ADC) for particles with momentum 0.4 - 0.5 (GeV)",
"TOF: tracking - measured (ps)"
}
+//____________________________________________________________________________
+void AliGlobalQADataMaker::MakeRaws(AliRawReader* rawReader)
+{
+ //Fill prepared histograms with Raw digit properties
+ rawReader->Reset() ;
+
+}
+
+//____________________________________________________________________________
void AliGlobalQADataMaker::MakeESDs(AliESDEvent * event) {
//-----------------------------------------------------------
// This function fills the ESD QA histograms
if (track->IsOn(AliESDtrack::kTPCrefit)) {
Int_t n =track->GetTPCNcls();
Int_t nf=track->GetTPCNclsF(); // number of crossed TPC pad rows
- GetESDsData(kClr1)->Fill(Float_t(n)/nf);
+ if (nf>0) {
+ Double_t val = n*1.0/nf;
+ GetESDsData(kClr1)->Fill(val);
+ }
}
if (track->IsOn(AliESDtrack::kTRDrefit)) {