void CreateNoiseRunHisto(Int_t iLDC=0){ // macro to create histogram as if from pulser data AliTOFGeometry * geom = new AliTOFGeometry(); AliTOFDecoder * decoder = new AliTOFDecoder(); Int_t array0[2160]; Int_t array1[2208]; Int_t array2[2160]; Int_t array3[2208]; Int_t array4[2160]; Int_t array5[2208]; // simulating data from LDC reading DDL # iLDC*6+{0,1,2,3,4,5} Int_t iDDL[6]; for (Int_t j=0;j<6;j++){ iDDL[j]=j+iLDC*6; } decoder->GetArrayDDL(array0,iDDL[0]); cout << " DDL " << iDDL[0] << " done " << endl; decoder->GetArrayDDL(array1,iDDL[1]); cout << " DDL " << iDDL[1] << " done " << endl; decoder->GetArrayDDL(array2,iDDL[2]); cout << " DDL " << iDDL[2] << " done " << endl; decoder->GetArrayDDL(array3,iDDL[3]); cout << " DDL " << iDDL[3] << " done " << endl; decoder->GetArrayDDL(array4,iDDL[4]); cout << " DDL " << iDDL[4] << " done " << endl; decoder->GetArrayDDL(array5,iDDL[5]); cout << " DDL " << iDDL[5] << " done " << endl; // debugging printings for (Int_t i=0;i<2160;i++){ cout << " array0[" << i << "] = " << array0[i] << endl; cout << " array2[" << i << "] = " << array2[i] << endl; cout << " array4[" << i << "] = " << array4[i] << endl; } for (Int_t i=0;i<2208;i++){ cout << " array1[" << i << "] = " << array1[i] << endl; cout << " array3[" << i << "] = " << array3[i] << endl; cout << " array5[" << i << "] = " << array5[i] << endl; } static const Int_t size = AliTOFGeometry::NPadXSector()*AliTOFGeometry::NSectors(); cout << " size = " << size << endl; TH1F::AddDirectory(0); TH1F * htofNoise = new TH1F("hTOFnoise","histo with signals on TOF during noise", size,-0.5,size-0.5); for (Int_t ibin=1;ibin<=size;ibin++){ htofNoise->SetBinContent(ibin,-1); } for (Int_t i=0;i<2160;i++){ if (htofNoise->GetBinContent(array0[i]+1)<0) htofNoise->SetBinContent(array0[i]+1,0); if (htofNoise->GetBinContent(array2[i]+1)<0) htofNoise->SetBinContent(array2[i]+1,0); if (htofNoise->GetBinContent(array4[i]+1)<0) htofNoise->SetBinContent(array4[i]+1,0); } for (Int_t i=0;i<2208;i++){ if (htofNoise->GetBinContent(array1[i]+1)<0) htofNoise->SetBinContent(array1[i]+1,0); if (htofNoise->GetBinContent(array3[i]+1)<0) htofNoise->SetBinContent(array3[i]+1,0); if (htofNoise->GetBinContent(array5[i]+1)<0) htofNoise->SetBinContent(array5[i]+1,0); } const Int_t ndead =3; Int_t idead[18]; // indexes of dead channels Float_t ifloatdead[ndead]; // indexes of dead channels TRandom *rnd = new TRandom(4357); TDatime *dt=new TDatime(); TDatime ciccio; rnd->SetSeed(ciccio.Get()); rnd->RndmArray(ndead,ifloatdead); for (Int_t i=0;iFill(i,10000); } } TCanvas *c = new TCanvas("c","c",-2,30,500,500); htofNoise->Draw(); char filename[100]; sprintf(filename,"$ALICE_ROOT/TOF/ShuttleInput/TOFoutNoiseLDC_%02i.root",iLDC); TFile *fileout = new TFile(filename,"RECREATE"); htofNoise->Write(""); fileout->Close(); }