]> jspc29.x-matter.uni-frankfurt.de Git - mvd_soft.git/commitdiff
s-curves: updated process_hld_root.c as of Apr 14 2014
authorPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Tue, 19 Aug 2014 13:51:58 +0000 (15:51 +0200)
committerPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Tue, 19 Aug 2014 13:51:58 +0000 (15:51 +0200)
s-curves/process_hld_root.c

index e003d290b245c958a44b3b81ad45b0ac4fb4a5b0..8ea2db04a9ffb1489d22f695c288bdcd47ea7548 100644 (file)
  
 void usage(void) {
   printf("\nUsage:");
-  printf("  process_hld_root <hld multifile base name>\n");
+  printf("  process_hld_root <hld multifile base name> [<option>]\n");
+  printf("  \n");
+  printf("  Options:\n");
+  printf("            0 - Analyze a normal run from 0-255 thresholds (default).\n");
+  printf("            1 - Analyze 4 scans from 0-255, where each scan sets\n");
+  printf("                a different ADC block (A,B,C or D).\n");
   printf("\n");
   exit (0);
 }
@@ -172,17 +177,41 @@ void analyze(void){
 
                                  if(firstout)
                                  {
-                                       for(int i=0;i<1152*576;i++)
-                                       {
-                                               rowcurr = (int)(i/1152);
-                                               if( rowcount[rowcurr] != 0 )
-                                               {
-                            pixelprob[i] = 1.*pixelprob[i]/rowcount[rowcurr];
-                                               }
-                                               else
-                                               {
-                                                       pixelprob[i] = 0;
-                                               }
+                    char cblock = 'A';
+                                       for(int i=0;i<1152*576;i++){
+                        rowcurr = (int)(i/1152);
+                        if (block == 0){
+                            cblock = 'A';
+                            if ( (i%1152) < 288)
+                                if( rowcount[rowcurr] != 0 )
+                                    pixelprob[i] = 1.*pixelprob[i]/rowcount[rowcurr];
+                                else
+                                    pixelprob[i] = 0;
+                        }
+                        else if (block == 1){
+                            cblock = 'B';
+                            if ( (i%1152) >= 288 || (i%1152) < 576)
+                                if( rowcount[rowcurr] != 0 )
+                                    pixelprob[i] = 1.*pixelprob[i]/rowcount[rowcurr];
+                                else
+                                    pixelprob[i] = 0;
+                        }
+                        else if (block == 2){
+                            cblock = 'C';
+                            if ( (i%1152) >= 576 || (i%1152) < 864)
+                                if( rowcount[rowcurr] != 0 )
+                                    pixelprob[i] = 1.*pixelprob[i]/rowcount[rowcurr];
+                                else
+                                    pixelprob[i] = 0;
+                        }
+                        else if (block == 3){
+                            cblock = 'D';
+                            if ( (i%1152) >= 864 || (i%1152) < 864)
+                                if( rowcount[rowcurr] != 0 )
+                                    pixelprob[i] = 1.*pixelprob[i]/rowcount[rowcurr];
+                                else
+                                    pixelprob[i] = 0;
+                        }
                                        }
                                        
                                        scurveTree->Fill();
@@ -191,9 +220,7 @@ void analyze(void){
                                        for(int i=0;i<576;i++) {rowcount[i]=0;}
                                  }
                                  else
-                                 {
                                          firstout = true;
-                                 }
                                  
                   printf("%d ",thresh);
                                  fflush(stdout);
@@ -287,12 +314,24 @@ void analyze(void){
 
 int main(int argc, char *argv[]) {
   char* filename;
+  int option = 0;
 
   if (argc == 2){
     filename = &argv[1][0];
     printf("Using hld file %s\n",filename);
     //printf("The output is defined as %s\n",output);
   }
+  else if (argc == 3){
+    filename = &argv[1][0];
+    printf("Using hld file %s\n",filename);
+    option = atoi(&argv[2][0]);
+    if (option<0 || option >1){
+      usage();
+      exit(0);
+    }
+    printf("Using option %d\n",option);
+    
+  }
   else{
     usage();
   }
@@ -327,7 +366,7 @@ int main(int argc, char *argv[]) {
   
 //----------------------------------    
   
-  
+  int block = 0;
   for (num = 0; num < globbuf.gl_pathc; num++)
   {
       
@@ -338,7 +377,6 @@ int main(int argc, char *argv[]) {
         exit(0);
       }
 
-
       printf("\nThreshold: ");
 
       part = -1;
@@ -661,6 +699,6 @@ int main(int argc, char *argv[]) {
        printf("Finished!\n");
 //     theApp.Run(kTRUE);
 // ------------------------------------------
-  return 0;
+  return 1;
 }