/[PAMELA software]/calo/flight/FQLOOK/src/FCaloQLOOK.cc
ViewVC logotype

Diff of /calo/flight/FQLOOK/src/FCaloQLOOK.cc

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

revision 1.2 by mocchiut, Mon Mar 13 09:01:26 2006 UTC revision 1.13 by mocchiut, Fri Jan 17 15:10:31 2014 UTC
# Line 10  Line 10 
10  //  //
11  #include <TSystem.h>  #include <TSystem.h>
12  #include <iostream>  #include <iostream>
13    #include <sstream>
14    #include <cstdlib>
15  #include <sys/types.h>  #include <sys/types.h>
16  #include <unistd.h>  #include <unistd.h>
17  #include <stdio.h>  #include <stdio.h>
18    #include <sys/stat.h>
19    #include <cstdlib>
20  //  //
21  extern void FCaloQLOOK(TString, int, int, TString, TString);  extern void FCaloQLOOK(TString, int, int, TString, TString, Bool_t, Bool_t);
22  extern void info();  extern void info();
23    extern void stringcopy(TString& , const TString& , Int_t , Int_t );
24  using namespace std;  using namespace std;
25  //  //
26  void usage(){  void usage(){
27    printf("\nUsage:\n\n FCaloQLOOK [-v] file from_event to_event output_dir figure_format \n");    printf("\nUsage:\n\n FCaloQLOOK [-name] file [OPTIONS] \n");
28    printf("\n -v               be verbose \n");      printf("\n file             must be in the form: /path/to/filesfromyoda/ZZZ_XXX_YYYYY_cln2.root  \n");
29    printf(  " file             must be in the form: /path/to/filesfromyoda/dw_000000_00000/  \n");    printf(  "                  if in the first position \"-name\" can be omitted. \n");  
30    printf(  " from_event       is an integer (progressive number) \n");    printf("\n OPTIONS: \n");  
31    printf(  " to_event         is an integer (progressive number) \n");    printf("\n -v                  be verbose \n");  
32    printf(  " output_dir       directory where to store figures \n");    printf(  " -fromev from_event  first event to analyze [default = 0] \n");
33    printf(  " figure format    any format recognized by ROOT (ps,eps,gif,...)\n");    printf(  " -toev to_event      last event to analyze  [default = 0] \n");
34    printf("\nExample: \n\nFCaloQLOOK /home/pamela/filesfromyoda/dw_050301_00100/ 0 0 /tmp/ ps \n\n");    printf(  " -oudDir output_dir  path of the output directory [default = ./] (with or without final '/') \n");
35      printf(  " -format format      format for output file (without . )[default = png] \n");
36      printf(  " -interactive        shows figures on the screen [default = non-interactive] \n");
37      printf(  " -wait               wait for canvas to be closed before going on [default = don't wait] \n");
38      printf("\nExamples: ");
39      printf("\n\nFCaloQLOOK /home/pamela/filesfromyoda/dw_050301_00100.root \n");
40      printf("\nFCaloQLOOK -v -name /home/pamela/filesfromyoda/dw_050301_00100.root \n");
41      printf("\nFCaloQLOOK /home/pamela/filesfromyoda/DW_050523_01600.root -v -fromev 0 -toev 0 -outDir /tmp/ -format gif \n\n");
42  }  }
43    
44  int main(int numinp, char *inps[]){  int main(int numinp, char *inps[]){
45    TString name;    TString name;
46    TString outdir = "";    TString outdir = "./";
47    TString format = "ps";    TString format = "png";
48    int fromev = 0;    int fromev = 0;
49    int toev = 0;    int toev = 0;
50    int nul = 0;    int nul = 0;
51    bool beverbose = false;    bool beverbose = false;
52    if ( numinp == 1 ){    Bool_t iactive = false;
53      usage();    Bool_t w4i = false;
54      return(0);        //
   };  
55    if ( numinp > 1 ){    if ( numinp > 1 ){
56      if ( !strcmp(inps[1],"--version") ){      name = (TString)inps[1];
57        info();      for ( int i = 0; i < numinp; i++ ){
58        return(0);        
59      };        if ( !strcmp(inps[i],"--version") ){
60      if ( !strcmp(inps[1],"-h") || !strcmp(inps[1],"--help") || numinp>7 ){          info();
61        usage();          return(0);
62        return(0);        };
63      } else {        if ( !strcmp(inps[i],"-h") || !strcmp(inps[i],"--help") ){
64        if ( !strcmp(inps[1],"-v") || !strcmp(inps[1],"--verbose") ){          usage();
65          beverbose = true;          return(0);
66          if ( numinp == 2 ) {        };
67            info();        if ( !strcmp(inps[i],"-name") ) {
68            return(0);              if ( numinp-1 < i+1 ){
69              usage();
70              exit(-3);
71            };
72            name = (TString)inps[i+1];
73          };
74          if ( !strcmp(inps[i],"-outDir") ) {
75            if ( numinp-1 < i+1 ){
76              usage();
77              exit(-3);
78          };          };
79          if ( numinp >= 3 ) name = (TString)inps[2];          outdir = (TString)inps[i+1];
         if ( numinp >= 4 ) fromev = atoi(inps[3]);  
         if ( numinp >= 5 ) toev = atoi(inps[4]);  
         if ( numinp >= 6 ) outdir = (TString)inps[5];  
         if ( numinp == 7 ) format = (TString)inps[6];  
       } else {  
         if ( numinp >= 2 ) name = (TString)inps[1];  
         if ( numinp >= 3 ) fromev = atoi(inps[2]);  
         if ( numinp >= 4 ) toev = atoi(inps[3]);  
         if ( numinp >= 5 ) outdir = (TString)inps[4];  
         if ( numinp == 6 ) format = (TString)inps[5];  
80        };        };
81          if ( !strcmp(inps[i],"-format") ) {
82            if ( numinp-1 < i+1 ){
83              usage();
84              exit(-3);
85            };
86            format = (TString)inps[i+1];
87          };
88    
89          if ( !strcmp(inps[i],"-fromev") ) {
90            if ( numinp-1 < i+1 ){
91              usage();
92              exit(-3);
93            };
94            fromev = atoi(inps[i+1]);
95          };
96          if ( !strcmp(inps[i],"-toev") ) {
97            if ( numinp-1 < i+1 ){
98              usage();
99              exit(-3);
100            };
101            toev = atoi(inps[i+1]);
102          };    
103          if ( !strcmp(inps[i],"-interactive") ) {
104            iactive = true;
105          };    
106          if ( !strcmp(inps[i],"-wait") ) {
107            w4i = true;
108          };    
109          if ( !strcmp(inps[i],"-v") || !strcmp(inps[i],"--verbose") ) beverbose = true;
110      };      };
111      } else {
112        //
113        // no input parameters exit with error, we need at least the run id.
114        //
115        usage();
116        return(0);    
117    };    };
118    //    //
119      stringstream figsave;    
120    if ( !beverbose ){    if ( !beverbose ){
121      //      //
122        const string fil = gSystem->BaseName(name.Data());
123        Int_t posiz = fil.find(".root");
124        //
125        TString file2;
126        if ( posiz == -1 ){
127          file2 = gSystem->BaseName(name.Data());
128        } else {
129          Int_t posiz2 = 0;
130          stringcopy(file2,gSystem->BaseName(name.Data()),posiz2,posiz);
131        };
132        const char *figrec = file2;
133        //
134        const char *outDir = outdir;
135        figsave.str("");
136        figsave << outDir << "/" ;
137        figsave << figrec << "_CaloQLOOK.txt";
138        //
139      // redirect to /dev/null the stdout and stderr      // redirect to /dev/null the stdout and stderr
140      //      //
141      nul = open("/dev/null", O_CREAT | O_RDWR,S_IREAD | S_IWRITE);      nul = open(figsave.str().c_str(), O_CREAT | O_RDWR,S_IREAD | S_IWRITE | S_IRGRP | S_IWGRP | S_IROTH);
142      dup2(nul,1);      dup2(nul,1);
143      dup2(nul,2);      dup2(nul,2);
144    };    };
145    printf("\n Welcome to FCaloQLOOK! \n");    printf("\n Welcome to FCaloQLOOK! v1r23 \n");
146    //    //
147    FCaloQLOOK(name,fromev,toev,outdir,format);    FCaloQLOOK(name,fromev,toev,outdir,format,iactive,w4i);
148    //    //
149    if ( !beverbose ) close(nul);    if ( !beverbose ) close(nul);
150    //    //

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.23