/[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.12 by mocchiut, Thu Dec 18 17:11:47 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 58  Line 63 
63  //  //
64  /////////////////////////////////////////////////////////////////////////  /////////////////////////////////////////////////////////////////////////
65    
 #include <stdlib.h>  
 #include <string.h>  
 #include <ctype.h>  
 #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"  
66  #include "Digitizer.h"  #include "Digitizer.h"
67    
68  int Error;   //to be removed soon  using namespace std;
69    
70    //int Error;   //to be removed soon
71    
72  //  Define the names of the Fortran common blocks for the different OSs  //  Define the names of the Fortran common blocks for the different OSs
73    
# Line 270  Int_t golower  = 1; Line 264  Int_t golower  = 1;
264  Int_t bufsize  = 64000;  Int_t bufsize  = 64000;
265  Int_t optcwn = 1;  Int_t optcwn = 1;
266    
267    char *DigitizerInfo(bool print);
268    
269  int main(int argc, char **argv)  int main(int argc, char **argv)
270    
271  {  {
272      //  char* cha=DigitizerInfo(1);
273    
274    if (argc < 2) {    if (argc < 2) {
275       printf("Error: Pamelagp2Digits \n");       printf("Error: Pamelagp2Digits \n");
276       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 522  void convert_directory(const char *dir, Line 519  void convert_directory(const char *dir,
519    }    }
520    h1->SetEntries(nentries);    h1->SetEntries(nentries);
521    h1->Write();    h1->Write();
522    delete h1;    //  delete h1;
523      h1->Delete();
524  }  }
525  //____________________________________________________________________________  //____________________________________________________________________________
526    void convert_cwn(Int_t id,char* file_raw)    void convert_cwn(Int_t id,char* file_raw)
# Line 810  void convert_directory(const char *dir, Line 808  void convert_directory(const char *dir,
808    
809    tree->Write();    tree->Write();
810    
811    std::cout << "Invoking Digitizer" << endl << flush;    cout << "Invoking Digitizer" << endl << flush;
812      char *ndl[8],*q,*q1;
813    Digitizer* dig = new Digitizer(tree,file_raw);    q=(char*)malloc(5 *sizeof(char));
814      q1=(char*)malloc(5 *sizeof(char));
815      ndl[0]="nspe";
816      ndl[1]="ntof";
817      ndl[2]="ncat";
818      ndl[3]="ncas";
819      ndl[4]="ncar";
820      ndl[5]="ncal";
821      ndl[6]="nndd";
822      ndl[7]="nstr";
823    
824      int nspe=200,ntof=200,ncat=50,ncas=50,ncar=100,ncal=1000,nnd=200,nstr=1000,par[8],tmp=0,t;
825      par[0]=nspe;
826      par[1]=ntof;
827      par[2]=ncat;
828      par[3]=ncas;
829      par[4]=ncar;
830      par[5]=ncal;
831      par[6]=nnd;
832      par[7]=nstr;
833    
834      ifstream np("vectpar.dat",ios::in);
835      if(!np)printf("ATTENTION: Using default vector legths!\n");
836      else{
837        while(!np.eof()){
838          np>>q>>tmp;
839          if(np.eof())break;
840          if(tmp<=0){
841            cout<<"ATTENTION: Length of one vector is negative or equal 0!"<<endl<<q<<"="<<tmp<<endl;
842            break;
843          }
844          t=0;
845          while(tmp){
846            q1=ndl[t];
847            if(q[0]==q1[0] && q[1]==q1[1] && q[2]==q1[2] && q[3]==q1[3]){
848              par[t]=tmp;
849              tmp=0;
850              cout<<q<<" "<<par[t]<<"["<<t<<"]"<<endl;
851            }
852            t++;
853          }
854        }
855        nspe=par[0];
856        ntof=par[1];
857        ncat=par[2];
858        ncas=par[3];
859        ncar=par[4];
860        ncal=par[5];
861        nnd=par[6];
862        nstr=par[7];
863      }
864      Digitizer* dig = new Digitizer(tree,file_raw,nspe,ntof,ncat,ncas,ncar,ncal,nnd,nstr);
865    dig->Loop();    dig->Loop();
866    dig->Close();    dig->Close();
867    
868    std::cout << "Finished" << endl << flush;    cout << "Finished" << endl;
869    
870  }  }
871    

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

  ViewVC Help
Powered by ViewVC 1.1.23