SetName(namst.Data());
SetTitle(namst.Data());
Reset();
- for(Int_t i=0; i<2; i++){
- fReferenceValue[i] = 0.;
+ for(Int_t i=0; i<4; i++){
fSector[i] = 0;
fGain[i] = 0;
fPMRefValue[i] = 0.;
SetTitle(calibda.GetName());
Reset();
for(int t=0; t<2; t++){
- fReferenceValue[t] = calibda.GetReferenceValue(t);
fSector[t] = calibda.GetSector(t);
fGain[t] = calibda.GetGain(t);
fPMRefValue[t] = calibda.GetPMRefValue(t);
SetName(calibda.GetName());
SetTitle(calibda.GetName());
Reset();
- for(int t=0; t<2; t++){
- fReferenceValue[t] = calibda.GetReferenceValue(t);
+ for(int t=0; t<4; t++){
fSector[t] = calibda.GetSector(t);
fGain[t] = calibda.GetGain(t);
fPMRefValue[t] = calibda.GetPMRefValue(t);
void AliZDCLaserCalib::Reset()
{
// Reset
- memset(fReferenceValue,0,2*sizeof(Float_t));
- memset(fSector,0,2*sizeof(Float_t));
- memset(fGain,0,2*sizeof(Float_t));
- memset(fPMRefValue,0,2*sizeof(Float_t));
- memset(fPMRefWidth,0,2*sizeof(Float_t));
+ memset(fSector,0,4*sizeof(Float_t));
+ memset(fGain,0,4*sizeof(Float_t));
+ memset(fPMRefValue,0,4*sizeof(Float_t));
+ memset(fPMRefWidth,0,4*sizeof(Float_t));
}
{
// Printing of calibration object
printf("\n\n ******************* AliZDCLaserCalib object *******************\n");
- for(Int_t i=0; i<2; i++){
+ for(Int_t i=0; i<4; i++){
if(fSector[i]==1.) printf(" side C ->");
else if(fSector[i]==4.) printf(" side A->");
- printf(" Ref.Values %1.2f Gain %1.0f",fReferenceValue[i], fGain[i]);
+ printf(" Gain chain %1.0f",fGain[i]);
printf(" PMRefValue = %1.0f PMRefWidth = %1.0f\n",fPMRefValue[i],fPMRefWidth[i]);
}
printf(" ***************************************************************\n\n");
void Reset();
virtual void Print(Option_t *) const;
//
- Float_t GetReferenceValue(Int_t i) const {return fReferenceValue[i];}
Float_t GetSector(Int_t i) const {return fSector[i];}
Float_t GetGain(Int_t i) const {return fGain[i];}
Float_t GetPMRefValue(Int_t i) const {return fPMRefValue[i];}
Float_t GetPMRefWidth(Int_t i) const {return fPMRefWidth[i];}
- void SetReferenceValue(Int_t i, Float_t ival) {fReferenceValue[i] = ival;}
void SetSector(Int_t i, Float_t ival) {fSector[i] = ival;}
void SetGain(Int_t i, Float_t ival) {fGain[i] = ival;}
void SetfPMRefValue(Int_t i, Float_t ival){fPMRefValue[i] = ival;}
protected:
// 2 reference ch. x 2 gain chain
- Float_t fReferenceValue[2]; // Reference (inital) value for PM Ref
- Float_t fSector[2]; // sector fSector=1(side C), 4(sideA)
- Float_t fGain[2]; // fGain=0 (high gain chain), 1 (low gain chain)
- Float_t fPMRefValue[2]; // ADC meanvalue
- Float_t fPMRefWidth[2]; // ADC spectrum width
+ Float_t fSector[4]; // sector fSector=1(side C), 4(sideA)
+ Float_t fGain[4]; // fGain=0 (high gain chain), 1 (low gain chain)
+ Float_t fPMRefValue[4]; // ADC spectrum mean value
+ Float_t fPMRefWidth[4]; // ADC spectrum width
//
- ClassDef(AliZDCLaserCalib,1) // ZDC LASER calibration data
+ ClassDef(AliZDCLaserCalib,2) // ZDC LASER calibration data
};
#endif
UInt_t AliZDCPreprocessor::ProcessChMap(TString runType)
{
// Writing channel map in the OCDB
- TList* daqSource;
+ TList* daqSource=0;
if(runType.CompareTo("STANDALONE_PEDESTAL"))
daqSource = GetFileSources(kDAQ, "PEDESTALS");
else if(runType.CompareTo("STANDALONE_LASER"))
TIter iter(daqSource);
TObjString* source = 0;
Int_t isou=0;
+ Int_t res=999;
while((source = dynamic_cast<TObjString*> (iter.Next()))){
Log(Form("\n\t Getting file #%d\n",++isou));
TString fileName;
metaData.SetResponsible("Chiara Oppedisano");
metaData.SetComment("Filling AliZDCChMap object");
//
- Int_t res = Store("Calib","ChMap",mapCalib, &metaData, 0, 1);
- return res;
+ res = Store("Calib","ChMap",mapCalib, &metaData, 0, 1);
}
delete daqSource; daqSource=0;
+
+ return res;
}
}
Log(Form("File %s connected to process data from LASER events", laserFileName));
//
- Float_t ivalRef[2], ivalRead[2][4];
- for(Int_t j=0; j<3; j++){
- if(j==0){
- for(Int_t k=0; k<2; k++){
- fscanf(file,"%f",&ivalRef[k]);
- lCalib->SetReferenceValue(k,ivalRef[k]);
- }
- }
- else{
- for(Int_t k=0; k<4; k++){
- fscanf(file,"%f",&ivalRead[j-1][k]);
- printf(" %d %1.0f ",k, ivalRead[j-1][k]);
- }
- lCalib->SetSector(j-1, ivalRead[j-1][0]);
- lCalib->SetGain(j-1, ivalRead[j-1][1]);
- lCalib->SetfPMRefValue(j-1, ivalRead[j-1][2]);
- lCalib->SetfPMRefWidth(j-1, ivalRead[j-1][3]);
- }
- printf("\n");
+ Float_t ivalRead[4][2];
+ for(Int_t j=0; j<4; j++){
+ for(Int_t k=0; k<2; k++){
+ fscanf(file,"%f",&ivalRead[j][k]);
+ //printf(" %d %1.0f ",k, ivalRead[j][k]);
+ }
+ if(j==0 || j==1){
+ lCalib->SetGain(j, 0);
+ if(j==0) lCalib->SetSector(j, 1);
+ else lCalib->SetSector(j, 4);
+ }
+ else if(j==2 || j==3){
+ lCalib->SetGain(j, 1);
+ if(j==2) lCalib->SetSector(j, 1);
+ else lCalib->SetSector(j, 4);
+ }
+ lCalib->SetfPMRefValue(j, ivalRead[j][0]);
+ lCalib->SetfPMRefWidth(j, ivalRead[j][1]);
}
fclose(file);
}
Float_t xMaxRef[4], maxXvalRef[4], xlowRef[4];
Float_t meanRef[2], sigmaRef[2];
TF1 *funRef[4];
- //
+
+ // ~~~~~~~~ PM Ref side C high gain chain ~~~~~~~~
maxBinRef[0] = hPMRefChg->GetMaximumBin();
nBinRef[0] = (hPMRefChg->GetXaxis())->GetNbins();
xMaxRef[0] = (hPMRefChg->GetXaxis())->GetXmax();
maxXvalRef[0] = maxBinRef[0]*xMaxRef[0]/nBinRef[0];
- //
+ //
if(maxXvalRef[0]-100.<0.) {xlowRef[0]=0.;}
else xlowRef[0] = maxXvalRef[0];
hPMRefChg->Fit("gaus","Q","",xlowRef[0],maxXvalRef[0]+100.);
funRef[0] = hPMRefChg->GetFunction("gaus");
meanRef[0] = (Float_t) (funRef[0]->GetParameter(1));
sigmaRef[0] = (Float_t) (funRef[0]->GetParameter(2));
- //
+
+ // ~~~~~~~~ PM Ref side A high gain chain ~~~~~~~~
maxBinRef[1] = hPMRefAhg->GetMaximumBin();
nBinRef[1] = (hPMRefAhg->GetXaxis())->GetNbins();
xMaxRef[1] = (hPMRefAhg->GetXaxis())->GetXmax();
funRef[1] = hPMRefAhg->GetFunction("gaus");
meanRef[1] = (Float_t) (funRef[1]->GetParameter(1));
sigmaRef[1] = (Float_t) (funRef[1]->GetParameter(2));
- //
+
+ // ~~~~~~~~ PM Ref side C low gain chain ~~~~~~~~
maxBinRef[2] = hPMRefClg->GetMaximumBin();
nBinRef[2] = (hPMRefClg->GetXaxis())->GetNbins();
xMaxRef[2] = (hPMRefClg->GetXaxis())->GetXmax();
funRef[2] = hPMRefClg->GetFunction("gaus");
meanRef[2] = (Float_t) (funRef[2]->GetParameter(1));
sigmaRef[2] = (Float_t) (funRef[2]->GetParameter(2));
- //
+
+ // ~~~~~~~~ PM Ref side A low gain chain ~~~~~~~~
maxBinRef[3] = hPMRefAlg->GetMaximumBin();
nBinRef[3] = (hPMRefAlg->GetXaxis())->GetNbins();
xMaxRef[3] = (hPMRefAlg->GetXaxis())->GetXmax();