fRun(0),
fStartTime(0),
fEndTime(0),
+ fDaqStartTime(0),
+ fDaqEndTime(0),
+ fCtpStartTime(0),
+ fCtpEndTime(0),
fGraphs("TGraph",kNGraphs),
fFEEParameters(NULL),
fIsProcessed(kFALSE)
{
// Default constructor
- for(int i=0;i<kNHvChannel;i++) fDeadChannel[i] = kFALSE;
+ for(int i=0;i<kNHvChannel;i++) {
+ fDeadChannel[i] = kFALSE;
+ fMeanHV[i] = 100.0;
+ fWidthHV[i] = 0.0;
+ fHv[i] = NULL;
+ }
}
//_____________________________________________________________________________
-AliVZERODataDCS::AliVZERODataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
+AliVZERODataDCS::AliVZERODataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t daqStartTime, UInt_t daqEndTime, UInt_t ctpStartTime, UInt_t ctpEndTime):
TObject(),
fRun(nRun),
fStartTime(startTime),
fEndTime(endTime),
+ fDaqStartTime(daqStartTime),
+ fDaqEndTime(daqEndTime),
+ fCtpStartTime(ctpStartTime),
+ fCtpEndTime(ctpEndTime),
fGraphs("TGraph",kNGraphs),
fFEEParameters(new TMap()),
fIsProcessed(kFALSE)
{
// constructor with arguments
- for(int i=0;i<kNHvChannel;i++) fDeadChannel[i] = kFALSE;
-
- AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
+ for(int i=0;i<kNHvChannel;i++) {
+ fDeadChannel[i] = kFALSE;
+ fMeanHV[i] = 100.0;
+ fWidthHV[i] = 0.0;
+ }
+ AliInfo(Form("\n\tRun %d \n\tTime Created %s \n\tTime Completed %s \n\tDAQ start %s \n\tDAQ end %s \n\tCTP start %s \n\tCTP end %s ", nRun,
TTimeStamp(startTime).AsString(),
- TTimeStamp(endTime).AsString()));
+ TTimeStamp(endTime).AsString(),
+ TTimeStamp(daqStartTime).AsString(),
+ TTimeStamp(daqEndTime).AsString(),
+ TTimeStamp(ctpStartTime).AsString(),
+ TTimeStamp(ctpEndTime).AsString()
+ ));
fFEEParameters->SetOwnerValue();
Init();
}
//_____________________________________________________________________________
-void AliVZERODataDCS::ProcessData(TMap& aliasMap){
+Bool_t AliVZERODataDCS::ProcessData(TMap& aliasMap){
// method to process the data
+ Bool_t success = kTRUE;
if(!(fAliasNames[0])) Init();
aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[iAlias].Data());
if(!aliasArr){
AliError(Form("Alias %s not found!", fAliasNames[iAlias].Data()));
- return;
+ success = kFALSE;
+ continue;
}
//Introduce(iAlias, aliasArr);
Float_t variation = 0.0;
while((aValue = (AliDCSValue*) iterarray.Next())) {
+ UInt_t currentTime = aValue->GetTimeStamp();
+ if(currentTime>fCtpEndTime) break;
+
values[iValue] = aValue->GetFloat();
+ times[iValue] = (Double_t) (currentTime);
+
if(iValue>0) {
if(values[iValue-1]>0.) variation = TMath::Abs(values[iValue]-values[iValue-1])/values[iValue-1];
- if(variation > 0.10) fDeadChannel[GetOfflineChannel(iAlias)] = kTRUE;
+ if(variation > 0.01) fDeadChannel[GetOfflineChannel(iAlias)] = kTRUE;
}
- times[iValue] = (Double_t) (aValue->GetTimeStamp());
fHv[iAlias]->Fill(values[iValue]);
- printf("%s %f Dead=%d\n",fAliasNames[iAlias].Data(),values[iValue],fDeadChannel[GetOfflineChannel(iAlias)]);
+ printf("%s : %s : %f Dead=%d\n",fAliasNames[iAlias].Data(),TTimeStamp(currentTime).AsString(),values[iValue],fDeadChannel[GetOfflineChannel(iAlias)]);
iValue++;
}
CreateGraph(iAlias, aliasArr->GetEntries(), times, values); // fill graphs
+ // calculate mean and rms of the first two histos
+ // and convert index to aliroot channel
+ Int_t iChannel = GetOfflineChannel(iAlias);
+ fMeanHV[iChannel] = fHv[iAlias]->GetMean();
+ fWidthHV[iChannel] = fHv[iAlias]->GetRMS();
+
delete[] values;
delete[] times;
} else { // Treating FEE Parameters
}
}
- // calculate mean and rms of the first two histos
- // and convert index to aliroot channel
- for(int i=0;i<kNHvChannel;i++){
- Int_t iChannel = GetOfflineChannel(i);
- fMeanHV[iChannel] = fHv[i]->GetMean();
- fWidthHV[iChannel] = fHv[i]->GetRMS();
- }
-
fIsProcessed=kTRUE;
+
+ return success;
}
//_____________________________________________________________________________
sindex.Form("%d/RING%d",iSector,iRing);
fAliasNames[iAlias] += sindex;
- fHv[iAlias] = new TH1F(fAliasNames[iAlias].Data(),fAliasNames[iAlias].Data(), 2000, kHvMin, kHvMax);
+ fHv[iAlias] = new TH1F(fAliasNames[iAlias].Data(),fAliasNames[iAlias].Data(), 3000, kHvMin, kHvMax);
fHv[iAlias]->GetXaxis()->SetTitle("Hv");
iAlias++;
}
fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/WidthResolution",iCIU);
}
+ // HPTDC parameters
+ for(int iCIU = 0; iCIU<8 ; iCIU++){
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/MatchWindow",iCIU);
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/SearchWindow",iCIU);
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/TriggerCountOffset",iCIU);
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/RollOver",iCIU);
+ }
+
+ for(int iCIU = 0; iCIU<8 ; iCIU++){
+ for(int iCh=1;iCh<=8;iCh++){
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/DelayHit%d",iCIU,iCh);
+ }
+ }
+
+ for(int iCIU = 0; iCIU<8 ; iCIU++){
+ for(int iCh=1;iCh<=8;iCh++){
+ fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/DiscriThr%d",iCIU,iCh);
+ }
+ }
+
if(iAlias!=kNAliases)
AliError(Form("Number of DCS Aliases defined not correct"));