]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MergeMuonLight.C
hopefully the last refinements for correct type conversion in calibration
[u/mrichter/AliRoot.git] / MUON / MergeMuonLight.C
index 2eb285534f6acf2aa14855b8065b5b98825e32aa..ad27107055f90af67a7b41a9f2153d0b4b0a71f0 100644 (file)
 // Arguments:     foutname = name of the output file
 //                flistname = name of a text file containing the list of files
 //                            to be merged 
-void MergeMuonLight(char *foutname="MuonLightMerged.root",char *flistname="lista.lis"){ 
+//                saveAll = boolian that allows/forbids saving of events with no muons
+
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "TFile.h"
+#include "TTree.h"
+#include "TClonesArray.h"
+#include "AliMUONTrackLight.h"
+#include "AliMUONPairLight.h"
+#endif
+
+
+void MergeMuonLight(char *foutname="MuonLightMerged.root",char *flistname="lista.lis", Bool_t saveAll = kTRUE){ 
   // up to 2000 input files 
 
   TFile *file[2000];
@@ -43,7 +54,7 @@ void MergeMuonLight(char *foutname="MuonLightMerged.root",char *flistname="lista
   while (!outflag) { 
     if (fscanf(pf,"%s",filename)==1) { 
       file[nfiles++] = new TFile (filename); 
-      cout << "Opening for input " << filename << endl;
+      printf("Opening for input %s", filename);
     }
     else outflag = 1; 
   }
@@ -60,9 +71,13 @@ void MergeMuonLight(char *foutname="MuonLightMerged.root",char *flistname="lista
            ifile, file[ifile]->GetName(),nev); 
     for (Int_t iev=0; iev<nev; iev++) {
       tree->GetEvent(iev); 
+      Int_t nMu = muonArray->GetEntriesFast(); 
+      if(!saveAll)
+       if(nMu < 1) continue;
       treeOut->Fill();
     }
-  }    
+    file[ifile]->Close();
+  }//end of scanning incoming file
   fout->cd(); 
   treeOut->Write(); 
 }