#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*
h=new TH1F(name[i+1],name[i+1],100,-5.,5.);
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.),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.),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.),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.),47);
+
}
+//____________________________________________________________________________
void AliGlobalQADataMaker::InitESDs() {
//------------------------------------------------------
// This function books the ESD QA histograms
Char_t *name[]={
"Track azimuthal distribution (rad)", // kTrk0
"Track pseudo-rapidity distribution", // kTrk1
- "TPC: track momentum distribution (GeV/c)", // kTrk2
- "TPC-ITS matched: track momentum distribution (GeV/c)", // kTrk3
- "TPC-TOF matched: track momentum distribution (GeV/c)", // kTrk4
+ "TPC: track momentum distribution (GeV)", // kTrk2
+ "TPC-ITS matched: track momentum distribution (GeV)", // kTrk3
+ "TPC-TOF matched: track momentum distribution (GeV)", // kTrk4
"TPC-ITS track-matching probability", // kTrk5
"TPC-TOF track-matching probability" // kTrk6
};
{// PID related QA
Char_t *name[]={
- "ITS: dE/dx (ADC) for particles with momentum 0.4 - 0.5 (GeV/c)",
- "TPC: dE/dx (ADC) for particles with momentum 0.4 - 0.5 (GeV/c)",
+ "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)"
};
Add2ESDsList(new TH1F(name[0],name[0],50,0.00,200.),kPid0);
}
+//____________________________________________________________________________
+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) GetESDsData(kClr1)->Fill(Float_t(n)/nf);
}
if (track->IsOn(AliESDtrack::kTRDrefit)) {
if ((TMath::Abs(dz[0])<3.) && (TMath::Abs(dz[1])<3.)) { // beam pipe
Double_t phi=track->Phi();
GetESDsData(kTrk0)->Fill(phi);
- Double_t y=track->Y();
+ Double_t y=track->Eta();
GetESDsData(kTrk1)->Fill(y);
if (TMath::Abs(y)<0.9) {