26 |
// convertex to lower case |
// convertex to lower case |
27 |
// |
// |
28 |
// MODIFICATIONS: |
// MODIFICATIONS: |
|
// |
|
|
// rev. 1.7 (S.Orsi, Roma2, 28 November 2007) |
|
|
// - TOF: + mapping S21 corrected (WM) |
|
|
// + time resolution increased to 425ps (WM) |
|
|
// + new scale factors (WM) |
|
|
// + various corrections |
|
|
// - file README removed (usage and install information are present in the file HOW-TO-DIGIT.TXT) |
|
|
// - Makefile: option "install" added |
|
|
// |
|
|
// rev. 1.6 (S.Orsi, Roma2, 31 October 2007) |
|
|
// - TOF: (Campana, Menn, Orsi) |
|
|
// + bugs fixed |
|
|
// + crc included |
|
|
// + introduction of 3 control bits in the ADC and TDC words before writing fDataTof |
|
|
// + channel map corrected (correspondence between PMT# and TDC channel) |
|
|
// + new conversion pC to ADC |
|
|
// + scaling factors to tune MC data to real ones |
|
|
// - HOW-TO-DIGIT.TXT file updated (E.Vannuccini) |
|
|
// |
|
29 |
// v. 1.5 (S.Orsi, Roma2, 11 October 2007) |
// v. 1.5 (S.Orsi, Roma2, 11 October 2007) |
30 |
// - file HOW-TO-DIGIT.TXT written (mainly by S.Bottai): contains information on how to run the chain from the DB creation to DarthVader through Digitizer, yoda and YodaProfiler |
// - file HOW-TO-DIGIT.TXT written (mainly by S.Bottai): contains information on how to run the chain from the DB creation to DarthVader through Digitizer, yoda and YodaProfiler |
31 |
// |
// |
32 |
// v. 1.4 (S.Orsi, Roma2, 11 October 2007) |
// v. 1.4 (S.Orsi, Roma2, 11 October 2007) |
33 |
// - similar to v. 1.3 |
// - similar to v. 1.3 |
34 |
// |
// |
35 |
// v. 1.3 (S.Orsi, Roma2, 11 October 2007) |
// v. 1.3 (S.Orsi, Roma2, 11 October 2007) |
36 |
// - TOF: + changes and major corrections in ADC and TDC (W.Menn, D.Campana, S.Orsi) |
// - TOF: + changes and major corrections in ADC and TDC (W.Menn, D.Campana, S.Orsi) |
78 |
#include "TMath.h" |
#include "TMath.h" |
79 |
#include "Digitizer.h" |
#include "Digitizer.h" |
80 |
|
|
81 |
|
using namespace std; |
82 |
|
|
83 |
int Error; //to be removed soon |
int Error; //to be removed soon |
84 |
|
|
85 |
// Define the names of the Fortran common blocks for the different OSs |
// Define the names of the Fortran common blocks for the different OSs |
277 |
Int_t bufsize = 64000; |
Int_t bufsize = 64000; |
278 |
Int_t optcwn = 1; |
Int_t optcwn = 1; |
279 |
|
|
280 |
|
char *DigitizerInfo(bool print); |
281 |
|
|
282 |
int main(int argc, char **argv) |
int main(int argc, char **argv) |
283 |
|
|
284 |
{ |
{ |
285 |
|
char* cha=DigitizerInfo(1); |
286 |
|
|
287 |
if (argc < 2) { |
if (argc < 2) { |
288 |
printf("Error: Pamelagp2Digits \n"); |
printf("Error: Pamelagp2Digits \n"); |
289 |
printf("Pamelagp2Digits file.hbook file.root file.pam [compress] [tolower] [lrecl] [bufsize] [optcwn] \n"); |
printf("Pamelagp2Digits file.hbook file.root file.pam [compress] [tolower] [lrecl] [bufsize] [optcwn] \n"); |
820 |
|
|
821 |
tree->Write(); |
tree->Write(); |
822 |
|
|
823 |
std::cout << "Invoking Digitizer" << endl << flush; |
cout << "Invoking Digitizer" << endl << flush; |
824 |
|
char *ndl[8],*q,*q1; |
825 |
|
q=(char*)malloc(5 *sizeof(char)); |
826 |
|
q1=(char*)malloc(5 *sizeof(char)); |
827 |
|
ndl[0]="nspe"; |
828 |
|
ndl[1]="ntof"; |
829 |
|
ndl[2]="ncat"; |
830 |
|
ndl[3]="ncas"; |
831 |
|
ndl[4]="ncar"; |
832 |
|
ndl[5]="ncal"; |
833 |
|
ndl[6]="nndd"; |
834 |
|
ndl[7]="nstr"; |
835 |
|
|
836 |
|
int nspe=200,ntof=200,ncat=50,ncas=50,ncar=100,ncal=1000,nnd=200,nstr=1000,par[8],tmp=0,t; |
837 |
|
par[0]=nspe; |
838 |
|
par[1]=ntof; |
839 |
|
par[2]=ncat; |
840 |
|
par[3]=ncas; |
841 |
|
par[4]=ncar; |
842 |
|
par[5]=ncal; |
843 |
|
par[6]=nnd; |
844 |
|
par[7]=nstr; |
845 |
|
|
846 |
|
ifstream np("vectpar.dat",ios::in); |
847 |
|
if(!np)printf("ATTENTION: Using default vector legths!\n"); |
848 |
|
while(!np.eof()){ |
849 |
|
np>>q>>tmp; |
850 |
|
if(np.eof())break; |
851 |
|
if(tmp<=0){ |
852 |
|
cout<<"ATTENTION: Length of one vector is negative or equal 0!"<<endl<<q<<"="<<tmp<<endl; |
853 |
|
break; |
854 |
|
} |
855 |
|
t=0; |
856 |
|
while(tmp){ |
857 |
|
q1=ndl[t]; |
858 |
|
if(q[0]==q1[0] && q[1]==q1[1] && q[2]==q1[2] && q[3]==q1[3]){ |
859 |
|
par[t]=tmp; |
860 |
|
tmp=0; |
861 |
|
cout<<q<<" "<<par[t]<<"["<<t<<"]"<<endl; |
862 |
|
} |
863 |
|
t++; |
864 |
|
} |
865 |
|
} |
866 |
|
nspe=par[0]; |
867 |
|
ntof=par[1]; |
868 |
|
ncat=par[2]; |
869 |
|
ncas=par[3]; |
870 |
|
ncar=par[4]; |
871 |
|
ncal=par[5]; |
872 |
|
nnd=par[6]; |
873 |
|
nstr=par[7]; |
874 |
|
|
875 |
Digitizer* dig = new Digitizer(tree,file_raw); |
Digitizer* dig = new Digitizer(tree,file_raw,nspe,ntof,ncat,ncas,ncar,ncal,nnd,nstr); |
876 |
dig->Loop(); |
dig->Loop(); |
877 |
dig->Close(); |
dig->Close(); |
878 |
|
|
879 |
std::cout << "Finished" << endl << flush; |
cout << "Finished" << endl << flush; |
880 |
|
|
881 |
} |
} |
882 |
|
|