]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONCheck.cxx
Don't misalign geometry when creating snapshot.
[u/mrichter/AliRoot.git] / MUON / AliMUONCheck.cxx
index a398fa0dc2dfa8339f90b652601789a20d977209..fd8c8dd441bb1186850fc63b926d535f9b360341 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)
 {
@@ -149,14 +160,13 @@ AliMUONCheck::CheckESD(Bool_t pdc06TriggerResponse)
   Float_t muonMass = 0.105658389;
   Double_t thetaX, thetaY, pYZ;
   Double_t fPxRec1, fPyRec1, fPzRec1, fE1;
-  Int_t fZ1;
   
   AliESDEvent* fESD = new AliESDEvent();
   TTree* tree = (TTree*) esdFile->Get("esdTree");
   if (!tree) 
   {
     Error("CheckESD", "no ESD tree found");
-    AliError(Form("CheckESD", "no ESD tree found"));
+    AliError(Form("no ESD tree found"));
     return ;
   }
   fESD->ReadFromTree(tree);
@@ -276,7 +286,6 @@ AliMUONCheck::CheckESD(Bool_t pdc06TriggerResponse)
       fPzRec1  = - pYZ / TMath::Sqrt(1.0 + TMath::Tan(thetaY)*TMath::Tan(thetaY));
       fPxRec1  = fPzRec1 * TMath::Tan(thetaX);
       fPyRec1  = fPzRec1 * TMath::Tan(thetaY);
-      fZ1 = Int_t(TMath::Sign(1.,muonTrack->GetInverseBendingMomentum()));
       fE1 = TMath::Sqrt(muonMass * muonMass + fPxRec1 * fPxRec1 + fPyRec1 * fPyRec1 + fPzRec1 * fPzRec1);
       fV1.SetPxPyPzE(fPxRec1, fPyRec1, fPzRec1, fE1);
       // -----------> transverse momentum
@@ -336,8 +345,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");
@@ -450,7 +458,7 @@ AliMUONCheck::CheckKine()
       p->Print("");
       Int_t pdg=p->GetPdgCode(); 
       
-      if (abs(pdg) == 13) 
+      if (TMath::Abs(pdg) == 13)
       {
         ++nmu2;
       }
@@ -518,8 +526,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 +786,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 +810,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));
+  }       
 }
 
 //_____________________________________________________________________________