X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSQASDDDataMakerRec.cxx;h=bd47aa13d0ecd9da7b84e162c9181ce477248a08;hb=db748c3848f9a50b780b0d79876a73ee9e2af911;hp=54304df777a51ab708916f73d45976f0398ee086;hpb=8c823e5a1743ee5bfe3e80ce7c94b65f6024b121;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSQASDDDataMakerRec.cxx b/ITS/AliITSQASDDDataMakerRec.cxx index 54304df777a..bd47aa13d0e 100644 --- a/ITS/AliITSQASDDDataMakerRec.cxx +++ b/ITS/AliITSQASDDDataMakerRec.cxx @@ -13,7 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* $Id: AliITSQADataMakerRec.cxx 23528 2008-01-24 23:46:36Z masera $ */ +/* $Id$ */ // ************************************************************* // Checks the quality assurance @@ -24,6 +24,7 @@ // INFN Torino // --- ROOT system --- +#include #include #include #include @@ -54,20 +55,16 @@ TObject(), fAliITSQADataMakerRec(aliITSQADataMakerRec), fkOnline(kMode), fLDC(ldc), -fSDDhRaws(0), -fSDDhRecs(0), -fRawsOffset(0), -fRecsOffset(0), -fSDDDDLModuleMap(0) +fSDDhTask(0), +fGenOffset(0), +fTimeBinSize(1), +fDDLModuleMap(0) { //ctor used to discriminate OnLine-Offline analysis if(fLDC < 0 || fLDC > 4) { AliError("Error: LDC number out of range; return\n"); } - for(Int_t i=0;i<2*fgknSDDmodules;i++){ - fModuleChargeMap[i] = NULL; - fmonoD[i] = NULL; - } + //fDDLModuleMap=NULL; } //____________________________________________________________________________ @@ -76,25 +73,21 @@ TObject(), fAliITSQADataMakerRec(qadm.fAliITSQADataMakerRec), fkOnline(qadm.fkOnline), fLDC(qadm.fLDC), -fSDDhRaws(qadm.fSDDhRaws), -fSDDhRecs(qadm.fSDDhRecs), -fRawsOffset(qadm.fRawsOffset), -fRecsOffset(qadm.fRecsOffset), -fSDDDDLModuleMap(0) +fSDDhTask(qadm.fSDDhTask), +fGenOffset(qadm.fGenOffset), +fTimeBinSize(1), +fDDLModuleMap(0) { //copy ctor fAliITSQADataMakerRec->SetName((const char*)qadm.fAliITSQADataMakerRec->GetName()) ; fAliITSQADataMakerRec->SetTitle((const char*)qadm.fAliITSQADataMakerRec->GetTitle()); + fDDLModuleMap=NULL; } //____________________________________________________________________________ AliITSQASDDDataMakerRec::~AliITSQASDDDataMakerRec(){ // destructor - for(Int_t i=0;i<2*fgknSDDmodules;i++){ - if(fModuleChargeMap[i]) delete fModuleChargeMap[i]; - if(fmonoD[i]) delete fmonoD[i]; - } - if(fSDDDDLModuleMap) delete fSDDDDLModuleMap; + // if(fDDLModuleMap) delete fDDLModuleMap; } //__________________________________________________________________ AliITSQASDDDataMakerRec& AliITSQASDDDataMakerRec::operator = (const AliITSQASDDDataMakerRec& qac ) @@ -113,27 +106,30 @@ void AliITSQASDDDataMakerRec::StartOfDetectorCycle() } //____________________________________________________________________________ -void AliITSQASDDDataMakerRec::EndOfDetectorCycle(AliQA::TASKINDEX /*task*/, TObjArray* /*list*/) +void AliITSQASDDDataMakerRec::EndOfDetectorCycle(AliQA::TASKINDEX_t /*task*/, TObjArray* /*list*/) { // launch the QA checking AliDebug(1,"AliITSDM instantiates checker with Run(AliQA::kITS, task, list)\n"); - - //AliQAChecker::Instance()->Run( AliQA::kITS , task, list); } //____________________________________________________________________________ void AliITSQASDDDataMakerRec::InitRaws() { // Initialization for RAW data - SDD - - fRawsOffset = (fAliITSQADataMakerRec->fRawsQAList)->GetEntries(); + fGenOffset = (fAliITSQADataMakerRec->fRawsQAList)->GetEntries(); AliCDBEntry *ddlMapSDD = AliCDBManager::Instance()->Get("ITS/Calib/DDLMapSDD"); + Bool_t cacheStatus = AliCDBManager::Instance()->GetCacheFlag(); + if( !ddlMapSDD){ - AliFatal("Calibration object retrieval failed! "); + AliError("Calibration object retrieval failed! SDD will not be processed"); + fDDLModuleMap = NULL; + return; } - AliITSDDLModuleMapSDD *ddlsdd=(AliITSDDLModuleMapSDD*)ddlMapSDD->GetObject(); + fDDLModuleMap = (AliITSDDLModuleMapSDD*)ddlMapSDD->GetObject(); + if(!cacheStatus)ddlMapSDD->SetObject(NULL); ddlMapSDD->SetOwner(kTRUE); - fSDDDDLModuleMap = ddlsdd; + if(!cacheStatus)delete ddlMapSDD; Int_t lay, lad, det; Int_t LAY = -1; //, LAD = -1; @@ -150,45 +146,48 @@ void AliITSQASDDDataMakerRec::InitRaws() else { AliInfo("Book Offline Histograms for SDD\n "); } - TH1F *h0 = new TH1F("ModPattern","Modules pattern",fgknSDDmodules,-0.5,259.5); + TH1D *h0 = new TH1D("ModPattern","HW Modules pattern",fgknSDDmodules,-0.5,259.5); h0->GetXaxis()->SetTitle("Module Number"); h0->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h0,0+fRawsOffset); - fSDDhRaws++; + fAliITSQADataMakerRec->Add2RawsList((new TH1D(*h0)),0+fGenOffset); + delete h0; + fSDDhTask++; if(fLDC==0 || fLDC==1 || fLDC==2){ - TH1F *h1 = new TH1F("LadPatternL3","Ladder pattern L3",14,0.5,14.5); + TH1D *h1 = new TH1D("LadPatternL3","Ladder pattern L3",14,0.5,14.5); h1->GetXaxis()->SetTitle("Ladder Number on Lay3"); h1->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h1,1+fRawsOffset); - fSDDhRaws++; + fAliITSQADataMakerRec->Add2RawsList((new TH1D(*h1)),1+fGenOffset); + delete h1; + fSDDhTask++; } if(fLDC==0 || fLDC==3 || fLDC==4){ - TH1F *h2 = new TH1F("LadPatternL4","Ladder pattern L4",22,0.5,22.5); + TH1D *h2 = new TH1D("LadPatternL4","Ladder pattern L4",22,0.5,22.5); h2->GetXaxis()->SetTitle("Ladder Number on Lay4"); h2->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h2,2+fRawsOffset); - fSDDhRaws++; + fAliITSQADataMakerRec->Add2RawsList((new TH1D(*h2)),2+fGenOffset); + delete h2; + fSDDhTask++; } if(fLDC==0 || fLDC==1 || fLDC==2){ - TH1D *h3[fgkLADDonLAY3] ; - for(Int_t i=1; i<=fgkLADDonLAY3; i++) { + for(Int_t i=1; i<=fgkLADDonLAY3; i++) { sprintf(hname0,"ModPattern_L3_%d",i); - h3[i-1] = new TH1D(hname0,hname0,6,0.5,6.5); - h3[i-1]->GetXaxis()->SetTitle("Channel Number"); - h3[i-1]->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h3[i-1],i-1+3+fRawsOffset); - fSDDhRaws++; + TH1D *h3 = new TH1D(hname0,hname0,6,0.5,6.5); + h3->GetXaxis()->SetTitle("Module Number"); + h3->GetYaxis()->SetTitle("Counts"); + fAliITSQADataMakerRec->Add2RawsList((new TH1D(*h3)),i-1+3+fGenOffset); + delete h3; + fSDDhTask++; } } if(fLDC==0 || fLDC==3 || fLDC==4){ - TH1D *h4[fgkLADDonLAY4] ; for(Int_t i=1; i<=fgkLADDonLAY4; i++) { sprintf(hname0,"ModPattern_L4_%d",i); - h4[i-1] = new TH1D(hname0,hname0,8,0.5,8.5); - h4[i-1]->GetXaxis()->SetTitle("Channel Number"); - h4[i-1]->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h4[i-1],i-1+17+fRawsOffset); - fSDDhRaws++; + TH1D *h4 = new TH1D(hname0,hname0,8,0.5,8.5); + h4->GetXaxis()->SetTitle("Module Number"); + h4->GetYaxis()->SetTitle("Counts"); + fAliITSQADataMakerRec->Add2RawsList((new TH1D(*h4)),i-1+17+fGenOffset); + delete h4; + fSDDhTask++; } } @@ -196,154 +195,51 @@ void AliITSQASDDDataMakerRec::InitRaws() Int_t indexlast2 = 0; if(fkOnline) { + fTimeBinSize = 4; indexlast = 0; - TH1D *h5[fgknSDDmodules*2] ; index1 = 0; - -/* - if(fLDC == 0 || fLDC == 1 || fLDC == 4){ - - for(Int_t lad=0; ladGetXaxis()->SetTitle("Anode Number"); - h5[index1]->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h5[index1],index1+39+fRawsOffset); - fSDDhRaws++; - index1++; - indexlast = index1+39; - } - } - } - } -*/ - for(Int_t moduleSDD=0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { - for(Int_t iside=0; isideGetXaxis()->SetTitle("Anode Number"); - h5[index1]->GetYaxis()->SetTitle("Counts"); - fAliITSQADataMakerRec->Add2RawsList(h5[index1],index1+39+fRawsOffset); - fSDDhRaws++; - index1++; - indexlast = index1+39; - } - } - } - - TH1D *h6[fgknSDDmodules*8] ; - Int_t indextot = 0; - indexlast1 = 0; - for(Int_t htype=0; htype<4; htype++){ - for(Int_t moduleSDD=0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { - for(Int_t iside=0; isideGetXaxis()->SetTitle("Anode Number"); - h6[indextot]->GetYaxis()->SetTitle("Counts"); - } - if(htype == 1){ - h6[indextot]->GetXaxis()->SetTitle("Anode Number"); - h6[indextot]->GetYaxis()->SetTitle("Charge (ADC)"); - } - if(htype == 2){ - h6[indextot]->GetXaxis()->SetTitle("Time bin"); - h6[indextot]->GetYaxis()->SetTitle("Counts"); - } - if(htype == 3){ - h6[indextot]->GetXaxis()->SetTitle("Time bin"); - h6[indextot]->GetYaxis()->SetTitle("Charge (ADC)"); - } - fAliITSQADataMakerRec->Add2RawsList(h6[indextot],indexlast + indextot + fRawsOffset); - fSDDhRaws++; - indextot++; - indexlast1 = indexlast + indextot; - } - } - } - } - - + indexlast1 = fSDDhTask; indexlast2 = 0; - index1 = 0; char *hname[3]; for(Int_t i=0; i<3; i++) hname[i]= new char[50]; for(Int_t moduleSDD =0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { - for(Int_t iside=0;isideGetXaxis()->SetTitle("Time Bin"); - fModuleChargeMap[index1]->GetYaxis()->SetTitle("Anode"); - fAliITSQADataMakerRec->Add2RawsList(fModuleChargeMap[index1],indexlast1 + index1 + fRawsOffset); - fSDDhRaws++; - fmonoD[index1] = new TH1D(hname[2],hname[2],256,-0.5,255.5); - index1++; - indexlast2 = indexlast1 + index1; - } - } - } - - - TH2D *h7[fgknSDDmodules*2] ; - index1 = 0; - for(Int_t moduleSDD=0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { - for(Int_t iside=0; isideGetXaxis()->SetTitle("Charge Value (ADC)"); - h7[index1]->GetYaxis()->SetTitle("Anode"); - fAliITSQADataMakerRec->Add2RawsList(h7[index1],indexlast2 + index1 + fRawsOffset); - fSDDhRaws++; - index1++; - } - } - } - /* - TH2F *h8[3]; - for(Int_t htype =0; htype<3; htype++){ - if(htype == 0) sprintf(hname0,"BLcompare"); - if(htype == 1) sprintf(hname0,"NoiseCompare"); - if(htype == 2) sprintf(hname0,"VdriftCompare"); - h8[htype]= new TH2F(hname0,hname0,520,0,260,100,-0.5,99.5); - if(htype == 0){ - h8[htype]->GetXaxis()->SetTitle("Module Number"); - h8[htype]->GetYaxis()->SetTitle("Time #"); - } - if(htype == 1){ - h8[htype]->GetXaxis()->SetTitle("Module Number"); - h8[htype]->GetYaxis()->SetTitle("Time #)"); - } - if(htype == 2){ - h8[htype]->GetXaxis()->SetTitle("Module Number"); - h8[htype]->GetYaxis()->SetTitle("Time #"); - } + for(Int_t iside=0;isideGetXaxis()->SetTitle("Time Bin"); + fModuleChargeMapFSE->GetYaxis()->SetTitle("Anode"); + fAliITSQADataMakerRec->Add2RawsList((new TProfile2D(*fModuleChargeMapFSE)),indexlast1 + index1 + fGenOffset); + delete fModuleChargeMapFSE; + + fSDDhTask++; + index1++; + indexlast2 = indexlast1 + index1; + } + } - fAliITSQADataMakerRec->Add2RawsList(h8[htype],indexlast2 + index1 + htype+1 + fRawsOffset); - fSDDhRaws++; - printf("added histos %c, at position %d \n", hname0, indexlast2 + index1 + htype+1 + fRawsOffset); - } - */ + for(Int_t moduleSDD =0; moduleSDDGetXaxis()->SetTitle("Time Bin"); + fModuleChargeMap->GetYaxis()->SetTitle("Anode"); + fAliITSQADataMakerRec->Add2RawsList((new TProfile2D(*fModuleChargeMap)),indexlast1 + index1 + fGenOffset); + delete fModuleChargeMap; + + fSDDhTask++; + index1++; + indexlast2 = indexlast1 + index1; + } + } + } // kONLINE - - AliDebug(1,Form("%d SDD Raws histograms booked\n",fSDDhRaws)); + AliDebug(1,Form("%d SDD Raws histograms booked\n",fSDDhTask)); } @@ -351,47 +247,33 @@ void AliITSQASDDDataMakerRec::InitRaws() void AliITSQASDDDataMakerRec::MakeRaws(AliRawReader* rawReader) { // Fill QA for RAW - SDD - + if(!fDDLModuleMap){ + AliError("SDD DDL module map not available - skipping SDD QA"); + return; + } if(rawReader->GetType() != 7) return; // skips non physical triggers AliDebug(1,"entering MakeRaws\n"); rawReader->SelectEquipment(17,fgkeqOffset,fgkeqOffset + fgkDDLidRange); - /* - if(rawReader->GetEventId()!=fEvtId){ - TFile *DAoutput = new TFile::Open(filename); - TH1F *BLhisto; - for(Int_t imod=0; imodGet("BLhistoname[imod]"); - mean = BLhisto->take mean; - fAliITSQADataMakerRec->GetRawsData(i+1887)->Fill(mean, imod); - Noisehisto....; - Vdrifthisto...; - histo....; - } - } - fEvtId==rawReader->GetEventId(); - */ - rawReader->Reset(); AliITSRawStreamSDD s(rawReader); - s.SetDDLModuleMap(fSDDDDLModuleMap); + s.SetDDLModuleMap(fDDLModuleMap); Int_t lay, lad, det; Int_t index=0; if(fkOnline) { for(Int_t moduleSDD =0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { for(Int_t iside=0;iside 39+12 * 132 + index) fAliITSQADataMakerRec->GetRawsData(39+12 * 132 + index +fRawsOffset)->Reset(); + if(fSDDhTask > 39 + index) fAliITSQADataMakerRec->GetRawsData(39 + index +fGenOffset)->Reset(); index++; } - } } } Int_t cnt = 0; Int_t ildcID = -1; Int_t iddl = -1; Int_t isddmod = -1; - Int_t coord1, coord2, signal, moduleSDD, ioffset, iorder, activeModule, index1 ,nBins , iside, bin ; + Int_t coord1, coord2, signal, moduleSDD, ioffset, iorder, activeModule, index1; while(s.Next()) { ildcID = rawReader->GetLDCId(); iddl = rawReader->GetDDLID() - fgkDDLIDshift; @@ -414,7 +296,7 @@ void AliITSQASDDDataMakerRec::MakeRaws(AliRawReader* rawReader) AliDebug(1,Form( "Module SDD = %d, resetting it to 1 \n",moduleSDD)); moduleSDD = 1; } - fAliITSQADataMakerRec->GetRawsData(0 +fRawsOffset)->Fill(moduleSDD); + fAliITSQADataMakerRec->GetRawsData(0 +fGenOffset)->Fill(moduleSDD); AliITSgeomTGeo::GetModuleId(isddmod, lay, lad, det); ioffset = 3; @@ -423,12 +305,11 @@ void AliITSQASDDDataMakerRec::MakeRaws(AliRawReader* rawReader) ioffset += 14; iorder = 2; } - fAliITSQADataMakerRec->GetRawsData(iorder +fRawsOffset)->Fill(lad); - fAliITSQADataMakerRec->GetRawsData(ioffset+lad-1 +fRawsOffset)->Fill(det); //-1 because ladder# starts from 1 + fAliITSQADataMakerRec->GetRawsData(iorder +fGenOffset)->Fill(lad); + fAliITSQADataMakerRec->GetRawsData(ioffset+lad-1 +fGenOffset)->Fill(det); //-1 because ladder# starts from 1 Short_t iside = s.GetChannel(); activeModule = moduleSDD; - if(moduleSDD > 35) activeModule -= 48; index1 = activeModule * 2 + iside; if(index1<0){ @@ -437,129 +318,109 @@ void AliITSQASDDDataMakerRec::MakeRaws(AliRawReader* rawReader) } if(fkOnline) { - if(fSDDhRaws > 39+12 * 132 + index1) { - - fAliITSQADataMakerRec->GetRawsData(39+ 2 * 132 + index1 +fRawsOffset)->Fill(coord1); - fAliITSQADataMakerRec->GetRawsData(39+ 4 * 132 + index1 +fRawsOffset)->Fill(coord1,signal); - fAliITSQADataMakerRec->GetRawsData(39+ 6 * 132 + index1 +fRawsOffset)->Fill(coord2); - fAliITSQADataMakerRec->GetRawsData(39+ 8 * 132 + index1 +fRawsOffset)->Fill(coord2,signal); - fAliITSQADataMakerRec->GetRawsData(39+12 * 132 + index1 +fRawsOffset)->Fill(signal,coord1); - ((TH2D *)(fAliITSQADataMakerRec->GetRawsData(39+10 * 132 + index1 +fRawsOffset)))->Fill(coord2, coord1, signal); - + if(fSDDhTask > 39 + index1) { + ((TProfile2D *)(fAliITSQADataMakerRec->GetRawsData(39 + index1 +fGenOffset)))->Fill(coord2, coord1, signal); + ((TProfile2D *)(fAliITSQADataMakerRec->GetRawsData(39 + index1 + 260*2 +fGenOffset)))->Fill(coord2, coord1, signal); } } cnt++; if(!(cnt%10000)) AliDebug(1,Form(" %d raw digits read",cnt)); } - AliDebug(1,Form("Event completed, %d raw digits read",cnt)); - - if(fkOnline) { - nBins = 256; - for(moduleSDD=0; moduleSDD= 0 && moduleSDD < 36) || (moduleSDD >= 84 && moduleSDD < 180)) { - for(iside=0; iside 35) activeModule -= 48; - index1 = activeModule * 2 + iside; - if(fSDDhRaws > 39 + 2 * 132 + index1) { - fmonoD[index1] = ((TH2D *) (fAliITSQADataMakerRec->GetRawsData(39+10 * 132 + index1 +fRawsOffset)))->ProjectionY(); - for(bin=0; binGetRawsData(index1+39 +fRawsOffset)->Fill(bin,fmonoD[index1]->GetBinContent(bin+1) ); - } - } - } - } - for(Int_t i=0; i(fAliITSQADataMakerRec->GetRawsData(i +fRawsOffset)->GetEntries()); - if(entries != 0) - AliDebug(1,Form("histo %d, name %s , entries %d ",i,fAliITSQADataMakerRec->GetRawsData(i +fRawsOffset)->GetName(),entries)); - } - } -} + AliDebug(1,Form("Event completed, %d raw digits read",cnt)); + } //____________________________________________________________________________ void AliITSQASDDDataMakerRec::InitRecPoints() { // Initialization for RECPOINTS - SDD - - fRecsOffset = (fAliITSQADataMakerRec->fRecPointsQAList)->GetEntries(); + fGenOffset = (fAliITSQADataMakerRec->fRecPointsQAList)->GetEntries(); - TH1F * h0 = new TH1F("Lay3TotCh","Layer 3 total charge",1000,-0.5, 499.5); + TH1F *h0 = new TH1F("Lay3TotCh","Layer 3 total charge",1000,-0.5, 499.5); h0->GetXaxis()->SetTitle("ADC value"); h0->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h0, 0 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h0)), 0 +fGenOffset); + delete h0; + fSDDhTask++; - TH1F * h1 = new TH1F("Lay4TotCh","Layer 4 total charge",1000,-0.5, 499.5); + TH1F *h1 = new TH1F("Lay4TotCh","Layer 4 total charge",1000,-0.5, 499.5); h1->GetXaxis()->SetTitle("ADC value"); h1->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h1, 1 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h1)), 1 +fGenOffset); + delete h1; + fSDDhTask++; char hisnam[50]; - TH1F *h2[3]; for(Int_t i=1; i<=3; i++){ sprintf(hisnam,"Charge_L3_Strip%d",i); - h2[i] = new TH1F(hisnam,hisnam,1000,-0.5, 499.5); - fAliITSQADataMakerRec->Add2RecPointsList(h2[i],i+1 +fRecsOffset); - fSDDhRecs++; + TH1F *h2 = new TH1F(hisnam,hisnam,1000,-0.5, 499.5); + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h2)),i+1 +fGenOffset); + delete h2; + fSDDhTask++; } - TH1F *h3[4]; for(Int_t i=1; i<=4; i++){ sprintf(hisnam,"Charge_L4_Strip%d",i); - h3[i] = new TH1F(hisnam,hisnam,1000,-0.5, 499.5); - fAliITSQADataMakerRec->Add2RecPointsList(h3[i],i+4 +fRecsOffset); - fSDDhRecs++; + TH1F *h3 = new TH1F(hisnam,hisnam,1000,-0.5, 499.5); + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h3)),i+4 +fGenOffset); + delete h3; + fSDDhTask++; } TH1F *h4 = new TH1F("ModPatternRP","Modules pattern RP",fgknSDDmodules,239.5,499.5); h4->GetXaxis()->SetTitle("Module number"); h4->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h4,9 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h4)),9 +fGenOffset); + delete h4; + fSDDhTask++; TH1F *h5 = new TH1F("ModPatternL3 RP","Ladder pattern L3 RP",14,0.5,14.5); h5->GetXaxis()->SetTitle("Ladder #, Layer 3"); h5->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h5,10 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h5)),10 +fGenOffset); + delete h5; + fSDDhTask++; TH1F *h6 = new TH1F("ModPatternL4 RP","Ladder pattern L4 RP",22,0.5,22.5); h6->GetXaxis()->SetTitle("Ladder #, Layer 4"); h6->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h6,11 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h6)),11 +fGenOffset); + delete h6; + fSDDhTask++; TH2F *h7 = new TH2F("Local Coord Distrib","Local Coord Distrib",1000,-4,4,1000,-4,4); h7->GetXaxis()->SetTitle("X local coord, drift, cm"); h7->GetYaxis()->SetTitle("Z local coord, anode, cm"); - fAliITSQADataMakerRec->Add2RecPointsList(h7,12 +fRecsOffset); - fSDDhRecs++; + fAliITSQADataMakerRec->Add2RecPointsList((new TH2F(*h7)),12 +fGenOffset); + delete h7; + fSDDhTask++; TH2F *h8 = new TH2F("Global Coord Distrib","Global Coord Distrib",6000,-30,30,6000,-30,30); h8->GetYaxis()->SetTitle("Y glob coord, cm"); h8->GetXaxis()->SetTitle("X glob coord, cm"); - fAliITSQADataMakerRec->Add2RecPointsList(h8,13 +fRecsOffset); - fSDDhRecs++; - - TH1F *h9[2]; + fAliITSQADataMakerRec->Add2RecPointsList((new TH2F(*h8)),13 +fGenOffset); + delete h8; + fSDDhTask++; + for(Int_t iLay=0; iLay<=1; iLay++){ sprintf(hisnam,"hr_Layer%d",iLay+3); - h9[iLay] = new TH1F(hisnam,hisnam,100,10.,30.); - h9[iLay]->GetXaxis()->SetTitle("r (cm)"); - h9[iLay]->GetXaxis()->CenterTitle(); - h9[iLay]->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h9[iLay],iLay+14 +fRecsOffset); - fSDDhRecs++; + TH1F *h9 = new TH1F(hisnam,hisnam,100,10.,30.); + h9->GetXaxis()->SetTitle("r (cm)"); + h9->GetXaxis()->CenterTitle(); + h9->GetYaxis()->SetTitle("Entries"); + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h9)),iLay+14 +fGenOffset); + delete h9; + fSDDhTask++; } - TH1F *h10[2]; + for(Int_t iLay=0; iLay<=1; iLay++){ sprintf(hisnam,"hphi_Layer%d",iLay+3); - h10[iLay] = new TH1F(hisnam,hisnam,100,-TMath::Pi(),TMath::Pi()); - h10[iLay]->GetXaxis()->SetTitle("#varphi (rad)"); - h10[iLay]->GetXaxis()->CenterTitle(); - h10[iLay]->GetYaxis()->SetTitle("Entries"); - fAliITSQADataMakerRec->Add2RecPointsList(h10[iLay],iLay+16 +fRecsOffset); - fSDDhRecs++; + TH1F *h10 = new TH1F(hisnam,hisnam,100,-TMath::Pi(),TMath::Pi()); + h10->GetXaxis()->SetTitle("#varphi (rad)"); + h10->GetXaxis()->CenterTitle(); + h10->GetYaxis()->SetTitle("Entries"); + fAliITSQADataMakerRec->Add2RecPointsList((new TH1F(*h10)),iLay+16 +fGenOffset); + delete h10; + fSDDhTask++; } - AliDebug(1,Form("%d SDD Recs histograms booked\n",fSDDhRecs)); + AliDebug(1,Form("%d SDD Recs histograms booked\n",fSDDhTask)); } //____________________________________________________________________________ @@ -572,7 +433,8 @@ void AliITSQASDDDataMakerRec::MakeRecPoints(TTree * clustersTree) AliError("can't get the branch with the ITS clusters !"); return; } - TClonesArray * recpoints = new TClonesArray("AliITSRecPoint") ; + static TClonesArray statRecpoints("AliITSRecPoint") ; + TClonesArray *recpoints = &statRecpoints; branchRecP->SetAddress(&recpoints); Int_t npoints = 0; Float_t cluglo[3]={0.,0.,0.}; @@ -584,32 +446,30 @@ void AliITSQASDDDataMakerRec::MakeRecPoints(TTree * clustersTree) for(Int_t j=0;jGetEntries();j++){ AliITSRecPoint *recp = (AliITSRecPoint*)recpoints->At(j); - fAliITSQADataMakerRec->GetRecPointsData(9 +fRecsOffset)->Fill(module); + fAliITSQADataMakerRec->GetRecPointsData(9 +fGenOffset)->Fill(module); recp->GetGlobalXYZ(cluglo); Float_t rad=TMath::Sqrt(cluglo[0]*cluglo[0]+cluglo[1]*cluglo[1]); Float_t phi=TMath::ATan2(cluglo[1],cluglo[0]); if(recp->GetLayer() ==2) { - fAliITSQADataMakerRec->GetRecPointsData(0 +fRecsOffset)->Fill(recp->GetQ()) ; - fAliITSQADataMakerRec->GetRecPointsData(10 +fRecsOffset)->Fill(lad); - fAliITSQADataMakerRec->GetRecPointsData(14 +fRecsOffset)->Fill(rad); - fAliITSQADataMakerRec->GetRecPointsData(16 +fRecsOffset)->Fill(phi); - fAliITSQADataMakerRec->GetRecPointsData(9 +fRecsOffset)->Fill(module); - fAliITSQADataMakerRec->GetRecPointsData(12 +fRecsOffset)->Fill(recp->GetDetLocalX(),recp->GetDetLocalZ()); - fAliITSQADataMakerRec->GetRecPointsData(13 +fRecsOffset)->Fill(cluglo[0],cluglo[1]); + fAliITSQADataMakerRec->GetRecPointsData(0 +fGenOffset)->Fill(recp->GetQ()) ; + fAliITSQADataMakerRec->GetRecPointsData(10 +fGenOffset)->Fill(lad); + fAliITSQADataMakerRec->GetRecPointsData(14 +fGenOffset)->Fill(rad); + fAliITSQADataMakerRec->GetRecPointsData(16 +fGenOffset)->Fill(phi); + fAliITSQADataMakerRec->GetRecPointsData(9 +fGenOffset)->Fill(module); + fAliITSQADataMakerRec->GetRecPointsData(12 +fGenOffset)->Fill(recp->GetDetLocalX(),recp->GetDetLocalZ()); + fAliITSQADataMakerRec->GetRecPointsData(13 +fGenOffset)->Fill(cluglo[0],cluglo[1]); } else if(recp->GetLayer() ==3) { - fAliITSQADataMakerRec->GetRecPointsData(1 +fRecsOffset)->Fill(recp->GetQ()) ; - fAliITSQADataMakerRec->GetRecPointsData(11 +fRecsOffset)->Fill(lad); - fAliITSQADataMakerRec->GetRecPointsData(15 +fRecsOffset)->Fill(rad); - fAliITSQADataMakerRec->GetRecPointsData(17 +fRecsOffset)->Fill(phi); - fAliITSQADataMakerRec->GetRecPointsData(9 +fRecsOffset)->Fill(module); - fAliITSQADataMakerRec->GetRecPointsData(12 +fRecsOffset)->Fill(recp->GetDetLocalX(),recp->GetDetLocalZ()); - fAliITSQADataMakerRec->GetRecPointsData(13 +fRecsOffset)->Fill(cluglo[0],cluglo[1]); + fAliITSQADataMakerRec->GetRecPointsData(1 +fGenOffset)->Fill(recp->GetQ()) ; + fAliITSQADataMakerRec->GetRecPointsData(11 +fGenOffset)->Fill(lad); + fAliITSQADataMakerRec->GetRecPointsData(15 +fGenOffset)->Fill(rad); + fAliITSQADataMakerRec->GetRecPointsData(17 +fGenOffset)->Fill(phi); + fAliITSQADataMakerRec->GetRecPointsData(9 +fGenOffset)->Fill(module); + fAliITSQADataMakerRec->GetRecPointsData(12 +fGenOffset)->Fill(recp->GetDetLocalX(),recp->GetDetLocalZ()); + fAliITSQADataMakerRec->GetRecPointsData(13 +fGenOffset)->Fill(cluglo[0],cluglo[1]); } } } - recpoints->Delete(); - delete recpoints; - + statRecpoints.Clear(); }