--- PamelaDigitizer/Pamelagp2Digits.cxx 2007/10/31 18:17:59 1.6 +++ PamelaDigitizer/Pamelagp2Digits.cxx 2009/08/11 14:56:31 1.13 @@ -26,17 +26,6 @@ // convertex to lower case // // MODIFICATIONS: -// -// v. 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) -// // v. 1.5 (S.Orsi, Roma2, 11 October 2007) // - 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 // @@ -74,22 +63,11 @@ // ///////////////////////////////////////////////////////////////////////// -#include -#include -#include -#include "Riostream.h" -#include "TFile.h" -#include "TDirectory.h" -#include "TTree.h" -#include "TLeafI.h" -#include "TH1.h" -#include "TH2.h" -#include "TProfile.h" -#include "TGraph.h" -#include "TMath.h" #include "Digitizer.h" -int Error; //to be removed soon +using namespace std; + +//int Error; //to be removed soon // Define the names of the Fortran common blocks for the different OSs @@ -286,10 +264,13 @@ Int_t bufsize = 64000; Int_t optcwn = 1; +char *DigitizerInfo(bool print); int main(int argc, char **argv) { + // char* cha=DigitizerInfo(1); + if (argc < 2) { printf("Error: Pamelagp2Digits \n"); printf("Pamelagp2Digits file.hbook file.root file.pam [compress] [tolower] [lrecl] [bufsize] [optcwn] \n"); @@ -307,7 +288,8 @@ void *qq = iq; q = (float*)qq; char *file_in=argv[1]; - char *file_out = " "; + char *file_out = new char[512]; + strcpy(file_out," "); char *file_raw; Int_t compress = 1; @@ -538,7 +520,8 @@ } h1->SetEntries(nentries); h1->Write(); - delete h1; + // delete h1; + h1->Delete(); } //____________________________________________________________________________ void convert_cwn(Int_t id,char* file_raw) @@ -826,13 +809,65 @@ tree->Write(); - std::cout << "Invoking Digitizer" << endl << flush; - - Digitizer* dig = new Digitizer(tree,file_raw); + cout << "Invoking Digitizer" << endl << flush; + const char *ndl[8]; + char *q,*q1; + q=(char*)malloc(5 *sizeof(char)); + q1=(char*)malloc(5 *sizeof(char)); + ndl[0]="nspe"; + ndl[1]="ntof"; + ndl[2]="ncat"; + ndl[3]="ncas"; + ndl[4]="ncar"; + ndl[5]="ncal"; + ndl[6]="nndd"; + ndl[7]="nstr"; + + int nspe=200,ntof=200,ncat=50,ncas=50,ncar=100,ncal=1000,nnd=200,nstr=1000,par[8],tmp=0,t; + par[0]=nspe; + par[1]=ntof; + par[2]=ncat; + par[3]=ncas; + par[4]=ncar; + par[5]=ncal; + par[6]=nnd; + par[7]=nstr; + + ifstream np("vectpar.dat",ios::in); + if(!np)printf("ATTENTION: Using default vector legths!\n"); + else{ + while(!np.eof()){ + np>>q>>tmp; + if(np.eof())break; + if(tmp<=0){ + cout<<"ATTENTION: Length of one vector is negative or equal 0!"<Loop(); dig->Close(); - std::cout << "Finished" << endl << flush; + cout << "Finished" << endl; }