/[PAMELA software]/PamelaDigitizer/Pamelagp2Digits.cxx
ViewVC logotype

Diff of /PamelaDigitizer/Pamelagp2Digits.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by orsi, Thu Oct 11 11:29:25 2007 UTC revision 1.10 by pamelats, Fri Jun 6 15:16:08 2008 UTC
# Line 4  Line 4 
4  //      The conversion is done using a slightly patched version of  //      The conversion is done using a slightly patched version of
5  //      Rene Brun's h2root.  //      Rene Brun's h2root.
6  //  //
7  //      Created : Jan Conrad (conrad@particle.kth.se)  //      Created : 2006 Jan Conrad  (conrad@particle.kth.se)
8  //      Modified: Silvio Orsi (silvio.orsi@roma2.infn.it)  //      Modified: 2007 Silvio Orsi (silvio.orsi@roma2.infn.it)
9  //  //
10  //  //
11  //  HOWTO (RECOMMENDED):  //  HOWTO (RECOMMENDED):
12  //  ./ Pamelagp2Digits filename.his  //  ./ Pamelagp2Digits filename.his
13  //  It generates filename.pam (PAMELA raw data) and filename.gp.root (sim info)  //  It generates filename.pam (PAMELA raw data) and filename.gp.root (sim info)
14  //    //  
15  //  NB: more details are present in the file HOW-TO.TXT  //  NB: more details are present in the file HOW-TO-DIGIT.TXT
16  //  //
17  //  HOWTO (only for testing purposes)  //  HOWTO (only for testing purposes)
18  //  Pamelagp2Digits hbook_filename root_filename  raw_filename compress tolower  //  Pamelagp2Digits hbook_filename root_filename  raw_filename compress tolower
# Line 26  Line 26 
26  //                convertex to lower case  //                convertex to lower case
27  //  //
28  //  MODIFICATIONS:  //  MODIFICATIONS:
29    //  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
31    //
32    //  v. 1.4 (S.Orsi, Roma2, 11 October 2007)
33    //  - 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)
# Line 36  Line 41 
41  //  - S4: + minor bugs fixed (S.Borisov)  //  - S4: + minor bugs fixed (S.Borisov)
42  //        + the routine DigitizeS4() is now inserted in the code. For DV versions earlier than October 2007, the option "-S4" is still needed because S4 calibration is not present  //        + the routine DigitizeS4() is now inserted in the code. For DV versions earlier than October 2007, the option "-S4" is still needed because S4 calibration is not present
43  //  - corrected severe bug that caused yoda to process only part of large data files (file.pam). S4 data were written to file even if the DigitizeS4() routine was not called. Previous versions of the digitizer should have crashed always, but unexpectedly worked on small files.  //  - corrected severe bug that caused yoda to process only part of large data files (file.pam). S4 data were written to file even if the DigitizeS4() routine was not called. Previous versions of the digitizer should have crashed always, but unexpectedly worked on small files.
44  //  - 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. The file is included only from release 1.5
45  //  - digitizer version numbers modified according to CVS repository (v1.00->v1.1, v1.01->v1.2)  //  - digitizer version numbers modified according to CVS repository (v1.00->v1.1, v1.01->v1.2)
46  //  - some flags (LDFLAGS) in the Makefile have been changed; they are needed on some machines (e.g. pamelatov.roma2.infn.it), but give errors on others (e.g. pamelaws02.na.infn.it). See Makefile for details if the compilation fails due to library errors)  //  - some flags (LDFLAGS) in the Makefile have been changed; they are needed on some machines (e.g. pamelatov.roma2.infn.it), but give errors on others (e.g. pamelaws02.na.infn.it). See Makefile for details if the compilation fails due to library errors)
47  //  //
# Line 73  Line 78 
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
# Line 270  Int_t golower  = 1; Line 277  Int_t golower  = 1;
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");
# Line 810  void convert_directory(const char *dir, Line 820  void convert_directory(const char *dir,
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    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.23