X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSRcuDA1.cxx;h=652cf426a4e0013e982b044faaecf026632673b2;hb=a07b6be8666c9c7f85584d6a4ed8048beed14910;hp=18b91395b35f42027749f979f9d88dd7150c4f02;hpb=2d03aabfa31c460bd95dd1559db769fff0290d89;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSRcuDA1.cxx b/PHOS/AliPHOSRcuDA1.cxx index 18b91395b35..652cf426a4e 100644 --- a/PHOS/AliPHOSRcuDA1.cxx +++ b/PHOS/AliPHOSRcuDA1.cxx @@ -17,15 +17,23 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(), // Y - RCU number. If no RCU specified (rcu<0), file name is simply // PHOS_ModuleX_Calib.root. - char name[128]; - if(rcu<0) sprintf(name,"PHOS_Module%d_Calib",fMod); - else sprintf(name,"PHOS_Module%d_RCU%d_Calib",fMod,fRCU); - SetName(name); + char name[128]; TString sname; + + if(rcu<0) { + sname="PHOS_Module%d_Calib"; + snprintf(name,sname.Length(),sname.Data(),fMod); + } + else { + sname="PHOS_Module%d_RCU%d_Calib"; + snprintf(name,sname.Length(),sname.Data(),fMod,fRCU); + } + SetName(name); SetTitle("Calibration Detector Algorithm"); - char rootname[128]; - sprintf(rootname,"%s.root",GetName()); + char rootname[128]; + TString srootname="%s.root"; + snprintf(rootname,srootname.Length(),srootname.Data(),GetName()); fHistoFile = new TFile(rootname,"update"); fHistoArray.SetName("histo_container"); @@ -33,11 +41,14 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(), char hname[128]; TH1F* hist1=0; TH2F* hist2=0; + TString shname; for(Int_t iX=0; iX<64; iX++) { for(Int_t iZ=0; iZ<56; iZ++) { + + shname = "%d_%d_%d"; + snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ); - sprintf(hname,"%d_%d_%d",fMod,iX,iZ); hist1 = (TH1F*)fHistoFile->Get(hname); if(hist1) { fHgLgRatio[iX][iZ] = hist1; @@ -47,7 +58,10 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu) : TNamed(), fHgLgRatio[iX][iZ] = 0; for(Int_t iGain=0; iGain<2; iGain++) { - sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain); + + shname = "%d_%d_%d_%d"; + snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain); + hist2 = (TH2F*)fHistoFile->Get(hname); if(hist2) { fTimeEnergy[iX][iZ][iGain] = hist2; @@ -71,22 +85,33 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu, TObjArray* oldTimeEnergy) // oldTimeEnergy is an array of histograms kept from the previous run. // By default the final histograms will not be saved to the root file. - char name[128]; - if(rcu<0) sprintf(name,"PHOS_Module%d_Calib",fMod); - else sprintf(name,"PHOS_Module%d_RCU%d_Calib",fMod,fRCU); - SetName(name); + char name[128]; TString sname; + + if(rcu<0) { + sname="PHOS_Module%d_Calib"; + snprintf(name,sname.Length(),sname.Data(),fMod); + } + else { + sname="PHOS_Module%d_RCU%d_Calib"; + snprintf(name,sname.Length(),sname.Data(),fMod,fRCU); + } + SetName(name); SetTitle("Calibration Detector Algorithm"); + fHistoArray.SetName("histo_container"); char hname[128]; TH1F* hist1=0; TH2F* hist2=0; + TString shname; for(Int_t iX=0; iX<64; iX++) { for(Int_t iZ=0; iZ<56; iZ++) { - sprintf(hname,"%d_%d_%d",fMod,iX,iZ); + shname = "%d_%d_%d"; + snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ); + if(oldTimeEnergy) hist1 = (TH1F*)oldTimeEnergy->FindObject(hname); if(hist1) { @@ -97,7 +122,10 @@ AliPHOSRcuDA1::AliPHOSRcuDA1(Int_t module, Int_t rcu, TObjArray* oldTimeEnergy) fHgLgRatio[iX][iZ] = 0; for(Int_t iGain=0; iGain<2; iGain++) { - sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain); + + shname = "%d_%d_%d_%d"; + snprintf(hname,shname.Length(),shname.Data(),fMod,iX,iZ,iGain); + if(oldTimeEnergy) hist2 = (TH2F*)oldTimeEnergy->FindObject(hname); if(hist2) { @@ -135,8 +163,8 @@ void AliPHOSRcuDA1::FillHistograms(Float_t e[64][56][2], Float_t t[64][56][2]) // the correspondent array entry should be filled by zero. // WARNING: this function should be called once per event! - char hname[128]; - char htitl[128]; + TString hname; + TString htitle; for(Int_t iX=0; iX<64; iX++) { for (Int_t iZ=0; iZ<56; iZ++) { @@ -151,9 +179,11 @@ void AliPHOSRcuDA1::FillHistograms(Float_t e[64][56][2], Float_t t[64][56][2]) } else { - sprintf(hname,"%d_%d_%d",fMod,iX,iZ); - sprintf(htitl,"HG/LG ratio for crystal %d_%d_%d",fMod,iX,iZ); - fHgLgRatio[iX][iZ] = new TH1F(hname,htitl,400,14.,18.); + hname.Clear(); htitle.Clear(); + hname += fMod; hname += "_"; hname += iX; hname += "_"; hname += iZ; + htitle += "HG/LG ratio for crystal "; htitle += hname; + + fHgLgRatio[iX][iZ] = new TH1F(hname,htitle,400,14.,18.); // printf("iX=%d iZ=%d,e[iX][iZ][1]=%.3f,e[iX][iZ][0]=%.3f\n", // iX,iZ,e[iX][iZ][1],e[iX][iZ][0]); fHgLgRatio[iX][iZ]->Fill(e[iX][iZ][1]/e[iX][iZ][0]); @@ -169,18 +199,22 @@ void AliPHOSRcuDA1::FillHistograms(Float_t e[64][56][2], Float_t t[64][56][2]) if(fTimeEnergy[iX][iZ][iGain]) fTimeEnergy[iX][iZ][iGain]->Fill(e[iX][iZ][iGain],t[iX][iZ][iGain]); - else { - sprintf(hname,"%d_%d_%d_%d",fMod,iX,iZ,iGain); - sprintf(htitl,"Energy vs TOF for crystal %d_%d_%d and gain %d",fMod,iX,iZ,iGain); - fTimeEnergy[iX][iZ][iGain] = new TH2F(hname,htitl,100,0.,1024.,50,0.,50.); - fTimeEnergy[iX][iZ][iGain]->Fill(e[iX][iZ][iGain],t[iX][iZ][iGain]); - fHistoArray.Add(fTimeEnergy[iX][iZ][iGain]); - } + else + { + hname.Clear(); htitle.Clear(); + hname += fMod; hname += "_"; hname += iX; hname += "_"; hname += iZ; + htitle = "Energy vs TOF for crystal "; htitle += hname; htitle += " and gain "; htitle += iGain; + hname += "_"; hname += iGain; + + fTimeEnergy[iX][iZ][iGain] = new TH2F(hname,htitle,100,0.,1024.,50,0.,50.); + fTimeEnergy[iX][iZ][iGain]->Fill(e[iX][iZ][iGain],t[iX][iZ][iGain]); + fHistoArray.Add(fTimeEnergy[iX][iZ][iGain]); + } } - + } } - + } //------------------------------------------------------------------- @@ -206,9 +240,9 @@ void AliPHOSRcuDA1::SetWriteToFile(Bool_t write) } if(!fHistoFile) { - char rootname[128]; - sprintf(rootname,"%s.root",GetName()); - fHistoFile = new TFile(rootname,"update"); + TString rootname(GetName()); + rootname += ".root"; + fHistoFile = new TFile(rootname.Data(),"update"); } fWriteToFile = write;