]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONCheck.cxx
Fixes for #86059: Install data when ALICE_ROOT does not point to source (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONCheck.cxx
index fc47a06929dfeddeceebbdae5ff5ef453404af4a..28700ae50662dbbea5401b453e4fc1f831e48ce2 100644 (file)
 ClassImp(AliMUONCheck)
 /// \endcond
 
+//_____________________________________________________________________________
+const TString& AliMUONCheck::GetDefaultOutFileName()
+{
+  /// Default output file name 
+  static const TString kDefaultOutFileName = "output.txt";
+  return kDefaultOutFileName;
+}  
+
+//_____________________________________________________________________________
 AliMUONCheck::AliMUONCheck(const char* galiceFile, const char* esdFile,Int_t firstEvent, Int_t lastEvent,const char* outDir) 
 : TObject(),
 fFileName(galiceFile),
 fFileNameSim(),
 fesdFileName(esdFile),
 fkOutDir(outDir),
+fOutFileName(GetDefaultOutFileName()),
 fFirstEvent(firstEvent),
 fLastEvent(lastEvent)
 {
@@ -84,6 +94,7 @@ fFileName(galiceFile),
 fFileNameSim(galiceFileSim),
 fesdFileName(esdFile),
 fkOutDir(outDir),
+fOutFileName(GetDefaultOutFileName()),
 fFirstEvent(firstEvent),
 fLastEvent(lastEvent)
 {
@@ -336,8 +347,7 @@ AliMUONCheck::CheckESD(Bool_t pdc06TriggerResponse)
   
   gSystem->cd(fkOutDir);
   
-  FILE *outtxt=fopen("output.txt","a");
-  freopen("output.txt","a",outtxt);
+  FILE *outtxt=fopen(fOutFileName.Data(),"a");
   
   if(pdc06TriggerResponse){
     fprintf(outtxt,"                                                   \n");
@@ -518,8 +528,7 @@ AliMUONCheck::CheckKine()
   printf("**************************************************************** \n");
   
   gSystem->cd(fkOutDir);
-  FILE *outtxt=fopen("output.txt","a");
-  freopen("output.txt","a",outtxt);
+  FILE *outtxt=fopen(fOutFileName.Data(),"a");
   fprintf(outtxt,"                                                   \n");
   fprintf(outtxt,"=================================================================\n");
   fprintf(outtxt,"================         MUONkine SUMMARY        ================\n");
@@ -779,16 +788,18 @@ AliMUONCheck::CheckOccupancy(Bool_t perDetEle) const
   
   // Output values
   
-  for ( Int_t ichamber = 0; ichamber < 14; ++ichamber ) 
+  for ( Int_t ichamber = 0; ichamber < nchambers; ++ichamber ) 
   {
     printf(">>> Chamber %2d  nChannels Bending %5d  nChannels NonBending %5d \n", 
          ichamber+1, 
          cHoccupancyBending[ichamber],
-         cHoccupancyNonBending[ichamber]);           
-    printf(">>> Chamber %2d  Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n", 
-         ichamber+1, 
-         100.*((Float_t) cHoccupancyBending[ichamber])/((Float_t) cHchannelsBending[ichamber]),
-         100.*((Float_t) cHoccupancyNonBending[ichamber])/((Float_t) cHchannelsBending[ichamber])            );
+         cHoccupancyNonBending[ichamber]);  
+    if ( cHchannelsBending[ichamber] != 0 && cHchannelsBending[ichamber] ) {               
+      printf(">>> Chamber %2d  Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n", 
+           ichamber+1, 
+           100.*((Float_t) cHoccupancyBending[ichamber])/((Float_t) cHchannelsBending[ichamber]),
+           100.*((Float_t) cHoccupancyNonBending[ichamber])/((Float_t) cHchannelsBending[ichamber]));
+    }
   
     if ( perDetEle )
     {
@@ -801,19 +812,23 @@ AliMUONCheck::CheckOccupancy(Bool_t perDetEle) const
                idetele+100*(ichamber+1), 
                dEoccupancyBending[ichamber][idetele],
                dEoccupancyNonBending[ichamber][idetele]);  
-          printf(">>> DetEle %4d Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n", 
-               idetele+100*(ichamber+1), 
-               100.*((Float_t) dEoccupancyBending[ichamber][idetele])/((Float_t) dEchannelsBending[ichamber][idetele]),
-               100.*((Float_t) dEoccupancyNonBending[ichamber][idetele])/((Float_t) dEchannelsBending[ichamber][idetele]));  
+               
+          if ( dEchannelsBending[ichamber][idetele] != 0 && dEchannelsBending[ichamber][idetele] !=0 ) {     
+            printf(">>> DetEle %4d Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n", 
+                 idetele+100*(ichamber+1), 
+                 100.*((Float_t) dEoccupancyBending[ichamber][idetele])/((Float_t) dEchannelsBending[ichamber][idetele]),
+                 100.*((Float_t) dEoccupancyNonBending[ichamber][idetele])/((Float_t) dEchannelsBending[ichamber][idetele]));
+          }       
         }
       }
     }
   }
 
-  printf(">>> Muon Spectrometer  Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n",  
-       100.*((Float_t) totaloccupancyBending)/((Float_t) totalchannelsBending),
-       100.*((Float_t) totaloccupancyNonBending)/((Float_t) totalchannelsNonBending)            );
-
+  if ( totalchannelsBending != 0 && totalchannelsNonBending != 0 ) {
+    printf(">>> Muon Spectrometer  Occupancy Bending %5.2f %%  Occupancy NonBending %5.2f %% \n",  
+         100.*((Float_t) totaloccupancyBending)/((Float_t) totalchannelsBending),
+         100.*((Float_t) totaloccupancyNonBending)/((Float_t) totalchannelsNonBending));
+  }       
 }
 
 //_____________________________________________________________________________