- Int_t lgNtot=0 ;
- Int_t hgNtot=0 ;
-
- while (decoder->NextDigit()) {
- Int_t module = decoder->GetModule() ;
- Int_t row = decoder->GetRow() ;
- Int_t col = decoder->GetColumn() ;
- Double_t time = decoder->GetTime() ;
- Double_t energy = decoder->GetEnergy() ;
- Bool_t lowGain = decoder->IsLowGain();
- if (lowGain) {
- //if(GetRecoParam()->EMCSubtractPedestals())
- GetRawsData(kLGpedRMS)->Fill(decoder->GetPedestalRMS()) ;
- if(energy<2.)
- continue ;
- switch(module){
- case 1: GetRawsData(kLGmod1)->Fill(row-0.5,col-0.5) ; break ;
- case 2: GetRawsData(kLGmod2)->Fill(row-0.5,col-0.5) ; break ;
- case 3: GetRawsData(kLGmod3)->Fill(row-0.5,col-0.5) ; break ;
- case 4: GetRawsData(kLGmod4)->Fill(row-0.5,col-0.5) ; break ;
- case 5: GetRawsData(kLGmod5)->Fill(row-0.5,col-0.5) ; break ;
- }
- switch (module){
- case 1: ((TH2F*)GetRawsData(kLGpedRMSMod1))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 2: ((TH2F*)GetRawsData(kLGpedRMSMod2))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 3: ((TH2F*)GetRawsData(kLGpedRMSMod3))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 4: ((TH2F*)GetRawsData(kLGpedRMSMod4))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 5: ((TH2F*)GetRawsData(kLGpedRMSMod5))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- }
- //if quality was evaluated, fill histo
- if(strcmp(GetRecoParam()->EMCDecoderVersion(),"v1")==0){
- switch (module){
- case 1: ((TH2F*)GetRawsData(kLGqualMod1))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 2: ((TH2F*)GetRawsData(kLGqualMod2))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 3: ((TH2F*)GetRawsData(kLGqualMod3))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 4: ((TH2F*)GetRawsData(kLGqualMod4))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 5: ((TH2F*)GetRawsData(kLGqualMod5))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- }
- }
- GetRawsData(kNmodLG)->Fill(module) ;
- GetRawsData(kLGtime)->Fill(time) ;
- GetRawsData(kSpecLG)->Fill(energy) ;
- lgEtot+=energy ;
- lgNtot++ ;
- } else {
- //if this isnon-ZS run - fill pedestal RMS
- //if(GetRecoParam()->EMCSubtractPedestals())
- GetRawsData(kHGpedRMS)->Fill(decoder->GetPedestalRMS()) ;
- if(energy<8.)
- continue ;
- switch (module){
- case 1: GetRawsData(kHGmod1)->Fill(row-0.5,col-0.5) ; break ;
- case 2: GetRawsData(kHGmod2)->Fill(row-0.5,col-0.5) ; break ;
- case 3: GetRawsData(kHGmod3)->Fill(row-0.5,col-0.5) ; break ;
- case 4: GetRawsData(kHGmod4)->Fill(row-0.5,col-0.5) ; break ;
- case 5: GetRawsData(kHGmod5)->Fill(row-0.5,col-0.5) ; break ;
- }
- switch (module){
- case 1: ((TH2F*)GetRawsData(kHGpedRMSMod1))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 2: ((TH2F*)GetRawsData(kHGpedRMSMod2))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 3: ((TH2F*)GetRawsData(kHGpedRMSMod3))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 4: ((TH2F*)GetRawsData(kHGpedRMSMod4))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- case 5: ((TH2F*)GetRawsData(kHGpedRMSMod5))->Fill(row-0.5,col-0.5,decoder->GetPedestalRMS()) ; break ;
- }
- //if quality was evaluated, fill histo
- if(strcmp(GetRecoParam()->EMCDecoderVersion(),"v1")==0){
- switch (module){
- case 1: ((TH2F*)GetRawsData(kHGqualMod1))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 2: ((TH2F*)GetRawsData(kHGqualMod2))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 3: ((TH2F*)GetRawsData(kHGqualMod3))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 4: ((TH2F*)GetRawsData(kHGqualMod4))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- case 5: ((TH2F*)GetRawsData(kHGqualMod5))->Fill(row-0.5,col-0.5,decoder->GetSampleQuality()) ; break ;
- }
- }
- GetRawsData(kNmodHG)->Fill(module) ;
- GetRawsData(kHGtime)->Fill(time) ;
- GetRawsData(kSpecHG)->Fill(energy) ;
- hgEtot+=energy ;
- hgNtot++ ;
- }
- }
- delete decoder;
- GetRawsData(kEtotLG)->Fill(lgEtot) ;
- TParameter<double> * p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kEtotLG)->GetName()))) ;
- p->SetVal(lgEtot) ;
- GetRawsData(kEtotHG)->Fill(hgEtot) ;
- p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kEtotHG)->GetName()))) ;
- p->SetVal(hgEtot) ;
- GetRawsData(kNtotLG)->Fill(lgNtot) ;
- p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kNtotLG)->GetName()))) ;
- p->SetVal(lgNtot) ;
- GetRawsData(kNtotHG)->Fill(hgNtot) ;
- p = dynamic_cast<TParameter<double>*>(GetParameterList()->FindObject(Form("%s_%s_%s", GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(), GetRawsData(kNtotHG)->GetName()))) ;
- p->SetVal(hgNtot) ;
+ Int_t lgNtot=0 ;
+ Int_t hgNtot=0 ;
+ Int_t hgNtotM1RCU0=0, hgNtotM1RCU1=0, hgNtotM1RCU2=0, hgNtotM1RCU3=0;
+ Int_t hgNtotM2RCU0=0, hgNtotM2RCU1=0, hgNtotM2RCU2=0, hgNtotM2RCU3=0;
+ Int_t hgNtotM3RCU0=0, hgNtotM3RCU1=0, hgNtotM3RCU2=0, hgNtotM3RCU3=0;
+
+
+ while (fRawStream.NextDDL()) {
+ Int_t RCUnum = fRawStream.GetDDLNumber() - 8;
+
+ while (fRawStream.NextChannel()) {
+ Int_t module = fRawStream.GetModule();
+ Int_t cellX = fRawStream.GetCellX();
+ Int_t cellZ = fRawStream.GetCellZ();
+ Int_t caloFlag = fRawStream.GetCaloFlag(); // 0=LG, 1=HG, 2=TRU
+
+ if(caloFlag!=0 && caloFlag!=1) continue; //TRU data!
+
+ fitter->SetChannelGeo(module+1,cellX+1,cellZ+1,caloFlag);
+
+ if(fitter->GetAmpOffset()==0 && fitter->GetAmpThreshold()==0) {
+ Short_t altroCFG1 = fRawStream.GetAltroCFG1();
+ Bool_t ZeroSuppressionEnabled = (altroCFG1 >> 15) & 0x1;
+ if(ZeroSuppressionEnabled) {
+ Short_t offset = (altroCFG1 >> 10) & 0xf;
+ Short_t threshold = altroCFG1 & 0x3ff;
+ fitter->SubtractPedestals(kFALSE);
+ fitter->SetAmpOffset(offset);
+ fitter->SetAmpThreshold(threshold);
+ }
+ else
+ fitter->SubtractPedestals(kTRUE);
+ }
+
+ Int_t nBunches = 0;
+ while (fRawStream.NextBunch()) {
+ nBunches++;
+ if (nBunches > 1) continue;
+ const UShort_t *sig = fRawStream.GetSignals();
+ Int_t sigStart = fRawStream.GetStartTimeBin();
+ Int_t sigLength = fRawStream.GetBunchLength();
+ fitter->Eval(sig,sigStart,sigLength);
+ } // End of NextBunch()
+
+ Double_t energy = fitter->GetEnergy() ;
+ Double_t time = fitter->GetTime() ;
+
+ if (caloFlag == 0) { // LG
+ FillRawsData(kLGpedRMS,fitter->GetPedestalRMS()) ;
+ switch(module){
+ case 0: FillRawsData(kLGmod0,cellX,cellZ) ; break ;
+ case 1: FillRawsData(kLGmod1,cellX,cellZ) ; break ;
+ case 2: FillRawsData(kLGmod2,cellX,cellZ) ; break ;
+ case 3: FillRawsData(kLGmod3,cellX,cellZ) ; break ;
+ case 4: FillRawsData(kLGmod4,cellX,cellZ) ; break ;
+ }
+ switch (module){
+ case 0: FillRawsData(kLGpedRMSMod0,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 1: FillRawsData(kLGpedRMSMod1,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 2: FillRawsData(kLGpedRMSMod2,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 3: FillRawsData(kLGpedRMSMod3,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 4: FillRawsData(kLGpedRMSMod4,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ }
+ //if quality was evaluated, fill histo
+ if(strcmp(GetRecoParam()->EMCFitterVersion(),"v1")==0){
+ switch (module){
+ case 0: FillRawsData(kLGqualMod0,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 1: FillRawsData(kLGqualMod1,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 2: FillRawsData(kLGqualMod2,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 3: FillRawsData(kLGqualMod3,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 4: FillRawsData(kLGqualMod4,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ }
+ }
+ FillRawsData(kNmodLG,module) ;
+ FillRawsData(kLGtime,time) ;
+ FillRawsData(kSpecLG,energy) ;
+ lgEtot+=energy ;
+ lgNtot++ ;
+ }
+ else if (caloFlag == 1) { // HG
+ FillRawsData(kHGpedRMS,fitter->GetPedestalRMS()) ;
+ switch (module){
+ case 0: FillRawsData(kHGmod0,cellX,cellZ) ; break ;
+ case 1: FillRawsData(kHGmod1,cellX,cellZ) ; break ;
+ case 2: FillRawsData(kHGmod2,cellX,cellZ) ; break ;
+ case 3: FillRawsData(kHGmod3,cellX,cellZ) ; break ;
+ case 4: FillRawsData(kHGmod4,cellX,cellZ) ; break ;
+ }
+ switch (module){
+ case 0: FillRawsData(kHGpedRMSMod0,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 1: FillRawsData(kHGpedRMSMod1,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 2: FillRawsData(kHGpedRMSMod2,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 3: FillRawsData(kHGpedRMSMod3,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ case 4: FillRawsData(kHGpedRMSMod4,cellX,cellZ,fitter->GetPedestalRMS()) ; break ;
+ }
+ //if quality was evaluated, fill histo
+ if(strcmp(GetRecoParam()->EMCFitterVersion(),"v1")==0){
+ switch (module){
+ case 0: FillRawsData(kHGqualMod0,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 1: FillRawsData(kHGqualMod1,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 2: FillRawsData(kHGqualMod2,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 3: FillRawsData(kHGqualMod3,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ case 4: FillRawsData(kHGqualMod4,cellX,cellZ,fitter->GetSignalQuality()) ; break ;
+ }
+ }
+ FillRawsData(kNmodHG,module) ;
+ FillRawsData(kNRCUHG,RCUnum) ;
+ FillRawsData(kHGtime,time) ;
+ FillRawsData(kSpecHG,energy) ;
+ hgEtot+=energy ;
+ hgNtot++ ;
+ if(RCUnum==0)hgNtotM1RCU0++;
+ if(RCUnum==1)hgNtotM1RCU1++;
+ if(RCUnum==2)hgNtotM1RCU2++;
+ if(RCUnum==3)hgNtotM1RCU3++;
+ if(RCUnum==4)hgNtotM2RCU0++;
+ if(RCUnum==5)hgNtotM2RCU1++;
+ if(RCUnum==6)hgNtotM2RCU2++;
+ if(RCUnum==7)hgNtotM2RCU3++;
+ if(RCUnum==8)hgNtotM3RCU0++;
+ if(RCUnum==9)hgNtotM3RCU1++;
+ if(RCUnum==10)hgNtotM3RCU2++;
+ if(RCUnum==11)hgNtotM3RCU3++;
+ }
+ } // End of NextChannel
+ } // End of NextDDL
+ delete fitter;
+
+ FillRawsData(kEtotLG,lgEtot) ;
+ TParameter<double> * p;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s", GetName(),
+ AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kEtotLG)->GetName()))) ;
+ if (p) p->SetVal(lgEtot) ;
+ FillRawsData(kEtotHG,hgEtot) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s", GetName(),
+ AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kEtotHG)->GetName()))) ;
+ if (p) p->SetVal(hgEtot) ;
+ FillRawsData(kNtotLG,lgNtot) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s", GetName(),
+ AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotLG)->GetName()))) ;
+ if (p) p->SetVal(lgNtot) ;
+ FillRawsData(kNtotHG,hgNtot) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG)->GetName()))) ;
+ if (p) p->SetVal(hgNtot) ;
+
+ FillRawsData(kNtotHG_1_0,hgNtotM1RCU0) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_1_0)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM1RCU0) ;
+
+ FillRawsData(kNtotHG_1_1,hgNtotM1RCU1) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_1_1)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM1RCU1) ;
+
+ FillRawsData(kNtotHG_1_2,hgNtotM1RCU2) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_1_2)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM1RCU2) ;
+
+ FillRawsData(kNtotHG_1_3,hgNtotM1RCU3) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_1_3)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM1RCU3) ;
+
+ FillRawsData(kNtotHG_2_0,hgNtotM2RCU0) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_2_0)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM2RCU0) ;
+
+ FillRawsData(kNtotHG_2_1,hgNtotM2RCU1) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_2_1)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM2RCU1) ;
+
+ FillRawsData(kNtotHG_2_2,hgNtotM2RCU2) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_2_2)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM2RCU2) ;
+
+ FillRawsData(kNtotHG_2_3,hgNtotM2RCU3) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_2_3)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM2RCU3) ;
+
+ FillRawsData(kNtotHG_3_0,hgNtotM3RCU0) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_3_0)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM3RCU0) ;
+
+ FillRawsData(kNtotHG_3_1,hgNtotM3RCU1) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_3_1)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM3RCU1) ;
+
+ FillRawsData(kNtotHG_3_2,hgNtotM3RCU2) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_3_2)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM3RCU2) ;
+
+ FillRawsData(kNtotHG_3_3,hgNtotM3RCU3) ;
+ p = dynamic_cast<TParameter<double>*>(GetParameterList()->
+ FindObject(Form("%s_%s_%s",
+ GetName(), AliQAv1::GetTaskName(AliQAv1::kRAWS).Data(),
+ GetRawsData(kNtotHG_3_3)->GetName()))) ;
+ if (p) p->SetVal(hgNtotM3RCU3) ;
+
+ //
+ IncEvCountCycleRaws();
+ IncEvCountTotalRaws();
+ //
+}
+
+//____________________________________________________________________________
+void AliPHOSQADataMakerRec::MakeDigits()
+{
+ // makes data from Digits
+
+ if ( ! GetDigitsData(kDigitsMul) ) InitDigits() ;
+ FillDigitsData(kDigitsMul,fDigitsArray->GetEntriesFast()) ;
+ TIter next(fDigitsArray) ;
+ AliPHOSDigit * digit ;
+ while ( (digit = dynamic_cast<AliPHOSDigit *>(next())) ) {
+ FillDigitsData(kDigits, digit->GetEnergy()) ;
+ }
+ //