Index: /trunk/MagicSoft/Mars/mtemp/mifae/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 4258)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/Changelog	(revision 4259)
@@ -18,4 +18,12 @@
 
                                                  -*-*- END OF LINE -*-*-
+ 2004/06/01 Javier Rico
+   * macros/observationTime.C
+     - add macro to compute observation time
+
+ 2004/05/28 Javier Rico
+   * programs/optimizeCuts.cc programs/optimizecuts.datacard
+     - Include loop on size
+
  2004/05/27 Ester Aliu 
    * programs/makeHillas.cc
Index: /trunk/MagicSoft/Mars/mtemp/mifae/macros/observationTime.C
===================================================================
--- /trunk/MagicSoft/Mars/mtemp/mifae/macros/observationTime.C	(revision 4259)
+++ /trunk/MagicSoft/Mars/mtemp/mifae/macros/observationTime.C	(revision 4259)
@@ -0,0 +1,48 @@
+/* ======================================================================== *\!
+!   Author(s): Javier Rico
+\* ======================================================================== */
+
+void observationTime(
+		     Int_t iniRun=0,
+		     Int_t finRun=99999,
+		     TString filename="/mnt/users/jrico/magic/mars/mars/mtemp/mifae/hillas/AllCrabNebula_3015_kDefault_MispE.root",
+)
+{    
+    // define files, chains...
+    TChain* t= new TChain("Parameters");
+    t->Add(filename);
+
+    // define aliases
+    t->SetAlias("run",     "MRawRunHeader.fRunNumber");
+    t->SetAlias("runiniT", "MRawRunHeader.fRunStart.fTime.fMilliSec/1000");
+    t->SetAlias("runfinT", "MRawRunHeader.fRunStop.fTime.fMilliSec/1000");
+
+    TH1I* hrun = new TH1I("hrun","",finRun-iniRun+1,iniRun,finRun+1);
+    TH1I* hent = new TH1I("hent","",finRun-iniRun+1,iniRun,finRun+1);
+	
+    const char varcut[512];
+    const char runcut[512];
+    sprintf(runcut,"(run>=%d && run<=%d)",iniRun,finRun);
+    sprintf(varcut,"%s*(runfinT-runiniT)",runcut);
+
+    t->Draw("run>>hrun",runcut);
+    t->Draw("run>>hent",varcut);
+
+    Float_t seconds=0;
+    for(Int_t irun = 1; irun<=finRun-iniRun+1; irun++)
+      {
+	Int_t nev;
+	if(nev=hrun->GetBinContent(irun))
+	  {
+	    Float_t time = hent->GetBinContent(irun)/nev;
+	    seconds += time;	    
+	    cout << "run " << iniRun-1+irun << ", " << time <<  " seconds" << endl;
+	  }
+      }
+    
+    cout << "Total observation time = " << seconds << " seconds = " << seconds/60. << " minutes = " << seconds/3600. << " hours" << endl;
+    delete hrun;
+    delete hent;
+}
+
+
