void CreatePulserRunHisto(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);
TH1S * htofPulser = new TH1S("hTOFpulser","histo with signals on TOF during pulser", size,-0.5,size-0.5);
for (Int_t ibin=1;ibin<=size;ibin++){
htofPulser->SetBinContent(ibin,-1);
}
for (Int_t i=0;i<2160;i++){
if (htofPulser->GetBinContent(array0[i]+1)<0) htofPulser->SetBinContent(array0[i]+1,10000);
if (htofPulser->GetBinContent(array2[i]+1)<0) htofPulser->SetBinContent(array2[i]+1,10000);
if (htofPulser->GetBinContent(array4[i]+1)<0) htofPulser->SetBinContent(array4[i]+1,10000);
}
for (Int_t i=0;i<2208;i++){
if (htofPulser->GetBinContent(array1[i]+1)<0) htofPulser->SetBinContent(array1[i]+1,10000);
if (htofPulser->GetBinContent(array3[i]+1)<0) htofPulser->SetBinContent(array3[i]+1,10000);
if (htofPulser->GetBinContent(array5[i]+1)<0) htofPulser->SetBinContent(array5[i]+1,10000);
}
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 ciccio;
//cout << " time = " << ciccio.Get() << endl;
rnd->SetSeed(ciccio.Get());
rnd->RndmArray(ndead,ifloatdead);
for (Int_t i=0;i<ndead;i++){
Int_t index = Int_t(ifloatdead[i]*2160);
idead[i*3] = array0[index];
idead[i*3+1] = array2[index];
idead[i*3+2] = array4[index];
cout << " channels " << idead[i*3] << ", " << idead[i*3+1] << ", " << idead[i*3+2] << ", " << " will be skipped " << endl;
}
for (Int_t i=0;i<ndead;i++){
Int_t index = Int_t(ifloatdead[i]*2208);
idead[i*3+9] = array1[index];
idead[i*3+9+1] = array3[index];
idead[i*3+9+2] = array5[index];
cout << " channels " << idead[i*3+9] << ", " << idead[i*3+9+1] << ", " << idead[i*3+9+2] << ", " << " will be skipped " << endl;
}
for (Int_t i=0;i<ndead*6;i++){
cout << " idead[" << i << "] = " << idead[i] << endl;
}
Bool_t tobeskipped=kFALSE;
for (Int_t i=0;i<size;i++){
tobeskipped = kFALSE;
for (Int_t j=0;j<ndead*6;j++){
if (i==idead[j]) {
tobeskipped=kTRUE;
cout << " skipping channel " << i << " with idead = " << idead[j] << endl;
break;
}
}
if (tobeskipped && (htofPulser->GetBinContent(i+1)!=-1)) htofPulser->SetBinContent(i+1,0);
else {
// cout << " filling channel " << i << endl;
// htofPulser->Fill(i,10000);
}
}
TCanvas *c = new TCanvas("c","c",-2,30,500,500);
htofPulser->Draw();
char filename[100];
sprintf(filename,"$ALICE_ROOT/TOF/ShuttleInput/TOFoutPulserLDC_%02i.root",iLDC);
TFile *fileout = new TFile(filename,"RECREATE");
htofPulser->Write("hTOFpulser");
fileout->Close();
}
CreatePulserRunHisto.C:10 CreatePulserRunHisto.C:11 CreatePulserRunHisto.C:12 CreatePulserRunHisto.C:13 CreatePulserRunHisto.C:14 CreatePulserRunHisto.C:15 CreatePulserRunHisto.C:16 CreatePulserRunHisto.C:17 CreatePulserRunHisto.C:18 CreatePulserRunHisto.C:19 CreatePulserRunHisto.C:20 CreatePulserRunHisto.C:21 CreatePulserRunHisto.C:22 CreatePulserRunHisto.C:23 CreatePulserRunHisto.C:24 CreatePulserRunHisto.C:25 CreatePulserRunHisto.C:26 CreatePulserRunHisto.C:27 CreatePulserRunHisto.C:28 CreatePulserRunHisto.C:29 CreatePulserRunHisto.C:30 CreatePulserRunHisto.C:31 CreatePulserRunHisto.C:32 CreatePulserRunHisto.C:33 CreatePulserRunHisto.C:34 CreatePulserRunHisto.C:35 CreatePulserRunHisto.C:36 CreatePulserRunHisto.C:37 CreatePulserRunHisto.C:38 CreatePulserRunHisto.C:39 CreatePulserRunHisto.C:40 CreatePulserRunHisto.C:41 CreatePulserRunHisto.C:42 CreatePulserRunHisto.C:43 CreatePulserRunHisto.C:44 CreatePulserRunHisto.C:45 CreatePulserRunHisto.C:46 CreatePulserRunHisto.C:47 CreatePulserRunHisto.C:48 CreatePulserRunHisto.C:49 CreatePulserRunHisto.C:50 CreatePulserRunHisto.C:51 CreatePulserRunHisto.C:52 CreatePulserRunHisto.C:53 CreatePulserRunHisto.C:54 CreatePulserRunHisto.C:55 CreatePulserRunHisto.C:56 CreatePulserRunHisto.C:57 CreatePulserRunHisto.C:58 CreatePulserRunHisto.C:59 CreatePulserRunHisto.C:60 CreatePulserRunHisto.C:61 CreatePulserRunHisto.C:62 CreatePulserRunHisto.C:63 CreatePulserRunHisto.C:64 CreatePulserRunHisto.C:65 CreatePulserRunHisto.C:66 CreatePulserRunHisto.C:67 CreatePulserRunHisto.C:68 CreatePulserRunHisto.C:69 CreatePulserRunHisto.C:70 CreatePulserRunHisto.C:71 CreatePulserRunHisto.C:72 CreatePulserRunHisto.C:73 CreatePulserRunHisto.C:74 CreatePulserRunHisto.C:75 CreatePulserRunHisto.C:76 CreatePulserRunHisto.C:77 CreatePulserRunHisto.C:78 CreatePulserRunHisto.C:79 CreatePulserRunHisto.C:80 CreatePulserRunHisto.C:81 CreatePulserRunHisto.C:82 CreatePulserRunHisto.C:83 CreatePulserRunHisto.C:84 CreatePulserRunHisto.C:85 CreatePulserRunHisto.C:86 CreatePulserRunHisto.C:87 CreatePulserRunHisto.C:88 CreatePulserRunHisto.C:89 CreatePulserRunHisto.C:90 CreatePulserRunHisto.C:91 CreatePulserRunHisto.C:92 CreatePulserRunHisto.C:93 CreatePulserRunHisto.C:94 CreatePulserRunHisto.C:95 CreatePulserRunHisto.C:96 CreatePulserRunHisto.C:97 CreatePulserRunHisto.C:98 CreatePulserRunHisto.C:99 CreatePulserRunHisto.C:100 CreatePulserRunHisto.C:101 CreatePulserRunHisto.C:102 CreatePulserRunHisto.C:103 CreatePulserRunHisto.C:104 CreatePulserRunHisto.C:105 CreatePulserRunHisto.C:106 CreatePulserRunHisto.C:107 CreatePulserRunHisto.C:108 CreatePulserRunHisto.C:109 CreatePulserRunHisto.C:110 CreatePulserRunHisto.C:111 CreatePulserRunHisto.C:112 CreatePulserRunHisto.C:113 CreatePulserRunHisto.C:114 CreatePulserRunHisto.C:115 CreatePulserRunHisto.C:116