X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSQADataMakerRec.cxx;h=48b3e774d408d99e1fa58887ce922e3bb13770cf;hb=4bd2db93caac343ec3f609617a6d554456ec2885;hp=55492cc8ccbbbeacb69cbbea51cc3d3b3e3c6b30;hpb=585a6e79bd273a28ac3ea2941710fd0b23990460;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSQADataMakerRec.cxx b/ITS/AliITSQADataMakerRec.cxx index 55492cc8ccb..48b3e774d40 100644 --- a/ITS/AliITSQADataMakerRec.cxx +++ b/ITS/AliITSQADataMakerRec.cxx @@ -24,6 +24,7 @@ // INFN Torino // --- ROOT system --- +#include #include // --- Standard library --- @@ -33,7 +34,7 @@ #include "AliITSQASDDDataMakerRec.h" #include "AliITSQASSDDataMakerRec.h" #include "AliLog.h" -#include "AliQA.h" +#include "AliQAv1.h" #include "AliQAChecker.h" #include "AliITSQAChecker.h" #include "AliRawReader.h" @@ -46,8 +47,9 @@ ClassImp(AliITSQADataMakerRec) //____________________________________________________________________________ AliITSQADataMakerRec::AliITSQADataMakerRec(Bool_t kMode, Short_t subDet, Short_t ldc) : -AliQADataMakerRec(AliQA::GetDetName(AliQA::kITS), "ITS Quality Assurance Data Maker"), +AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kITS), "ITS Quality Assurance Data Maker"), fkOnline(kMode), +fHLTMode(0), fSubDetector(subDet), fLDC(ldc), fSPDDataMaker(NULL), @@ -61,15 +63,16 @@ fSSDDataMaker(NULL) // Initialization for RAW data if(fSubDetector == 0 || fSubDetector == 1) { - AliDebug(1,"AliITSQADM::Create SPD DataMakerRec\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Create SPD DataMakerRec\n"); fSPDDataMaker = new AliITSQASPDDataMakerRec(this,fkOnline); } if(fSubDetector == 0 || fSubDetector == 2) { - AliDebug(1,"AliITSQADM::Create SDD DataMakerRec\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Create SDD DataMakerRec\n"); fSDDDataMaker = new AliITSQASDDDataMakerRec(this,fkOnline); + if(fkOnline){SetHLTMode(fSDDDataMaker->GetHLTMode()); } } if(fSubDetector == 0 || fSubDetector == 3) { - AliDebug(1,"AliITSQADM::Create SSD DataMakerRec\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Create SSD DataMakerRec\n"); fSSDDataMaker = new AliITSQASSDDataMakerRec(this,fkOnline); } } @@ -86,6 +89,7 @@ AliITSQADataMakerRec::~AliITSQADataMakerRec(){ AliITSQADataMakerRec::AliITSQADataMakerRec(const AliITSQADataMakerRec& qadm) : AliQADataMakerRec(), fkOnline(qadm.fkOnline), +fHLTMode(qadm.fHLTMode), fSubDetector(qadm.fSubDetector), fLDC(qadm.fLDC), fSPDDataMaker(NULL), @@ -110,27 +114,42 @@ AliITSQADataMakerRec& AliITSQADataMakerRec::operator = (const AliITSQADataMakerR void AliITSQADataMakerRec::StartOfDetectorCycle() { //Detector specific actions at start of cycle - AliDebug(1,"AliITSQADM::Start of ITS Cycle\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Start of ITS Cycle\n"); if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->StartOfDetectorCycle(); if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->StartOfDetectorCycle(); if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->StartOfDetectorCycle(); } //____________________________________________________________________________ -void AliITSQADataMakerRec::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list) +void AliITSQADataMakerRec::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray** list) { // launch the QA checking - AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); - if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->EndOfDetectorCycle(task, list); - if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->EndOfDetectorCycle(task, list); - if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->EndOfDetectorCycle(task, list); + + for (Int_t specie = 0 ; specie < AliRecoParam::kNSpecies ; specie++) { + SetEventSpecie(specie) ; + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list[specie])\n"); + if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->EndOfDetectorCycle(task, list[specie]); + if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->EndOfDetectorCycle(task, list[specie]); + if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->EndOfDetectorCycle(task, list[specie]); + - AliQAChecker *qac = AliQAChecker::Instance(); - AliITSQAChecker *qacb = (AliITSQAChecker *) qac->GetDetQAChecker(0); - if(fSubDetector == 0 ){ - qacb->SetTaskOffset(fSPDDataMaker->GetOffset(), fSDDDataMaker->GetOffset(), fSSDDataMaker->GetOffset()); //Setting the offset for the QAChecker list + AliQAChecker *qac = AliQAChecker::Instance(); + AliITSQAChecker *qacb = (AliITSQAChecker *) qac->GetDetQAChecker(0); + Int_t subdet=GetSubDet(); + qacb->SetSubDet(subdet); + + if(subdet== 0 ){ + qacb->SetTaskOffset(fSPDDataMaker->GetOffset(task), fSDDDataMaker->GetOffset(task), fSSDDataMaker->GetOffset(task)); //Setting the offset for the QAChecker list + } + else + if(subdet!=0){ + Int_t offset=GetDetTaskOffset(subdet, task); + qacb->SetDetTaskOffset(subdet,offset); + } + + qac->Run( AliQAv1::kITS , task, list); + } - qac->Run( AliQA::kITS , task, list); //temporary skipping the checking } //____________________________________________________________________________ @@ -144,15 +163,15 @@ void AliITSQADataMakerRec::InitRaws() { // Initialization for RAW data if(fSubDetector == 0 || fSubDetector == 1) { - AliDebug(1,"AliITSQADM:: SPD InitRaws\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SPD InitRaws\n"); fSPDDataMaker->InitRaws(); } if(fSubDetector == 0 || fSubDetector == 2) { - AliDebug(1,"AliITSQADM:: SDD InitRaws\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SDD InitRaws\n"); fSDDDataMaker->InitRaws(); } if(fSubDetector == 0 || fSubDetector == 3) { - AliDebug(1,"AliITSQADM:: SSD InitRaws\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SSD InitRaws\n"); fSSDDataMaker->InitRaws(); } } @@ -166,20 +185,47 @@ void AliITSQADataMakerRec::MakeRaws(AliRawReader* rawReader) if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->MakeRaws(rawReader); } +//____________________________________________________________________________ +void AliITSQADataMakerRec::InitDigits() +{ + // Initialization for DIGITS + if(fSubDetector == 0 || fSubDetector == 1) { + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SPD InitDigitss\n"); + fSPDDataMaker->InitDigits(); + } + if(fSubDetector == 0 || fSubDetector == 2) { + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SDD InitDigits\n"); + fSDDDataMaker->InitDigits(); + } + if(fSubDetector == 0 || fSubDetector == 3) { + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SSD InitDigits\n"); + fSSDDataMaker->InitDigits(); + } +} + +//____________________________________________________________________________ +void AliITSQADataMakerRec::MakeDigits(TTree * digitsTree) +{ + // Fill QA for recpoints + if(fSubDetector == 0 || fSubDetector == 1) fSPDDataMaker->MakeDigits(digitsTree); + if(fSubDetector == 0 || fSubDetector == 2) fSDDDataMaker->MakeDigits(digitsTree); + if(fSubDetector == 0 || fSubDetector == 3) fSSDDataMaker->MakeDigits(digitsTree); +} + //____________________________________________________________________________ void AliITSQADataMakerRec::InitRecPoints() { // Initialization for RECPOINTS if(fSubDetector == 0 || fSubDetector == 1) { - AliDebug(1,"AliITSQADM:: SPD InitRecPoints\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SPD InitRecPoints\n"); fSPDDataMaker->InitRecPoints(); } if(fSubDetector == 0 || fSubDetector == 2) { - AliDebug(1,"AliITSQADM:: SDD InitRecPoints\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SDD InitRecPoints\n"); fSDDDataMaker->InitRecPoints(); } if(fSubDetector == 0 || fSubDetector == 3) { - AliDebug(1,"AliITSQADM:: SSD InitRecPoints\n"); + AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM:: SSD InitRecPoints\n"); fSSDDataMaker->InitRecPoints(); } } @@ -301,21 +347,46 @@ void AliITSQADataMakerRec::InitESDs() new TH1F("hSPDTracklets","N SPD Tracklets; N tracklets; Counts",300,0.,300.); hSPDTracklets->Sumw2(); Add2ESDsList(hSPDTracklets, 15); + + TH2F* hSPDTrackletsvsFiredChips0 = + new TH2F("hSPDTrackletsvsFiredChips0","N SPD Tracklets vs N FiredChips Layer0", + 300,0.,300.,300,0.,300.); + hSPDTrackletsvsFiredChips0->GetXaxis()->SetTitle("N SPD Tracklets"); + hSPDTrackletsvsFiredChips0->GetYaxis()->SetTitle("N FiredChips Layer0"); + hSPDTrackletsvsFiredChips0->Sumw2(); + Add2ESDsList(hSPDTrackletsvsFiredChips0, 16, expertHistogram ); + + TH2F* hSPDTrackletsvsFiredChips1 = + new TH2F("hSPDTrackletsvsFiredChips1","N SPD Tracklets vs N FiredChips Layer1", + 300,0.,300.,300,0.,300.); + hSPDTrackletsvsFiredChips1->GetXaxis()->SetTitle("N SPD Tracklets"); + hSPDTrackletsvsFiredChips1->GetYaxis()->SetTitle("N FiredChips Layer1"); + hSPDTrackletsvsFiredChips1->Sumw2(); + Add2ESDsList(hSPDTrackletsvsFiredChips1, 17, expertHistogram); TH1F* hSPDTrackletsDePhi = new TH1F("hSPDTrackletsDePhi","DeltaPhi SPD Tracklets; DeltaPhi [rad]; N events",200,-0.2,0.2); hSPDTrackletsDePhi->Sumw2(); - Add2ESDsList(hSPDTrackletsDePhi, 16); + Add2ESDsList(hSPDTrackletsDePhi, 18); TH1F* hSPDTrackletsPhi = new TH1F("hSPDTrackletsPhi","Phi SPD Tracklets; Phi [rad]; N events",1000,0.,2*TMath::Pi()); hSPDTrackletsPhi->Sumw2(); - Add2ESDsList(hSPDTrackletsPhi, 17); + Add2ESDsList(hSPDTrackletsPhi, 19); TH1F* hSPDTrackletsTheta = new TH1F("hSPDTrackletsTheta","Theta SPD Tracklets; Theta [rad]; N events",500,0.,TMath::Pi()); hSPDTrackletsTheta->Sumw2(); - Add2ESDsList(hSPDTrackletsTheta, 18); + Add2ESDsList(hSPDTrackletsTheta, 20); + + // map of layers skipped by tracking (set in AliITSRecoParam) + TH1F *hESDSkippedLayers = + new TH1F("hESDSkippedLayers", "Map of layers skipped by tracking; Layer; Skipped", + 6, -0.5, 5.5); + hESDSkippedLayers->Sumw2(); + hESDSkippedLayers->SetMinimum(0); + Add2ESDsList(hESDSkippedLayers, 21, expertHistogram); + return; } @@ -328,6 +399,9 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd) const Int_t nESDTracks = esd->GetNumberOfTracks(); Int_t nITSrefit5 = 0; + Int_t idet,status; + Float_t xloc,zloc; + // loop on tracks for(Int_t i = 0; i < nESDTracks; i++) { @@ -335,14 +409,16 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd) Int_t nclsITS = track->GetNcls(0); - Bool_t itsrefit=kFALSE,tpcin=kFALSE; + Bool_t itsrefit=kFALSE,tpcin=kFALSE,itsin=kFALSE; if ((track->GetStatus() & AliESDtrack::kITSrefit)) itsrefit=kTRUE; if ((track->GetStatus() & AliESDtrack::kTPCin)) tpcin=kTRUE; + if ((track->GetStatus() & AliESDtrack::kITSin)) itsin=kTRUE; if(nclsITS>=5 && itsrefit) nITSrefit5++; if(tpcin) { GetESDsData(0)->Fill(nclsITS); - } else { + } + if(itsin && !tpcin){ GetESDsData(2)->Fill(nclsITS); } @@ -355,14 +431,15 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd) GetESDsData(3)->Fill(layer); } } - + track->GetITSModuleIndexInfo(layer,idet,status,xloc,zloc); + if(status==3) GetESDsData(21)->SetBinContent(layer,1); } } // end loop on tracks // vertices const AliESDVertex *vtxSPD = esd->GetPrimaryVertexSPD(); - const AliESDVertex *vtxTrk = esd->GetPrimaryVertex(); + const AliESDVertex *vtxTrk = esd->GetPrimaryVertexTracks(); Int_t mult = ((AliMultiplicity*)(esd->GetMultiplicity()))->GetNumberOfTracklets(); if(mult>0) @@ -391,17 +468,50 @@ void AliITSQADataMakerRec::MakeESDs(AliESDEvent *esd) } // SPD Tracklets + GetESDsData(15)->Fill(mult); + + Short_t nFiredChips0 = ((AliMultiplicity*)(esd->GetMultiplicity()))->GetNumberOfFiredChips(0); + Short_t nFiredChips1 = ((AliMultiplicity*)(esd->GetMultiplicity()))->GetNumberOfFiredChips(1); + GetESDsData(16)->Fill(nFiredChips0,mult); + GetESDsData(17)->Fill(nFiredChips1,mult); // Loop over tracklets - GetESDsData(15)->Fill(mult); for (Int_t itr=0; itrGetMultiplicity()))->GetDeltaPhi(itr); Float_t phiTr = ((AliMultiplicity*)(esd->GetMultiplicity()))->GetPhi(itr); Float_t thetaTr = ((AliMultiplicity*)(esd->GetMultiplicity()))->GetTheta(itr); - GetESDsData(16)->Fill(dePhiTr); - GetESDsData(17)->Fill(phiTr); - GetESDsData(18)->Fill(thetaTr); + GetESDsData(18)->Fill(dePhiTr); + GetESDsData(19)->Fill(phiTr); + GetESDsData(20)->Fill(thetaTr); } // end loop on tracklets return; } + +//_________________________________________________________________ +Int_t AliITSQADataMakerRec::GetDetTaskOffset(Int_t subdet,AliQAv1::TASKINDEX_t task) +{ + switch(subdet) + { + + Int_t offset; + case 1: + offset=fSPDDataMaker->GetOffset(task); + return offset; + break; + case 2: + offset=fSDDDataMaker->GetOffset(task); + return offset; + break; + case 3: + offset=fSSDDataMaker->GetOffset(task); + return offset; + break; + default: + AliWarning("No specific subdetector (SPD, SDD, SSD) selected!! Offset set to zero \n"); + offset=0; + return offset; + break; + } + //return offset; +}