X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSPreprocessor.cxx;h=a11849edfb787e1d287a864628fa3adbf02dcacd;hb=384c6818b9844fdbb5b62147f091cc032818e92e;hp=449c851a474aae4ae90742bd6d1c2a031ef1cbc7;hpb=e9122c68e546063bf954e669d19d61aafb2b37d5;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSPreprocessor.cxx b/PHOS/AliPHOSPreprocessor.cxx index 449c851a474..a11849edfb7 100644 --- a/PHOS/AliPHOSPreprocessor.cxx +++ b/PHOS/AliPHOSPreprocessor.cxx @@ -183,9 +183,14 @@ Bool_t AliPHOSPreprocessor::ProcessLEDRun() AliCDBMetaData emcMetaData; //Data valid from current run until updated (validityInfinite=kTRUE) - Bool_t result = Store("Calib","EmcGainPedestals",&calibData,&emcMetaData,0,kTRUE); - return result; + //Bool_t result = Store("Calib","EmcGainPedestals",&calibData,&emcMetaData,0,kTRUE); + //Store reference data + Bool_t refOK = StoreReferenceLED(list); + if(refOK) Log(Form("LED reference data successfully stored.")); + + //return result; + return kTRUE; } Float_t AliPHOSPreprocessor::HG2LG(Int_t mod, Int_t X, Int_t Z, TFile* f) @@ -193,8 +198,8 @@ Float_t AliPHOSPreprocessor::HG2LG(Int_t mod, Int_t X, Int_t Z, TFile* f) //Calculates High gain to Low gain ratio //for crystal at the position (X,Z) in the PHOS module mod. - char hname[128]; - sprintf(hname,"%d_%d_%d",mod,X,Z); + char hname[128]; TString shname = "%d_%d_%d"; + snprintf(hname,shname.Length(),shname.Data(),mod,X,Z); TH1F* h1 = (TH1F*)f->Get(hname); if(!h1) return 16.; @@ -263,7 +268,8 @@ Bool_t AliPHOSPreprocessor::FindBadChannelsEmc() continue; } - result[i] *= DoFindBadChannelsEmc(system[i],list,badMap); + Bool_t findBadOK = DoFindBadChannelsEmc(system[i],list,badMap); + result[i] *= findBadOK; // Store the bad channels map. @@ -276,7 +282,8 @@ Bool_t AliPHOSPreprocessor::FindBadChannelsEmc() path = "HLT"; // Data valid from current run until being updated (validityInfinite=kTRUE) - result[i] *= Store(path.Data(), "EmcBadChannels", &badMap, &md, 0, kTRUE); + Bool_t storeOK = Store(path.Data(), "EmcBadChannels", &badMap, &md, 0, kTRUE); + result[i] *= storeOK; } @@ -293,7 +300,6 @@ Bool_t AliPHOSPreprocessor::DoFindBadChannelsEmc(Int_t system, TList* list, AliP TIter iter(list); TObjString *source; - char hnam[80]; TH1F* h1=0; const Float_t fQualityCut = 1.; @@ -319,9 +325,10 @@ Bool_t AliPHOSPreprocessor::DoFindBadChannelsEmc(Int_t system, TList* list, AliP for(Int_t iX=0; iX<64; iX++) { for(Int_t iZ=0; iZ<56; iZ++) { - sprintf(hnam,"%d_%d_%d_%d",mod,iX,iZ,1); // high gain + TString hnam; + hnam += mod; hnam += "_"; hnam += iX; hnam += "_"; hnam += iZ; hnam += "_"; hnam += "1"; h1 = (TH1F*)f.Get(hnam); - + if(h1) { Double_t mean = h1->GetMean(); @@ -417,10 +424,10 @@ Bool_t AliPHOSPreprocessor::CalibrateEmc() //Store EMC calibration data AliCDBMetaData emcMetaData; - if(lastCalib) - result[i] *= Store(path.Data(), "EmcGainPedestals", lastCalib, &emcMetaData, 0, kFALSE); - else - result[i] *= Store(path.Data(), "EmcGainPedestals", &calibData, &emcMetaData, 0, kFALSE); + // if(lastCalib) + // result[i] *= Store(path.Data(), "EmcGainPedestals", lastCalib, &emcMetaData, 0, kFALSE); + // else + // result[i] *= Store(path.Data(), "EmcGainPedestals", &calibData, &emcMetaData, 0, kFALSE); //Store reference data Bool_t refOK = StoreReferenceEmc(system[i],list); @@ -449,6 +456,20 @@ Bool_t AliPHOSPreprocessor::StoreReferenceEmc(Int_t system, TList* list) } +Bool_t AliPHOSPreprocessor::StoreReferenceLED(TList* list) +{ + //Put HG/LG histograms to the reference storage. + + TObjString *source = dynamic_cast (list->First()); + if(!source) return kFALSE; + + TString fileName = GetFile(kDAQ, "LED", source->GetName()); + + Bool_t resultRef = StoreReferenceFile(fileName.Data(),"LEDRefPHOS.root"); + return resultRef; + +} + Bool_t AliPHOSPreprocessor::DoCalibrateEmc(Int_t system, TList* list, const AliPHOSEmcBadChannelsMap* badMap, AliPHOSEmcCalibData& calibData) { @@ -525,7 +546,7 @@ Bool_t AliPHOSPreprocessor::DoCalibrateEmc(Int_t system, TList* list, const AliP const Int_t md = ((TObjString*)tks->At(0))->GetString().Atoi(); const Int_t X = ((TObjString*)tks->At(1))->GetString().Atoi(); const Int_t Z = ((TObjString*)tks->At(2))->GetString().Atoi(); - + delete tks; if(badMap) { if(badMap->IsBadChannel(5-md,Z+1,X+1)) { AliInfo(Form("Cell mod=%d col=%d row=%d is bad. Histogram %s rejected.", @@ -552,12 +573,14 @@ Bool_t AliPHOSPreprocessor::DoCalibrateEmc(Int_t system, TList* list, const AliP Double_t refMean=hRef->GetMean(); // Calculates relative calibration coefficients for all non-zero channels + + TString shnam = "%d_%d_%d_1"; for(Int_t mod=0; mod