#include "AliITSQADataMakerSim.h"
#include "AliITSQASSDDataMakerSim.h"
#include "AliLog.h"
-#include "AliQA.h"
+#include "AliQAv1.h"
#include "AliQAChecker.h"
#include "AliRawReader.h"
AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(AliITSQADataMakerSim *aliITSQADataMakerSim) :
TObject(),
fAliITSQADataMakerSim(aliITSQADataMakerSim),
-fSSDhDigits(0),
-fSSDhSDigits(0),
-fSSDhHits(0),
-fGenOffset(0) {
- //ctor used to discriminate OnLine-Offline analysis
+//fSSDhTask(0),
+fSSDhHTask(0),
+fSSDhSTask(0),
+fSSDhDTask(0),
+fGenOffsetH(0),
+fGenOffsetS(0),
+fGenOffsetD(0)
+{
+ //ctor used to discriminate OnLine-Offline analysis
+ fGenOffsetH= new Int_t[AliRecoParam::kNSpecies];
+ fGenOffsetS= new Int_t[AliRecoParam::kNSpecies];
+ fGenOffsetD= new Int_t[AliRecoParam::kNSpecies];
+ for(Int_t i=0; i<AliRecoParam::kNSpecies; i++)
+ {
+ fGenOffsetH[i]= 0;
+ fGenOffsetS[i]= 0;
+ fGenOffsetD[i]= 0;
+ }
}
//____________________________________________________________________________
AliITSQASSDDataMakerSim::AliITSQASSDDataMakerSim(const AliITSQASSDDataMakerSim& qadm) :
TObject(),
fAliITSQADataMakerSim(qadm.fAliITSQADataMakerSim),
-fSSDhDigits(qadm.fSSDhDigits),
-fSSDhSDigits(qadm.fSSDhSDigits),
-fSSDhHits(qadm.fSSDhHits),
-fGenOffset(qadm.fGenOffset) {
+//fSSDhTask(qadm.fSSDhTask),
+fSSDhHTask(qadm.fSSDhHTask),
+fSSDhSTask(qadm.fSSDhSTask),
+fSSDhDTask(qadm.fSSDhDTask),
+fGenOffsetH(qadm.fGenOffsetH),
+fGenOffsetS(qadm.fGenOffsetS),
+fGenOffsetD(qadm.fGenOffsetD)
+{
//copy ctor
fAliITSQADataMakerSim->SetName((const char*)qadm.fAliITSQADataMakerSim->GetName()) ;
fAliITSQADataMakerSim->SetTitle((const char*)qadm.fAliITSQADataMakerSim->GetTitle());
//____________________________________________________________________________
void AliITSQASSDDataMakerSim::StartOfDetectorCycle() {
//Detector specific actions at start of cycle
- AliDebug(1,"AliITSQADM::Start of SSD Cycle\n");
+ AliDebug(AliQAv1::GetQADebugLevel(),"AliITSQADM::Start of SSD Cycle\n");
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQA::TASKINDEX_t task, TObjArray* list) {
+void AliITSQASSDDataMakerSim::EndOfDetectorCycle(AliQAv1::TASKINDEX_t /*task*/, TObjArray* /*list*/) {
// launch the QA checking
- AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n");
+ AliDebug(AliQAv1::GetQADebugLevel(),"AliITSDM instantiates checker with Run(AliQAv1::kITS, task, list)\n");
- AliQAChecker::Instance()->Run( AliQA::kITS , task, list);
+// AliQAChecker::Instance()->Run( AliQAv1::kITS , task, list);
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::InitDigits() {
+Int_t AliITSQASSDDataMakerSim::InitDigits() {
// Initialization for DIGIT data - SSD -
- fGenOffset = (fAliITSQADataMakerSim->fDigitsQAList)->GetEntries();
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+ Int_t rv = 0 ;
+ // fGenOffsetD = (fAliITSQADataMakerSim->fDigitsQAList[AliRecoParam::kDefault])->GetEntries();
// custom code here
TH1F *fHistSSDModule = new TH1F("fHistSSDDigitsModule",
- ";SSD Module Number;N_{DIGITS}",
+ "SSD Digits Module;SSD Module Number;N_{DIGITS}",
1698,499.5,2197.5);
- fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
- fGenOffset + fSSDhDigits);
- fSSDhDigits += 1;
+ rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModule,
+ fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
+ fSSDhDTask += 1;
TH2F *fHistSSDModuleStrip = new TH2F("fHistSSDDigitsModuleStrip",
- ";N_{Strip};N_{Module}",
+ "SSD Digits Module Strip;N_{Strip};N_{Module}",
1540,0,1540,1698,499.5,2197.5);
- fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
- fGenOffset + fSSDhDigits);
- fSSDhDigits += 1;
-
- AliDebug(1,Form("%d SSD Digits histograms booked\n",fSSDhDigits));
+ rv = fAliITSQADataMakerSim->Add2DigitsList(fHistSSDModuleStrip,
+ fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
+ fSSDhDTask += 1;
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Digits histograms booked\n",fSSDhDTask));
+ return rv ;
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) {
+Int_t AliITSQASSDDataMakerSim::MakeDigits(TTree *digits) {
// Fill QA for DIGIT - SSD -
+ Int_t rv = 0 ;
+
AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");
fITS->SetTreeAddress();
TClonesArray *iSSDdigits = fITS->DigitsAddress(2);
iSSDdigits->Clear();
digits->GetEvent(iModule);
Int_t ndigits = iSSDdigits->GetEntries();
- fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);
+ fAliITSQADataMakerSim->GetDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 0)->Fill(iModule,ndigits);
if(ndigits != 0)
- AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Digits: %d",iModule,ndigits));
for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
AliITSdigit *dig = (AliITSdigit*)iSSDdigits->UncheckedAt(iDigit);
Int_t fStripNumber = (dig->GetCoord1() == 0) ? dig->GetCoord2() : dig->GetCoord2() + fgkNumberOfPSideStrips;
- ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fGenOffset + 1))->Fill(fStripNumber,iModule,dig->GetSignal());
+ ((TH2F *)fAliITSQADataMakerSim->GetDigitsData(fGenOffsetD[fAliITSQADataMakerSim->GetEventSpecie()] + 1))->Fill(fStripNumber,iModule,dig->GetSignal());
}//digit loop
}//module loop
+ return rv ;
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::InitSDigits() {
+Int_t AliITSQASSDDataMakerSim::InitSDigits() {
// Initialization for SDIGIT data - SSD -
- fGenOffset = (fAliITSQADataMakerSim->fSDigitsQAList)->GetEntries();
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+ Int_t rv = 0 ;
+ //fGenOffsetS = (fAliITSQADataMakerSim->fSDigitsQAList[AliRecoParam::kDefault])->GetEntries();
// custom code here
TH1F *fHistSSDModule = new TH1F("fHistSSDSDigitsModule",
- ";SSD Module Number;N_{SDIGITS}",
+ "SSD SDigits Module;SSD Module Number;N_{SDIGITS}",
1698,499.5,2197.5);
- fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
- fGenOffset + fSSDhSDigits);
- fSSDhSDigits += 1;
+ rv = fAliITSQADataMakerSim->Add2SDigitsList(fHistSSDModule,
+ fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
+ fSSDhSTask += 1;
- AliDebug(1,Form("%d SSD SDigits histograms booked\n",fSSDhSDigits));
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD SDigits histograms booked\n",fSSDhSTask));
+ return rv ;
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) {
+Int_t AliITSQASSDDataMakerSim::MakeSDigits(TTree *sdigits) {
// Fill QA for SDIGIT - SSD -
+ Int_t rv = 0 ;
+
static TClonesArray iSSDEmpty("AliITSpListItem",10000);
iSSDEmpty.Clear();
TClonesArray *iSSDsdigits = &iSSDEmpty;
+ AliDebug(AliQAv1::GetQADebugLevel(), Form("Trying to access the sdigits histogram: %d\n",fGenOffsetS));
+
TBranch *brchSDigits = sdigits->GetBranch("ITS");
brchSDigits->SetAddress(&iSSDsdigits);
for(Int_t iModule = 500; iModule < 2198; iModule++) {
iSSDsdigits->Clear();
sdigits->GetEvent(iModule);
Int_t ndigits = iSSDsdigits->GetEntries();
- fAliITSQADataMakerSim->GetSDigitsData(fGenOffset + 0)->Fill(iModule,ndigits);
+ fAliITSQADataMakerSim->GetSDigitsData(fGenOffsetS[fAliITSQADataMakerSim->GetEventSpecie()] + 0)->Fill(iModule,ndigits);
if(ndigits != 0)
- AliDebug(1,Form("Module: %d - Digits: %d",iModule,ndigits));
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Digits: %d",iModule,ndigits));
for (Int_t iDigit = 0; iDigit < ndigits; iDigit++) {
AliITSpListItem *dig=(AliITSpListItem*)iSSDsdigits->At(iDigit);
dig=0;
}//digit loop
}//module loop
+ return rv ;
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::InitHits() {
+Int_t AliITSQASSDDataMakerSim::InitHits() {
// Initialization for HITS data - SSD -
- fGenOffset = (fAliITSQADataMakerSim->fHitsQAList)->GetEntries();
+ const Bool_t expert = kTRUE ;
+ const Bool_t image = kTRUE ;
+ Int_t rv = 0 ;
+
+ //fGenOffsetH = (fAliITSQADataMakerSim->fHitsQAList[fEventSpecie])->GetEntries();
// custom code here
TH1F *fHistSSDModule = new TH1F("fHistSSDHitsModule",
- ";SDD Module Number;N_{HITS}",
+ "SSD Hits Module;SDD Module Number;N_{HITS}",
1698,499.5,2197.5);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDModule,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDGlobalX = new TH1F("fHistSSDHitsGlobalX",
- ";x [cm];Entries",
+ "SSD Hits Global X;x [cm];Entries",
1000,-50.,50.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalX,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDGlobalY = new TH1F("fHistSSDHitsGlobalY",
- ";y [cm];Entries",
+ "SSD Hits Global Y;y [cm];Entries",
1000,-50.,50.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalY,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDGlobalZ = new TH1F("fHistSSDHitsGlobalZ",
- ";z [cm];Entries",
+ "SSD Hits Global Z ;z [cm];Entries",
1000,-60.,60.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalZ,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDLocalX = new TH1F("fHistSSDHitsLocalX",
- ";x [cm];Entries",
+ "SSD Hits Local X;x [cm];Entries",
1000,-4.,4.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalX,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDLocalY = new TH1F("fHistSSDHitsLocalY",
- ";y [cm];Entries",
+ "SSD Hits Local Y;y [cm];Entries",
1000,-0.1,0.1);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalY,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDLocalZ = new TH1F("fHistSSDHitsLocalZ",
- ";z [cm];Entries",
+ "SSD Hits Local Z;z [cm];Entries",
1000,-4.,4.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDLocalZ,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6, !expert, image);
+ fSSDhHTask += 1;
TH1F *fHistSSDIonization = new TH1F("fHistSSDHitsIonization",
- ";log(dE/dx) [KeV];N_{Hits}",
+ "SSD Hits Ionization;log(dE/dx) [KeV];N_{Hits}",
100,-7,-2);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDIonization,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7, !expert, image);
+ fSSDhHTask += 1;
TH2F *fHistSSDGlobalXY = new TH2F("fHistSSDHitsGlobalXY",
- ";x [cm];y [cm]",
+ "SSD Hits Global XY;x [cm];y [cm]",
1000,-50.,50.,
1000,-50.,50.);
- fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
- fGenOffset + fSSDhHits);
- fSSDhHits += 1;
+ rv = fAliITSQADataMakerSim->Add2HitsList(fHistSSDGlobalXY,
+ fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8, !expert, image);
+ fSSDhHTask += 1;
- AliDebug(1,Form("%d SSD Hits histograms booked\n",fSSDhHits));
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("%d SSD Hits histograms booked\n",fSSDhHTask));
+ return rv ;
}
//____________________________________________________________________________
-void AliITSQASSDDataMakerSim::MakeHits(TTree *hits) {
+Int_t AliITSQASSDDataMakerSim::MakeHits(TTree *hits) {
// Fill QA for HITS - SSD -
+ Int_t rv = 0 ;
+
AliITS *fITS = (AliITS*)gAlice->GetModule("ITS");
fITS->SetTreeAddress();
Int_t nmodules;
TObjArray *arrHits = module->GetHits();
Int_t nhits = arrHits->GetEntriesFast();
if(nhits != 0)
- AliDebug(1,Form("Module: %d - Hits: %d",iModule,nhits));
+ AliDebug(AliQAv1::GetQADebugLevel(),Form("Module: %d - Hits: %d",iModule,nhits));
for (Int_t iHit = 0; iHit < nhits; iHit++) {
AliITShit *hit = (AliITShit*) arrHits->At(iHit);
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 0)->Fill(iModule);
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 1)->Fill(hit->GetXG());
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 2)->Fill(hit->GetYG());
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 3)->Fill(hit->GetZG());
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 4)->Fill(hit->GetXL());
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 5)->Fill(hit->GetYL());
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 6)->Fill(hit->GetZL());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 0)->Fill(iModule);
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 1)->Fill(hit->GetXG());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 2)->Fill(hit->GetYG());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 3)->Fill(hit->GetZG());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 4)->Fill(hit->GetXL());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 5)->Fill(hit->GetYL());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 6)->Fill(hit->GetZL());
if(hit->GetIonization())
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 7)->Fill(TMath::Log10(hit->GetIonization()));
- fAliITSQADataMakerSim->GetHitsData(fGenOffset + 8)->Fill(hit->GetXG(),hit->GetYG());
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 7)->Fill(TMath::Log10(hit->GetIonization()));
+ fAliITSQADataMakerSim->GetHitsData(fGenOffsetH[fAliITSQADataMakerSim->GetEventSpecie()] + 8)->Fill(hit->GetXG(),hit->GetYG());
}//hit loop
}//module loop
+ return rv ;
+}
+
+//____________________________________________________________________________
+Int_t AliITSQASSDDataMakerSim::GetOffset(AliQAv1::TASKINDEX_t task,Int_t specie){
+ // Returns histogram offset according to the specified task
+ Int_t offset=0;
+ if( task == AliQAv1::kHITS){
+ offset=fGenOffsetH[specie];
+ }
+ else if( task == AliQAv1::kSDIGITS) {
+ offset=fGenOffsetS[specie];
+ }
+ else if( task == AliQAv1::kDIGITS) {
+ offset=fGenOffsetD[specie];
+ }
+ else {
+ AliInfo("No task has been selected. TaskHisto set to zero.\n");
+ }
+
+ return offset;
+}
+
+
+//____________________________________________________________________________
+void AliITSQASSDDataMakerSim::SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset,Int_t specie ){
+ // Returns histogram offset according to the specified task
+ if( task == AliQAv1::kHITS){
+ fGenOffsetH[specie] = offset;
+ }
+ else if( task == AliQAv1::kSDIGITS) {
+ fGenOffsetS[specie] = offset;
+ }
+ else if( task == AliQAv1::kDIGITS) {
+ fGenOffsetD[specie] = offset;
+ }
+ else {
+ AliInfo("No task has been selected. TaskHisto set to zero.\n");
+ }
+}
+
+//____________________________________________________________________________
+Int_t AliITSQASSDDataMakerSim::GetTaskHisto(AliQAv1::TASKINDEX_t task) {
+ // Returns the number of booked histograms for the selected task
+ Int_t histotot=0;
+ if( task == AliQAv1::kHITS) {
+ histotot=fSSDhHTask ;
+ }
+ else if( task == AliQAv1::kSDIGITS) {
+ histotot=fSSDhSTask;
+ }
+ else if( task == AliQAv1::kDIGITS) {
+ histotot=fSSDhDTask ;
+ }
+ else {
+ AliInfo("No task has been selected. TaskHisto set to zero.\n");
+ }
+ return histotot;
+
}