fArrayQA = new TObjArray(kLast);
+ {// Event related QA
+ const Char_t *name[]={
+ "hGlobalPrimaryVertex"
+ };
+ const Char_t *title[]={
+ "Z-distribution of the primary vertex"
+ };
+ Add2ESDsList(new TH1F(name[0],title[0],100,-20.,20.),kEvt0);
+ }
+
{// Cluster related QA
const Char_t *name[]={
"hGlobalFractionAssignedClustersITS",
return;
}
+ // Event related QA
+ const AliESDVertex *vtx=esd->GetPrimaryVertex();
+ if (!vtx->GetStatus()) return;
+
+ Double_t xv=vtx->GetXv();
+ Double_t yv=vtx->GetYv();
+ Double_t zv=vtx->GetZv();
+ GetESDsData(kEvt0)->Fill(zv);
+
+
for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
AliESDtrack* track = esd->GetTrack(iTracks);
if (!track) {
// Track related QA
if (track->IsOn(AliESDtrack::kTPCrefit)) {
Float_t dz[2];
- track->GetDZ(0.,0.,0.,esd->GetMagneticField(),dz);
+ track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
if ((TMath::Abs(dz[0])<3.) && (TMath::Abs(dz[1])<3.)) { // beam pipe
Double_t phi=track->Phi();
GetESDsData(kTrk0)->Fill(phi);
const AliExternalTrackParam *innTrack=track->GetInnerParam();
if (tpcTrack)
if (innTrack) {
- const AliESDVertex *vtx=esd->GetPrimaryVertex();
- Double_t xv=vtx->GetXv();
- Double_t yv=vtx->GetYv();
- Double_t zv=vtx->GetZv();
Float_t dz[2];
tpcTrack->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
dz[0]*=10.; // in mm
}
}
if (p>1.0) {
- if (track->IsOn(AliESDtrack::kTOFpid)) {
- Double_t times[10];
- track->GetIntegratedTimes(times);
- Double_t tof=track->GetTOFsignal();
- GetESDsData(kPid2)->Fill(times[2]-tof);
+ if (track->IsOn(AliESDtrack::kITSrefit))
+ if (track->IsOn(AliESDtrack::kTPCrefit))
+ if (track->IsOn(AliESDtrack::kTOFout)) {
+ Float_t dz[2];
+ track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
+ if (dz[1]<3.) {
+ Double_t times[10];
+ track->GetIntegratedTimes(times);
+ Double_t tof=track->GetTOFsignal()/*-847055 -1771207*/;
+ GetESDsData(kPid2)->Fill(times[2]-tof);
+ }
}
}
const AliExternalTrackParam *par=track->GetInnerParam();
Double_t mass;
AliESDv0 v0(*esd->GetV0(i));
+ Int_t nidx=TMath::Abs(v0.GetNindex());
+ AliESDtrack *ntrack1=esd->GetTrack(nidx);
+ if (!ntrack1->IsOn(AliESDtrack::kTPCrefit)) continue;
+
+ Int_t pidx=TMath::Abs(v0.GetPindex());
+ AliESDtrack *ptrack1=esd->GetTrack(pidx);
+ if (!ptrack1->IsOn(AliESDtrack::kTPCrefit)) continue;
+
v0.ChangeMassHypothesis(kK0Short);
mass=v0.GetEffMass();
if (v0.GetOnFlyStatus())
class AliAnalysisTaskGlobalQA : public AliAnalysisTaskSE {
public:
enum {
+ kEvt0,
kClr0,kClr1,kClr2,kClr3,
kTrk0,kTrk1,kTrk2,kTrk3,kTrk4,kTrk5,kTrk6,kTrk7,kTrk8,kTrk9,kTrk10,
kK0on,kK0off,kL0on,kL0off,
//------------------------------------------------------
const Bool_t expert = kTRUE ;
- const Bool_t image = kTRUE ;
- {// Cluster related QA
+ const Bool_t image = kTRUE ;
+
+ {// Event related QA
+ const Char_t *name[]={
+ "hGlobalPrimaryVertex"
+ };
+ const Char_t *title[]={
+ "Z-distribution of the primary vertex"
+ };
+ Add2ESDsList(new TH1F(name[0],title[0],100,-20.,20.),kEvt0,!expert,image);
+ }
+
+ {// Cluster related QA
const Char_t *name[]={
"hGlobalFractionAssignedClustersITS",
"hGlobalFractionAssignedClustersTPC",
const AliESDEvent *esd=event;
+ // Event related QA
+ const AliESDVertex *vtx=esd->GetPrimaryVertex();
+ if (!vtx->GetStatus()) return;
+
+ Double_t xv=vtx->GetXv();
+ Double_t yv=vtx->GetYv();
+ Double_t zv=vtx->GetZv();
+ GetESDsData(kEvt0)->Fill(zv);
+
+
Int_t ntrk=esd->GetNumberOfTracks() ;
for (Int_t i=0; i<ntrk; i++) {
const AliESDtrack *track=esd->GetTrack(i);
// Track related QA
if (track->IsOn(AliESDtrack::kTPCrefit)) {
Float_t dz[2];
- track->GetDZ(0.,0.,0.,esd->GetMagneticField(),dz);
+ track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
if ((TMath::Abs(dz[0])<3.) && (TMath::Abs(dz[1])<3.)) { // beam pipe
Double_t phi=track->Phi();
GetESDsData(kTrk0)->Fill(phi);
const AliExternalTrackParam *innTrack=track->GetInnerParam();
if (tpcTrack)
if (innTrack) {
- const AliESDVertex *vtx=esd->GetPrimaryVertex();
- Double_t xv=vtx->GetXv();
- Double_t yv=vtx->GetYv();
- Double_t zv=vtx->GetZv();
Float_t dz[2];
tpcTrack->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
dz[0]*=10.; // in mm
}
}
if (p>1.0) {
- if (track->IsOn(AliESDtrack::kTOFpid)) {
- Double_t times[10];
- track->GetIntegratedTimes(times);
- Double_t tof=track->GetTOFsignal();
- GetESDsData(kPid2)->Fill(times[2]-tof);
+ if (track->IsOn(AliESDtrack::kITSrefit))
+ if (track->IsOn(AliESDtrack::kTPCrefit))
+ if (track->IsOn(AliESDtrack::kTOFout)) {
+ Float_t dz[2];
+ track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
+ if (dz[1]<3.) {
+ Double_t times[10];
+ track->GetIntegratedTimes(times);
+ Double_t tof=track->GetTOFsignal()/*-847055 -1771207*/;
+ GetESDsData(kPid2)->Fill(times[2]-tof);
+ }
}
}
const AliExternalTrackParam *par=track->GetInnerParam();
Double_t mass;
AliESDv0 v0(*esd->GetV0(i));
+ Int_t nidx=TMath::Abs(v0.GetNindex());
+ AliESDtrack *ntrack1=esd->GetTrack(nidx);
+ if (!ntrack1->IsOn(AliESDtrack::kTPCrefit)) continue;
+
+ Int_t pidx=TMath::Abs(v0.GetPindex());
+ AliESDtrack *ptrack1=esd->GetTrack(pidx);
+ if (!ptrack1->IsOn(AliESDtrack::kTPCrefit)) continue;
+
v0.ChangeMassHypothesis(kK0Short);
mass=v0.GetEffMass();
if (v0.GetOnFlyStatus())
class AliGlobalQADataMaker: public AliQADataMakerRec {
public:
enum {
+ kEvt0,
kClr0,kClr1,kClr2,kClr3,
kTrk0,kTrk1,kTrk2,kTrk3,kTrk4,kTrk5,kTrk6,kTrk7,kTrk8,kTrk9,kTrk10,
kK0on,kK0off,kL0on,kL0off,