ROOT logo
//*-- Modified : 23/01/2004 A.Sadovski//*-- Modified : 04/01/2005 Jacek Otwinowski
//*-- Modified : 08/02/2005 A.Sadovski
//*-- Modified : 15/05/2006 J.Pietraszko
//*-- Modified : 21/11/2007 A.Sadovski, M.Golubeva, T.Solovieva
using namespace std;
#include <iostream>
#include <iomanip>
#include <math.h>
//---- Root includes
#include "TH2.h"
#include "TProfile.h"
#include "TROOT.h"
//---- Hydra base includes
#include "hades.h"
#include "htree.h"
#include "hcategory.h"
#include "hdatasource.h"
#include "hevent.h"
#include "hiterator.h"
#include "hruntimedb.h" //asd
#include "hmessagemgr.h"
//---- Data container includes
#include "heventheader.h"
#include "hstart2cal.h"
#include "hstart2hit.h"
#include "htboxchan.h"
#include "hrichcal.h"
#include "hrichhit.h"
#include "hmdcseg.h"
#include "hmdcraw.h"
#include "hmdccal1.h"
#include "hmdccal1sim.h"
#include "hmdchit.h"
#include "hmdctimecut.h" //asd
#include "hmdccutstat.h" //asd
#include "htofhit.h"
#include "htofcluster.h"
#include "hrpchit.h"
#include "hrpccluster.h"
#include "hshowerhittof.h"
#include "hsplinetrack.h"
#include "hrktrackB.h"
#include "hbasetrack.h"
#include "hmetamatch2.h"
#include "hparticlecand.h"
//---- Category definition includes
#include "hstartdef.h"
#include "richdef.h"
#include "hmdcdef.h"
#include "tofdef.h"
#include "rpcdef.h"
#include "showerdef.h"
#include "walldef.h"
#include "hwallraw.h"
#include "hwallhit.h"
#include "emcdef.h"
#include "hemcdetector.h"
#include "hemcraw.h"
#include "hemccal.h"
#include "hemccluster.h"
#include "hmdctrackgdef.h"
//---- QA includes
#include "hqaoutputps.h"
#include "hqamaker.h"
#include "hqahistograms.h"
#include "hqavariations.h"
#include "hqascalers.h"

#include "hparticlecand.h"
#include "hrpcdetector.h"

#include "TF1.h"

#include "hqatreemaker.h"

#include "htime.h"

#define DTHETA 5
#define DPHI 5
//#define NSTART_STRIPS 16

//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//
//*-- Author : Dan Magestro (magestro@gsi.de)
//*-- Modified : 26/04/2002 Joern Wuestenfeld
//*-- Modified : 24/01/2002
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//

//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////////
//
// HQAMaker
//
// HQAMaker is a Hydra event-loop task which iterates over events and fills
// histograms and scalers, defined in separate classes.
//
// BEGIN_HTML<b><font color="maroon">For more information, see the <a href="http://www-hades.gsi.de/computing/qa/">QA home page</a>.</font></b> END_HTML
//
//////////////////////////////////////////////////////////////////////////////

Int_t HQAMaker::cutResults[4] = {0, 0, 0, 0};

ClassImp(HQAMaker)

HQAMaker::HQAMaker(void)
{
   // Default constructor
   nEvent = 0;
   nProcessed = 0; //A.Sadovski 21.Oct.2002
   nCountCalEvents = 0;
   hists = 0;
   varHists = 0;
   kFIRST = kTRUE;
   kPDF = kTRUE;
   fUseSlowPar = kTRUE;
   samplingRate = 1;
   intervalSize = 1000;
   nInterval = 0;

   lTrack.set(1, 0);
   lMdc.set(2, 0, 0);

   initIteratorPointers();
   cutStat = 0;        //asd
   setParContainers(); //asd
   betaMin = -1000.;
   nCountCalEvents = 0;
   fbeamtime="none";
}

HQAMaker::HQAMaker(const Text_t *n, const Text_t *t) : HReconstructor(n, t)
{
   // Constructor: Name, title
   nEvent = 0;
   nProcessed = 0; //A.Sadovski 21.Oct.2002
   hists = 0;
   varHists = 0;
   kFIRST = kTRUE;
   kPDF = kTRUE;
   fUseSlowPar = kTRUE;

   samplingRate = 1;
   intervalSize = 1000;
   nInterval = 0;
   isSim = kFALSE;

   lTrack.set(1, 0);
   lMdc.set(2, 0, 0);

   initIteratorPointers();
   cutStat = 0;        //asd
   setParContainers(); //asd
   betaMin = -1000.;
   nCountCalEvents = 0;
   fbeamtime="none";
}

HQAMaker::~HQAMaker(void)
{
   if (cutStat) HMdcCutStat::deleteHMdcCutStat();
}

void HQAMaker::initIteratorPointers()
{
   // Set iterator pointers to NULL
   iterStCal         = NULL;
   iterStHit         = NULL;
   iterRichCal       = NULL;
   iterRichHit       = NULL;
   iterMdcRaw        = NULL;
   iterMdcCal1       = NULL;
   iterMdcHit        = NULL;
   iterMdcSeg        = NULL;
   iterShoHit        = NULL;
   iterTofHit        = NULL;
   iterTofCluster    = NULL;
   iterRpcHit        = NULL;
   iterRpcCluster    = NULL;
   iterFwRaw         = NULL;
   iterFwHit         = NULL;
   iterEmcRaw        = NULL;
   iterEmcCal        = NULL;
   iterEmcClus       = NULL;
   iterSplineTrk     = NULL;
   iterRungeKuttaTrk = NULL;
   iterMetaMatch     = NULL;
   iterParticleCand  = NULL;
   iterHTBoxChan     = NULL;

   catSplineTrk      = NULL;
   catRungeKuttaTrk  = NULL;
   catShoHit         = NULL;
   catTfHit          = NULL;
   catTfClust        = NULL;
   fCatRpcHit        = NULL;
   fCatRpcCluster    = NULL;
   fCatParticleCand  = NULL;
}

Bool_t HQAMaker::init(void)
{
   // Create and book QA components, get iterator pointers if the categories
   // exist in current event

   TH1*       hist          = NULL;
   TIterator* hist_iterator = NULL;
   TString    old_directory = gDirectory->GetPath();

   // create the QA histograms in the root directory
   gROOT->cd();

   hists    = new HQAHistograms();
   varHists = new HQAVariations(intervalSize);
   scalers  = new HQAScalers();


   hists->bookHist();
   varHists->bookHist();
   scalers->bookScalers();

   hist_iterator = hists->getHistList()->MakeIterator();
   while ((hist = (TH1*)hist_iterator->Next())) {
      hist->SetDirectory(0);
   }
   delete hist_iterator;

   hist_iterator = varHists->getHistList()->MakeIterator();
   while ((hist = (TH1*)hist_iterator->Next())) {
      hist->SetDirectory(0);
   }
   delete hist_iterator;

   cutStat = HMdcCutStat::getObject();
   if (!cutStat) {
      ERROR_msg(HMessageMgr::DET_QA, "RETRIEVED 0 POINTER FOR HMDCCUTSTAT!");
      exit(1);
   }


   Bool_t FlagIterPointer = getIteratorPointers();

   if(fUseSlowPar){

       SlowPar = (HSlowPar*)gHades->getRuntimeDb()->getContainer("SlowPar");
       if(SlowPar) {

	   TString name;

	   for (Int_t k=0;k<6;k++)
	   {
	       name=Form("HAD:RICH:HV:PS:C%i:vmon",k);
	       SlowPar->addToChannelList(name);
	   }

	   for(Int_t plane=1; plane<5; plane++)
	   {
	       for(Int_t sec=1; sec<7; sec++)
	       {
		   for (Int_t k=0;k<12;k++)
		   {
		       name=Form("HAD:MDCHV:P%i:S%i:VMON_C%i",plane,sec,k);
		       SlowPar->addToChannelList(name);
		   }
	       }
	   }
       }
       else{
	   ERROR_msg(HMessageMgr::DET_QA, "RETRIEVED 0 POINTER FOR HSLOWPAR!");
	   return kFALSE;
       }
   }

   gDirectory->Cd(old_directory.Data());

   return FlagIterPointer;
}

void HQAMaker::Print(const Option_t *)
{
   // Print box showing QA summary

   Int_t nHists = 0, nVarHists = 0;

   if (hists) nHists = hists->getHistList()->GetSize();
   if (varHists) nVarHists = varHists->getHistList()->GetSize();

   SEPERATOR_msg("-", 70);
   INFO_msg(10, HMessageMgr::DET_QA, "HQAMaker: HADES data quality assessment");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%-35s%s", "QA statistics", "Histogram summary");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%-35s%s", "-------------", "-----------------");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%-23s%-5i%9i%s", "Event sampling rate: 1/", samplingRate, nHists, " general hists");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%-15s%-5i%5s%9i%s", "Interval size:", intervalSize, "events  ", nVarHists, " run var hists");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%5i%-41s", intervalSize / samplingRate, "QA'd events/interval");
   gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%s%-8i", "Max # events for var hists (=500*intervalSize): ", 500 * intervalSize);
   INFO_msg(10, HMessageMgr::DET_QA, "*extra events are added to overflow bins*");
   if (kPDF) {
      TString pdfFile = psFile(0, psFile.Last('.')) + ".pdf";
      gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%s%-57s", "PDF file:", (const Char_t*)pdfFile);
      INFO_msg(10, HMessageMgr::DET_QA, "*ps2pdf will be used to generate pdf file*");
      TString txtFile = psFile(0, psFile.Last('.')) + ".txt";
      gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%s%-57s", "scalers:", (const Char_t*)txtFile);
   } else
      gHades->getMsg()->info(10, HMessageMgr::DET_QA, this->GetName(), "%s%-57s", "PS file:", (const Char_t*)psFile);
   SEPERATOR_msg("-", 70);
}

Bool_t HQAMaker::getIteratorPointers()
{
   // Search current event for relevant categories... make an iterator
   // if category exists

   HEvent *event = gHades->getCurrentEvent();
   if (!event) {
      ERROR_msg(HMessageMgr::DET_QA, "QA maker needs a Hydra event structure");
      return kFALSE;
   }

   // Start
   HCategory *catStCal = event->getCategory(catStart2Cal);
   if (catStCal)
      iterStCal = (HIterator *)catStCal->MakeIterator("native");
   HCategory *catStHit = event->getCategory(catStart2Hit);
   if (catStHit)
      iterStHit = (HIterator *)catStHit->MakeIterator("native");

   // Daq Scalers
   HCategory *catDaqScal = event->getCategory(catTBoxChan);
   if (catDaqScal)
      iterHTBoxChan = (HIterator *)catDaqScal->MakeIterator("native");

   // Rich
   HCategory *catRicCal = event->getCategory(catRichCal);
   if (catRicCal)
      iterRichCal = (HIterator *)catRicCal->MakeIterator("native");
   HCategory *catRicHit = event->getCategory(catRichHit);
   if (catRicHit)
      iterRichHit = (HIterator *)catRicHit->MakeIterator("native");

   // Mdc
   HCategory *catMdRaw = event->getCategory(catMdcRaw);
   if (catMdRaw)
      iterMdcRaw = (HIterator *)catMdRaw->MakeIterator("native");
   HCategory *catMdCal1 = event->getCategory(catMdcCal1);
   if (catMdCal1)
      iterMdcCal1 = (HIterator *)catMdCal1->MakeIterator("native");
   if (catMdCal1)(catMdCal1->getClass() != HMdcCal1Sim::Class()) ? isSim = kFALSE : isSim = kTRUE;

   //if(!isSim)timecut  =(HMdcTimeCut*)   gHades->getRuntimeDb()->getContainer("MdcTimeCut");

   HCategory *catMdHit = event->getCategory(catMdcHit);
   if (catMdHit)
      iterMdcHit = (HIterator *)catMdHit->MakeIterator("native");

   HCategory *catMdSeg = event->getCategory(catMdcSeg);
   if (catMdSeg)
      iterMdcSeg = (HIterator *)catMdSeg->MakeIterator();



   // Tof
   catTfHit = event->getCategory(catTofHit);
   if (catTfHit)
      iterTofHit = (HIterator *)catTfHit->MakeIterator("native");

   // Tof-Cluster
   catTfClust = event->getCategory(catTofCluster);
   if (catTfClust)
      iterTofCluster = (HIterator *)catTfClust->MakeIterator("native");

   // RPC
   fCatRpcHit = event->getCategory(catRpcHit);
   if (fCatRpcHit)
      iterRpcHit = (HIterator*)fCatRpcHit->MakeIterator("native");

   fCatRpcCluster = event->getCategory(catRpcCluster);
   if (fCatRpcCluster)
      iterRpcCluster = (HIterator*)fCatRpcCluster->MakeIterator("native");

   // Wall
   HCategory *catFwRaw = event->getCategory(catWallRaw);
   if (catFwRaw)
      iterFwRaw = (HIterator *)catFwRaw->MakeIterator("native");

   HCategory *catFwHit = event->getCategory(catWallHit);
   if (catFwHit)
      iterFwHit = (HIterator *)catFwHit->MakeIterator("native");

   // EMC
   HCategory *cEmcRaw = event->getCategory(catEmcRaw);
   if (cEmcRaw)
      iterEmcRaw = (HIterator *)cEmcRaw->MakeIterator("native");
   HCategory *cEmcCal = event->getCategory(catEmcCal);
   if (cEmcCal)
      iterEmcCal = (HIterator *)cEmcCal->MakeIterator("native");
   HCategory *cEmcClus = event->getCategory(catEmcCluster);
   if (cEmcClus)
      iterEmcClus = (HIterator *)cEmcClus->MakeIterator("native");

   // Shower
   // in case of Simulation MetaMatching is using catShowerHitTofTrack
   // we have to make sure that we use the same cat
   //

   catShoHit = event->getCategory(catShowerHit);
   if (catShoHit) {
       iterShoHit = (HIterator *)catShoHit->MakeIterator("native");
   }
   //if catShowerHitTofTrack exist (sim data) use this cat
   //if not use catShowerHitTof

   // SplineTrack
   catSplineTrk = event->getCategory(catSplineTrack);
   if (catSplineTrk) {
      iterSplineTrk = (HIterator *)catSplineTrk->MakeIterator("native");
   }
   // RungeKuttaTrack
   catRungeKuttaTrk = event->getCategory(catRKTrackB);
   if (catRungeKuttaTrk) {
      iterRungeKuttaTrk = (HIterator *)catRungeKuttaTrk->MakeIterator("native");
   }

   // MetaMatch
   HCategory *catMeta = event->getCategory(catMetaMatch);
   if (catMeta) {
      iterMetaMatch = (HIterator *)catMeta->MakeIterator("native");
   }

   // ParticleCand
   fCatParticleCand = event->getCategory(catParticleCand);
   if (fCatParticleCand) {
      iterParticleCand = (HIterator *)fCatParticleCand->MakeIterator("native");
   }

   // OraRunSum


   return kTRUE;
}

void HQAMaker::setParContainers()   //asd
{
   // creates the parameter containers MdcLookupGeom/MdcLookupRaw/MdcTimeCut if they
   // exist and adds them to the list of parameter containers in the runtime
   // database
   //lookup   =(HMdcLookupGeom*)gHades->getRuntimeDb()->getContainer("MdcLookupGeom");
   //lookupRaw=(HMdcLookupRaw*) gHades->getRuntimeDb()->getContainer("MdcLookupRaw");
}



Int_t HQAMaker::execute()
{
   //Fill histograms for events with a frequency of 1/samplingRate
   if (kFIRST) {
      kFIRST = kFALSE;
      buildPSFilename();
      Print();

      TDirectory* dir = gDirectory;
      //Create outputfile for Tree
      TString histFileTree = psFile(0, psFile.Last('.')) + "_Tree.root";  //is written where dsts are, but with ending "_Tree.root"
      fileTree = new TFile(histFileTree, "RECREATE");

      //dst_filename=
      TString dst_filename = gHades->getDataSource()->getCurrentFileName();
      dst_filename  = dst_filename(dst_filename.Last('/') + 1, dst_filename.Last('.') - dst_filename.Last('/') - 1);

      cout <<"DSTFileName: "<<dst_filename <<endl;


      TFileInfo.fTFileName=dst_filename;
      TFileInfo.fTRunId=gHades->getDataSource()->getCurrentRunId();
      TFileInfo.fTRefId=gHades->getDataSource()->getCurrentRefId();


      HTime::splitFileName(dst_filename,TFileInfo.fTType,TFileInfo.fTYear,TFileInfo.fTDay,TFileInfo.fTHour,TFileInfo.fTMin,TFileInfo.fTSec,TFileInfo.fTEvB);


      //#######################

      //Get High Voltages

      TString name;

      Int_t runID = gHades->getDataSource()->getCurrentRunId();

      if(!isSim && fUseSlowPar)
      {
	  HSlowChan SlowChan;

	  for (Int_t k=0;k<6;k++)
	  {
	      SlowChan.clear();
	      name=Form("HAD:RICH:HV:PS:C%i:vmon",k);
	      SlowPar->getChannel(runID,name,&SlowChan);

	      TRich.fTHVMean[k]=SlowChan.mean;
	      TRich.fTHVSigma[k]=SlowChan.rms;
	      TRich.fTHVMin[k]=SlowChan.min;
	      TRich.fTHVMax[k]=SlowChan.max;
	  }

	  for(Int_t plane=0; plane<4; plane++)
	  {
	      for(Int_t sec=0; sec<6; sec++)
	      {
		  for(Int_t k=0; k<12; k++)
		  {
		      SlowChan.clear();
		      name=Form("HAD:MDCHV:P%i:S%i:VMON_C%i",plane+1,sec+1,k);
		      SlowPar->getChannel(runID,name,&SlowChan);

		      TMdc.fTHVMean[sec][plane][k]=SlowChan.mean;
		      TMdc.fTHVSigma[sec][plane][k]=SlowChan.rms;
		      TMdc.fTHVMin[sec][plane][k]=SlowChan.min;
		      TMdc.fTHVMax[sec][plane][k]=SlowChan.max;
		  }
	      }
	  }

      }
      //End get High Voltages***********************************************************************




      fileTree->cd();
      outputTree = new TTree("T","QA Tree");
      //outputTree->Branch("tdst_filename",&tdst_filename,1000,0);     //100 is buffer size ; 0 is no splitting, so only the String is written
      outputTree->Branch("TFileInfo",&TFileInfo,1000,0);
      outputTree->Branch("TStart",&TStart,1000,0);
      outputTree->Branch("TRich",&TRich,1000,0);
      outputTree->Branch("TMdc",&TMdc,1000,0);
      outputTree->Branch("TTof",&TTof,1000,0);
      outputTree->Branch("TRpc",&TRpc,1000,0);
      outputTree->Branch("TShw",&TShw,1000,0);
      outputTree->Branch("TPhy",&TPhy,1000,0);

      dir->cd();

   }



   //fill daq scaler data. The daq scalers are read out for calibration trigger.
   //Histograms are filled for each calibration event.
  // Int_t eventnb = gHades->getCurrentEvent()->getHeader()->getEventSeqNumber();
   Int_t eventid = gHades->getCurrentEvent()->getHeader()->getId();

   if (eventid == 14) {  // scaler data are transported in events with id (hex)e
      fillHistDaqScaler();
      nCountCalEvents++;
   }

   if (!(gHades->isCalibration())) {
      if (nEvent % intervalSize == 0) nInterval++;
      if (nEvent % samplingRate == 0) {

         Int_t eventSize = gHades->getCurrentEvent()->getHeader()->getEventSize();
         varHists->evtHeader_eventSize_Var->Fill(nEvent, eventSize);

         fillHistStart();
         fillHistRich();
         fillHistMdc();
         fillHistTof();
         fillHistRpc();
         fillHistShower();
	 fillHistWall();
         fillHistEmc();
         fillHistMatching();
         fillHistSpline();
         fillHistRungeKutta();
         fillHistRichMDC();
         fillHistPid();
	 fillHistShowerRpc();
         fillMassSpectrum();
         nProcessed++;
      }
   } // fill detector qa plots only for real events
   nEvent++;
   return 0;
}

void HQAMaker::buildPSFilename()
{
   // Build Postscript file name, either from user-supplied name or from DST filename

   if (fDir.IsNull() && (!psFile.Contains("/"))) {
      WARNING_msg(HMessageMgr::DET_QA, 10, "dir not specified, QA output written to present dir");
   }

   // If psFile is not given, build PS filename from gHades filename
   if (psFile.IsNull()) {
      if (gHades->getOutputFile() != 0) {
         dstFile = gHades->getOutputFile()->GetName();
      } else {
         dstFile = gHades->getDataSource()->getCurrentFileName();
         dstFile.Replace(0, dstFile.Last('/') + 1, "");
      }
//      psFile  = dstFile(dstFile.Last('/') + 1, dstFile.Last('.') - dstFile.Last('/') - 1) + ".ps";
      psFile  = dstFile(dstFile.Last('/') + 1, dstFile.Last('.') - dstFile.Last('/') - 1) + ".pdf";
   }

   // Add "/" at end of directory
   if (!fDir.IsNull()) {
      if (!(fDir[fDir.Length()-1] == '/')) {
         fDir += "/";
      }
   }

   if (!psFile.Contains("/")) {
      psFile = fDir + psFile;
   }
}

Bool_t HQAMaker::finalize(void)
{
   // Finalize histograms and fill scalers

   if (nProcessed == 0) {
      cout << "--------------------------------------------------------- \n";
      cout << "-- WARNING: QA MAKER, Number of processed events is 0. -- \n";
      cout << "------ qa pdf document will not be created -------------- \n";
      cout << "--------------------------------------------------------- \n";
      return 1;
   } else {

      fillScalers();

      finalizeHistStart();
      finalizeHistDaqScaler();
      finalizeHistRich();
      finalizeHistMdc();
      finalizeHistTof();
      finalizeHistRpc();
      finalizeHistShower();
      finalizeHistRichMDC();
      finalizeHistPid();
      finalizeHistShowerRpc();
      finalizeMassSpectrum();

      Bool_t ret = makePS();


      TFileInfo.fTNumEvents=nEvent;

      outputTree->Fill();
      fileTree->cd();
      outputTree->Write();
      fileTree->Save();
      fileTree->Close();

      return ret;
   }
}

Bool_t HQAMaker::makePS()
{
   // After finalizing, generate PS file using HQAOutputPS

   HQAOutputPS *outPS = new HQAOutputPS(psFile);


   outPS->setDSTFileName(dstFile);
   outPS->setStats(nEvent, nProcessed);

   outPS->makeHist(hists->getHistList());
   outPS->writeHist(hists->getHistList(), varHists->getHistList(), psFile);  //asd


   outPS->setNHistPerPage(3);
   outPS->makeHist(varHists->getHistList());


   outPS->makeText(scalers->getScalerList());
   outPS->saveScal(scalers->getScalerList(), psFile); //asd

   //outPS->write(varHists->getHistList());

   delete outPS;

   return kTRUE;
}

void HQAMaker::fillHistStart()
{
   Int_t triggerBit = (gHades->getCurrentEvent()->getHeader()->getTBit());


   HStart2Cal *stCal = 0;
   HStart2Hit *stHit = 0;
   HTofHit *tofHit = 0;
   Float_t  tof_corr = 0;
   Float_t dist = 0;
   Float_t stm0CalTime[NSTART_STRIPS];
   Float_t stm1CalTime[NSTART_STRIPS];
   Float_t vtCalTime[NSTART_STRIPS];
   for (Int_t ii = 0; ii < NSTART_STRIPS ; ii++) {
      stm0CalTime[ii] = -10000.0;
      stm1CalTime[ii] = -10000.0;
      vtCalTime[ii]   = -10000.0;
   }

   //get the TBit (from 1 to 32) from triggerBit (int)
   for (Int_t ii = 0; ii < 32 ; ii++) {
      if ((triggerBit & (1 << ii)) != 0) {
         hists->stLatchHist->Fill(ii);
      }
   }

   fillGlobalVertex(); // fill vertex information

   if (iterStCal) {
      iterStCal->Reset();
      while ((stCal = (HStart2Cal*) iterStCal->Next()) != 0) {
         //if (stCal->getModule() == 0 || stCal->getModule() == 3) {
         if (fabs(stCal->getTime(1)) <30.0) { // select only hits close to the recaction
            if(stCal->getModule() == 0){ 
               if(stCal->getStrip()>NSTART_STRIPS-1) { cout<<"start cal strip to large "<<stCal->getStrip()<<endl; continue;}
               varHists->stCal_meanStrip_Var->Fill(nEvent, stCal->getStrip());
               hists->stCal_tof->Fill(stCal->getTime(1));
               hists->stCal_stripMod0->Fill(stCal->getStrip());
	       stm0CalTime[stCal->getStrip()] = stCal->getTime(1);   //Time of start for 1st hit
               hists->stCal_tof_strip[stCal->getStrip()]->Fill(stCal->getTime(1));
            }
            if(stCal->getModule() == 1){ 
		hists->stCal_stripMod1->Fill(stCal->getStrip());
		stm1CalTime[stCal->getStrip()] = stCal->getTime(1);   //Time of start for 1st hit
            } 
	    if(stCal->getModule() == 3){
               varHists->vtCal_meanStrip_Var->Fill(nEvent, stCal->getStrip());
               hists->vtCal_strip->Fill(stCal->getStrip());
	       vtCalTime[stCal->getStrip()] = stCal->getTime(1);
	       hists->vtCal_tof->Fill(stCal->getTime(1));          //Time of veto for 1st hit
               hists->vtCal_tof_strip[stCal->getStrip()]->Fill(stCal->getTime(1));
            }
         }
      }
   }
   
   // Fill start-veto time res histograms.
   for (Int_t im = 0; im < NSTART_STRIPS; im++) {
      if(vtCalTime[im] > -1000.0){
         for (Int_t jm = 0; jm < NSTART_STRIPS; jm++) {
            if(stm0CalTime[jm] > -10000)hists->Stm0Vtdiff_vs_stStrip[im]->Fill(jm,stm0CalTime[jm] - vtCalTime[im]);
            if(stm1CalTime[jm] > -10000)hists->Stm1Vtdiff_vs_stStrip[im]->Fill(jm,stm1CalTime[jm] - vtCalTime[im]);
         }
      }
   }

   if (iterStHit) {
      iterStHit->Reset();
      while ((stHit = (HStart2Hit*) iterStHit->Next()) != 0) {
         if (stHit->getModule() == 0) {
             if(stHit->getStrip()>NSTART_STRIPS-1) { cout<<"start hit strip to large "<<stHit->getStrip()<<endl; continue;}
            //fill StartTime vs StartStrip 2-dim
	     hists->stHit_vs_stStrip->Fill(stHit->getStrip(), stHit->getTime());
	     hists->stHit_tof->Fill(stHit->getTime());  //Start time


            //get the TBit (from 1 to 8) from triggerBit (int)
            for (Int_t ii = 0; ii < 9 ; ii++) {
               if ((triggerBit & (1 << ii)) != 0) {
                  hists->stHit_vs_stStrip_Trigg[ii+1]->Fill(stHit->getStrip(), stHit->getTime());
               }
            }

            if (iterTofHit) {
               iterTofHit->Reset();
               while ((tofHit = (HTofHit*) iterTofHit->Next()) != 0) {
                  tofHit->getDistance(dist);
                  tof_corr = tofHit->getTof() + (2100. - dist) / 299.792458;

                  hists->stHit_tof_vs_startstripe->Fill(stHit->getStrip(), tof_corr);
               }
            }
         } //St module 0
      }
   } // iterStHit
}


void HQAMaker::finalizeHistStart()
{
    if (hists->stLatchHist->GetEntries() > 0) {
	if (nProcessed == 0) hists->stLatchHist->Scale(1.);
	else hists->stLatchHist->Scale(1. / nProcessed);
    }
    if(hists->stHit_tof->GetEntries()>0)
    {
	TStart.fTHitTimeMean=hists->stHit_tof->GetMean(1); //Mean Value of StartTime
	TStart.fTHitTimeRms=hists->stHit_tof->GetRMS(1); //Sigma of StartTime
    }
    if(hists->stCal_tof->GetEntries()>0&&hists->vtCal_tof->GetEntries()>0)
    {
	TStart.fTHitToNoveto=hists->stCal_tof->GetEntries()/(hists->vtCal_tof->GetEntries()); // This is the Ratio between hits in start and hits in veto
    }
    if(hists->stVertexXY->GetEntries()>0)
    {
        TStart.fTVertexX=hists->stVertexXY->GetMean(1); //X Value of Vertex
	TStart.fTVertexY=hists->stVertexXY->GetMean(2); //Y Value of Vertex
    }

    if(hists->stVertexZ->GetEntries()>0) {TStart.fTVertexZ=hists->stVertexZ->GetMean(1);}  //Z Value of Vertex

    for(Int_t i=0;i<NSTART_STRIPS;i++)
    {
	if(hists->stCal_tof_strip[i]->GetEntries()>0)
	{
	    TStart.fTStCalTime[i]=hists->stCal_tof_strip[i]->GetMean(1); //Mean Value of Start CalTime for each Strip
	}
	if(hists->vtCal_tof_strip[i]->GetEntries()>0)
	{
	    TStart.fTVtCalTime[i]=hists->vtCal_tof_strip[i]->GetMean(1); //Mean Value of Veto CalTime for each Strip
	}
    }
}



void HQAMaker::fillHistRich()
{

   HRichCal *richCal = 0;
   Int_t nDataObjs;

   Int_t RingCounter[6];
   for(Int_t i=0; i<6; i++)
   {
       RingCounter[i]=0; //Rings in Sector
   }

   if (iterRichCal) {
      iterRichCal->Reset();
      nDataObjs = ((TObjArray*)iterRichCal->GetCollection())->GetEntries();
      varHists->richCal_n_Var->Fill(nEvent, nDataObjs);
      while ((richCal = (HRichCal*) iterRichCal->Next()) != 0) {

         hists->richCal_row->Fill(richCal->getRow());
         hists->richCal_column->Fill(richCal->getCol());
         hists->richCal_nSec->Fill(richCal->getSector());

      }
   }

   HRichHit *richHit = 0;
   Float_t theta, phi, r2d = 57.29578;

   if (iterRichHit) {
      iterRichHit->Reset();
      nDataObjs = ((TObjArray*)iterRichHit->GetCollection())->GetEntries();
      varHists->richHit_n_Var->Fill(nEvent, nDataObjs);
      while ((richHit = (HRichHit*) iterRichHit->Next()) != 0)
      {

	  RingCounter[richHit->getSector()]++;


	  theta = richHit->getTheta();
	  phi = richHit->getPhi();

	  if (theta == 0) {
            continue;
	  }


	  hists->richHit_theta->Fill(theta);
	  hists->richHit_phi->Fill(phi);
	  hists->richHit_nSec->Fill(richHit->getSector());

	  hists->richHit_scat->Fill(sin(theta / r2d)*sin((phi - 90) / r2d), sin(theta / r2d)*cos((phi - 90) / r2d));

	  hists->richHit_radius->Fill(richHit->getRadius());
	  hists->richHit_centroid->Fill(richHit->getCentroid());
	  hists->richHit_chargeAmpl->Fill(richHit->getRingAmplitude());
	  hists->richHit_ringCol->Fill(richHit->getRingCenterX());
	  hists->richHit_ringRow->Fill(richHit->getRingCenterY());
	  hists->richHit_ringLocMax4->Fill(richHit->getRingLocalMax4());
	  hists->richHit_houTraVsPatMat->Fill(richHit->getRingHouTra() , richHit->getRingPatMat());
	  hists->richHit_patMatVsTheta->Fill(richHit->getRingPatMat() , theta);
	  hists->richHit_houTraVsTheta->Fill(richHit->getRingHouTra() , theta);
	  hists->richHit_chargeAmplVsTheta->Fill(richHit->getRingAmplitude() , theta);
	  hists->richHit_radiusVsTheta->Fill(richHit->getRadius() , theta);
	  if(richHit->getRingPadNr()!=0)hists->richHit_AverCharge[richHit->getSector()]->Fill(richHit->getRingAmplitude()/richHit->getRingPadNr());
	  hists->richHit_NumPads[richHit->getSector()]->Fill(richHit->getRingPadNr());
      }

      for(Int_t i=0;i<6;i++)
      {
	  hists->richHit_NumRings[i]->Fill(RingCounter[i]);
      }
   }
}


void HQAMaker::finalizeHistRich()
{
    for(Int_t i=0; i<6; i++)
    {
	if(hists->richHit_AverCharge[i]->GetEntries()>0)
	{
	    TRich.fTAvChargeMax[i]=hists->richHit_AverCharge[i]->GetBinCenter(hists->richHit_AverCharge[i]->GetMaximumBin());
	    TRich.fTAvChargeMean[i]=hists->richHit_AverCharge[i]->GetMean();
	}

	if(hists->richHit_NumPads[i]->GetEntries()>0)
	{
	    TRich.fTNumPadsMax[i]=hists->richHit_NumPads[i]->GetBinCenter(hists->richHit_NumPads[i]->GetMaximumBin());
	    TRich.fTNumPadsMean[i]=hists->richHit_NumPads[i]->GetMean();
	}

        if(hists->richHit_NumRings[i]->GetEntries()>0)
	{
	    TRich.fTNumRingsMax[i]=hists->richHit_NumRings[i]->GetBinCenter(hists->richHit_NumRings[i]->GetMaximumBin());
	    TRich.fTNumRingsMean[i]=hists->richHit_NumRings[i]->GetMean();
	}
    }
}



void HQAMaker::fillHistMdc()
{

    HMdcRaw *mdcRaw = 0;

    if (iterMdcRaw)
    {
	iterMdcRaw->Reset();
	while ((mdcRaw = (HMdcRaw*) iterMdcRaw->Next()) != 0) {

	    Int_t sector = mdcRaw->getSector();
	    Int_t module = mdcRaw->getModule();

	    // mdcRaw: sector vs. mbo mult.
	    Int_t mbo = mdcRaw->getMbo();

	    if (module == 0) hists->mdcRaw_mboVsSector_m0->Fill(mbo, sector);
	    else if (module == 1) hists->mdcRaw_mboVsSector_m1->Fill(mbo, sector);
	    else if (module == 2) hists->mdcRaw_mboVsSector_m2->Fill(mbo, sector);
	    else if (module == 3) hists->mdcRaw_mboVsSector_m3->Fill(mbo, sector);

	    TMdc.fTMboCounts[sector][module][mbo]++;
            TMdc.fTCountsRaw[sector][module]++;
	}
    }

   HMdcCal1 *mdcCal1 = 0;
   HMdcCal1Sim *mdcCal1Sim = 0;

   if (iterMdcCal1) {
      iterMdcCal1->Reset();
      Int_t n[4][6];
      for (Int_t i = 0; i < 4; i++) for (Int_t j = 0; j < 6; j++) n[i][j] = 0;
      while ((mdcCal1 = (HMdcCal1*) iterMdcCal1->Next()) != 0) {

         if (isSim) {
            // in simulation we have to reject drift cells
            // with status < 1 (cutted by efficiency / broken hardware)
            mdcCal1Sim = (HMdcCal1Sim*) mdcCal1;
            if (mdcCal1Sim->getStatus1() < 1) continue;
         }

         Int_t sector = mdcCal1->getSector();
	 Int_t module = mdcCal1->getModule();
         Int_t layer  = mdcCal1->getLayer();

         n[module][sector]++;

         Float_t time1 = mdcCal1->getTime1();
         Float_t time2 = mdcCal1->getTime2();

         // mdcCal1: t2-t1 vs t1
         hists->mdcCal1_t2mt1_vs_t1[sector][module]->Fill(time2 - time1, time1);
         hists->mdcCal1_t2mt1_vs_t1_plane[  module]->Fill(time2 - time1, time1);

         //mdcCal1: t2-t1
	 hists->mdcCal1_t2mt1[sector][module]->Fill(time2 - time1);
         hists->mdcCal1_t2mt1_V2[sector][module][layer]->Fill(time2 - time1);
                
         //mdcCal1: t1
	 hists->mdcCal1_t1[sector][module]->Fill(time1);
         hists->mdcCal1_t1_V2[sector][module][layer]->Fill(time1);

         // mdcCal1: sector vs. t1
         if (module == 0) hists->mdcCal1_time1VsSector_m0->Fill(time1, sector);
         else if (module == 1) hists->mdcCal1_time1VsSector_m1->Fill(time1, sector);
         else if (module == 2) hists->mdcCal1_time1VsSector_m2->Fill(time1, sector);
         else if (module == 3) hists->mdcCal1_time1VsSector_m3->Fill(time1, sector);

         if (module == 0) varHists->mdcCal1_time1_m0_Var->Fill(nEvent, time1);
         else if (module == 1) varHists->mdcCal1_time1_m1_Var->Fill(nEvent, time1);
         else if (module == 2) varHists->mdcCal1_time1_m2_Var->Fill(nEvent, time1);
         else if (module == 3) varHists->mdcCal1_time1_m3_Var->Fill(nEvent, time1);

         // mdcCal1: module vs. t2-t1
         if (module == 0) varHists->mdcCal1_time2m1_m0_Var->Fill(nEvent, time2 - time1);
         else if (module == 1) varHists->mdcCal1_time2m1_m1_Var->Fill(nEvent, time2 - time1);
         else if (module == 2) varHists->mdcCal1_time2m1_m2_Var->Fill(nEvent, time2 - time1);
         else if (module == 3) varHists->mdcCal1_time2m1_m3_Var->Fill(nEvent, time2 - time1);

         // mdcCal1: sector vs. t.a.t.
         Float_t tat = mdcCal1->getTime2() - mdcCal1->getTime1();
         if (module == 0) hists->mdcCal1_tatVsSector_m0->Fill(tat, sector);
         else if (module == 1) hists->mdcCal1_tatVsSector_m1->Fill(tat, sector);
         else if (module == 2) hists->mdcCal1_tatVsSector_m2->Fill(tat, sector);
	 else if (module == 3) hists->mdcCal1_tatVsSector_m3->Fill(tat, sector);

	 TMdc.fTLayerCounts[sector][module][layer]++;
         TMdc.fTCountsCal[sector][module]++;

      }
      for (Int_t sector = 0; sector < 6; sector++) {
         hists->mdcCal1_nVsSector_m0->Fill(n[0][sector], sector);
         hists->mdcCal1_nVsSector_m1->Fill(n[1][sector], sector);
         hists->mdcCal1_nVsSector_m2->Fill(n[2][sector], sector);
         hists->mdcCal1_nVsSector_m3->Fill(n[3][sector], sector);
      }
   }

   HMdcHit *mdcHit = 0;

   if (iterMdcHit) {
      iterMdcHit->Reset();
      while ((mdcHit = (HMdcHit*) iterMdcHit->Next()) != 0) {

         Int_t sector, module;
         Float_t x1, y1, x2, y2, angle;
         mdcHit->getSecMod(sector, module);

         // Scatter plots (made difficult by chamber coordinate system)
         x1 = -mdcHit->getX(); //minus is becouse our coordinate system has Ox looking to the left, when looking from a target to one of MDC planes
         y1 = mdcHit->getY();

         if (module == 0) y1 = (y1 + 650) * .65;
         if (module == 1) y1 = (y1 + 950) * .58;
         if (module == 2) y1 = (y1 + 1800) * .58;
         if (module == 3) y1 = (y1 + 1900) * .68;

         angle = ((float) sector) * 60. / 57.2967;
         x2 =  x1 * cos(angle) + y1 * sin(angle);
         y2 = -x1 * sin(angle) + y1 * cos(angle);

         if (module == 0) hists->mdcHit_scat_m0->Fill(x2, y2);
         if (module == 1) hists->mdcHit_scat_m1->Fill(x2, y2);
         if (module == 2) hists->mdcHit_scat_m2->Fill(x2, y2);
         if (module == 3) hists->mdcHit_scat_m3->Fill(x2, y2);

      }
   }

   HMdcSeg *mdcSeg = 0;

   if (iterMdcSeg)
   {
       iterMdcSeg->Reset();
       while ((mdcSeg = (HMdcSeg*) iterMdcSeg->Next()) != 0)
       {
	   Int_t sector, segment;
	   sector=mdcSeg->getSec();
           segment=mdcSeg->getIOSeg();
           
           hists->mdcSeg_Chi2[sector][segment]->Fill(mdcSeg->getChi2());

	   TMdc.fTSegCounter[sector][segment]++;

	   if(mdcSeg->getChi2()>0)
	   {
	       TMdc.fTSegCounterFit[sector][segment]++;
	   }
       }
   }
}


//***---------------------------------------------------------


void HQAMaker::finalizeHistMdc()
{
   Int_t c[8];
   Char_t buf[500];

   //DEBUG_msg(1,HMessageMgr::DET_QA,"MYOUTPUT----MYOUTPUT----MYOUTPUT----MYOUTPUT----");

   Int_t ib;
   for (Int_t m = 0; m < 4; m++) { //better to have first all sectors of the same module
      for (Int_t s = 0; s < 6; s++) {
         cutStat->getCal1StatCut(s, m, &c[0], &c[1], &c[2], &c[3], &c[4], &c[5], &c[6],&c[7]);
         sprintf(buf, "%i %i %i %i %i %i %i %i %i %i \n",
                 s, m,
                 c[0], c[1], c[2], c[3], c[4], c[5], c[6] ,c[7]
                );
         DEBUG_msg(1, HMessageMgr::DET_QA, buf);

         ib = m * 6 + s + 1; //before I have an error here: ib = m*4+s+1; which caused lost of sector0 Dubna && Rossendorf for nov01-gen3 DST

         // 0   1    2     3     4     5     6       7
         //t1  t2  t1t2  wire  t1+t12  bump  cutall  allhits

         hists->mdcCutCounts[0]->SetBinContent(ib, c[7]); //allhits
         hists->mdcCutCounts[1]->SetBinContent(ib, c[0]); //t1
         hists->mdcCutCounts[2]->SetBinContent(ib, c[1]); //t2
         hists->mdcCutCounts[3]->SetBinContent(ib, c[2]); //t1t2
         hists->mdcCutCounts[4]->SetBinContent(ib, c[3]); //wire
         hists->mdcCutCounts[5]->SetBinContent(ib, c[4]); //t1+t12
         hists->mdcCutCounts[6]->SetBinContent(ib, c[5]); //t1+t12
         hists->mdcCutCounts[7]->SetBinContent(ib, c[6]); //cutall
      }
   }
   DEBUG_msg(1, HMessageMgr::DET_QA, buf);

   if (cutStat) cutStat->printParam();

   cout <<"Events"<<nEvent <<endl;
   for(Int_t i=0; i<6;i++)
   {
       for(Int_t j=0; j<2; j++)
       {
	   TMdc.fTSegCounter[i][j]=TMdc.fTSegCounter[i][j]/nProcessed;
	   TMdc.fTSegCounterFit[i][j]=TMdc.fTSegCounterFit[i][j]/nProcessed;

	   if(hists->mdcSeg_Chi2[i][j]->GetEntries())
	   {
	       TMdc.fTSegChi2Mean[i][j]=hists->mdcSeg_Chi2[i][j]->GetMean();
	       TMdc.fTSegChi2Max[i][j]=hists->mdcSeg_Chi2[i][j]->GetBinCenter(hists->mdcSeg_Chi2[i][j]->GetMaximumBin());
	   }
       }
       for(Int_t j=0; j<4; j++)
       {
	   for(Int_t k=0; k<16; k++)
	   {
	       TMdc.fTMboCounts[i][j][k]=TMdc.fTMboCounts[i][j][k]/nProcessed;
	   }
           for(Int_t k=0; k<6; k++)
	   {
	       TMdc.fTLayerCounts[i][j][k]=TMdc.fTLayerCounts[i][j][k]/nProcessed;

	       if(hists->mdcCal1_t2mt1_V2[i][j][k]->GetEntries())
	       {
		   TMdc.fTToTCalMean[i][j][k]=hists->mdcCal1_t2mt1_V2[i][j][k]->GetMean();
		   TMdc.fTToTCalMax[i][j][k]=hists->mdcCal1_t2mt1_V2[i][j][k]->GetBinCenter(hists->mdcCal1_t2mt1_V2[i][j][k]->GetMaximumBin());
	       }

	       if(hists->mdcCal1_t1_V2[i][j][k]->GetEntries())
	       {
		   TMdc.fTTime1CalMean[i][j][k]=hists->mdcCal1_t1_V2[i][j][k]->GetMean();
		   TMdc.fTTime1CalMax[i][j][k]=hists->mdcCal1_t1_V2[i][j][k]->GetBinCenter(hists->mdcCal1_t1_V2[i][j][k]->GetMaximumBin());
	       }
	   }

	   TMdc.fTCountsRaw[i][j]=TMdc.fTCountsRaw[i][j]/nProcessed;
           TMdc.fTCountsCal[i][j]=TMdc.fTCountsCal[i][j]/nProcessed;
       }
   }
}


void HQAMaker::fillHistTof()
{

   HTofHit *tofHit = 0;
   Float_t x, y, z, theta, phi;
   Int_t nDataObjs;
   Int_t TofCounts[6]={0,0,0,0,0,0};

   if (iterTofHit) {
      iterTofHit->Reset();
      nDataObjs = ((TObjArray*)iterTofHit->GetCollection())->GetEntries();
      //hists->tofHit_n->Fill(nDataObjs);
      varHists->tofHit_n_Var->Fill(nEvent, nDataObjs);

      while ((tofHit = (HTofHit*) iterTofHit->Next()) != 0)
      {

         tofHit->getTheta(theta);
         tofHit->getPhi(phi);

         hists->tofHit_nSec->Fill(tofHit->getSector());
         tofHit->getXYZLab(x, y, z);
         hists->tofHit_scat->Fill(-x, y);
         hists->tofHit_tof->Fill(tofHit->getTof());
         hists->tofHit_phi->Fill(phi);
	 hists->tofHit_theta->Fill(theta);
	 TofCounts[(Int_t)tofHit->getSector()]++;
         TTof.fTHits[(Int_t)tofHit->getSector()]++;

      }
      for(Int_t i=0;i<6;i++)
      {
	  hists->tofHit_n[i]->Fill(TofCounts[i]);
      }

      hists->tofHit_tot->Fill(TofCounts[0]+TofCounts[1]+TofCounts[2]+TofCounts[3]+TofCounts[4]+TofCounts[5]);
   }
}


void HQAMaker::finalizeHistTof()
{
   if (hists->tofHit_nSec->GetEntries() > 0) {
      if (nProcessed == 0)
         hists->tofHit_nSec->Scale(1.);
      else
         hists->tofHit_nSec->Scale(1. / nProcessed);
   }

   //cout <<"nProcessed: "<<nProcessed <<endl;



   for(Int_t i=0; i<6; i++)
   {
       if(hists->tofHit_n[i]->GetEntries()>0)
       {
	   TTof.fTHitMultiMean[i]=hists->tofHit_n[i]->GetMean();
           TTof.fTHitMultiMax[i]=hists->tofHit_n[i]->GetBinCenter(hists->tofHit_n[i]->GetMaximumBin());
       }
       if(nProcessed>0)
       {
	   TTof.fTHits[i]=TTof.fTHits[i]/nProcessed;
       }
   }

   if(hists->tofHit_tot->GetEntries()>0)
   {
       TTof.fTHitTotMultiMean=hists->tofHit_tot->GetMean();
       TTof.fTHitTotMultiMax=hists->tofHit_tot->GetBinCenter(hists->tofHit_tot->GetMaximumBin());
       hists->tofHit_tot->GetXaxis()->SetRangeUser(10,100.5);   //want to find maximum in multiplicity larger than 10
       TTof.fTHitTotMultiMax2=hists->tofHit_tot->GetBinCenter(hists->tofHit_tot->GetMaximumBin());
       hists->tofHit_tot->GetXaxis()->SetRangeUser(-0.5,100.5);
   }

   if(hists->tofHit_tof->GetEntries()>0)
   {
       TTof.fTHitTofMean=hists->tofHit_tof->GetMean();
       TTof.fTHitTofMax=hists->tofHit_tof->GetBinCenter(hists->tofHit_tof->GetMaximumBin());
   }
}


void HQAMaker::fillHistRpc()
{

   HRpcHit *rpcHit = 0;
   Float_t x, y, z;
   Int_t nDataObjs;
   Int_t RPCCounts[6]={0,0,0,0,0,0};

   if (iterRpcHit)
   {
      iterRpcHit->Reset();
      nDataObjs = ((TObjArray*)iterRpcHit->GetCollection())->GetEntries();
      //hists->rpcHit_n->Fill(nDataObjs);
      varHists->rpcHit_n_Var->Fill(nEvent, nDataObjs);

      while ((rpcHit = (HRpcHit*) iterRpcHit->Next()) != 0)
      {

	  rpcHit->getXYZLab(x, y, z);

	  hists->rpcHit_nSec ->Fill(rpcHit->getSector());
	  hists->rpcHit_scat ->Fill(-x, y);
	  hists->rpcHit_tof  ->Fill(rpcHit->getTof());
	  hists->rpcHit_phi  ->Fill(rpcHit->getPhi());
	  hists->rpcHit_theta->Fill(rpcHit->getTheta());
	  RPCCounts[rpcHit->getSector()]++;
          TRpc.fTHits[(Int_t)rpcHit->getSector()]++;
      }
      for(Int_t i=0;i<6;i++)
      {
	  //cout<<"Hits in RPC Sector :"<<i<<", "<<RPCCounts[i]<<endl;
	  hists->rpcHit_n[i]->Fill(RPCCounts[i]);
      }

      hists->rpcHit_tot->Fill(RPCCounts[0]+RPCCounts[1]+RPCCounts[2]+RPCCounts[3]+RPCCounts[4]+RPCCounts[5]);
   }

}



void HQAMaker::finalizeHistRpc()
{
   if (hists->rpcHit_nSec->GetEntries() > 0) {
      if (nProcessed == 0)
         hists->rpcHit_nSec->Scale(1.);
      else
         hists->rpcHit_nSec->Scale(1. / nProcessed);
   }

   /*
   HRpcHit *rpcHit = 0;
   Float_t x, y, z;
   Int_t nDataObjs;

   if (iterRpcHit) {
      iterRpcHit->Reset();
      nDataObjs = ((TObjArray*)iterRpcHit->GetCollection())->GetEntries();
      //??hists->rpcHit_n->Fill(nDataObjs);
      varHists->rpcHit_n_Var->Fill(nEvent, nDataObjs);

      while ((rpcHit = (HRpcHit*) iterRpcHit->Next()) != 0) {

         rpcHit->getXYZLab(x, y, z);

         hists->rpcHit_nSec ->Fill(rpcHit->getSector());
         hists->rpcHit_scat ->Fill(-x, y);
         hists->rpcHit_tof  ->Fill(rpcHit->getTof());
         //hists->rpcHit_phi  ->Fill((rpcHit->getPhi()-60.)+(rpcHit->getSector()*60.));
         hists->rpcHit_phi  ->Fill(rpcHit->getPhi());
         hists->rpcHit_theta->Fill(rpcHit->getTheta());

      }
   }
   */

   for(Int_t i=0; i<6; i++)
   {
       if(hists->rpcHit_n[i]->GetEntries()>0)
       {
	   TRpc.fTHitMultiMean[i]=hists->rpcHit_n[i]->GetMean();
           TRpc.fTHitMultiMax[i]=hists->rpcHit_n[i]->GetBinCenter(hists->rpcHit_n[i]->GetMaximumBin());
       }
       if(nProcessed>0)
       {
	   TRpc.fTHits[i]=TRpc.fTHits[i]/nProcessed;
       }
   }

   if(hists->rpcHit_tot->GetEntries()>0)
   {
       TRpc.fTHitTotMultiMean=hists->rpcHit_tot->GetMean();
       TRpc.fTHitTotMultiMax=hists->rpcHit_tot->GetBinCenter(hists->rpcHit_tot->GetMaximumBin());
       hists->rpcHit_tot->GetXaxis()->SetRangeUser(10,200.5);   //want to find maximum in multiplicity larger than 10
       TRpc.fTHitTotMultiMax2=hists->rpcHit_tot->GetBinCenter(hists->rpcHit_tot->GetMaximumBin());
       hists->rpcHit_tot->GetXaxis()->SetRangeUser(-0.5,200.5);
   }

   if(hists->rpcHit_tof->GetEntries()>0)
   {
       TRpc.fTHitTofMean=hists->rpcHit_tof->GetMean();
       TRpc.fTHitTofMax=hists->rpcHit_tof->GetBinCenter(hists->rpcHit_tof->GetMaximumBin());
   }
}



void HQAMaker::fillHistShower()
{

   Float_t sum, dummy1, phi, theta, charge, x, y, z;
   Int_t row, col, mod, sec;
   Int_t nDataObjs;
   Int_t ShowerCounts[6]={0,0,0,0,0,0};

   Int_t ShowerCounts2[6][3];
   for(Int_t i=0; i<6; i++)
   {
       for(Int_t j=0; j<3; j++)
       {
           ShowerCounts2[i][j]=0;
       }
   }

   HShowerHit *shoHit = 0;

   if (iterShoHit) {
      iterShoHit->Reset();
      nDataObjs = ((TObjArray*)iterShoHit->GetCollection())->GetEntries();
      varHists->shoHit_n_Var->Fill(nEvent, nDataObjs);

      while ((shoHit = (HShowerHit*) iterShoHit->Next()) != 0) {

         row = shoHit->getRow();
         col = shoHit->getCol();
         mod = shoHit->getModule();
         sec = shoHit->getSector();
         charge = shoHit->getCharge();
         hists->shoHit_nSec->Fill(sec);
         hists->shoHit_sectorVsModule->Fill(sec, mod);
         hists->shoHit_nRow->Fill(row);
         hists->shoHit_nCol->Fill(col);
         if ((sum = shoHit->getSum(mod)) > 0.0) {
            hists->shoHitSums[sec][mod]->Fill(sum);
         }
         if (mod == 0) hists->shoHit_chargeVsSector_m0->Fill(charge, sec);
         else if (mod == 1) hists->shoHit_chargeVsSector_m1->Fill(charge, sec);
         else if (mod == 2) hists->shoHit_chargeVsSector_m2->Fill(charge, sec);

         if (mod == 0) hists->shoHit_rowVsSector_m0->Fill(row, sec);
         else if (mod == 1) hists->shoHit_rowVsSector_m1->Fill(row, sec);
         else if (mod == 2) hists->shoHit_rowVsSector_m2->Fill(row, sec);

         if (mod == 0) hists->shoHit_colVsSector_m0->Fill(col, sec);
         else if (mod == 1) hists->shoHit_colVsSector_m1->Fill(col, sec);
         else if (mod == 2) hists->shoHit_colVsSector_m2->Fill(col, sec);

         shoHit->getSphereCoord(&dummy1, &phi, &theta);
         hists->shoHit_phi->Fill(phi);
         hists->shoHit_theta->Fill(theta);

         shoHit->getLabXYZ(&x, &y, &z);
         hists->shoHit_scat->Fill(-x, y);

	 ShowerCounts[sec]++;
         ShowerCounts2[sec][mod]++;
      }
      for(Int_t i=0;i<6;i++)
      {
	  hists->shoHit_n[i]->Fill(ShowerCounts[i]);

	  for(Int_t j=0;j<3;j++)
	  {
              hists->shoHit_nm[i][j]->Fill(ShowerCounts2[i][j]);
	  }
      }
   }

}


void HQAMaker::finalizeHistShower()
{
    if (hists->shoHit_nSec->GetEntries() > 0)
    {
	if (nProcessed == 0)
	    hists->shoHit_nSec->Scale(1.);
	else {
	    hists->shoHit_nSec->Scale(1. / nProcessed);
	    hists->shoHit_nCol->Scale(1. / nProcessed);
	    hists->shoHit_nRow->Scale(1. / nProcessed);
	    hists->shoHit_sectorVsModule->Scale(1. / nProcessed);
	    hists->shoHit_scat->Scale(1. / nProcessed);
	    hists->shoHit_theta->Scale(1. / nProcessed);
	    hists->shoHit_phi->Scale(1. / nProcessed);
	    for (Int_t s = 0; s < 6; s++) {
		for (Int_t m = 0; m < 3; m++) {
		    hists->shoHitSums[s][m]->Scale(1. / nProcessed);
		}
	    }
	}
    }

    for(Int_t i=0; i<6; i++)
    {
	for(Int_t j=0; j<3; j++)
	{
	    if(hists->shoHit_nm[i][j]->GetEntries() > 0)
	    {
                TShw.fTHitMultiMean[i][j]=hists->shoHit_nm[i][j]->GetMean();
                TShw.fTHitMultiMax[i][j]=hists->shoHit_nm[i][j]->GetBinCenter(hists->shoHit_nm[i][j]->GetMaximumBin());
	    }

	    if(hists->shoHitSums[i][j]!=0)
	    {
		TShw.fTHitChargeMean[i][j]=hists->shoHitSums[i][j]->GetMean();
                TShw.fTHitChargeMax[i][j]=hists->shoHitSums[i][j]->GetBinCenter(hists->shoHitSums[i][j]->GetMaximumBin());
	    }
	}
    }
    // hists->shoHit_avgCharge_m0->Divide(hists->shoHit_rowVsCol_m0);
}



void HQAMaker::fillHistWall()
{

   //introduced for ForwardWall

   HWallRaw *fwRaw = 0;
   HWallHit *fwHit = 0;

   Int_t multWall = 0;
   Int_t wallCell = 0;
   Int_t multCell = 0;
   Int_t wallCellArr[4];
   for (Int_t i = 0; i < 4; i++) {
      wallCellArr[i] = 0;
   }

   // Iteration over HWallRaw

   if (iterFwRaw) {
      iterFwRaw->Reset();

      while ((fwRaw = (HWallRaw*) iterFwRaw->Next()) != 0) {
         multCell = fwRaw->getNHits();
         if (multCell <= 0) continue;
         if (multCell > fwRaw->getMaxMult()) {
            multCell = fwRaw->getMaxMult();
         }
         wallCell = fwRaw->getCell();

         //I quarter -> 1-6;61-66
         if (((wallCell >=   0) && (wallCell <=   5)) ||
             ((wallCell >=  12) && (wallCell <=  17)) ||
             ((wallCell >=  24) && (wallCell <=  29)) ||
             ((wallCell >=  36) && (wallCell <=  41)) ||
             ((wallCell >=  48) && (wallCell <=  53)) ||
             ((wallCell >=  60) && (wallCell <=  64)))  wallCellArr[0]++;

         //II quarter -> 7-12;67-72
         if (((wallCell >=   6) && (wallCell <=  11)) ||
             ((wallCell >=  18) && (wallCell <=  23)) ||
             ((wallCell >=  30) && (wallCell <=  35)) ||
             ((wallCell >=  42) && (wallCell <=  47)) ||
             ((wallCell >=  54) && (wallCell <=  59)) ||
             ((wallCell >=  67) && (wallCell <=  71)))  wallCellArr[1]++;

         //III quarter -> 73-78;133-138
         if (((wallCell >=  72) && (wallCell <=  76)) ||
             ((wallCell >=  84) && (wallCell <=  89)) ||
             ((wallCell >=  96) && (wallCell <= 101)) ||
             ((wallCell >= 108) && (wallCell <= 113)) ||
             ((wallCell >= 120) && (wallCell <= 125)) ||
             ((wallCell >= 132) && (wallCell <= 137)))  wallCellArr[2]++;

         //IV quarter -> 79-84;139-144
         if (((wallCell >=  79) && (wallCell <=  83)) ||
             ((wallCell >=  90) && (wallCell <=  95)) ||
             ((wallCell >= 102) && (wallCell <= 107)) ||
             ((wallCell >= 114) && (wallCell <= 119)) ||
             ((wallCell >= 126) && (wallCell <= 131)) ||
             ((wallCell >= 138) && (wallCell <= 143)))  wallCellArr[3]++;

         if (wallCell < 144) hists->hWallCellSmall ->Fill(wallCell);               //  0-143
         if (wallCell >= 144 && wallCell < 208) hists->hWallCellMedium->Fill(wallCell); //144-207
         if (wallCell >= 208) hists->hWallCellLarge ->Fill(wallCell);              //210-301

         multWall++;

      }//-end-while-(HWallRaw)--

      hists->hMultWall     ->Fill((Float_t)multWall);
      hists->hWallHitNumI  ->Fill((Float_t)wallCellArr[0]);
      hists->hWallHitNumII ->Fill((Float_t)wallCellArr[1]);
      hists->hWallHitNumIII->Fill((Float_t)wallCellArr[2]);
      hists->hWallHitNumIV ->Fill((Float_t)wallCellArr[3]);

   }

   // Iteration over HWallHit

   if (iterFwHit) {
      iterFwHit->Reset();

      Int_t wallCell;
      Float_t wallX, wallY, wallZ, wallTime, wallCharge;

      while ((fwHit = (HWallHit*)iterFwHit->Next())) {

         wallCell   = fwHit->getCell();
         wallTime   = fwHit->getTime();
         wallCharge = fwHit->getCharge();

         fwHit->getXYZLab(wallX, wallY, wallZ);
         wallX = wallX / 10;
         wallY = wallY / 10;

         hists->hWallXY->Fill(wallX, wallY);

         hists->hWallCellTime->Fill((Float_t)wallCell, wallTime);
         hists->hWallCellAdc ->Fill((Float_t)wallCell, wallCharge);

      }//-end-while-(HWallHit)--
   }

   // Marking up non existing FW cells

   //Double_t minSmall=1,minMedium=1,minLarge=1;
   //Stat_t fprofSmall[146],fprofLarge[94];
   //minSmall=hists->hWallCellSmall->GetMinimum(minSmall);
   //minLarge=hists->hWallCellLarge->GetMinimum(minLarge);
   //
   //for(Int_t ic=0;ic<146;ic++) fprofSmall[ic] = 0;
   //for(Int_t ic=0;ic< 94;ic++) fprofLarge[ic] = 0;
   //
   //fprofSmall[66]=fprofSmall[67]=fprofSmall[78]=fprofSmall[79]=minSmall*2;
   ////hists->hWallCellSmallHole->SetContent(fprofSmall);
   //hists->hWallCellSmall->SetContent(fprofSmall);
   //
   //fprofLarge[209-208]=fprofLarge[210-208]=fprofLarge[218-208]=fprofLarge[219-208]=fprofLarge[220-208]=fprofLarge[230-208]=fprofLarge[283-208]=fprofLarge[293-208]=fprofLarge[294-208]=fprofLarge[295-208]=minLarge*2;
   ////hists->hWallCellLargeHole->SetContent(fprofLarge);
   //hists->hWallCellLarge->SetContent(fprofLarge);


}

void HQAMaker::fillHistEmc()
{
   HEmcRaw * emcRaw = 0;
   HEmcCal * emcCal = 0;
   HEmcCluster * emcClus = 0;

   Int_t multRaw = 0;
   Int_t multRawF = 0;
   Int_t multCal = 0;
   Int_t multClus = 0;

   Float_t time, width;
   Float_t phi, theta;
   Float_t x, y;

   if (iterEmcRaw) {
      iterEmcRaw->Reset();

      while ((emcRaw = (HEmcRaw*) iterEmcRaw->Next()) != 0) {
         multRawF = emcRaw->getFastMultiplicity();

         if (multRawF <= 0) continue;
         ++multRaw;

	 Int_t sector, cell;
	 Char_t row, col;
         emcRaw->getAddress(sector, cell, row, col);

         UChar_t position = HEmcDetector::getPositionFromCell(cell);

         hists->hEmcRawPattern->Fill(sector * 200 + position);

         emcRaw->getFastTimeAndWidth(0, time, width);
         hists->hEmcRawTimeCell->Fill(sector * 200 + position, time);
         hists->hEmcRawWidthCell->Fill(sector * 200 + position, width);
      }
      hists->hEmcRawMult->Fill(multRaw);
   }

   if (iterEmcCal) {
      iterEmcCal->Reset();

      while ((emcCal = (HEmcCal*) iterEmcCal->Next()) != 0) {
         Char_t sector, col, row;
         UChar_t cell;
         emcCal->getAddress(sector, cell, row, col);
         if (sector < 0)
             continue;

         ++multCal;

         UChar_t position = HEmcDetector::getPositionFromCell(cell);

         time = emcCal->getTime();
         width = emcCal->getEnergy();

         hists->hEmcCalTime->Fill(time);
         hists->hEmcCalEnergy->Fill(width);

         hists->hEmcCalTimeCell->Fill(sector * 200 + position, time);
         hists->hEmcCalEnergyCell->Fill(sector * 200 + position, width);

         hists->hEmcCalCol->Fill(col);
         hists->hEmcCalRow->Fill(row);
         hists->hEmcCalRowCol->Fill(col, row);
      }
      hists->hEmcCalMult->Fill(multCal);
   }

   if (iterEmcClus) {
      iterEmcClus->Reset();

      while ((emcClus = (HEmcCluster*) iterEmcClus->Next()) != 0) {
         Int_t sector, cell;
         sector = emcClus->getSector();
         cell = emcClus->getCell();

         if (sector < 0)
             continue;

         ++multClus;

         UChar_t position = HEmcDetector::getPositionFromCell(cell);

         hists->hEmcClusSize->Fill(emcClus->getNCells());

         time = emcClus->getTime();
         width = emcClus->getEnergy();

         hists->hEmcClusTime->Fill(time);
         hists->hEmcClusEnergy->Fill(width);

         hists->hEmcClusTimeCell->Fill(sector * 200 + position, time);
         hists->hEmcClusEnergyCell->Fill(sector * 200 + position, width);

         phi = emcClus->getPhi();
         theta = emcClus->getTheta();

         hists->hEmcClusPhi->Fill(phi);
         hists->hEmcClusTheta->Fill(theta);
         hists->hEmcClusThetaPhi->Fill(phi, theta);

         x = emcClus->getXLab();
         y = emcClus->getYLab();

         hists->hEmcClusXYlab->Fill(x, y);
      }
      hists->hEmcClusMult->Fill(multClus);
   }
}




void HQAMaker::fillHistSpline()
{
}


void HQAMaker::fillHistRungeKutta()
{

   Float_t mass, theta, phi, r2d = 57.29578;
   Int_t system, charge, sec;

   HRKTrackB *rungeKuttaTrk = 0;

   if (iterRungeKuttaTrk) {
      iterRungeKuttaTrk->Reset();

      while ((rungeKuttaTrk = (HRKTrackB*) iterRungeKuttaTrk->Next()) != 0) {

         if (rungeKuttaTrk->getBeta() > betaMin) {
            if (rungeKuttaTrk->getChiq() > 100000.) continue;

            system =      rungeKuttaTrk->getSystem();
            charge =      rungeKuttaTrk->getPolarity();
            mass   =      rungeKuttaTrk->getMass2();
            sec    =      rungeKuttaTrk->getSector();

            if (mass >= 0) {
               mass   = sqrt(mass);
               hists->rungeKuttaTrack_massCharge->Fill(mass * charge);
            }

            theta = rungeKuttaTrk->getTheta() * r2d;
            phi   = rungeKuttaTrk->getPhi() * r2d + 60.*sec;
            if (phi > 360.) phi -= 360.;
            hists->rungeKuttaTrack_scat->Fill(sin(theta / r2d)*sin((phi - 90) / r2d), sin(theta / r2d)*cos((phi - 90) / r2d));

            if (system == 0) {
               hists->trackingRK_sys0[sec]->Fill(mass * charge);
	    }

            if (system == 1) {
               hists->trackingRK_sys1[sec]->Fill(mass * charge);
            }
         }
      }
   }
}







void HQAMaker::finalizeHistDaqScaler()
{
   // show only not empty bins:
   //  ( (TAxis *)h->GetXaxis()) ->SetRange(0,nCountCalEvents)
   //---- set Xaxis range for  Daq Scalers


   for (Int_t ii = 0; ii < 8; ii++) {
/*
      ((TAxis *)(hists->histReduce[ii]) ->GetXaxis()) ->SetRange(0, nCountCalEvents);
      ((TAxis *)(hists->histInput[ii]) ->GetXaxis()) ->SetRange(0, nCountCalEvents);
      ((TAxis *)(hists->histStartScaler[ii]) ->GetXaxis()) ->SetRange(0, nCountCalEvents);
      ((TAxis *)(hists->histVetoScaler[ii]) ->GetXaxis()) ->SetRange(0, nCountCalEvents);
      // and request that Y axis should start from 0
      hists->histReduce[ii] -> SetMinimum(0.0);
      hists->histInput[ii] -> SetMinimum(0.0);
      hists->histStartScaler[ii] -> SetMinimum(0.0);
      hists->histVetoScaler[ii] -> SetMinimum(0.0);
*/
 
     ((TAxis *)(hists->histAllScalerTrend) ->GetXaxis()) ->SetRange(0, nCountCalEvents);

   }
}





void HQAMaker::fillHistRichMDC()
{
   HMdcSeg *mdcSeg = 0;
   HRichHit *richHit = 0;

   Int_t   richSec;
   Float_t mdcPhi, mdcTheta;
   Float_t richPhi, richTheta;

   Int_t iSec;
   Float_t rad2deg = 180.0 / TMath::Pi();

   for (iSec = 0; iSec < 6; iSec++) {
      lMdc[0] = iSec;
      lMdc[1] = 0;

      if (iterMdcSeg) {
         iterMdcSeg->Reset();
         iterMdcSeg->gotoLocation(lMdc);

         while ((mdcSeg = (HMdcSeg*) iterMdcSeg->Next()) != 0) {
            mdcPhi = mdcSeg->getPhi() * rad2deg ;
            if (iSec != 5) mdcPhi = mdcPhi + iSec * 60;
            else mdcPhi = mdcPhi - 60.;

            mdcTheta = mdcSeg->getTheta() * rad2deg;

            if (iterRichHit) {
               iterRichHit->Reset();
               while ((richHit = (HRichHit*) iterRichHit->Next()) != 0) {
                  richTheta = richHit->getTheta();
                  richPhi = richHit->getPhi();
                  richSec = richHit->getSector();

                  if (richSec != iSec) continue;

                  hists->richmdc_dtheta[richSec]->Fill(richTheta - mdcTheta);
                  hists->richmdc_dphi[richSec]->Fill((richPhi - mdcPhi)*sin(mdcTheta / rad2deg));

                  if (fabs((richPhi - mdcPhi)*sin(mdcTheta / rad2deg)) > DPHI) continue;
                  if (fabs((richTheta - mdcTheta)) > DTHETA) continue;

                  hists->richmdc_lep->Fill(iSec);
               }
            }
         }
      }
   }
}


void HQAMaker::finalizeHistRichMDC()
{
   Float_t scaleF;

   if (nProcessed == 0) scaleF = 1.0;
   else scaleF = 1. / nProcessed;

   for (Int_t s = 0; s < 6; s++) {
      hists->richmdc_dtheta[s]->Scale(scaleF);
      hists->richmdc_dphi[s]->Scale(scaleF);
   }
   hists->richmdc_lep->Scale(scaleF);
}

void HQAMaker::fillScalers()
{
   // Fill scalar quantities with operations on QA histograms


   TH1D *proj = 0;

   // Sectorwise scalers
   for (Int_t sec = 0; sec < 6; sec++) {

      //---- Rich scalers
      if (hists->richCal_nSec->GetEntries() > 0)
         (*scalers->richCal_n).fData[sec] = (float) hists->richCal_nSec->GetBinContent(sec + 1) / nProcessed;
      if (hists->richHit_nSec->GetEntries() > 0)
         (*scalers->richHit_n)[sec] = 1000. * (float) hists->richHit_nSec->GetBinContent(sec + 1) / nProcessed;

      //---- Mdc scalers
      if (hists->mdcCal1_nVsSector_m0->GetEntries() > 0) {
         proj = hists->mdcCal1_nVsSector_m0->ProjectionX("proj", sec + 1, sec + 1);
         (*scalers->mdcCal1_n_m0)[sec] = proj->GetMean();
         delete proj;
      }
      if (hists->mdcCal1_nVsSector_m1->GetEntries() > 0) {
         proj = hists->mdcCal1_nVsSector_m1->ProjectionX("proj", sec + 1, sec + 1);
         (*scalers->mdcCal1_n_m1)[sec] = proj->GetMean();
         delete proj;
      }
      if (hists->mdcCal1_nVsSector_m2->GetEntries() > 0) {
         proj = hists->mdcCal1_nVsSector_m2->ProjectionX("proj", sec + 1, sec + 1);
         (*scalers->mdcCal1_n_m2)[sec] = proj->GetMean();
         delete proj;
      }
      if (hists->mdcCal1_nVsSector_m3->GetEntries() > 0) {
         proj = hists->mdcCal1_nVsSector_m3->ProjectionX("proj", sec + 1, sec + 1);
         (*scalers->mdcCal1_n_m3)[sec] = proj->GetMean();
         delete proj;
      }

      //---- Tof scalers
      if (hists->tofHit_nSec->GetEntries() > 0)
         (*scalers->tofHit_n)[sec] = (float) hists->tofHit_nSec->GetBinContent(sec + 1) / nProcessed;

      // Shower scalers
      if (hists->shoHit_nSec->GetEntries() > 0)
         (*scalers->shoHit_n)[sec] = (float) hists->shoHit_nSec->GetBinContent(sec + 1) / nProcessed;
      if (hists->shoHitTof_nSec->GetEntries() > 0)
         (*scalers->shoHitTof_n)[sec] = (float) hists->shoHitTof_nSec->GetBinContent(sec + 1) / nProcessed;

   }

   // Detector-wise scalers

}



void HQAMaker::fillHistMatching()
{

   HSplineTrack  *track  = 0;
   HRKTrackB *trackRK    = NULL;
   HTofCluster   *Cluster = 0;
   HShowerHit    *Shower = 0;
   HMetaMatch2   *meta   = 0;
   //HRpcHit       *Rpc    = 0;
   HRpcCluster   *RpcCl  = 0;

   Float_t rad2deg = 180.0 / TMath::Pi();

   //for low multiplicity
   /*
   //Int_t nDataObjs_tof=1000,nDataObjs_rpc=1000;//unused
   if (iterTofHit) {
      iterTofHit->Reset();
      nDataObjs_tof = ((TObjArray*)iterTofHit->GetCollection())->GetEntries(); //unused
   }
   if (iterRpcHit)
   {
      iterRpcHit->Reset();
      nDataObjs_rpc = ((TObjArray*)iterRpcHit->GetCollection())->GetEntries(); //unused
   }
   //end
   */

   if (iterMetaMatch) {
       iterMetaMatch->Reset();
       while ((meta = (HMetaMatch2 *)iterMetaMatch->Next()) != 0) {

//low multiplicity cut added
	 //if((nDataObjs_tof+nDataObjs_rpc)>100) continue;  //40% of M20 events less central
	 //   if(nDataObjs_tof>23) continue;  //20% of M20 events less central, TOF only



	   if (meta->getSystem() < 0) continue; // no metamatch                            //is not always below 0
	   if ((meta->getSplineInd() != -1)) {  // inner+outer seg + spline                // index to get the appropriate spline object
	       track = (HSplineTrack *)catSplineTrk->getObject(meta->getSplineInd());
	       //cout <<"AAAAAAAAAAAAAAAAAAAAAAAAAAAAA"<<endl;
	       //--------------------------------------------------------------------
	       // was rk succesful ?  (rk indedx has to taken from another place ....)
	       // also quality parameters ...
	       // caution : meta->getRungeKuttaInd();
	       //          is filled in case a.) no METAHIT b.) rk failed
	       //  a. is skipped , we have to check if rk failed
	       Bool_t  rkSuccess    = kTRUE;
	       Int_t   rkReplaceInd = meta->getRungeKuttaInd();                            // index to get the appropriate RungeKutta object
	       Float_t rkchi2       = -1;
	       if (rkReplaceInd >= 0) trackRK = (HRKTrackB*) catRungeKuttaTrk->getObject(rkReplaceInd);
	       else                  trackRK = 0;

	       if (trackRK != 0)          {
		   rkchi2 = trackRK->getChiq();
	       }
	       if (trackRK && rkchi2 < 0)  {
		   rkSuccess = kFALSE   ;
	       }

	       //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	       //. . . . .Loop over the 3 best Meta Matches for the RK Track . . . . .
	       //. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
	//Dont loop over META HITS JUST TAKE THE BEST       for (Int_t i = 0; i < META_TAB_SIZE; i++) {
		   //if (track->getSystem() > -1){hists->hsecspline ->Fill(track->getSector());}        // System is always 0 ???
		   //if (track->getSystem() == 1){hists->hsecspline1->Fill(track->getSector());}        //changed from track - to - meta!!!!!!!!
		   //if (track->getSystem() == 0){hists->hsecspline0->Fill(track->getSector());}        //changed from track - to - meta!!!!!!!!

		   if (meta->getSystem() > -1){hists->hsecspline ->Fill(track->getSector());}        // System is always 0 ???
		   if (meta->getSystem() == 1){hists->hsecspline1->Fill(track->getSector());}        //changed from track - to - meta!!!!!!!!
		   if (meta->getSystem() == 0){hists->hsecspline0->Fill(track->getSector());}        //changed from track - to - meta!!!!!!!!

                   Int_t MetaSector = meta->getSector();
		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   //° ° °Fill Histograms for MetaMatch in TOF ° °
		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   //if (track->getSystem() == 1) {
		   if (meta->getSystem()==1) {                                                   //TESTTESTTEST
		       Int_t indtof = meta->getTofClstInd(0);                                       // index for the appropriate Tof Cluster hit (larger than 0 if there was a hit)

		       if (indtof >= 0) Cluster = (HTofCluster *) catTfClust->getObject(indtof);
		       else            Cluster = NULL;

		       if (Cluster) { //-system==1 (TOF case)

			   if (!rkSuccess) trackRK = NULL;
			   else { // get RK from meta hits
			       Int_t indrk = meta->getRungeKuttaIndTofClst(0);                             // index for the appropriate RungeKutta object with Tof hit (>-1)
			       if (indrk >= 0) trackRK = (HRKTrackB*)catRungeKuttaTrk -> getObject(indrk);
			   }

			   //calculation of tofXSeg, tofYSeg - positions of TOF hit in module coordinates
                           Int_t TOFsector;
 			   //gibts nichTOFSigmaX = Cluster->getXRMS();
			   //gibt nichTOFSigmaY = Cluster->getYRMS();
			   TOFsector = Cluster->getSector();

                           if(MetaSector!=TOFsector)cout<<"Something strange with META TOF"<<endl;

			   hists->hXdiffvstofstrip->Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), meta->getTofClstDX(0));
			   hists->hYdiffvstofstrip->Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), meta->getTofClstDY(0));
			   hists->htof_quality->Fill(meta->getSector(), meta->getTofClstQuality(0));


			   hists->hXdiffTof[TOFsector] ->Fill(meta->getTofClstDX(0));
			   hists->hYdiffTof[TOFsector] ->Fill(meta->getTofClstDY(0));

			   if (trackRK) {
			       hists->hXdiffvstofstripRK -> Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), (trackRK -> getMETAdx()));
			       hists->hYdiffvstofstripRK -> Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), (trackRK -> getMETAdy()));
                               hists->htof_qualityRK     -> Fill(Cluster->getSector(),trackRK ->getQualityTof());
			   }
			   //neg 300<mom<1000  6.5<tof<9.5
			   if (trackRK&&trackRK->getPolarity()<0&&trackRK->getP()>300&&Cluster->getTof()>6.5&&Cluster->getTof()<9.5) {
			       hists->hXdiffvstofstripRK_neg -> Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), (trackRK -> getMETAdx()));
			       hists->hYdiffvstofstripRK_neg -> Fill((Cluster->getSector() * 64 + (Cluster->getModule() * 8) + Cluster->getCell()), (trackRK -> getMETAdy()));
			       hists->hXdiffvsthetaRK_neg -> Fill((Cluster->getSector() * 100 + trackRK->getTheta()*rad2deg), (trackRK -> getMETAdx()));
			       hists->hYdiffvsthetaRK_neg -> Fill((Cluster->getSector() * 100 + trackRK->getTheta()*rad2deg), (trackRK -> getMETAdy()));
			   }

		       }
		   }//-system==1, TOF


		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   //° ° °Fill Histograms for MetaMatch in Shower° °
		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   //if (track->getSystem() == 0) { //-system==0 (SHOWER | RPC case)
		   if (meta->getSystem()==0) {

		       Int_t indshower = meta->getShowerHitInd(0);

		       if (indshower >= 0) Shower = (HShowerHit *) catShoHit->getObject(indshower);
		       else                Shower = NULL;

		       if (Shower) {
			   Float_t ShwX, ShwY, ShwSigmaX, ShwSigmaY;
                           Int_t ShwSector;
			   Char_t ShwRow, ShwCol;
			   Shower->getXY(&ShwX, &ShwY);
			   ShwRow = Shower->getRow();
			   ShwCol = Shower->getCol();
			   ShwSigmaX = Shower->getSigmaX();
			   ShwSigmaY = Shower->getSigmaY();
                           ShwSector = Shower->getSector();
			   if (ShwSigmaX == 0 || ShwSigmaY == 0.0) cout << "--Error: ShowerSigma could not be 0! " << endl;
                           if(MetaSector!=ShwSector)cout<<"Something strange with META Shower"<<endl;

			   hists->hXdiffvsshowersector->Fill(meta->getSector(), meta->getShowerHitDX(0));
			   hists->hYdiffvsshowersector->Fill(meta->getSector(), meta->getShowerHitDY(0));

			   hists->hXdiffvsshw->Fill(meta->getSector(), (meta->getShowerHitDX(0)) / ShwSigmaX);
			   hists->hYdiffvsshw->Fill(meta->getSector(), (meta->getShowerHitDY(0)) / ShwSigmaY);

			   hists->hshower_quality     ->Fill(meta->getSector(),  meta->getShowerHitQuality(0));

			   //hists->hXdiffvsshoCol      ->Fill(ShwCol + (meta->getSector() * 33), meta->getShowerHitDX(i));        //Changed by Johannes Siebenson
			   hists->hXdiffvsshoCol      ->Fill(ShwCol + (meta->getSector() * 33), meta->getShowerHitDX(0));
			   hists->hXdiffvsshoRow      ->Fill(ShwRow + (meta->getSector() * 33), meta->getShowerHitDX(0));
			   hists->hYdiffvsshoCol      ->Fill(ShwCol + (meta->getSector() * 33), meta->getShowerHitDY(0));
			   hists->hYdiffvsshoRow      ->Fill(ShwRow + (meta->getSector() * 33), meta->getShowerHitDY(0));


			   hists->hXdiffsho[ShwSector] ->Fill(meta->getShowerHitDX(0)/ShwSigmaX);
			   hists->hYdiffsho[ShwSector] ->Fill(meta->getShowerHitDY(0)/ShwSigmaY);

			   if (!rkSuccess) trackRK = NULL;
			   else { // get RK from meta hits
			       Int_t indrk = meta->getRungeKuttaIndShowerHit(0);
			       if (indrk >= 0) trackRK = (HRKTrackB*)catRungeKuttaTrk -> getObject(indrk);
			   }
			   if (trackRK) {
	        	       hists -> hXdiffvsshowersectorRK -> Fill(meta->getSector(), trackRK -> getMETAdx());
			       hists -> hYdiffvsshowersectorRK -> Fill(meta->getSector(), trackRK -> getMETAdy());
                               hists -> hshower_qualityRK      -> Fill(meta->getSector(), trackRK -> getQualityShower());
			       //    hists -> hXdiffvsshwRK->Fill(meta->getSector(),(ShwX-trackRK -> getMETAdx()) / ShwSigmaX );
			       //    hists -> hYdiffvsshwRK->Fill(meta->getSector(),(ShwY-trackRK -> getMETAdy()) / ShwSigmaY);
			       hists -> hXdiffvsshoColRK      ->Fill(ShwCol + (meta->getSector() * 33), trackRK -> getMETAdx());
			       hists -> hXdiffvsshoRowRK      ->Fill(ShwRow + (meta->getSector() * 33), trackRK -> getMETAdx());
			       hists -> hYdiffvsshoColRK      ->Fill(ShwCol + (meta->getSector() * 33), trackRK -> getMETAdy());
			       hists -> hYdiffvsshoRowRK      ->Fill(ShwRow + (meta->getSector() * 33), trackRK -> getMETAdy());
			   }
		       }

		   }//-system==0, Shower

		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   //° ° °Fill Histograms for MetaMatch in RPC ° °
		   //° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °
		   if (meta->getSystem()==0) {

		       Int_t indRpc = meta->getRpcClstInd(0);

		       if (indRpc >= 0) RpcCl = (HRpcCluster *) fCatRpcCluster->getObject(indRpc);
		       else             RpcCl = NULL;

		       if (RpcCl) {
			   //Float_t RpcX, RpcY;
			   Float_t RpcSigmaX, RpcSigmaY;
			   RpcSigmaX = RpcCl->getXRMS();
			   RpcSigmaY = RpcCl->getYRMS();
			   if (RpcSigmaX == 0 || RpcSigmaY == 0.0) cout << "--Error: RpcSigma could not be 0! " << endl;

			   hists->hXdiffvsRpcsector->Fill(meta->getSector(), meta->getRpcClstDX(0));
			   hists->hYdiffvsRpcsector->Fill(meta->getSector(), meta->getRpcClstDY(0));

                           hists->hXdiffvsRpc->Fill(meta->getSector(), (meta->getRpcClstDX(0)) / RpcSigmaX);
			   hists->hYdiffvsRpc->Fill(meta->getSector(), (meta->getRpcClstDY(0)) / RpcSigmaY);

			   hists->hRpc_quality     ->Fill(meta->getSector(),  meta->getRpcClstQuality(0));

			   hists->hXdiffRpc[(Int_t)meta->getSector()] ->Fill(meta->getRpcClstDX(0)/RpcSigmaX);
			   hists->hYdiffRpc[(Int_t)meta->getSector()] ->Fill(meta->getRpcClstDY(0)/RpcSigmaY);
		       }
		   }//-system==0, RPC

	       //  } // loop meta candidates

	   }//-end-of-loop-over-spline--

       }//-end-while--
   }
}

void HQAMaker::fillHistPid()
{
    HParticleCand    *pCand       = NULL;
    HStart2Cal       *stCal       = NULL;
    HStart2Hit       *pStartHit   = NULL;
    //HTofHit          *pTof        = NULL;
    //HRpcHit          *pRpc        = NULL;
    HRpcCluster      *pRpcClu     = NULL;
    HTofCluster      *pTofClu     = NULL;

    Int_t             multRK      = 0; // Mult. counters
    Int_t             multLepCand = 0;
    Bool_t            isGoodRich  = kFALSE; 


    Int_t MetaCounts[6][2];
    Int_t MetaCountsSelect[6][2];

    for(Int_t i=0; i<6; i++)
    {
	for(Int_t j=0; j<2; j++)
	{
	    MetaCounts[i][j]=0;
            MetaCountsSelect[i][j]=0;
	}
    }

   //-----------------------StartDet part-----------------------------
   // first step is to get global timing information
   // there is only one "time 0" and is located in
   // Start2Hit category
   Float_t startTime  = 0.0;   // put here 0.0 as default, means no start HIT 
   Int_t   startStrip = -1;

   if (iterStHit) {
      iterStHit->Reset();
      while (NULL != (pStartHit = static_cast<HStart2Hit*>(iterStHit->Next()))) {
         if (pStartHit->getModule() == 0) {
            startStrip = pStartHit->getStrip();
            startTime  = pStartHit->getTime();
         }
      }  //end of start iteration
   } // if iterStart

  // We need also StartCal information ------------------------------
  // this is needed to prepare calibration check for Start Module 1
   Float_t startCalTimeMod0  = 0.0;   // put here 0.0 as default, means no start HIT 
   Int_t   startCalStripMod0 = -1;
   Float_t startCalTimeMod1  = 0.0;   // put here 0.0 as default, means no start HIT 
   Int_t   startCalStripMod1 = -1;


   //-------------------End of Start part-----------------------------


   if (NULL == iterParticleCand) {
      return ;  // do nothing if ParticleCandidate does not exist
   }

   iterParticleCand->Reset();
   Int_t nDataObjs = static_cast<TObjArray*>(const_cast<TCollection*>(iterParticleCand->GetCollection()))->GetEntries();
   varHists->particleCand_n_Var->Fill(nEvent, nDataObjs);

   //----------------- loop over particleCand -----------------------
   while (NULL != (pCand = dynamic_cast<HParticleCand*>(iterParticleCand->Next()))) { //ParticleCandIter
      // strong RICH cut
      // getRingNumPads()  and average ampl ( getRingAmplitude() / getRingNumPads()
      // very strong condition, will select mainly doubly hits of conversion pairs.
      isGoodRich  = kFALSE;
      if( ( pCand->getRingAmplitude() ) / (pCand->getRingNumPads() )  > 80 ) {
         isGoodRich = kTRUE;
      }

      if (pCand->getSystem() > -1 ) {
         multRK++;
         if (pCand->isRichMatch(Particle::kIsRICHRK)  && isGoodRich ) {
            ++multLepCand;
         }
      } else {
         continue;
      }

      //------------------- RK in Pid ----------------------------------
      if (pCand->getChi2() > 0 && pCand->getChi2() < 1000)
      {

	  //times for leptons
	  Float_t fPidTimeCorr = 0.0;
	  if (pCand->getBeta() != 0.) {
	      fPidTimeCorr = 7. / pCand->getBeta();
	  }
	  if (pCand->isRichMatch(Particle::kIsRICHRK)  && isGoodRich  )
	  {
	      if (pCand->getSystem() == 0 && pCand->getRpcInd() > -1 && fCatRpcCluster )
	      {
		  if (NULL != (pRpcClu = static_cast<HRpcCluster*>(fCatRpcCluster->getObject(pCand->getRpcInd()))) && (pRpcClu->getClusterType() == 1 ) ) {
		      hists->hparticle_lepton_tof_vs_rod_sys0->Fill(pCand->getSector() * 192 + pRpcClu->getColumn1() * 32 + pRpcClu->getCell1(), fPidTimeCorr);
		  }
	      }

	      // switch to TofCluster category
	      if (pCand->getSystem() == 1 && pCand->getTofClstInd() > -1 && catTfClust)
	      {
		  if (NULL != (pTofClu = static_cast<HTofCluster*>(catTfClust->getObject(pCand->getTofClstInd())))) {
		      hists->hparticle_lepton_tof_vs_rod_sys1->Fill(pCand->getSector() * 64 + (pTofClu->getModule() * 8 + pTofClu->getCell()), fPidTimeCorr);
		  }
	      }

	      if (pCand->getSystem() == 0)
	      {
		  hists->hparticle_lepton_tof_vs_startstrip_sys0->Fill(startStrip, fPidTimeCorr);
		  hists->hparticle_lepton_tof_all_sys0->Fill(fPidTimeCorr);
		  if(startStrip>-1)
		  {
		      hists->hparticle_lepton_tof_vs_start_sys0[startStrip]->Fill(fPidTimeCorr);
		  }
	      }

	      if (pCand->getSystem() == 1)
	      {
		  hists->hparticle_lepton_tof_vs_startstrip_sys1->Fill(startStrip, fPidTimeCorr);
		  hists->hparticle_lepton_tof_all_sys1->Fill(fPidTimeCorr);
                  if(startStrip>-1)
		  {
		      hists->hparticle_lepton_tof_vs_start_sys1[startStrip]->Fill(fPidTimeCorr);
		  }
	      }
	  }

	  //For Pions
	  //theta and phi
	  if (pCand->getSystem() > -1)
	  {
	      hists->hparticle_RK_theta_sec[pCand->getSector()]->Fill(pCand->getTheta());
	      hists->hparticle_RK_phi->Fill(pCand->getPhi());
	      if (pCand->getCharge() == -1 && pCand->getMomentum() > 300)
	      {
		  hists->hparticle_RK_neg_theta_sec[pCand->getSector()]->Fill(pCand->getTheta());
		  hists->hparticle_RK_neg_phi->Fill(pCand->getPhi());

		  //TOF and RPC time calibration QA plots
		  Float_t beta_c = (pCand->getMomentum())/TMath::Sqrt((pCand->getMomentum())*(pCand->getMomentum())+139*139.);

		  Float_t tof_c;
		  Float_t time_diff;
		  if (pCand->getSystem() ==0 && pCand->getRpcInd() > -1 && fCatRpcCluster)
		  {
		      if (NULL != (pRpcClu = static_cast<HRpcCluster*>(fCatRpcCluster->getObject(pCand->getRpcInd()))) &&
			  (pRpcClu->getClusterType() == 1) && pCand->getCharge() < 0. && pCand->getMomentum() > 200.0  )
		      {
			  tof_c  = ( pCand->getBeta()*( pRpcClu->getTof()))/beta_c;
			  time_diff =  (pRpcClu->getTof()) - tof_c;
			  hists->hparticle_pi_tof_vs_rod_sys0->Fill(pCand->getSector() * 192 + pRpcClu->getColumn1() * 32 + pRpcClu->getCell1(), time_diff);
			  hists->hparticle_pi_tof_vs_startstrip_sys0->Fill(startStrip, time_diff);
			  hists->hparticle_pi_tof_all_sys0->Fill(time_diff);
			  if(startStrip>-1)  // we have hit in Start det Mod0
			  {
			      hists->hparticle_pi_tof_vs_start_sys0[startStrip]->Fill(time_diff);
                         // this part is prepared for Start detector calibration
                         // 1. subtract StartHit time
                         // 2. Correct tof using Mod0 data if exists

                  //Search all hits in Mod0 within +-20ns and for each of them plot neg pions
                  // needed for Start det calibration: 
                  if (iterStCal) {
                      iterStCal->Reset();
                      while (( stCal = (HStart2Cal*) iterStCal->Next()) != 0 ) {
                          if (stCal->getModule() == 0) {
                              //+-20 ns cut
                              for(int t=1; t<stCal->getMaxMultiplicity()+1 ; t++){
                                  if( fabs( stCal->getTime(t)) < 20.0 ){
                                      startCalTimeMod0  = stCal->getTime(t);
                                      startCalStripMod0 = stCal->getStrip();
			                              hists->hparticle_pi_tof_vs_startMod0_sys0[startCalStripMod0]
                                                            ->Fill(time_diff + startTime - startCalTimeMod0 ); 
                                  }
                              } 
                          } //stCal->getModule() == 0  condition
                          // Below Similar procedure for Start Module 1  


                          if (stCal->getModule() == 1) {
                              //+-20 ns cut
                              for(int t=1; t<stCal->getMaxMultiplicity()+1 ; t++){
                                  if( fabs( stCal->getTime(t)) < 20.0 ){
                                      startCalTimeMod1  = stCal->getTime(t);
                                      startCalStripMod1 = stCal->getStrip();
			                              hists->hparticle_pi_tof_vs_startMod1_sys0[startCalStripMod1]
                                                            ->Fill(time_diff + startTime - startCalTimeMod1 ); 
                                  }
                              } 
                          } //stCal->getModule() == 0  condition


                      } //end of while
                  }//end of if(iterStCal)
                  
			  }


		      }
		  }
		  if (pCand->getSystem() == 1 && pCand->getTofClstInd() > -1 && catTfClust)
		  {
		      if (NULL != (pTofClu = static_cast<HTofCluster*>(catTfClust->getObject(pCand->getTofClstInd()))) &&
			  pCand->getCharge() < 0. && pCand->getMomentum() > 300.0)
		      {
			  tof_c  = ( pCand->getBeta()*( pTofClu->getTof()))/beta_c;
			  time_diff =  (pTofClu->getTof()) - tof_c;
			  hists->hparticle_pi_tof_vs_rod_sys1->Fill(pCand->getSector() * 64 + (pTofClu->getModule() * 8 + pTofClu->getCell()), time_diff);
			  hists->hparticle_pi_eloss_vs_rod_sys1->Fill(pCand->getSector() * 64 + (pTofClu->getModule() * 8 + pTofClu->getCell()),pTofClu->getEdep() );
			  hists->hparticle_pi_tof_vs_startstrip_sys1->Fill(startStrip, time_diff);
			  hists->hparticle_pi_tof_all_sys1->Fill(time_diff);
			  hists->hparticle_pi_metahit_vs_phi_sys1->Fill(pCand->getPhi(),(pTofClu->getModule() * 8 + pTofClu->getCell()));


                          if(startStrip>-1)
			  {
			      hists->hparticle_pi_tof_vs_start_sys1[startStrip]->Fill(time_diff);
			  }
		      }
		  }
	      }
	  }

	  //For slow protons
	  //eloss
	  if (pCand->getSystem() == 1 && catTfClust)
	  {
	    if (NULL != (pTofClu = static_cast<HTofCluster*>(catTfClust->getObject(pCand->getTofClstInd()))) && pCand->getCharge() == 1 && pCand->getMomentum() > 300 && pCand->getMomentum() < 350 &&pCand->getBeta()>0.25&&pCand->getBeta()<0.4 )
	      {
		hists->hparticle_p_eloss_vs_rod_sys1->Fill(pCand->getSector() * 64 + (pTofClu->getModule() * 8 + pTofClu->getCell()),pTofClu->getEdep() );
	      }
	  }
	  

	  //proton momentum calculated from velocity vs reconstructed momentum
	  if (pCand->getCharge() > 0 && pCand->getBeta() < 1) {
	      if (pCand->getSystem() == 0) hists->hparticle_rk_momdif_sys0_sec[pCand->getSector()]
		  ->Fill(pCand->getMomentum(), pCand->getMomentum() - (938.*pCand->getBeta() * 1. / sqrt(1. - pCand->getBeta()*pCand->getBeta())));
	      if (pCand->getSystem() == 1) hists->hparticle_rk_momdif_sys1_sec[pCand->getSector()]
		  ->Fill(pCand->getMomentum(), pCand->getMomentum() - (938.*pCand->getBeta() * 1. / sqrt(1. - pCand->getBeta()*pCand->getBeta())));
	  }


	  //MetaMatching qualities for Tof, RPC and Shower
	  if(pCand->isTofClstUsed()||pCand->isTofClstUsed())
	  {
	      hists->hparticle_MetaMatchQualTof[pCand->getSector()]->Fill(pCand->getMetaMatchQuality());
	  }

	  if(pCand->isRpcClstUsed())
	  {
	      hists->hparticle_MetaMatchQualRpc[pCand->getSector()]->Fill(pCand->getMetaMatchQuality());
	  }

	  if(pCand->getShowerInd()>-1)
	  {
	      hists->hparticle_MetaMatchQualShw[pCand->getSector()]->Fill(pCand->getMetaMatchQualityShower());
	  }

	  //Multiplicity for Tof, RPC and Shower with and witout partile seclection
	  if(pCand->getSystem()>-1&&pCand->getSystem()<2)
	  {
	      MetaCounts[pCand->getSector()][pCand->getSystem()]++;
	      if(pCand->isFlagBit(Particle::kIsUsed))
	      {
		  MetaCountsSelect[pCand->getSector()][pCand->getSystem()]++;
	      }
	  }

	  if(pCand->getSystem()==1)
	  {
              hists->hparticle_TofdEdx->Fill(pCand->getTofdEdx());
	  }

      }
      //------------End of Runge-Kutta in Pid ----------------------------
   } //PidTrackCandIter
   //----------------- End of loop over particleCand -----------------------
   hists->hparticle_multrk->Fill(multRK);
   varHists->particleCandLep_n_Var->Fill(nEvent, multLepCand);

   for(Int_t i=0; i<6; i++)
   {
       for(Int_t j=0;j<2;j++)
       {
	   hists->hparticle_mult[i][j]->Fill(MetaCounts[i][j]);
	   hists->hparticle_mult_select[i][j]->Fill(MetaCountsSelect[i][j]);
       }
   }
}



void HQAMaker::finalizeHistPid()
{
    Text_t buffer[80];

    for(Int_t i=0; i<6; i++)
    {
	if(hists->hparticle_MetaMatchQualTof[i]->GetEntries()>0)
	{
	    TPhy.fTMetaMatchTofMean[i]=hists->hparticle_MetaMatchQualTof[i]->GetMean();
	    TPhy.fTMetaMatchTofMax[i]=hists->hparticle_MetaMatchQualTof[i]->GetBinCenter(hists->hparticle_MetaMatchQualTof[i]->GetMaximumBin());
	    hists->hparticle_MetaMatchQualTof[i]->GetXaxis()->SetRangeUser(0,10);
	    TPhy.fTMetaMatchTofMax2[i]=hists->hparticle_MetaMatchQualTof[i]->GetBinCenter(hists->hparticle_MetaMatchQualTof[i]->GetMaximumBin());
            hists->hparticle_MetaMatchQualTof[i]->GetXaxis()->SetRangeUser(-10,10);
	}

        if(hists->hparticle_MetaMatchQualRpc[i]->GetEntries()>0)
	{
	    TPhy.fTMetaMatchRpcMean[i]=hists->hparticle_MetaMatchQualRpc[i]->GetMean();
	    TPhy.fTMetaMatchRpcMax[i]=hists->hparticle_MetaMatchQualRpc[i]->GetBinCenter(hists->hparticle_MetaMatchQualRpc[i]->GetMaximumBin());
	    hists->hparticle_MetaMatchQualRpc[i]->GetXaxis()->SetRangeUser(0,10);
	    TPhy.fTMetaMatchRpcMax2[i]=hists->hparticle_MetaMatchQualRpc[i]->GetBinCenter(hists->hparticle_MetaMatchQualRpc[i]->GetMaximumBin());
            hists->hparticle_MetaMatchQualRpc[i]->GetXaxis()->SetRangeUser(-10,10);
	}

        if(hists->hparticle_MetaMatchQualShw[i]->GetEntries()>0)
	{
	    TPhy.fTMetaMatchShwMean[i]=hists->hparticle_MetaMatchQualShw[i]->GetMean();
	    TPhy.fTMetaMatchShwMax[i]=hists->hparticle_MetaMatchQualShw[i]->GetBinCenter(hists->hparticle_MetaMatchQualShw[i]->GetMaximumBin());
	    hists->hparticle_MetaMatchQualShw[i]->GetXaxis()->SetRangeUser(0,10);
	    TPhy.fTMetaMatchShwMax2[i]=hists->hparticle_MetaMatchQualShw[i]->GetBinCenter(hists->hparticle_MetaMatchQualShw[i]->GetMaximumBin());
            hists->hparticle_MetaMatchQualShw[i]->GetXaxis()->SetRangeUser(-10,10);
	}

	for(Int_t j=0; j<2; j++)
	{
	    if(hists->hparticle_mult[i][j]->GetEntries()>0)
	    {
		TPhy.fTMultiMean[i][j]=hists->hparticle_mult[i][j]->GetMean();
                TPhy.fTMultiMax[i][j]=hists->hparticle_mult[i][j]->GetBinCenter(hists->hparticle_mult[i][j]->GetMaximumBin());
	    }
            if(hists->hparticle_mult_select[i][j]->GetEntries()>0)
	    {
		TPhy.fTMultiMeanSelect[i][j]=hists->hparticle_mult_select[i][j]->GetMean();
                TPhy.fTMultiMaxSelect[i][j]=hists->hparticle_mult_select[i][j]->GetBinCenter(hists->hparticle_mult_select[i][j]->GetMaximumBin());
	    }
	}
    }

    if(hists->hparticle_lepton_tof_all_sys0->GetEntries()>0)
    {
	TPhy.fTTimeLepSumSys0Mean=hists->hparticle_lepton_tof_all_sys0->GetMean();
	TPhy.fTTimeLepSumSys0Max=hists->hparticle_lepton_tof_all_sys0->GetBinCenter(hists->hparticle_lepton_tof_all_sys0->GetMaximumBin());
        TPhy.fTTimeLepSumSys0Sig=hists->hparticle_lepton_tof_all_sys0->GetRMS();
    }

    if(hists->hparticle_lepton_tof_all_sys1->GetEntries()>0)
    {
	TPhy.fTTimeLepSumSys1Mean=hists->hparticle_lepton_tof_all_sys1->GetMean();
	TPhy.fTTimeLepSumSys1Max=hists->hparticle_lepton_tof_all_sys1->GetBinCenter(hists->hparticle_lepton_tof_all_sys1->GetMaximumBin());
        TPhy.fTTimeLepSumSys1Sig=hists->hparticle_lepton_tof_all_sys1->GetRMS();
    }

    if(hists->hparticle_pi_tof_all_sys0->GetEntries()>0)
    {
	TPhy.fTTimePiSumSys0Mean=hists->hparticle_pi_tof_all_sys0->GetMean();
	TPhy.fTTimePiSumSys0Max=hists->hparticle_pi_tof_all_sys0->GetBinCenter(hists->hparticle_pi_tof_all_sys0->GetMaximumBin());
	TPhy.fTTimePiSumSys0Sig=hists->hparticle_pi_tof_all_sys0->GetRMS();
	//Fitting
	for(Int_t n=0; n<3; n++)
	{
	    hists->hparticle_pi_tof_GaussFit_all_sys0->ReleaseParameter(n);
	    hists->hparticle_pi_tof_GaussFit_all_sys0->SetParameter(n,0.0);
	}
	if(hists->hparticle_pi_tof_all_sys0->GetEntries()>300)
	{
	    hists->hparticle_pi_tof_GaussFit_all_sys0->SetParameter(0,hists->hparticle_pi_tof_all_sys0->GetMaximum());
	    hists->hparticle_pi_tof_GaussFit_all_sys0->SetParameter(1,TPhy.fTTimePiSumSys0Max);
	    hists->hparticle_pi_tof_GaussFit_all_sys0->SetParameter(2,1.0);
	    hists->hparticle_pi_tof_GaussFit_all_sys0->SetRange(TPhy.fTTimePiSumSys0Max-1,TPhy.fTTimePiSumSys0Max+1);
	    hists->hparticle_pi_tof_all_sys0->Fit("hparticle_pi_tof_GaussFit_all_sys0","+Q","",TPhy.fTTimePiSumSys0Max-0.7,TPhy.fTTimePiSumSys0Max+0.5);
            TPhy.fTTimePiSumSys0FitMean=hists->hparticle_pi_tof_GaussFit_all_sys0->GetParameter(1);
	}
    }

    if(hists->hparticle_pi_tof_all_sys1->GetEntries()>0)
    {
	TPhy.fTTimePiSumSys1Mean=hists->hparticle_pi_tof_all_sys1->GetMean();
	TPhy.fTTimePiSumSys1Max=hists->hparticle_pi_tof_all_sys1->GetBinCenter(hists->hparticle_pi_tof_all_sys1->GetMaximumBin());
	TPhy.fTTimePiSumSys1Sig=hists->hparticle_pi_tof_all_sys1->GetRMS();
        //Fitting
	for(Int_t n=0; n<3; n++)
	{
	    hists->hparticle_pi_tof_GaussFit_all_sys1->ReleaseParameter(n);
	    hists->hparticle_pi_tof_GaussFit_all_sys1->SetParameter(n,0.0);
	}
	if(hists->hparticle_pi_tof_all_sys1->GetEntries()>300)
	{
	    hists->hparticle_pi_tof_GaussFit_all_sys1->SetParameter(0,hists->hparticle_pi_tof_all_sys1->GetMaximum());
	    hists->hparticle_pi_tof_GaussFit_all_sys1->SetParameter(1,TPhy.fTTimePiSumSys1Max);
	    hists->hparticle_pi_tof_GaussFit_all_sys1->SetParameter(2,1.0);
	    hists->hparticle_pi_tof_GaussFit_all_sys1->SetRange(TPhy.fTTimePiSumSys1Max-1,TPhy.fTTimePiSumSys1Max+1);
	    hists->hparticle_pi_tof_all_sys1->Fit("hparticle_pi_tof_GaussFit_all_sys1","+Q","",TPhy.fTTimePiSumSys1Max-0.7,TPhy.fTTimePiSumSys1Max+0.5);
            TPhy.fTTimePiSumSys1FitMean=hists->hparticle_pi_tof_GaussFit_all_sys1->GetParameter(1);
	}
    }

    for(Int_t i=0; i<NSTART_STRIPS; i++)
    {
	if(hists->hparticle_lepton_tof_vs_start_sys0[i]->GetEntries()>0)
	{
	    TPhy.fTTimeLepStaSys0Mean[i]=hists->hparticle_lepton_tof_vs_start_sys0[i]->GetMean();
	    TPhy.fTTimeLepStaSys0Max[i]=hists->hparticle_lepton_tof_vs_start_sys0[i]->GetBinCenter(hists->hparticle_lepton_tof_vs_start_sys0[i]->GetMaximumBin());
            TPhy.fTTimeLepStaSys0Sig[i]=hists->hparticle_lepton_tof_vs_start_sys0[i]->GetRMS();
	}

        if(hists->hparticle_lepton_tof_vs_start_sys1[i]->GetEntries()>0)
	{
	    TPhy.fTTimeLepStaSys1Mean[i]=hists->hparticle_lepton_tof_vs_start_sys1[i]->GetMean();
	    TPhy.fTTimeLepStaSys1Max[i]=hists->hparticle_lepton_tof_vs_start_sys1[i]->GetBinCenter(hists->hparticle_lepton_tof_vs_start_sys1[i]->GetMaximumBin());
            TPhy.fTTimeLepStaSys1Sig[i]=hists->hparticle_lepton_tof_vs_start_sys1[i]->GetRMS();
	}

        if(hists->hparticle_pi_tof_vs_start_sys0[i]->GetEntries()>0)
	{
	    TPhy.fTTimePiStaSys0Mean[i]=hists->hparticle_pi_tof_vs_start_sys0[i]->GetMean();
	    TPhy.fTTimePiStaSys0Max[i]=hists->hparticle_pi_tof_vs_start_sys0[i]->GetBinCenter(hists->hparticle_pi_tof_vs_start_sys0[i]->GetMaximumBin());
	    TPhy.fTTimePiStaSys0Sig[i]=hists->hparticle_pi_tof_vs_start_sys0[i]->GetRMS();
            //Fitting
	    for(Int_t n=0; n<3; n++)
	    {
		hists->hparticle_pi_tof_GaussFit_sys0[i]->ReleaseParameter(n);
		hists->hparticle_pi_tof_GaussFit_sys0[i]->SetParameter(n,0.0);
	    }
	    if(hists->hparticle_pi_tof_vs_start_sys0[i]->GetEntries()>300)
	    {
                sprintf(buffer,"hparticle_pi_tof_GaussFit_sys0[%i]",i);
		hists->hparticle_pi_tof_GaussFit_sys0[i]->SetParameter(0,hists->hparticle_pi_tof_vs_start_sys0[i]->GetMaximum());
		hists->hparticle_pi_tof_GaussFit_sys0[i]->SetParameter(1,TPhy.fTTimePiStaSys0Max[i]);
		hists->hparticle_pi_tof_GaussFit_sys0[i]->SetParameter(2,1.0);
		hists->hparticle_pi_tof_GaussFit_sys0[i]->SetRange(TPhy.fTTimePiStaSys0Max[i]-1,TPhy.fTTimePiStaSys0Max[i]+1);
		hists->hparticle_pi_tof_vs_start_sys0[i]->Fit(buffer,"+Q","",TPhy.fTTimePiStaSys0Max[i]-0.7,TPhy.fTTimePiStaSys0Max[i]+0.5);
		TPhy.fTTimePiStaSys0FitMean[i]=hists->hparticle_pi_tof_GaussFit_sys0[i]->GetParameter(1);
	    }
	}

        if(hists->hparticle_pi_tof_vs_start_sys1[i]->GetEntries()>0)
	{
	    TPhy.fTTimePiStaSys1Mean[i]=hists->hparticle_pi_tof_vs_start_sys1[i]->GetMean();
	    TPhy.fTTimePiStaSys1Max[i]=hists->hparticle_pi_tof_vs_start_sys1[i]->GetBinCenter(hists->hparticle_pi_tof_vs_start_sys1[i]->GetMaximumBin());
	    TPhy.fTTimePiStaSys1Sig[i]=hists->hparticle_pi_tof_vs_start_sys1[i]->GetRMS();
            //Fitting
	    for(Int_t n=0; n<3; n++)
	    {
		hists->hparticle_pi_tof_GaussFit_sys1[i]->ReleaseParameter(n);
		hists->hparticle_pi_tof_GaussFit_sys1[i]->SetParameter(n,0.0);
	    }
	    if(hists->hparticle_pi_tof_vs_start_sys1[i]->GetEntries()>300)
	    {
                sprintf(buffer,"hparticle_pi_tof_GaussFit_sys1[%i]",i);
		hists->hparticle_pi_tof_GaussFit_sys1[i]->SetParameter(0,hists->hparticle_pi_tof_vs_start_sys1[i]->GetMaximum());
		hists->hparticle_pi_tof_GaussFit_sys1[i]->SetParameter(1,TPhy.fTTimePiStaSys1Max[i]);
		hists->hparticle_pi_tof_GaussFit_sys1[i]->SetParameter(2,1.0);
		hists->hparticle_pi_tof_GaussFit_sys1[i]->SetRange(TPhy.fTTimePiStaSys1Max[i]-1,TPhy.fTTimePiStaSys1Max[i]+1);
		hists->hparticle_pi_tof_vs_start_sys1[i]->Fit(buffer,"+Q","",TPhy.fTTimePiStaSys1Max[i]-0.7,TPhy.fTTimePiStaSys1Max[i]+0.5);
		TPhy.fTTimePiStaSys1FitMean[i]=hists->hparticle_pi_tof_GaussFit_sys1[i]->GetParameter(1);
	    }
	}
    }

    if(hists->hparticle_TofdEdx->GetEntries()>0)
    {
	TPhy.fTTofdEdxMean=hists->hparticle_TofdEdx->GetMean();
        TPhy.fTTofdEdxMax=hists->hparticle_TofdEdx->GetBinCenter(hists->hparticle_TofdEdx->GetMaximumBin());
    }
}






void HQAMaker::fillHistDaqScaler()
{
   HTBoxChan *pTBoxChannel;
   Int_t chan   = 0;
   UInt_t scaler = 0;

   if (!iterHTBoxChan) {
      return;
   }

   //Int_t eventnb = gHades->getCurrentEvent()->getHeader()->getEventSeqNumber();
   //cout<<"----event seq nb: "<<eventnb<<endl;
   iterHTBoxChan->Reset();

   while ((pTBoxChannel = (HTBoxChan *)iterHTBoxChan->Next()) != 0) {

      pTBoxChannel->getScalerData(chan, scaler);   // read scaler data 
   
      //cout<<"---scaler data, chan: "<<chan<<"   data: "<<scaler<<endl;
      hists-> histAllScalerCh -> Fill(chan+1,scaler);
      hists-> histAllScalerTrend -> Fill(nCountCalEvents, chan+1,scaler);

      if(chan>=74&&chan<82)  hists->  histInputScaler->Fill(chan+1-74,scaler);
      if(chan>=93&&chan<101) hists->  histDownScaler->Fill(chan+1-93,scaler);
      if(chan>=129&&chan<137)hists->  histGatedScaler->Fill(chan+1-129,scaler);
      if(chan>=112&&chan<120)hists->  histAcceptScaler->Fill(chan+1-112,scaler);
                                    
      if(chan>=46&&chan<54)  hists->  histStartScaler->Fill(chan+1-46,scaler);
      if(chan==82)           hists->  histStartScaler->Fill(9,scaler);
      if(chan>=54&&chan<62)  hists->  histVetoScaler->Fill(chan+1-54,scaler);
      if(chan>=62&&chan<68)  hists->  histTofScaler->Fill(chan+1-62,scaler);
      if(chan>=68&&chan<74)  hists->  histRpcScaler->Fill(chan+1-68,scaler);

//      hists->histInput[chan]->Fill(nCountCalEvents, scaler);
//      hists->histReduce[chan]->Fill(nCountCalEvents, scaler);
//      hists->histStartScaler[chan]->Fill(nCountCalEvents, scaler);
//      hists->histVetoScaler[chan]->Fill(nCountCalEvents, scaler);
   }
}

void HQAMaker::fillHistShowerRpc()
{
   HShowerHit *shoHit = 0;
   HRpcHit *rpcHit = 0;
   Int_t shoSec, shoMod, rpcSec;
   Float_t shoX, shoY, rpcX, rpcY;

   if (iterShoHit && iterRpcHit) {
      iterShoHit->Reset();
//        nDataObjs = ((TObjArray*)iterShoHit->GetCollection())->GetEntries();
//        varHists->shoHit_n_Var->Fill(nEvent, nDataObjs);

      while ((shoHit = (HShowerHit*) iterShoHit->Next()) != 0) {
         shoSec = shoHit->getSector();
         shoMod = shoHit->getModule();
         shoHit->getXY(&shoX, &shoY);
         iterRpcHit->Reset();
         while ((rpcHit = (HRpcHit*) iterRpcHit->Next()) != 0) {
            rpcSec = rpcHit->getSector();
            rpcX   = rpcHit->getXMod();
            rpcY   = rpcHit->getYMod();
            if (shoSec == rpcSec) {
               switch (shoMod) {
                  case 0:
		     hists->shorpcXdiff_pre[shoSec]->Fill(shoX - rpcX);       // ## schimmeck -- changed back to -
                     hists->shorpcYdiff_pre[shoSec]->Fill(shoY - rpcY);       
                     hists->shorpcXvs_pre[shoSec]->Fill(shoX, rpcX);         // ## schimmeck -- changed back to -
                     hists->shorpcYvs_pre[shoSec]->Fill(shoY, rpcY);          
                     break;
                  case 1:
                     hists->shorpcXdiff_post1[shoSec]->Fill(shoX - rpcX);  // ## schimmeck -- changed back to -
                     hists->shorpcYdiff_post1[shoSec]->Fill(shoY - rpcY);
                     hists->shorpcXvs_post1[shoSec]->Fill(shoX, rpcX);      // ## schimmeck -- changed back to -
                     hists->shorpcYvs_post1[shoSec]->Fill(shoY, rpcY);
                     break;
                  case 2:
                     hists->shorpcXdiff_post2[shoSec]->Fill(shoX - rpcX);  // ## schimmeck -- changed back to -
                     hists->shorpcYdiff_post2[shoSec]->Fill(shoY - rpcY);
                     hists->shorpcXvs_post2[shoSec]->Fill(shoX, rpcX);
                     hists->shorpcYvs_post2[shoSec]->Fill(shoY, rpcY);
                     break;
               }
            }
         }
      }
   }
}

void HQAMaker::finalizeHistShowerRpc()
{
}

void HQAMaker::fillGlobalVertex()
{
   HVertex pGlobVertex = gHades->getCurrentEvent()->getHeader()->getVertex();
   Float_t fVertX = pGlobVertex.getX();
   Float_t fVertY = pGlobVertex.getY();
   Float_t fVertZ = pGlobVertex.getZ();
   Float_t fVertChi2 = pGlobVertex.getChi2();

   if (fVertChi2 > -1.0) {
      hists->stVertexXY->Fill(fVertX, fVertY);
      hists->stVertexZ->Fill(fVertZ);
   }
}

//Johannes Test
void HQAMaker::fillMassSpectrum()
{
    HParticleCand   *pCand   = 0;

    if (NULL == iterParticleCand) {
	return ;  // do nothing if ParticleCandidate does not exist
    }

    iterParticleCand->Reset();

    while (NULL != (pCand = dynamic_cast<HParticleCand*>(iterParticleCand->Next())))
    {
	hists->hparticle_mass ->Fill(sqrt(pCand->getMass2())*pCand->getCharge());

	if(pCand->getSystem()==0)
	{
            hists->hparticle_mass_RPC ->Fill(sqrt(pCand->getMass2())*pCand->getCharge());
	}
        if(pCand->getSystem()==1)
	{
            hists->hparticle_mass_TOF ->Fill(sqrt(pCand->getMass2())*pCand->getCharge());
	}
    }
}

void HQAMaker::finalizeMassSpectrum()
{
    //************************************************************
    for(Int_t n = 0; n < 3; n++)
    {
        hists->hparticle_mass_GaussFit->ReleaseParameter(n);
	hists->hparticle_mass_GaussFit->SetParameter(n,0.0);
	hists->hparticle_mass_GaussFit_1->ReleaseParameter(n);
	hists->hparticle_mass_GaussFit_1->SetParameter(n,0.0);
        hists->hparticle_mass_GaussFit_2->ReleaseParameter(n);
	hists->hparticle_mass_GaussFit_2->SetParameter(n,0.0);

        hists->hparticle_mass_RPC_GaussFit->ReleaseParameter(n);
	hists->hparticle_mass_RPC_GaussFit->SetParameter(n,0.0);
        hists->hparticle_mass_RPC_GaussFit_1->ReleaseParameter(n);
	hists->hparticle_mass_RPC_GaussFit_1->SetParameter(n,0.0);
        hists->hparticle_mass_RPC_GaussFit_2->ReleaseParameter(n);
	hists->hparticle_mass_RPC_GaussFit_2->SetParameter(n,0.0);

        hists->hparticle_mass_TOF_GaussFit->ReleaseParameter(n);
	hists->hparticle_mass_TOF_GaussFit->SetParameter(n,0.0);
        hists->hparticle_mass_TOF_GaussFit_1->ReleaseParameter(n);
	hists->hparticle_mass_TOF_GaussFit_1->SetParameter(n,0.0);
        hists->hparticle_mass_TOF_GaussFit_2->ReleaseParameter(n);
	hists->hparticle_mass_TOF_GaussFit_2->SetParameter(n,0.0);
    }
    //*************************************************************

    //**********************************************************************************************
    hists->hparticle_mass_GaussFit->SetParameter(0,hists->hparticle_mass->GetMaximum());  //Protons
    hists->hparticle_mass_GaussFit->SetParameter(1,900.0);
    hists->hparticle_mass_GaussFit->SetParameter(2,30.0);

    hists->hparticle_mass_GaussFit_1->SetParameter(0,hists->hparticle_mass->GetMaximum()/3.0); //Pi+
    hists->hparticle_mass_GaussFit_1->SetParameter(1,140.0);
    hists->hparticle_mass_GaussFit_1->SetParameter(2,30.0);

    hists->hparticle_mass_GaussFit_2->SetParameter(0,hists->hparticle_mass->GetMaximum()); //Pi-
    hists->hparticle_mass_GaussFit_2->SetParameter(1,-140.0);
    hists->hparticle_mass_GaussFit_2->SetParameter(2,30.0);

    hists->hparticle_mass_RPC_GaussFit->SetParameter(0,hists->hparticle_mass_RPC->GetMaximum());  //Protons
    hists->hparticle_mass_RPC_GaussFit->SetParameter(1,900.0);
    hists->hparticle_mass_RPC_GaussFit->SetParameter(2,30.0);

    hists->hparticle_mass_RPC_GaussFit_1->SetParameter(0,hists->hparticle_mass_RPC->GetMaximum()/3.0); //Pi+
    hists->hparticle_mass_RPC_GaussFit_1->SetParameter(1,140.0);
    hists->hparticle_mass_RPC_GaussFit_1->SetParameter(2,30.0);

    hists->hparticle_mass_RPC_GaussFit_2->SetParameter(0,hists->hparticle_mass_RPC->GetMaximum()); //Pi-
    hists->hparticle_mass_RPC_GaussFit_2->SetParameter(1,-140.0);
    hists->hparticle_mass_RPC_GaussFit_2->SetParameter(2,30.0);

    hists->hparticle_mass_TOF_GaussFit->SetParameter(0,hists->hparticle_mass_TOF->GetMaximum());  //Protons
    hists->hparticle_mass_TOF_GaussFit->SetParameter(1,900.0);
    hists->hparticle_mass_TOF_GaussFit->SetParameter(2,30.0);

    hists->hparticle_mass_TOF_GaussFit_1->SetParameter(0,hists->hparticle_mass_TOF->GetMaximum()/3.0); //Pi+
    hists->hparticle_mass_TOF_GaussFit_1->SetParameter(1,140.0);
    hists->hparticle_mass_TOF_GaussFit_1->SetParameter(2,30.0);

    hists->hparticle_mass_TOF_GaussFit_2->SetParameter(0,hists->hparticle_mass_TOF->GetMaximum()); //Pi-
    hists->hparticle_mass_TOF_GaussFit_2->SetParameter(1,-140.0);
    hists->hparticle_mass_TOF_GaussFit_2->SetParameter(2,30.0);
    //*********************************************************************************************

    //*********************************************************************************************
    hists->hparticle_mass_GaussFit->SetRange(810,1030);
    hists->hparticle_mass_GaussFit_1->SetRange(90,190);
    hists->hparticle_mass_GaussFit_2->SetRange(-190,-90);

    hists->hparticle_mass_RPC_GaussFit->SetRange(810,1030);
    hists->hparticle_mass_RPC_GaussFit_1->SetRange(90,190);
    hists->hparticle_mass_RPC_GaussFit_2->SetRange(-190,-90);

    hists->hparticle_mass_TOF_GaussFit->SetRange(810,1030);
    hists->hparticle_mass_TOF_GaussFit_1->SetRange(90,190);
    hists->hparticle_mass_TOF_GaussFit_2->SetRange(-190,-90);
    //*********************************************************************************************

    //*********************************************************************************************
    hists->hparticle_mass->Fit("hparticle_mass_GaussFit","+Q","",810,1030);
    hists->hparticle_mass->Fit("hparticle_mass_GaussFit_1","+Q","",90,190);
    hists->hparticle_mass->Fit("hparticle_mass_GaussFit_2","+Q","",-190,-90);

    if(hists->hparticle_mass->GetEntries()>0)
    {
	TPhy.fTMass_proton = hists->hparticle_mass_GaussFit->GetParameter(1);
	TPhy.fTMass_pip    = hists->hparticle_mass_GaussFit_1->GetParameter(1);
	TPhy.fTMass_pim    = hists->hparticle_mass_GaussFit_2->GetParameter(1);
	TPhy.fTChi2_proton = hists->hparticle_mass_GaussFit->GetChisquare();
	TPhy.fTChi2_pip    = hists->hparticle_mass_GaussFit_1->GetChisquare();
	TPhy.fTChi2_pim    = hists->hparticle_mass_GaussFit_2->GetChisquare();
    }

    hists->hparticle_mass_RPC->Fit("hparticle_mass_RPC_GaussFit","+Q","",810,1030);
    hists->hparticle_mass_RPC->Fit("hparticle_mass_RPC_GaussFit_1","+Q","",90,190);
    hists->hparticle_mass_RPC->Fit("hparticle_mass_RPC_GaussFit_2","+Q","",-190,90);

    if(hists->hparticle_mass_RPC->GetEntries()>0)
    {
	TPhy.fTMass_proton_RPC = hists->hparticle_mass_RPC_GaussFit->GetParameter(1);
	TPhy.fTMass_pip_RPC    = hists->hparticle_mass_RPC_GaussFit_1->GetParameter(1);
	TPhy.fTMass_pim_RPC    = hists->hparticle_mass_RPC_GaussFit_2->GetParameter(1);
	TPhy.fTChi2_proton_RPC = hists->hparticle_mass_RPC_GaussFit->GetChisquare();
	TPhy.fTChi2_pip_RPC    = hists->hparticle_mass_RPC_GaussFit_1->GetChisquare();
	TPhy.fTChi2_pim_RPC    = hists->hparticle_mass_RPC_GaussFit_2->GetChisquare();
    }

    hists->hparticle_mass_TOF->Fit("hparticle_mass_TOF_GaussFit","+Q","",810,1030);
    hists->hparticle_mass_TOF->Fit("hparticle_mass_TOF_GaussFit_1","+Q","",90,190);
    hists->hparticle_mass_TOF->Fit("hparticle_mass_TOF_GaussFit_2","+Q","",-190,90);

    if(hists->hparticle_mass_TOF->GetEntries()>0)
    {
	TPhy.fTMass_proton_TOF = hists->hparticle_mass_TOF_GaussFit->GetParameter(1);
	TPhy.fTMass_pip_TOF    = hists->hparticle_mass_TOF_GaussFit_1->GetParameter(1);
	TPhy.fTMass_pim_TOF    = hists->hparticle_mass_TOF_GaussFit_2->GetParameter(1);
	TPhy.fTChi2_proton_TOF = hists->hparticle_mass_TOF_GaussFit->GetChisquare();
	TPhy.fTChi2_pip_TOF    = hists->hparticle_mass_TOF_GaussFit_1->GetChisquare();
	TPhy.fTChi2_pim_TOF    = hists->hparticle_mass_TOF_GaussFit_2->GetChisquare();
    }


}



 hqamaker.cc:1
 hqamaker.cc:2
 hqamaker.cc:3
 hqamaker.cc:4
 hqamaker.cc:5
 hqamaker.cc:6
 hqamaker.cc:7
 hqamaker.cc:8
 hqamaker.cc:9
 hqamaker.cc:10
 hqamaker.cc:11
 hqamaker.cc:12
 hqamaker.cc:13
 hqamaker.cc:14
 hqamaker.cc:15
 hqamaker.cc:16
 hqamaker.cc:17
 hqamaker.cc:18
 hqamaker.cc:19
 hqamaker.cc:20
 hqamaker.cc:21
 hqamaker.cc:22
 hqamaker.cc:23
 hqamaker.cc:24
 hqamaker.cc:25
 hqamaker.cc:26
 hqamaker.cc:27
 hqamaker.cc:28
 hqamaker.cc:29
 hqamaker.cc:30
 hqamaker.cc:31
 hqamaker.cc:32
 hqamaker.cc:33
 hqamaker.cc:34
 hqamaker.cc:35
 hqamaker.cc:36
 hqamaker.cc:37
 hqamaker.cc:38
 hqamaker.cc:39
 hqamaker.cc:40
 hqamaker.cc:41
 hqamaker.cc:42
 hqamaker.cc:43
 hqamaker.cc:44
 hqamaker.cc:45
 hqamaker.cc:46
 hqamaker.cc:47
 hqamaker.cc:48
 hqamaker.cc:49
 hqamaker.cc:50
 hqamaker.cc:51
 hqamaker.cc:52
 hqamaker.cc:53
 hqamaker.cc:54
 hqamaker.cc:55
 hqamaker.cc:56
 hqamaker.cc:57
 hqamaker.cc:58
 hqamaker.cc:59
 hqamaker.cc:60
 hqamaker.cc:61
 hqamaker.cc:62
 hqamaker.cc:63
 hqamaker.cc:64
 hqamaker.cc:65
 hqamaker.cc:66
 hqamaker.cc:67
 hqamaker.cc:68
 hqamaker.cc:69
 hqamaker.cc:70
 hqamaker.cc:71
 hqamaker.cc:72
 hqamaker.cc:73
 hqamaker.cc:74
 hqamaker.cc:75
 hqamaker.cc:76
 hqamaker.cc:77
 hqamaker.cc:78
 hqamaker.cc:79
 hqamaker.cc:80
 hqamaker.cc:81
 hqamaker.cc:82
 hqamaker.cc:83
 hqamaker.cc:84
 hqamaker.cc:85
 hqamaker.cc:86
 hqamaker.cc:87
 hqamaker.cc:88
 hqamaker.cc:89
 hqamaker.cc:90
 hqamaker.cc:91
 hqamaker.cc:92
 hqamaker.cc:93
 hqamaker.cc:94
 hqamaker.cc:95
 hqamaker.cc:96
 hqamaker.cc:97
 hqamaker.cc:98
 hqamaker.cc:99
 hqamaker.cc:100
 hqamaker.cc:101
 hqamaker.cc:102
 hqamaker.cc:103
 hqamaker.cc:104
 hqamaker.cc:105
 hqamaker.cc:106
 hqamaker.cc:107
 hqamaker.cc:108
 hqamaker.cc:109
 hqamaker.cc:110
 hqamaker.cc:111
 hqamaker.cc:112
 hqamaker.cc:113
 hqamaker.cc:114
 hqamaker.cc:115
 hqamaker.cc:116
 hqamaker.cc:117
 hqamaker.cc:118
 hqamaker.cc:119
 hqamaker.cc:120
 hqamaker.cc:121
 hqamaker.cc:122
 hqamaker.cc:123
 hqamaker.cc:124
 hqamaker.cc:125
 hqamaker.cc:126
 hqamaker.cc:127
 hqamaker.cc:128
 hqamaker.cc:129
 hqamaker.cc:130
 hqamaker.cc:131
 hqamaker.cc:132
 hqamaker.cc:133
 hqamaker.cc:134
 hqamaker.cc:135
 hqamaker.cc:136
 hqamaker.cc:137
 hqamaker.cc:138
 hqamaker.cc:139
 hqamaker.cc:140
 hqamaker.cc:141
 hqamaker.cc:142
 hqamaker.cc:143
 hqamaker.cc:144
 hqamaker.cc:145
 hqamaker.cc:146
 hqamaker.cc:147
 hqamaker.cc:148
 hqamaker.cc:149
 hqamaker.cc:150
 hqamaker.cc:151
 hqamaker.cc:152
 hqamaker.cc:153
 hqamaker.cc:154
 hqamaker.cc:155
 hqamaker.cc:156
 hqamaker.cc:157
 hqamaker.cc:158
 hqamaker.cc:159
 hqamaker.cc:160
 hqamaker.cc:161
 hqamaker.cc:162
 hqamaker.cc:163
 hqamaker.cc:164
 hqamaker.cc:165
 hqamaker.cc:166
 hqamaker.cc:167
 hqamaker.cc:168
 hqamaker.cc:169
 hqamaker.cc:170
 hqamaker.cc:171
 hqamaker.cc:172
 hqamaker.cc:173
 hqamaker.cc:174
 hqamaker.cc:175
 hqamaker.cc:176
 hqamaker.cc:177
 hqamaker.cc:178
 hqamaker.cc:179
 hqamaker.cc:180
 hqamaker.cc:181
 hqamaker.cc:182
 hqamaker.cc:183
 hqamaker.cc:184
 hqamaker.cc:185
 hqamaker.cc:186
 hqamaker.cc:187
 hqamaker.cc:188
 hqamaker.cc:189
 hqamaker.cc:190
 hqamaker.cc:191
 hqamaker.cc:192
 hqamaker.cc:193
 hqamaker.cc:194
 hqamaker.cc:195
 hqamaker.cc:196
 hqamaker.cc:197
 hqamaker.cc:198
 hqamaker.cc:199
 hqamaker.cc:200
 hqamaker.cc:201
 hqamaker.cc:202
 hqamaker.cc:203
 hqamaker.cc:204
 hqamaker.cc:205
 hqamaker.cc:206
 hqamaker.cc:207
 hqamaker.cc:208
 hqamaker.cc:209
 hqamaker.cc:210
 hqamaker.cc:211
 hqamaker.cc:212
 hqamaker.cc:213
 hqamaker.cc:214
 hqamaker.cc:215
 hqamaker.cc:216
 hqamaker.cc:217
 hqamaker.cc:218
 hqamaker.cc:219
 hqamaker.cc:220
 hqamaker.cc:221
 hqamaker.cc:222
 hqamaker.cc:223
 hqamaker.cc:224
 hqamaker.cc:225
 hqamaker.cc:226
 hqamaker.cc:227
 hqamaker.cc:228
 hqamaker.cc:229
 hqamaker.cc:230
 hqamaker.cc:231
 hqamaker.cc:232
 hqamaker.cc:233
 hqamaker.cc:234
 hqamaker.cc:235
 hqamaker.cc:236
 hqamaker.cc:237
 hqamaker.cc:238
 hqamaker.cc:239
 hqamaker.cc:240
 hqamaker.cc:241
 hqamaker.cc:242
 hqamaker.cc:243
 hqamaker.cc:244
 hqamaker.cc:245
 hqamaker.cc:246
 hqamaker.cc:247
 hqamaker.cc:248
 hqamaker.cc:249
 hqamaker.cc:250
 hqamaker.cc:251
 hqamaker.cc:252
 hqamaker.cc:253
 hqamaker.cc:254
 hqamaker.cc:255
 hqamaker.cc:256
 hqamaker.cc:257
 hqamaker.cc:258
 hqamaker.cc:259
 hqamaker.cc:260
 hqamaker.cc:261
 hqamaker.cc:262
 hqamaker.cc:263
 hqamaker.cc:264
 hqamaker.cc:265
 hqamaker.cc:266
 hqamaker.cc:267
 hqamaker.cc:268
 hqamaker.cc:269
 hqamaker.cc:270
 hqamaker.cc:271
 hqamaker.cc:272
 hqamaker.cc:273
 hqamaker.cc:274
 hqamaker.cc:275
 hqamaker.cc:276
 hqamaker.cc:277
 hqamaker.cc:278
 hqamaker.cc:279
 hqamaker.cc:280
 hqamaker.cc:281
 hqamaker.cc:282
 hqamaker.cc:283
 hqamaker.cc:284
 hqamaker.cc:285
 hqamaker.cc:286
 hqamaker.cc:287
 hqamaker.cc:288
 hqamaker.cc:289
 hqamaker.cc:290
 hqamaker.cc:291
 hqamaker.cc:292
 hqamaker.cc:293
 hqamaker.cc:294
 hqamaker.cc:295
 hqamaker.cc:296
 hqamaker.cc:297
 hqamaker.cc:298
 hqamaker.cc:299
 hqamaker.cc:300
 hqamaker.cc:301
 hqamaker.cc:302
 hqamaker.cc:303
 hqamaker.cc:304
 hqamaker.cc:305
 hqamaker.cc:306
 hqamaker.cc:307
 hqamaker.cc:308
 hqamaker.cc:309
 hqamaker.cc:310
 hqamaker.cc:311
 hqamaker.cc:312
 hqamaker.cc:313
 hqamaker.cc:314
 hqamaker.cc:315
 hqamaker.cc:316
 hqamaker.cc:317
 hqamaker.cc:318
 hqamaker.cc:319
 hqamaker.cc:320
 hqamaker.cc:321
 hqamaker.cc:322
 hqamaker.cc:323
 hqamaker.cc:324
 hqamaker.cc:325
 hqamaker.cc:326
 hqamaker.cc:327
 hqamaker.cc:328
 hqamaker.cc:329
 hqamaker.cc:330
 hqamaker.cc:331
 hqamaker.cc:332
 hqamaker.cc:333
 hqamaker.cc:334
 hqamaker.cc:335
 hqamaker.cc:336
 hqamaker.cc:337
 hqamaker.cc:338
 hqamaker.cc:339
 hqamaker.cc:340
 hqamaker.cc:341
 hqamaker.cc:342
 hqamaker.cc:343
 hqamaker.cc:344
 hqamaker.cc:345
 hqamaker.cc:346
 hqamaker.cc:347
 hqamaker.cc:348
 hqamaker.cc:349
 hqamaker.cc:350
 hqamaker.cc:351
 hqamaker.cc:352
 hqamaker.cc:353
 hqamaker.cc:354
 hqamaker.cc:355
 hqamaker.cc:356
 hqamaker.cc:357
 hqamaker.cc:358
 hqamaker.cc:359
 hqamaker.cc:360
 hqamaker.cc:361
 hqamaker.cc:362
 hqamaker.cc:363
 hqamaker.cc:364
 hqamaker.cc:365
 hqamaker.cc:366
 hqamaker.cc:367
 hqamaker.cc:368
 hqamaker.cc:369
 hqamaker.cc:370
 hqamaker.cc:371
 hqamaker.cc:372
 hqamaker.cc:373
 hqamaker.cc:374
 hqamaker.cc:375
 hqamaker.cc:376
 hqamaker.cc:377
 hqamaker.cc:378
 hqamaker.cc:379
 hqamaker.cc:380
 hqamaker.cc:381
 hqamaker.cc:382
 hqamaker.cc:383
 hqamaker.cc:384
 hqamaker.cc:385
 hqamaker.cc:386
 hqamaker.cc:387
 hqamaker.cc:388
 hqamaker.cc:389
 hqamaker.cc:390
 hqamaker.cc:391
 hqamaker.cc:392
 hqamaker.cc:393
 hqamaker.cc:394
 hqamaker.cc:395
 hqamaker.cc:396
 hqamaker.cc:397
 hqamaker.cc:398
 hqamaker.cc:399
 hqamaker.cc:400
 hqamaker.cc:401
 hqamaker.cc:402
 hqamaker.cc:403
 hqamaker.cc:404
 hqamaker.cc:405
 hqamaker.cc:406
 hqamaker.cc:407
 hqamaker.cc:408
 hqamaker.cc:409
 hqamaker.cc:410
 hqamaker.cc:411
 hqamaker.cc:412
 hqamaker.cc:413
 hqamaker.cc:414
 hqamaker.cc:415
 hqamaker.cc:416
 hqamaker.cc:417
 hqamaker.cc:418
 hqamaker.cc:419
 hqamaker.cc:420
 hqamaker.cc:421
 hqamaker.cc:422
 hqamaker.cc:423
 hqamaker.cc:424
 hqamaker.cc:425
 hqamaker.cc:426
 hqamaker.cc:427
 hqamaker.cc:428
 hqamaker.cc:429
 hqamaker.cc:430
 hqamaker.cc:431
 hqamaker.cc:432
 hqamaker.cc:433
 hqamaker.cc:434
 hqamaker.cc:435
 hqamaker.cc:436
 hqamaker.cc:437
 hqamaker.cc:438
 hqamaker.cc:439
 hqamaker.cc:440
 hqamaker.cc:441
 hqamaker.cc:442
 hqamaker.cc:443
 hqamaker.cc:444
 hqamaker.cc:445
 hqamaker.cc:446
 hqamaker.cc:447
 hqamaker.cc:448
 hqamaker.cc:449
 hqamaker.cc:450
 hqamaker.cc:451
 hqamaker.cc:452
 hqamaker.cc:453
 hqamaker.cc:454
 hqamaker.cc:455
 hqamaker.cc:456
 hqamaker.cc:457
 hqamaker.cc:458
 hqamaker.cc:459
 hqamaker.cc:460
 hqamaker.cc:461
 hqamaker.cc:462
 hqamaker.cc:463
 hqamaker.cc:464
 hqamaker.cc:465
 hqamaker.cc:466
 hqamaker.cc:467
 hqamaker.cc:468
 hqamaker.cc:469
 hqamaker.cc:470
 hqamaker.cc:471
 hqamaker.cc:472
 hqamaker.cc:473
 hqamaker.cc:474
 hqamaker.cc:475
 hqamaker.cc:476
 hqamaker.cc:477
 hqamaker.cc:478
 hqamaker.cc:479
 hqamaker.cc:480
 hqamaker.cc:481
 hqamaker.cc:482
 hqamaker.cc:483
 hqamaker.cc:484
 hqamaker.cc:485
 hqamaker.cc:486
 hqamaker.cc:487
 hqamaker.cc:488
 hqamaker.cc:489
 hqamaker.cc:490
 hqamaker.cc:491
 hqamaker.cc:492
 hqamaker.cc:493
 hqamaker.cc:494
 hqamaker.cc:495
 hqamaker.cc:496
 hqamaker.cc:497
 hqamaker.cc:498
 hqamaker.cc:499
 hqamaker.cc:500
 hqamaker.cc:501
 hqamaker.cc:502
 hqamaker.cc:503
 hqamaker.cc:504
 hqamaker.cc:505
 hqamaker.cc:506
 hqamaker.cc:507
 hqamaker.cc:508
 hqamaker.cc:509
 hqamaker.cc:510
 hqamaker.cc:511
 hqamaker.cc:512
 hqamaker.cc:513
 hqamaker.cc:514
 hqamaker.cc:515
 hqamaker.cc:516
 hqamaker.cc:517
 hqamaker.cc:518
 hqamaker.cc:519
 hqamaker.cc:520
 hqamaker.cc:521
 hqamaker.cc:522
 hqamaker.cc:523
 hqamaker.cc:524
 hqamaker.cc:525
 hqamaker.cc:526
 hqamaker.cc:527
 hqamaker.cc:528
 hqamaker.cc:529
 hqamaker.cc:530
 hqamaker.cc:531
 hqamaker.cc:532
 hqamaker.cc:533
 hqamaker.cc:534
 hqamaker.cc:535
 hqamaker.cc:536
 hqamaker.cc:537
 hqamaker.cc:538
 hqamaker.cc:539
 hqamaker.cc:540
 hqamaker.cc:541
 hqamaker.cc:542
 hqamaker.cc:543
 hqamaker.cc:544
 hqamaker.cc:545
 hqamaker.cc:546
 hqamaker.cc:547
 hqamaker.cc:548
 hqamaker.cc:549
 hqamaker.cc:550
 hqamaker.cc:551
 hqamaker.cc:552
 hqamaker.cc:553
 hqamaker.cc:554
 hqamaker.cc:555
 hqamaker.cc:556
 hqamaker.cc:557
 hqamaker.cc:558
 hqamaker.cc:559
 hqamaker.cc:560
 hqamaker.cc:561
 hqamaker.cc:562
 hqamaker.cc:563
 hqamaker.cc:564
 hqamaker.cc:565
 hqamaker.cc:566
 hqamaker.cc:567
 hqamaker.cc:568
 hqamaker.cc:569
 hqamaker.cc:570
 hqamaker.cc:571
 hqamaker.cc:572
 hqamaker.cc:573
 hqamaker.cc:574
 hqamaker.cc:575
 hqamaker.cc:576
 hqamaker.cc:577
 hqamaker.cc:578
 hqamaker.cc:579
 hqamaker.cc:580
 hqamaker.cc:581
 hqamaker.cc:582
 hqamaker.cc:583
 hqamaker.cc:584
 hqamaker.cc:585
 hqamaker.cc:586
 hqamaker.cc:587
 hqamaker.cc:588
 hqamaker.cc:589
 hqamaker.cc:590
 hqamaker.cc:591
 hqamaker.cc:592
 hqamaker.cc:593
 hqamaker.cc:594
 hqamaker.cc:595
 hqamaker.cc:596
 hqamaker.cc:597
 hqamaker.cc:598
 hqamaker.cc:599
 hqamaker.cc:600
 hqamaker.cc:601
 hqamaker.cc:602
 hqamaker.cc:603
 hqamaker.cc:604
 hqamaker.cc:605
 hqamaker.cc:606
 hqamaker.cc:607
 hqamaker.cc:608
 hqamaker.cc:609
 hqamaker.cc:610
 hqamaker.cc:611
 hqamaker.cc:612
 hqamaker.cc:613
 hqamaker.cc:614
 hqamaker.cc:615
 hqamaker.cc:616
 hqamaker.cc:617
 hqamaker.cc:618
 hqamaker.cc:619
 hqamaker.cc:620
 hqamaker.cc:621
 hqamaker.cc:622
 hqamaker.cc:623
 hqamaker.cc:624
 hqamaker.cc:625
 hqamaker.cc:626
 hqamaker.cc:627
 hqamaker.cc:628
 hqamaker.cc:629
 hqamaker.cc:630
 hqamaker.cc:631
 hqamaker.cc:632
 hqamaker.cc:633
 hqamaker.cc:634
 hqamaker.cc:635
 hqamaker.cc:636
 hqamaker.cc:637
 hqamaker.cc:638
 hqamaker.cc:639
 hqamaker.cc:640
 hqamaker.cc:641
 hqamaker.cc:642
 hqamaker.cc:643
 hqamaker.cc:644
 hqamaker.cc:645
 hqamaker.cc:646
 hqamaker.cc:647
 hqamaker.cc:648
 hqamaker.cc:649
 hqamaker.cc:650
 hqamaker.cc:651
 hqamaker.cc:652
 hqamaker.cc:653
 hqamaker.cc:654
 hqamaker.cc:655
 hqamaker.cc:656
 hqamaker.cc:657
 hqamaker.cc:658
 hqamaker.cc:659
 hqamaker.cc:660
 hqamaker.cc:661
 hqamaker.cc:662
 hqamaker.cc:663
 hqamaker.cc:664
 hqamaker.cc:665
 hqamaker.cc:666
 hqamaker.cc:667
 hqamaker.cc:668
 hqamaker.cc:669
 hqamaker.cc:670
 hqamaker.cc:671
 hqamaker.cc:672
 hqamaker.cc:673
 hqamaker.cc:674
 hqamaker.cc:675
 hqamaker.cc:676
 hqamaker.cc:677
 hqamaker.cc:678
 hqamaker.cc:679
 hqamaker.cc:680
 hqamaker.cc:681
 hqamaker.cc:682
 hqamaker.cc:683
 hqamaker.cc:684
 hqamaker.cc:685
 hqamaker.cc:686
 hqamaker.cc:687
 hqamaker.cc:688
 hqamaker.cc:689
 hqamaker.cc:690
 hqamaker.cc:691
 hqamaker.cc:692
 hqamaker.cc:693
 hqamaker.cc:694
 hqamaker.cc:695
 hqamaker.cc:696
 hqamaker.cc:697
 hqamaker.cc:698
 hqamaker.cc:699
 hqamaker.cc:700
 hqamaker.cc:701
 hqamaker.cc:702
 hqamaker.cc:703
 hqamaker.cc:704
 hqamaker.cc:705
 hqamaker.cc:706
 hqamaker.cc:707
 hqamaker.cc:708
 hqamaker.cc:709
 hqamaker.cc:710
 hqamaker.cc:711
 hqamaker.cc:712
 hqamaker.cc:713
 hqamaker.cc:714
 hqamaker.cc:715
 hqamaker.cc:716
 hqamaker.cc:717
 hqamaker.cc:718
 hqamaker.cc:719
 hqamaker.cc:720
 hqamaker.cc:721
 hqamaker.cc:722
 hqamaker.cc:723
 hqamaker.cc:724
 hqamaker.cc:725
 hqamaker.cc:726
 hqamaker.cc:727
 hqamaker.cc:728
 hqamaker.cc:729
 hqamaker.cc:730
 hqamaker.cc:731
 hqamaker.cc:732
 hqamaker.cc:733
 hqamaker.cc:734
 hqamaker.cc:735
 hqamaker.cc:736
 hqamaker.cc:737
 hqamaker.cc:738
 hqamaker.cc:739
 hqamaker.cc:740
 hqamaker.cc:741
 hqamaker.cc:742
 hqamaker.cc:743
 hqamaker.cc:744
 hqamaker.cc:745
 hqamaker.cc:746
 hqamaker.cc:747
 hqamaker.cc:748
 hqamaker.cc:749
 hqamaker.cc:750
 hqamaker.cc:751
 hqamaker.cc:752
 hqamaker.cc:753
 hqamaker.cc:754
 hqamaker.cc:755
 hqamaker.cc:756
 hqamaker.cc:757
 hqamaker.cc:758
 hqamaker.cc:759
 hqamaker.cc:760
 hqamaker.cc:761
 hqamaker.cc:762
 hqamaker.cc:763
 hqamaker.cc:764
 hqamaker.cc:765
 hqamaker.cc:766
 hqamaker.cc:767
 hqamaker.cc:768
 hqamaker.cc:769
 hqamaker.cc:770
 hqamaker.cc:771
 hqamaker.cc:772
 hqamaker.cc:773
 hqamaker.cc:774
 hqamaker.cc:775
 hqamaker.cc:776
 hqamaker.cc:777
 hqamaker.cc:778
 hqamaker.cc:779
 hqamaker.cc:780
 hqamaker.cc:781
 hqamaker.cc:782
 hqamaker.cc:783
 hqamaker.cc:784
 hqamaker.cc:785
 hqamaker.cc:786
 hqamaker.cc:787
 hqamaker.cc:788
 hqamaker.cc:789
 hqamaker.cc:790
 hqamaker.cc:791
 hqamaker.cc:792
 hqamaker.cc:793
 hqamaker.cc:794
 hqamaker.cc:795
 hqamaker.cc:796
 hqamaker.cc:797
 hqamaker.cc:798
 hqamaker.cc:799
 hqamaker.cc:800
 hqamaker.cc:801
 hqamaker.cc:802
 hqamaker.cc:803
 hqamaker.cc:804
 hqamaker.cc:805
 hqamaker.cc:806
 hqamaker.cc:807
 hqamaker.cc:808
 hqamaker.cc:809
 hqamaker.cc:810
 hqamaker.cc:811
 hqamaker.cc:812
 hqamaker.cc:813
 hqamaker.cc:814
 hqamaker.cc:815
 hqamaker.cc:816
 hqamaker.cc:817
 hqamaker.cc:818
 hqamaker.cc:819
 hqamaker.cc:820
 hqamaker.cc:821
 hqamaker.cc:822
 hqamaker.cc:823
 hqamaker.cc:824
 hqamaker.cc:825
 hqamaker.cc:826
 hqamaker.cc:827
 hqamaker.cc:828
 hqamaker.cc:829
 hqamaker.cc:830
 hqamaker.cc:831
 hqamaker.cc:832
 hqamaker.cc:833
 hqamaker.cc:834
 hqamaker.cc:835
 hqamaker.cc:836
 hqamaker.cc:837
 hqamaker.cc:838
 hqamaker.cc:839
 hqamaker.cc:840
 hqamaker.cc:841
 hqamaker.cc:842
 hqamaker.cc:843
 hqamaker.cc:844
 hqamaker.cc:845
 hqamaker.cc:846
 hqamaker.cc:847
 hqamaker.cc:848
 hqamaker.cc:849
 hqamaker.cc:850
 hqamaker.cc:851
 hqamaker.cc:852
 hqamaker.cc:853
 hqamaker.cc:854
 hqamaker.cc:855
 hqamaker.cc:856
 hqamaker.cc:857
 hqamaker.cc:858
 hqamaker.cc:859
 hqamaker.cc:860
 hqamaker.cc:861
 hqamaker.cc:862
 hqamaker.cc:863
 hqamaker.cc:864
 hqamaker.cc:865
 hqamaker.cc:866
 hqamaker.cc:867
 hqamaker.cc:868
 hqamaker.cc:869
 hqamaker.cc:870
 hqamaker.cc:871
 hqamaker.cc:872
 hqamaker.cc:873
 hqamaker.cc:874
 hqamaker.cc:875
 hqamaker.cc:876
 hqamaker.cc:877
 hqamaker.cc:878
 hqamaker.cc:879
 hqamaker.cc:880
 hqamaker.cc:881
 hqamaker.cc:882
 hqamaker.cc:883
 hqamaker.cc:884
 hqamaker.cc:885
 hqamaker.cc:886
 hqamaker.cc:887
 hqamaker.cc:888
 hqamaker.cc:889
 hqamaker.cc:890
 hqamaker.cc:891
 hqamaker.cc:892
 hqamaker.cc:893
 hqamaker.cc:894
 hqamaker.cc:895
 hqamaker.cc:896
 hqamaker.cc:897
 hqamaker.cc:898
 hqamaker.cc:899
 hqamaker.cc:900
 hqamaker.cc:901
 hqamaker.cc:902
 hqamaker.cc:903
 hqamaker.cc:904
 hqamaker.cc:905
 hqamaker.cc:906
 hqamaker.cc:907
 hqamaker.cc:908
 hqamaker.cc:909
 hqamaker.cc:910
 hqamaker.cc:911
 hqamaker.cc:912
 hqamaker.cc:913
 hqamaker.cc:914
 hqamaker.cc:915
 hqamaker.cc:916
 hqamaker.cc:917
 hqamaker.cc:918
 hqamaker.cc:919
 hqamaker.cc:920
 hqamaker.cc:921
 hqamaker.cc:922
 hqamaker.cc:923
 hqamaker.cc:924
 hqamaker.cc:925
 hqamaker.cc:926
 hqamaker.cc:927
 hqamaker.cc:928
 hqamaker.cc:929
 hqamaker.cc:930
 hqamaker.cc:931
 hqamaker.cc:932
 hqamaker.cc:933
 hqamaker.cc:934
 hqamaker.cc:935
 hqamaker.cc:936
 hqamaker.cc:937
 hqamaker.cc:938
 hqamaker.cc:939
 hqamaker.cc:940
 hqamaker.cc:941
 hqamaker.cc:942
 hqamaker.cc:943
 hqamaker.cc:944
 hqamaker.cc:945
 hqamaker.cc:946
 hqamaker.cc:947
 hqamaker.cc:948
 hqamaker.cc:949
 hqamaker.cc:950
 hqamaker.cc:951
 hqamaker.cc:952
 hqamaker.cc:953
 hqamaker.cc:954
 hqamaker.cc:955
 hqamaker.cc:956
 hqamaker.cc:957
 hqamaker.cc:958
 hqamaker.cc:959
 hqamaker.cc:960
 hqamaker.cc:961
 hqamaker.cc:962
 hqamaker.cc:963
 hqamaker.cc:964
 hqamaker.cc:965
 hqamaker.cc:966
 hqamaker.cc:967
 hqamaker.cc:968
 hqamaker.cc:969
 hqamaker.cc:970
 hqamaker.cc:971
 hqamaker.cc:972
 hqamaker.cc:973
 hqamaker.cc:974
 hqamaker.cc:975
 hqamaker.cc:976
 hqamaker.cc:977
 hqamaker.cc:978
 hqamaker.cc:979
 hqamaker.cc:980
 hqamaker.cc:981
 hqamaker.cc:982
 hqamaker.cc:983
 hqamaker.cc:984
 hqamaker.cc:985
 hqamaker.cc:986
 hqamaker.cc:987
 hqamaker.cc:988
 hqamaker.cc:989
 hqamaker.cc:990
 hqamaker.cc:991
 hqamaker.cc:992
 hqamaker.cc:993
 hqamaker.cc:994
 hqamaker.cc:995
 hqamaker.cc:996
 hqamaker.cc:997
 hqamaker.cc:998
 hqamaker.cc:999
 hqamaker.cc:1000
 hqamaker.cc:1001
 hqamaker.cc:1002
 hqamaker.cc:1003
 hqamaker.cc:1004
 hqamaker.cc:1005
 hqamaker.cc:1006
 hqamaker.cc:1007
 hqamaker.cc:1008
 hqamaker.cc:1009
 hqamaker.cc:1010
 hqamaker.cc:1011
 hqamaker.cc:1012
 hqamaker.cc:1013
 hqamaker.cc:1014
 hqamaker.cc:1015
 hqamaker.cc:1016
 hqamaker.cc:1017
 hqamaker.cc:1018
 hqamaker.cc:1019
 hqamaker.cc:1020
 hqamaker.cc:1021
 hqamaker.cc:1022
 hqamaker.cc:1023
 hqamaker.cc:1024
 hqamaker.cc:1025
 hqamaker.cc:1026
 hqamaker.cc:1027
 hqamaker.cc:1028
 hqamaker.cc:1029
 hqamaker.cc:1030
 hqamaker.cc:1031
 hqamaker.cc:1032
 hqamaker.cc:1033
 hqamaker.cc:1034
 hqamaker.cc:1035
 hqamaker.cc:1036
 hqamaker.cc:1037
 hqamaker.cc:1038
 hqamaker.cc:1039
 hqamaker.cc:1040
 hqamaker.cc:1041
 hqamaker.cc:1042
 hqamaker.cc:1043
 hqamaker.cc:1044
 hqamaker.cc:1045
 hqamaker.cc:1046
 hqamaker.cc:1047
 hqamaker.cc:1048
 hqamaker.cc:1049
 hqamaker.cc:1050
 hqamaker.cc:1051
 hqamaker.cc:1052
 hqamaker.cc:1053
 hqamaker.cc:1054
 hqamaker.cc:1055
 hqamaker.cc:1056
 hqamaker.cc:1057
 hqamaker.cc:1058
 hqamaker.cc:1059
 hqamaker.cc:1060
 hqamaker.cc:1061
 hqamaker.cc:1062
 hqamaker.cc:1063
 hqamaker.cc:1064
 hqamaker.cc:1065
 hqamaker.cc:1066
 hqamaker.cc:1067
 hqamaker.cc:1068
 hqamaker.cc:1069
 hqamaker.cc:1070
 hqamaker.cc:1071
 hqamaker.cc:1072
 hqamaker.cc:1073
 hqamaker.cc:1074
 hqamaker.cc:1075
 hqamaker.cc:1076
 hqamaker.cc:1077
 hqamaker.cc:1078
 hqamaker.cc:1079
 hqamaker.cc:1080
 hqamaker.cc:1081
 hqamaker.cc:1082
 hqamaker.cc:1083
 hqamaker.cc:1084
 hqamaker.cc:1085
 hqamaker.cc:1086
 hqamaker.cc:1087
 hqamaker.cc:1088
 hqamaker.cc:1089
 hqamaker.cc:1090
 hqamaker.cc:1091
 hqamaker.cc:1092
 hqamaker.cc:1093
 hqamaker.cc:1094
 hqamaker.cc:1095
 hqamaker.cc:1096
 hqamaker.cc:1097
 hqamaker.cc:1098
 hqamaker.cc:1099
 hqamaker.cc:1100
 hqamaker.cc:1101
 hqamaker.cc:1102
 hqamaker.cc:1103
 hqamaker.cc:1104
 hqamaker.cc:1105
 hqamaker.cc:1106
 hqamaker.cc:1107
 hqamaker.cc:1108
 hqamaker.cc:1109
 hqamaker.cc:1110
 hqamaker.cc:1111
 hqamaker.cc:1112
 hqamaker.cc:1113
 hqamaker.cc:1114
 hqamaker.cc:1115
 hqamaker.cc:1116
 hqamaker.cc:1117
 hqamaker.cc:1118
 hqamaker.cc:1119
 hqamaker.cc:1120
 hqamaker.cc:1121
 hqamaker.cc:1122
 hqamaker.cc:1123
 hqamaker.cc:1124
 hqamaker.cc:1125
 hqamaker.cc:1126
 hqamaker.cc:1127
 hqamaker.cc:1128
 hqamaker.cc:1129
 hqamaker.cc:1130
 hqamaker.cc:1131
 hqamaker.cc:1132
 hqamaker.cc:1133
 hqamaker.cc:1134
 hqamaker.cc:1135
 hqamaker.cc:1136
 hqamaker.cc:1137
 hqamaker.cc:1138
 hqamaker.cc:1139
 hqamaker.cc:1140
 hqamaker.cc:1141
 hqamaker.cc:1142
 hqamaker.cc:1143
 hqamaker.cc:1144
 hqamaker.cc:1145
 hqamaker.cc:1146
 hqamaker.cc:1147
 hqamaker.cc:1148
 hqamaker.cc:1149
 hqamaker.cc:1150
 hqamaker.cc:1151
 hqamaker.cc:1152
 hqamaker.cc:1153
 hqamaker.cc:1154
 hqamaker.cc:1155
 hqamaker.cc:1156
 hqamaker.cc:1157
 hqamaker.cc:1158
 hqamaker.cc:1159
 hqamaker.cc:1160
 hqamaker.cc:1161
 hqamaker.cc:1162
 hqamaker.cc:1163
 hqamaker.cc:1164
 hqamaker.cc:1165
 hqamaker.cc:1166
 hqamaker.cc:1167
 hqamaker.cc:1168
 hqamaker.cc:1169
 hqamaker.cc:1170
 hqamaker.cc:1171
 hqamaker.cc:1172
 hqamaker.cc:1173
 hqamaker.cc:1174
 hqamaker.cc:1175
 hqamaker.cc:1176
 hqamaker.cc:1177
 hqamaker.cc:1178
 hqamaker.cc:1179
 hqamaker.cc:1180
 hqamaker.cc:1181
 hqamaker.cc:1182
 hqamaker.cc:1183
 hqamaker.cc:1184
 hqamaker.cc:1185
 hqamaker.cc:1186
 hqamaker.cc:1187
 hqamaker.cc:1188
 hqamaker.cc:1189
 hqamaker.cc:1190
 hqamaker.cc:1191
 hqamaker.cc:1192
 hqamaker.cc:1193
 hqamaker.cc:1194
 hqamaker.cc:1195
 hqamaker.cc:1196
 hqamaker.cc:1197
 hqamaker.cc:1198
 hqamaker.cc:1199
 hqamaker.cc:1200
 hqamaker.cc:1201
 hqamaker.cc:1202
 hqamaker.cc:1203
 hqamaker.cc:1204
 hqamaker.cc:1205
 hqamaker.cc:1206
 hqamaker.cc:1207
 hqamaker.cc:1208
 hqamaker.cc:1209
 hqamaker.cc:1210
 hqamaker.cc:1211
 hqamaker.cc:1212
 hqamaker.cc:1213
 hqamaker.cc:1214
 hqamaker.cc:1215
 hqamaker.cc:1216
 hqamaker.cc:1217
 hqamaker.cc:1218
 hqamaker.cc:1219
 hqamaker.cc:1220
 hqamaker.cc:1221
 hqamaker.cc:1222
 hqamaker.cc:1223
 hqamaker.cc:1224
 hqamaker.cc:1225
 hqamaker.cc:1226
 hqamaker.cc:1227
 hqamaker.cc:1228
 hqamaker.cc:1229
 hqamaker.cc:1230
 hqamaker.cc:1231
 hqamaker.cc:1232
 hqamaker.cc:1233
 hqamaker.cc:1234
 hqamaker.cc:1235
 hqamaker.cc:1236
 hqamaker.cc:1237
 hqamaker.cc:1238
 hqamaker.cc:1239
 hqamaker.cc:1240
 hqamaker.cc:1241
 hqamaker.cc:1242
 hqamaker.cc:1243
 hqamaker.cc:1244
 hqamaker.cc:1245
 hqamaker.cc:1246
 hqamaker.cc:1247
 hqamaker.cc:1248
 hqamaker.cc:1249
 hqamaker.cc:1250
 hqamaker.cc:1251
 hqamaker.cc:1252
 hqamaker.cc:1253
 hqamaker.cc:1254
 hqamaker.cc:1255
 hqamaker.cc:1256
 hqamaker.cc:1257
 hqamaker.cc:1258
 hqamaker.cc:1259
 hqamaker.cc:1260
 hqamaker.cc:1261
 hqamaker.cc:1262
 hqamaker.cc:1263
 hqamaker.cc:1264
 hqamaker.cc:1265
 hqamaker.cc:1266
 hqamaker.cc:1267
 hqamaker.cc:1268
 hqamaker.cc:1269
 hqamaker.cc:1270
 hqamaker.cc:1271
 hqamaker.cc:1272
 hqamaker.cc:1273
 hqamaker.cc:1274
 hqamaker.cc:1275
 hqamaker.cc:1276
 hqamaker.cc:1277
 hqamaker.cc:1278
 hqamaker.cc:1279
 hqamaker.cc:1280
 hqamaker.cc:1281
 hqamaker.cc:1282
 hqamaker.cc:1283
 hqamaker.cc:1284
 hqamaker.cc:1285
 hqamaker.cc:1286
 hqamaker.cc:1287
 hqamaker.cc:1288
 hqamaker.cc:1289
 hqamaker.cc:1290
 hqamaker.cc:1291
 hqamaker.cc:1292
 hqamaker.cc:1293
 hqamaker.cc:1294
 hqamaker.cc:1295
 hqamaker.cc:1296
 hqamaker.cc:1297
 hqamaker.cc:1298
 hqamaker.cc:1299
 hqamaker.cc:1300
 hqamaker.cc:1301
 hqamaker.cc:1302
 hqamaker.cc:1303
 hqamaker.cc:1304
 hqamaker.cc:1305
 hqamaker.cc:1306
 hqamaker.cc:1307
 hqamaker.cc:1308
 hqamaker.cc:1309
 hqamaker.cc:1310
 hqamaker.cc:1311
 hqamaker.cc:1312
 hqamaker.cc:1313
 hqamaker.cc:1314
 hqamaker.cc:1315
 hqamaker.cc:1316
 hqamaker.cc:1317
 hqamaker.cc:1318
 hqamaker.cc:1319
 hqamaker.cc:1320
 hqamaker.cc:1321
 hqamaker.cc:1322
 hqamaker.cc:1323
 hqamaker.cc:1324
 hqamaker.cc:1325
 hqamaker.cc:1326
 hqamaker.cc:1327
 hqamaker.cc:1328
 hqamaker.cc:1329
 hqamaker.cc:1330
 hqamaker.cc:1331
 hqamaker.cc:1332
 hqamaker.cc:1333
 hqamaker.cc:1334
 hqamaker.cc:1335
 hqamaker.cc:1336
 hqamaker.cc:1337
 hqamaker.cc:1338
 hqamaker.cc:1339
 hqamaker.cc:1340
 hqamaker.cc:1341
 hqamaker.cc:1342
 hqamaker.cc:1343
 hqamaker.cc:1344
 hqamaker.cc:1345
 hqamaker.cc:1346
 hqamaker.cc:1347
 hqamaker.cc:1348
 hqamaker.cc:1349
 hqamaker.cc:1350
 hqamaker.cc:1351
 hqamaker.cc:1352
 hqamaker.cc:1353
 hqamaker.cc:1354
 hqamaker.cc:1355
 hqamaker.cc:1356
 hqamaker.cc:1357
 hqamaker.cc:1358
 hqamaker.cc:1359
 hqamaker.cc:1360
 hqamaker.cc:1361
 hqamaker.cc:1362
 hqamaker.cc:1363
 hqamaker.cc:1364
 hqamaker.cc:1365
 hqamaker.cc:1366
 hqamaker.cc:1367
 hqamaker.cc:1368
 hqamaker.cc:1369
 hqamaker.cc:1370
 hqamaker.cc:1371
 hqamaker.cc:1372
 hqamaker.cc:1373
 hqamaker.cc:1374
 hqamaker.cc:1375
 hqamaker.cc:1376
 hqamaker.cc:1377
 hqamaker.cc:1378
 hqamaker.cc:1379
 hqamaker.cc:1380
 hqamaker.cc:1381
 hqamaker.cc:1382
 hqamaker.cc:1383
 hqamaker.cc:1384
 hqamaker.cc:1385
 hqamaker.cc:1386
 hqamaker.cc:1387
 hqamaker.cc:1388
 hqamaker.cc:1389
 hqamaker.cc:1390
 hqamaker.cc:1391
 hqamaker.cc:1392
 hqamaker.cc:1393
 hqamaker.cc:1394
 hqamaker.cc:1395
 hqamaker.cc:1396
 hqamaker.cc:1397
 hqamaker.cc:1398
 hqamaker.cc:1399
 hqamaker.cc:1400
 hqamaker.cc:1401
 hqamaker.cc:1402
 hqamaker.cc:1403
 hqamaker.cc:1404
 hqamaker.cc:1405
 hqamaker.cc:1406
 hqamaker.cc:1407
 hqamaker.cc:1408
 hqamaker.cc:1409
 hqamaker.cc:1410
 hqamaker.cc:1411
 hqamaker.cc:1412
 hqamaker.cc:1413
 hqamaker.cc:1414
 hqamaker.cc:1415
 hqamaker.cc:1416
 hqamaker.cc:1417
 hqamaker.cc:1418
 hqamaker.cc:1419
 hqamaker.cc:1420
 hqamaker.cc:1421
 hqamaker.cc:1422
 hqamaker.cc:1423
 hqamaker.cc:1424
 hqamaker.cc:1425
 hqamaker.cc:1426
 hqamaker.cc:1427
 hqamaker.cc:1428
 hqamaker.cc:1429
 hqamaker.cc:1430
 hqamaker.cc:1431
 hqamaker.cc:1432
 hqamaker.cc:1433
 hqamaker.cc:1434
 hqamaker.cc:1435
 hqamaker.cc:1436
 hqamaker.cc:1437
 hqamaker.cc:1438
 hqamaker.cc:1439
 hqamaker.cc:1440
 hqamaker.cc:1441
 hqamaker.cc:1442
 hqamaker.cc:1443
 hqamaker.cc:1444
 hqamaker.cc:1445
 hqamaker.cc:1446
 hqamaker.cc:1447
 hqamaker.cc:1448
 hqamaker.cc:1449
 hqamaker.cc:1450
 hqamaker.cc:1451
 hqamaker.cc:1452
 hqamaker.cc:1453
 hqamaker.cc:1454
 hqamaker.cc:1455
 hqamaker.cc:1456
 hqamaker.cc:1457
 hqamaker.cc:1458
 hqamaker.cc:1459
 hqamaker.cc:1460
 hqamaker.cc:1461
 hqamaker.cc:1462
 hqamaker.cc:1463
 hqamaker.cc:1464
 hqamaker.cc:1465
 hqamaker.cc:1466
 hqamaker.cc:1467
 hqamaker.cc:1468
 hqamaker.cc:1469
 hqamaker.cc:1470
 hqamaker.cc:1471
 hqamaker.cc:1472
 hqamaker.cc:1473
 hqamaker.cc:1474
 hqamaker.cc:1475
 hqamaker.cc:1476
 hqamaker.cc:1477
 hqamaker.cc:1478
 hqamaker.cc:1479
 hqamaker.cc:1480
 hqamaker.cc:1481
 hqamaker.cc:1482
 hqamaker.cc:1483
 hqamaker.cc:1484
 hqamaker.cc:1485
 hqamaker.cc:1486
 hqamaker.cc:1487
 hqamaker.cc:1488
 hqamaker.cc:1489
 hqamaker.cc:1490
 hqamaker.cc:1491
 hqamaker.cc:1492
 hqamaker.cc:1493
 hqamaker.cc:1494
 hqamaker.cc:1495
 hqamaker.cc:1496
 hqamaker.cc:1497
 hqamaker.cc:1498
 hqamaker.cc:1499
 hqamaker.cc:1500
 hqamaker.cc:1501
 hqamaker.cc:1502
 hqamaker.cc:1503
 hqamaker.cc:1504
 hqamaker.cc:1505
 hqamaker.cc:1506
 hqamaker.cc:1507
 hqamaker.cc:1508
 hqamaker.cc:1509
 hqamaker.cc:1510
 hqamaker.cc:1511
 hqamaker.cc:1512
 hqamaker.cc:1513
 hqamaker.cc:1514
 hqamaker.cc:1515
 hqamaker.cc:1516
 hqamaker.cc:1517
 hqamaker.cc:1518
 hqamaker.cc:1519
 hqamaker.cc:1520
 hqamaker.cc:1521
 hqamaker.cc:1522
 hqamaker.cc:1523
 hqamaker.cc:1524
 hqamaker.cc:1525
 hqamaker.cc:1526
 hqamaker.cc:1527
 hqamaker.cc:1528
 hqamaker.cc:1529
 hqamaker.cc:1530
 hqamaker.cc:1531
 hqamaker.cc:1532
 hqamaker.cc:1533
 hqamaker.cc:1534
 hqamaker.cc:1535
 hqamaker.cc:1536
 hqamaker.cc:1537
 hqamaker.cc:1538
 hqamaker.cc:1539
 hqamaker.cc:1540
 hqamaker.cc:1541
 hqamaker.cc:1542
 hqamaker.cc:1543
 hqamaker.cc:1544
 hqamaker.cc:1545
 hqamaker.cc:1546
 hqamaker.cc:1547
 hqamaker.cc:1548
 hqamaker.cc:1549
 hqamaker.cc:1550
 hqamaker.cc:1551
 hqamaker.cc:1552
 hqamaker.cc:1553
 hqamaker.cc:1554
 hqamaker.cc:1555
 hqamaker.cc:1556
 hqamaker.cc:1557
 hqamaker.cc:1558
 hqamaker.cc:1559
 hqamaker.cc:1560
 hqamaker.cc:1561
 hqamaker.cc:1562
 hqamaker.cc:1563
 hqamaker.cc:1564
 hqamaker.cc:1565
 hqamaker.cc:1566
 hqamaker.cc:1567
 hqamaker.cc:1568
 hqamaker.cc:1569
 hqamaker.cc:1570
 hqamaker.cc:1571
 hqamaker.cc:1572
 hqamaker.cc:1573
 hqamaker.cc:1574
 hqamaker.cc:1575
 hqamaker.cc:1576
 hqamaker.cc:1577
 hqamaker.cc:1578
 hqamaker.cc:1579
 hqamaker.cc:1580
 hqamaker.cc:1581
 hqamaker.cc:1582
 hqamaker.cc:1583
 hqamaker.cc:1584
 hqamaker.cc:1585
 hqamaker.cc:1586
 hqamaker.cc:1587
 hqamaker.cc:1588
 hqamaker.cc:1589
 hqamaker.cc:1590
 hqamaker.cc:1591
 hqamaker.cc:1592
 hqamaker.cc:1593
 hqamaker.cc:1594
 hqamaker.cc:1595
 hqamaker.cc:1596
 hqamaker.cc:1597
 hqamaker.cc:1598
 hqamaker.cc:1599
 hqamaker.cc:1600
 hqamaker.cc:1601
 hqamaker.cc:1602
 hqamaker.cc:1603
 hqamaker.cc:1604
 hqamaker.cc:1605
 hqamaker.cc:1606
 hqamaker.cc:1607
 hqamaker.cc:1608
 hqamaker.cc:1609
 hqamaker.cc:1610
 hqamaker.cc:1611
 hqamaker.cc:1612
 hqamaker.cc:1613
 hqamaker.cc:1614
 hqamaker.cc:1615
 hqamaker.cc:1616
 hqamaker.cc:1617
 hqamaker.cc:1618
 hqamaker.cc:1619
 hqamaker.cc:1620
 hqamaker.cc:1621
 hqamaker.cc:1622
 hqamaker.cc:1623
 hqamaker.cc:1624
 hqamaker.cc:1625
 hqamaker.cc:1626
 hqamaker.cc:1627
 hqamaker.cc:1628
 hqamaker.cc:1629
 hqamaker.cc:1630
 hqamaker.cc:1631
 hqamaker.cc:1632
 hqamaker.cc:1633
 hqamaker.cc:1634
 hqamaker.cc:1635
 hqamaker.cc:1636
 hqamaker.cc:1637
 hqamaker.cc:1638
 hqamaker.cc:1639
 hqamaker.cc:1640
 hqamaker.cc:1641
 hqamaker.cc:1642
 hqamaker.cc:1643
 hqamaker.cc:1644
 hqamaker.cc:1645
 hqamaker.cc:1646
 hqamaker.cc:1647
 hqamaker.cc:1648
 hqamaker.cc:1649
 hqamaker.cc:1650
 hqamaker.cc:1651
 hqamaker.cc:1652
 hqamaker.cc:1653
 hqamaker.cc:1654
 hqamaker.cc:1655
 hqamaker.cc:1656
 hqamaker.cc:1657
 hqamaker.cc:1658
 hqamaker.cc:1659
 hqamaker.cc:1660
 hqamaker.cc:1661
 hqamaker.cc:1662
 hqamaker.cc:1663
 hqamaker.cc:1664
 hqamaker.cc:1665
 hqamaker.cc:1666
 hqamaker.cc:1667
 hqamaker.cc:1668
 hqamaker.cc:1669
 hqamaker.cc:1670
 hqamaker.cc:1671
 hqamaker.cc:1672
 hqamaker.cc:1673
 hqamaker.cc:1674
 hqamaker.cc:1675
 hqamaker.cc:1676
 hqamaker.cc:1677
 hqamaker.cc:1678
 hqamaker.cc:1679
 hqamaker.cc:1680
 hqamaker.cc:1681
 hqamaker.cc:1682
 hqamaker.cc:1683
 hqamaker.cc:1684
 hqamaker.cc:1685
 hqamaker.cc:1686
 hqamaker.cc:1687
 hqamaker.cc:1688
 hqamaker.cc:1689
 hqamaker.cc:1690
 hqamaker.cc:1691
 hqamaker.cc:1692
 hqamaker.cc:1693
 hqamaker.cc:1694
 hqamaker.cc:1695
 hqamaker.cc:1696
 hqamaker.cc:1697
 hqamaker.cc:1698
 hqamaker.cc:1699
 hqamaker.cc:1700
 hqamaker.cc:1701
 hqamaker.cc:1702
 hqamaker.cc:1703
 hqamaker.cc:1704
 hqamaker.cc:1705
 hqamaker.cc:1706
 hqamaker.cc:1707
 hqamaker.cc:1708
 hqamaker.cc:1709
 hqamaker.cc:1710
 hqamaker.cc:1711
 hqamaker.cc:1712
 hqamaker.cc:1713
 hqamaker.cc:1714
 hqamaker.cc:1715
 hqamaker.cc:1716
 hqamaker.cc:1717
 hqamaker.cc:1718
 hqamaker.cc:1719
 hqamaker.cc:1720
 hqamaker.cc:1721
 hqamaker.cc:1722
 hqamaker.cc:1723
 hqamaker.cc:1724
 hqamaker.cc:1725
 hqamaker.cc:1726
 hqamaker.cc:1727
 hqamaker.cc:1728
 hqamaker.cc:1729
 hqamaker.cc:1730
 hqamaker.cc:1731
 hqamaker.cc:1732
 hqamaker.cc:1733
 hqamaker.cc:1734
 hqamaker.cc:1735
 hqamaker.cc:1736
 hqamaker.cc:1737
 hqamaker.cc:1738
 hqamaker.cc:1739
 hqamaker.cc:1740
 hqamaker.cc:1741
 hqamaker.cc:1742
 hqamaker.cc:1743
 hqamaker.cc:1744
 hqamaker.cc:1745
 hqamaker.cc:1746
 hqamaker.cc:1747
 hqamaker.cc:1748
 hqamaker.cc:1749
 hqamaker.cc:1750
 hqamaker.cc:1751
 hqamaker.cc:1752
 hqamaker.cc:1753
 hqamaker.cc:1754
 hqamaker.cc:1755
 hqamaker.cc:1756
 hqamaker.cc:1757
 hqamaker.cc:1758
 hqamaker.cc:1759
 hqamaker.cc:1760
 hqamaker.cc:1761
 hqamaker.cc:1762
 hqamaker.cc:1763
 hqamaker.cc:1764
 hqamaker.cc:1765
 hqamaker.cc:1766
 hqamaker.cc:1767
 hqamaker.cc:1768
 hqamaker.cc:1769
 hqamaker.cc:1770
 hqamaker.cc:1771
 hqamaker.cc:1772
 hqamaker.cc:1773
 hqamaker.cc:1774
 hqamaker.cc:1775
 hqamaker.cc:1776
 hqamaker.cc:1777
 hqamaker.cc:1778
 hqamaker.cc:1779
 hqamaker.cc:1780
 hqamaker.cc:1781
 hqamaker.cc:1782
 hqamaker.cc:1783
 hqamaker.cc:1784
 hqamaker.cc:1785
 hqamaker.cc:1786
 hqamaker.cc:1787
 hqamaker.cc:1788
 hqamaker.cc:1789
 hqamaker.cc:1790
 hqamaker.cc:1791
 hqamaker.cc:1792
 hqamaker.cc:1793
 hqamaker.cc:1794
 hqamaker.cc:1795
 hqamaker.cc:1796
 hqamaker.cc:1797
 hqamaker.cc:1798
 hqamaker.cc:1799
 hqamaker.cc:1800
 hqamaker.cc:1801
 hqamaker.cc:1802
 hqamaker.cc:1803
 hqamaker.cc:1804
 hqamaker.cc:1805
 hqamaker.cc:1806
 hqamaker.cc:1807
 hqamaker.cc:1808
 hqamaker.cc:1809
 hqamaker.cc:1810
 hqamaker.cc:1811
 hqamaker.cc:1812
 hqamaker.cc:1813
 hqamaker.cc:1814
 hqamaker.cc:1815
 hqamaker.cc:1816
 hqamaker.cc:1817
 hqamaker.cc:1818
 hqamaker.cc:1819
 hqamaker.cc:1820
 hqamaker.cc:1821
 hqamaker.cc:1822
 hqamaker.cc:1823
 hqamaker.cc:1824
 hqamaker.cc:1825
 hqamaker.cc:1826
 hqamaker.cc:1827
 hqamaker.cc:1828
 hqamaker.cc:1829
 hqamaker.cc:1830
 hqamaker.cc:1831
 hqamaker.cc:1832
 hqamaker.cc:1833
 hqamaker.cc:1834
 hqamaker.cc:1835
 hqamaker.cc:1836
 hqamaker.cc:1837
 hqamaker.cc:1838
 hqamaker.cc:1839
 hqamaker.cc:1840
 hqamaker.cc:1841
 hqamaker.cc:1842
 hqamaker.cc:1843
 hqamaker.cc:1844
 hqamaker.cc:1845
 hqamaker.cc:1846
 hqamaker.cc:1847
 hqamaker.cc:1848
 hqamaker.cc:1849
 hqamaker.cc:1850
 hqamaker.cc:1851
 hqamaker.cc:1852
 hqamaker.cc:1853
 hqamaker.cc:1854
 hqamaker.cc:1855
 hqamaker.cc:1856
 hqamaker.cc:1857
 hqamaker.cc:1858
 hqamaker.cc:1859
 hqamaker.cc:1860
 hqamaker.cc:1861
 hqamaker.cc:1862
 hqamaker.cc:1863
 hqamaker.cc:1864
 hqamaker.cc:1865
 hqamaker.cc:1866
 hqamaker.cc:1867
 hqamaker.cc:1868
 hqamaker.cc:1869
 hqamaker.cc:1870
 hqamaker.cc:1871
 hqamaker.cc:1872
 hqamaker.cc:1873
 hqamaker.cc:1874
 hqamaker.cc:1875
 hqamaker.cc:1876
 hqamaker.cc:1877
 hqamaker.cc:1878
 hqamaker.cc:1879
 hqamaker.cc:1880
 hqamaker.cc:1881
 hqamaker.cc:1882
 hqamaker.cc:1883
 hqamaker.cc:1884
 hqamaker.cc:1885
 hqamaker.cc:1886
 hqamaker.cc:1887
 hqamaker.cc:1888
 hqamaker.cc:1889
 hqamaker.cc:1890
 hqamaker.cc:1891
 hqamaker.cc:1892
 hqamaker.cc:1893
 hqamaker.cc:1894
 hqamaker.cc:1895
 hqamaker.cc:1896
 hqamaker.cc:1897
 hqamaker.cc:1898
 hqamaker.cc:1899
 hqamaker.cc:1900
 hqamaker.cc:1901
 hqamaker.cc:1902
 hqamaker.cc:1903
 hqamaker.cc:1904
 hqamaker.cc:1905
 hqamaker.cc:1906
 hqamaker.cc:1907
 hqamaker.cc:1908
 hqamaker.cc:1909
 hqamaker.cc:1910
 hqamaker.cc:1911
 hqamaker.cc:1912
 hqamaker.cc:1913
 hqamaker.cc:1914
 hqamaker.cc:1915
 hqamaker.cc:1916
 hqamaker.cc:1917
 hqamaker.cc:1918
 hqamaker.cc:1919
 hqamaker.cc:1920
 hqamaker.cc:1921
 hqamaker.cc:1922
 hqamaker.cc:1923
 hqamaker.cc:1924
 hqamaker.cc:1925
 hqamaker.cc:1926
 hqamaker.cc:1927
 hqamaker.cc:1928
 hqamaker.cc:1929
 hqamaker.cc:1930
 hqamaker.cc:1931
 hqamaker.cc:1932
 hqamaker.cc:1933
 hqamaker.cc:1934
 hqamaker.cc:1935
 hqamaker.cc:1936
 hqamaker.cc:1937
 hqamaker.cc:1938
 hqamaker.cc:1939
 hqamaker.cc:1940
 hqamaker.cc:1941
 hqamaker.cc:1942
 hqamaker.cc:1943
 hqamaker.cc:1944
 hqamaker.cc:1945
 hqamaker.cc:1946
 hqamaker.cc:1947
 hqamaker.cc:1948
 hqamaker.cc:1949
 hqamaker.cc:1950
 hqamaker.cc:1951
 hqamaker.cc:1952
 hqamaker.cc:1953
 hqamaker.cc:1954
 hqamaker.cc:1955
 hqamaker.cc:1956
 hqamaker.cc:1957
 hqamaker.cc:1958
 hqamaker.cc:1959
 hqamaker.cc:1960
 hqamaker.cc:1961
 hqamaker.cc:1962
 hqamaker.cc:1963
 hqamaker.cc:1964
 hqamaker.cc:1965
 hqamaker.cc:1966
 hqamaker.cc:1967
 hqamaker.cc:1968
 hqamaker.cc:1969
 hqamaker.cc:1970
 hqamaker.cc:1971
 hqamaker.cc:1972
 hqamaker.cc:1973
 hqamaker.cc:1974
 hqamaker.cc:1975
 hqamaker.cc:1976
 hqamaker.cc:1977
 hqamaker.cc:1978
 hqamaker.cc:1979
 hqamaker.cc:1980
 hqamaker.cc:1981
 hqamaker.cc:1982
 hqamaker.cc:1983
 hqamaker.cc:1984
 hqamaker.cc:1985
 hqamaker.cc:1986
 hqamaker.cc:1987
 hqamaker.cc:1988
 hqamaker.cc:1989
 hqamaker.cc:1990
 hqamaker.cc:1991
 hqamaker.cc:1992
 hqamaker.cc:1993
 hqamaker.cc:1994
 hqamaker.cc:1995
 hqamaker.cc:1996
 hqamaker.cc:1997
 hqamaker.cc:1998
 hqamaker.cc:1999
 hqamaker.cc:2000
 hqamaker.cc:2001
 hqamaker.cc:2002
 hqamaker.cc:2003
 hqamaker.cc:2004
 hqamaker.cc:2005
 hqamaker.cc:2006
 hqamaker.cc:2007
 hqamaker.cc:2008
 hqamaker.cc:2009
 hqamaker.cc:2010
 hqamaker.cc:2011
 hqamaker.cc:2012
 hqamaker.cc:2013
 hqamaker.cc:2014
 hqamaker.cc:2015
 hqamaker.cc:2016
 hqamaker.cc:2017
 hqamaker.cc:2018
 hqamaker.cc:2019
 hqamaker.cc:2020
 hqamaker.cc:2021
 hqamaker.cc:2022
 hqamaker.cc:2023
 hqamaker.cc:2024
 hqamaker.cc:2025
 hqamaker.cc:2026
 hqamaker.cc:2027
 hqamaker.cc:2028
 hqamaker.cc:2029
 hqamaker.cc:2030
 hqamaker.cc:2031
 hqamaker.cc:2032
 hqamaker.cc:2033
 hqamaker.cc:2034
 hqamaker.cc:2035
 hqamaker.cc:2036
 hqamaker.cc:2037
 hqamaker.cc:2038
 hqamaker.cc:2039
 hqamaker.cc:2040
 hqamaker.cc:2041
 hqamaker.cc:2042
 hqamaker.cc:2043
 hqamaker.cc:2044
 hqamaker.cc:2045
 hqamaker.cc:2046
 hqamaker.cc:2047
 hqamaker.cc:2048
 hqamaker.cc:2049
 hqamaker.cc:2050
 hqamaker.cc:2051
 hqamaker.cc:2052
 hqamaker.cc:2053
 hqamaker.cc:2054
 hqamaker.cc:2055
 hqamaker.cc:2056
 hqamaker.cc:2057
 hqamaker.cc:2058
 hqamaker.cc:2059
 hqamaker.cc:2060
 hqamaker.cc:2061
 hqamaker.cc:2062
 hqamaker.cc:2063
 hqamaker.cc:2064
 hqamaker.cc:2065
 hqamaker.cc:2066
 hqamaker.cc:2067
 hqamaker.cc:2068
 hqamaker.cc:2069
 hqamaker.cc:2070
 hqamaker.cc:2071
 hqamaker.cc:2072
 hqamaker.cc:2073
 hqamaker.cc:2074
 hqamaker.cc:2075
 hqamaker.cc:2076
 hqamaker.cc:2077
 hqamaker.cc:2078
 hqamaker.cc:2079
 hqamaker.cc:2080
 hqamaker.cc:2081
 hqamaker.cc:2082
 hqamaker.cc:2083
 hqamaker.cc:2084
 hqamaker.cc:2085
 hqamaker.cc:2086
 hqamaker.cc:2087
 hqamaker.cc:2088
 hqamaker.cc:2089
 hqamaker.cc:2090
 hqamaker.cc:2091
 hqamaker.cc:2092
 hqamaker.cc:2093
 hqamaker.cc:2094
 hqamaker.cc:2095
 hqamaker.cc:2096
 hqamaker.cc:2097
 hqamaker.cc:2098
 hqamaker.cc:2099
 hqamaker.cc:2100
 hqamaker.cc:2101
 hqamaker.cc:2102
 hqamaker.cc:2103
 hqamaker.cc:2104
 hqamaker.cc:2105
 hqamaker.cc:2106
 hqamaker.cc:2107
 hqamaker.cc:2108
 hqamaker.cc:2109
 hqamaker.cc:2110
 hqamaker.cc:2111
 hqamaker.cc:2112
 hqamaker.cc:2113
 hqamaker.cc:2114
 hqamaker.cc:2115
 hqamaker.cc:2116
 hqamaker.cc:2117
 hqamaker.cc:2118
 hqamaker.cc:2119
 hqamaker.cc:2120
 hqamaker.cc:2121
 hqamaker.cc:2122
 hqamaker.cc:2123
 hqamaker.cc:2124
 hqamaker.cc:2125
 hqamaker.cc:2126
 hqamaker.cc:2127
 hqamaker.cc:2128
 hqamaker.cc:2129
 hqamaker.cc:2130
 hqamaker.cc:2131
 hqamaker.cc:2132
 hqamaker.cc:2133
 hqamaker.cc:2134
 hqamaker.cc:2135
 hqamaker.cc:2136
 hqamaker.cc:2137
 hqamaker.cc:2138
 hqamaker.cc:2139
 hqamaker.cc:2140
 hqamaker.cc:2141
 hqamaker.cc:2142
 hqamaker.cc:2143
 hqamaker.cc:2144
 hqamaker.cc:2145
 hqamaker.cc:2146
 hqamaker.cc:2147
 hqamaker.cc:2148
 hqamaker.cc:2149
 hqamaker.cc:2150
 hqamaker.cc:2151
 hqamaker.cc:2152
 hqamaker.cc:2153
 hqamaker.cc:2154
 hqamaker.cc:2155
 hqamaker.cc:2156
 hqamaker.cc:2157
 hqamaker.cc:2158
 hqamaker.cc:2159
 hqamaker.cc:2160
 hqamaker.cc:2161
 hqamaker.cc:2162
 hqamaker.cc:2163
 hqamaker.cc:2164
 hqamaker.cc:2165
 hqamaker.cc:2166
 hqamaker.cc:2167
 hqamaker.cc:2168
 hqamaker.cc:2169
 hqamaker.cc:2170
 hqamaker.cc:2171
 hqamaker.cc:2172
 hqamaker.cc:2173
 hqamaker.cc:2174
 hqamaker.cc:2175
 hqamaker.cc:2176
 hqamaker.cc:2177
 hqamaker.cc:2178
 hqamaker.cc:2179
 hqamaker.cc:2180
 hqamaker.cc:2181
 hqamaker.cc:2182
 hqamaker.cc:2183
 hqamaker.cc:2184
 hqamaker.cc:2185
 hqamaker.cc:2186
 hqamaker.cc:2187
 hqamaker.cc:2188
 hqamaker.cc:2189
 hqamaker.cc:2190
 hqamaker.cc:2191
 hqamaker.cc:2192
 hqamaker.cc:2193
 hqamaker.cc:2194
 hqamaker.cc:2195
 hqamaker.cc:2196
 hqamaker.cc:2197
 hqamaker.cc:2198
 hqamaker.cc:2199
 hqamaker.cc:2200
 hqamaker.cc:2201
 hqamaker.cc:2202
 hqamaker.cc:2203
 hqamaker.cc:2204
 hqamaker.cc:2205
 hqamaker.cc:2206
 hqamaker.cc:2207
 hqamaker.cc:2208
 hqamaker.cc:2209
 hqamaker.cc:2210
 hqamaker.cc:2211
 hqamaker.cc:2212
 hqamaker.cc:2213
 hqamaker.cc:2214
 hqamaker.cc:2215
 hqamaker.cc:2216
 hqamaker.cc:2217
 hqamaker.cc:2218
 hqamaker.cc:2219
 hqamaker.cc:2220
 hqamaker.cc:2221
 hqamaker.cc:2222
 hqamaker.cc:2223
 hqamaker.cc:2224
 hqamaker.cc:2225
 hqamaker.cc:2226
 hqamaker.cc:2227
 hqamaker.cc:2228
 hqamaker.cc:2229
 hqamaker.cc:2230
 hqamaker.cc:2231
 hqamaker.cc:2232
 hqamaker.cc:2233
 hqamaker.cc:2234
 hqamaker.cc:2235
 hqamaker.cc:2236
 hqamaker.cc:2237
 hqamaker.cc:2238
 hqamaker.cc:2239
 hqamaker.cc:2240
 hqamaker.cc:2241
 hqamaker.cc:2242
 hqamaker.cc:2243
 hqamaker.cc:2244
 hqamaker.cc:2245
 hqamaker.cc:2246
 hqamaker.cc:2247
 hqamaker.cc:2248
 hqamaker.cc:2249
 hqamaker.cc:2250
 hqamaker.cc:2251
 hqamaker.cc:2252
 hqamaker.cc:2253
 hqamaker.cc:2254
 hqamaker.cc:2255
 hqamaker.cc:2256
 hqamaker.cc:2257
 hqamaker.cc:2258
 hqamaker.cc:2259
 hqamaker.cc:2260
 hqamaker.cc:2261
 hqamaker.cc:2262
 hqamaker.cc:2263
 hqamaker.cc:2264
 hqamaker.cc:2265
 hqamaker.cc:2266
 hqamaker.cc:2267
 hqamaker.cc:2268
 hqamaker.cc:2269
 hqamaker.cc:2270
 hqamaker.cc:2271
 hqamaker.cc:2272
 hqamaker.cc:2273
 hqamaker.cc:2274
 hqamaker.cc:2275
 hqamaker.cc:2276
 hqamaker.cc:2277
 hqamaker.cc:2278
 hqamaker.cc:2279
 hqamaker.cc:2280
 hqamaker.cc:2281
 hqamaker.cc:2282
 hqamaker.cc:2283
 hqamaker.cc:2284
 hqamaker.cc:2285
 hqamaker.cc:2286
 hqamaker.cc:2287
 hqamaker.cc:2288
 hqamaker.cc:2289
 hqamaker.cc:2290
 hqamaker.cc:2291
 hqamaker.cc:2292
 hqamaker.cc:2293
 hqamaker.cc:2294
 hqamaker.cc:2295
 hqamaker.cc:2296
 hqamaker.cc:2297
 hqamaker.cc:2298
 hqamaker.cc:2299
 hqamaker.cc:2300
 hqamaker.cc:2301
 hqamaker.cc:2302
 hqamaker.cc:2303
 hqamaker.cc:2304
 hqamaker.cc:2305
 hqamaker.cc:2306
 hqamaker.cc:2307
 hqamaker.cc:2308
 hqamaker.cc:2309
 hqamaker.cc:2310
 hqamaker.cc:2311
 hqamaker.cc:2312
 hqamaker.cc:2313
 hqamaker.cc:2314
 hqamaker.cc:2315
 hqamaker.cc:2316
 hqamaker.cc:2317
 hqamaker.cc:2318
 hqamaker.cc:2319
 hqamaker.cc:2320
 hqamaker.cc:2321
 hqamaker.cc:2322
 hqamaker.cc:2323
 hqamaker.cc:2324
 hqamaker.cc:2325
 hqamaker.cc:2326
 hqamaker.cc:2327
 hqamaker.cc:2328
 hqamaker.cc:2329
 hqamaker.cc:2330
 hqamaker.cc:2331
 hqamaker.cc:2332
 hqamaker.cc:2333
 hqamaker.cc:2334
 hqamaker.cc:2335
 hqamaker.cc:2336
 hqamaker.cc:2337
 hqamaker.cc:2338
 hqamaker.cc:2339
 hqamaker.cc:2340
 hqamaker.cc:2341
 hqamaker.cc:2342
 hqamaker.cc:2343
 hqamaker.cc:2344
 hqamaker.cc:2345
 hqamaker.cc:2346
 hqamaker.cc:2347
 hqamaker.cc:2348
 hqamaker.cc:2349
 hqamaker.cc:2350
 hqamaker.cc:2351
 hqamaker.cc:2352
 hqamaker.cc:2353
 hqamaker.cc:2354
 hqamaker.cc:2355
 hqamaker.cc:2356
 hqamaker.cc:2357
 hqamaker.cc:2358
 hqamaker.cc:2359
 hqamaker.cc:2360
 hqamaker.cc:2361
 hqamaker.cc:2362
 hqamaker.cc:2363
 hqamaker.cc:2364
 hqamaker.cc:2365
 hqamaker.cc:2366
 hqamaker.cc:2367
 hqamaker.cc:2368
 hqamaker.cc:2369
 hqamaker.cc:2370
 hqamaker.cc:2371
 hqamaker.cc:2372
 hqamaker.cc:2373
 hqamaker.cc:2374
 hqamaker.cc:2375
 hqamaker.cc:2376
 hqamaker.cc:2377
 hqamaker.cc:2378
 hqamaker.cc:2379
 hqamaker.cc:2380
 hqamaker.cc:2381
 hqamaker.cc:2382
 hqamaker.cc:2383
 hqamaker.cc:2384
 hqamaker.cc:2385
 hqamaker.cc:2386
 hqamaker.cc:2387
 hqamaker.cc:2388
 hqamaker.cc:2389
 hqamaker.cc:2390
 hqamaker.cc:2391
 hqamaker.cc:2392
 hqamaker.cc:2393
 hqamaker.cc:2394
 hqamaker.cc:2395
 hqamaker.cc:2396
 hqamaker.cc:2397
 hqamaker.cc:2398
 hqamaker.cc:2399
 hqamaker.cc:2400
 hqamaker.cc:2401
 hqamaker.cc:2402
 hqamaker.cc:2403
 hqamaker.cc:2404
 hqamaker.cc:2405
 hqamaker.cc:2406
 hqamaker.cc:2407
 hqamaker.cc:2408
 hqamaker.cc:2409
 hqamaker.cc:2410
 hqamaker.cc:2411
 hqamaker.cc:2412
 hqamaker.cc:2413
 hqamaker.cc:2414
 hqamaker.cc:2415
 hqamaker.cc:2416
 hqamaker.cc:2417
 hqamaker.cc:2418
 hqamaker.cc:2419
 hqamaker.cc:2420
 hqamaker.cc:2421
 hqamaker.cc:2422
 hqamaker.cc:2423
 hqamaker.cc:2424
 hqamaker.cc:2425
 hqamaker.cc:2426
 hqamaker.cc:2427
 hqamaker.cc:2428
 hqamaker.cc:2429
 hqamaker.cc:2430
 hqamaker.cc:2431
 hqamaker.cc:2432
 hqamaker.cc:2433
 hqamaker.cc:2434
 hqamaker.cc:2435
 hqamaker.cc:2436
 hqamaker.cc:2437
 hqamaker.cc:2438
 hqamaker.cc:2439
 hqamaker.cc:2440
 hqamaker.cc:2441
 hqamaker.cc:2442
 hqamaker.cc:2443
 hqamaker.cc:2444
 hqamaker.cc:2445
 hqamaker.cc:2446
 hqamaker.cc:2447
 hqamaker.cc:2448
 hqamaker.cc:2449
 hqamaker.cc:2450
 hqamaker.cc:2451
 hqamaker.cc:2452
 hqamaker.cc:2453
 hqamaker.cc:2454
 hqamaker.cc:2455
 hqamaker.cc:2456
 hqamaker.cc:2457
 hqamaker.cc:2458
 hqamaker.cc:2459
 hqamaker.cc:2460
 hqamaker.cc:2461
 hqamaker.cc:2462
 hqamaker.cc:2463
 hqamaker.cc:2464
 hqamaker.cc:2465
 hqamaker.cc:2466
 hqamaker.cc:2467
 hqamaker.cc:2468
 hqamaker.cc:2469
 hqamaker.cc:2470
 hqamaker.cc:2471
 hqamaker.cc:2472
 hqamaker.cc:2473
 hqamaker.cc:2474
 hqamaker.cc:2475
 hqamaker.cc:2476
 hqamaker.cc:2477
 hqamaker.cc:2478
 hqamaker.cc:2479
 hqamaker.cc:2480
 hqamaker.cc:2481
 hqamaker.cc:2482
 hqamaker.cc:2483
 hqamaker.cc:2484
 hqamaker.cc:2485
 hqamaker.cc:2486
 hqamaker.cc:2487
 hqamaker.cc:2488
 hqamaker.cc:2489
 hqamaker.cc:2490
 hqamaker.cc:2491
 hqamaker.cc:2492
 hqamaker.cc:2493
 hqamaker.cc:2494
 hqamaker.cc:2495
 hqamaker.cc:2496
 hqamaker.cc:2497
 hqamaker.cc:2498
 hqamaker.cc:2499
 hqamaker.cc:2500
 hqamaker.cc:2501
 hqamaker.cc:2502
 hqamaker.cc:2503
 hqamaker.cc:2504
 hqamaker.cc:2505
 hqamaker.cc:2506
 hqamaker.cc:2507
 hqamaker.cc:2508
 hqamaker.cc:2509
 hqamaker.cc:2510
 hqamaker.cc:2511
 hqamaker.cc:2512
 hqamaker.cc:2513
 hqamaker.cc:2514
 hqamaker.cc:2515
 hqamaker.cc:2516
 hqamaker.cc:2517
 hqamaker.cc:2518
 hqamaker.cc:2519
 hqamaker.cc:2520
 hqamaker.cc:2521
 hqamaker.cc:2522
 hqamaker.cc:2523
 hqamaker.cc:2524
 hqamaker.cc:2525
 hqamaker.cc:2526
 hqamaker.cc:2527
 hqamaker.cc:2528
 hqamaker.cc:2529
 hqamaker.cc:2530
 hqamaker.cc:2531
 hqamaker.cc:2532
 hqamaker.cc:2533
 hqamaker.cc:2534
 hqamaker.cc:2535
 hqamaker.cc:2536
 hqamaker.cc:2537
 hqamaker.cc:2538
 hqamaker.cc:2539
 hqamaker.cc:2540
 hqamaker.cc:2541
 hqamaker.cc:2542
 hqamaker.cc:2543
 hqamaker.cc:2544
 hqamaker.cc:2545
 hqamaker.cc:2546
 hqamaker.cc:2547
 hqamaker.cc:2548
 hqamaker.cc:2549
 hqamaker.cc:2550
 hqamaker.cc:2551
 hqamaker.cc:2552
 hqamaker.cc:2553
 hqamaker.cc:2554
 hqamaker.cc:2555
 hqamaker.cc:2556
 hqamaker.cc:2557
 hqamaker.cc:2558
 hqamaker.cc:2559
 hqamaker.cc:2560
 hqamaker.cc:2561
 hqamaker.cc:2562
 hqamaker.cc:2563
 hqamaker.cc:2564
 hqamaker.cc:2565
 hqamaker.cc:2566
 hqamaker.cc:2567
 hqamaker.cc:2568
 hqamaker.cc:2569
 hqamaker.cc:2570
 hqamaker.cc:2571
 hqamaker.cc:2572
 hqamaker.cc:2573
 hqamaker.cc:2574
 hqamaker.cc:2575
 hqamaker.cc:2576
 hqamaker.cc:2577
 hqamaker.cc:2578
 hqamaker.cc:2579
 hqamaker.cc:2580
 hqamaker.cc:2581
 hqamaker.cc:2582
 hqamaker.cc:2583
 hqamaker.cc:2584
 hqamaker.cc:2585
 hqamaker.cc:2586
 hqamaker.cc:2587
 hqamaker.cc:2588
 hqamaker.cc:2589
 hqamaker.cc:2590
 hqamaker.cc:2591
 hqamaker.cc:2592
 hqamaker.cc:2593
 hqamaker.cc:2594
 hqamaker.cc:2595
 hqamaker.cc:2596
 hqamaker.cc:2597
 hqamaker.cc:2598
 hqamaker.cc:2599
 hqamaker.cc:2600
 hqamaker.cc:2601
 hqamaker.cc:2602
 hqamaker.cc:2603
 hqamaker.cc:2604
 hqamaker.cc:2605
 hqamaker.cc:2606
 hqamaker.cc:2607
 hqamaker.cc:2608
 hqamaker.cc:2609
 hqamaker.cc:2610
 hqamaker.cc:2611
 hqamaker.cc:2612
 hqamaker.cc:2613
 hqamaker.cc:2614
 hqamaker.cc:2615
 hqamaker.cc:2616
 hqamaker.cc:2617
 hqamaker.cc:2618
 hqamaker.cc:2619
 hqamaker.cc:2620
 hqamaker.cc:2621
 hqamaker.cc:2622
 hqamaker.cc:2623
 hqamaker.cc:2624
 hqamaker.cc:2625
 hqamaker.cc:2626
 hqamaker.cc:2627
 hqamaker.cc:2628
 hqamaker.cc:2629
 hqamaker.cc:2630
 hqamaker.cc:2631
 hqamaker.cc:2632
 hqamaker.cc:2633
 hqamaker.cc:2634
 hqamaker.cc:2635
 hqamaker.cc:2636
 hqamaker.cc:2637
 hqamaker.cc:2638
 hqamaker.cc:2639
 hqamaker.cc:2640
 hqamaker.cc:2641
 hqamaker.cc:2642
 hqamaker.cc:2643
 hqamaker.cc:2644
 hqamaker.cc:2645
 hqamaker.cc:2646
 hqamaker.cc:2647
 hqamaker.cc:2648
 hqamaker.cc:2649
 hqamaker.cc:2650
 hqamaker.cc:2651
 hqamaker.cc:2652
 hqamaker.cc:2653
 hqamaker.cc:2654
 hqamaker.cc:2655
 hqamaker.cc:2656
 hqamaker.cc:2657
 hqamaker.cc:2658
 hqamaker.cc:2659
 hqamaker.cc:2660
 hqamaker.cc:2661
 hqamaker.cc:2662
 hqamaker.cc:2663
 hqamaker.cc:2664
 hqamaker.cc:2665
 hqamaker.cc:2666
 hqamaker.cc:2667
 hqamaker.cc:2668
 hqamaker.cc:2669
 hqamaker.cc:2670
 hqamaker.cc:2671
 hqamaker.cc:2672
 hqamaker.cc:2673
 hqamaker.cc:2674
 hqamaker.cc:2675
 hqamaker.cc:2676
 hqamaker.cc:2677
 hqamaker.cc:2678
 hqamaker.cc:2679
 hqamaker.cc:2680
 hqamaker.cc:2681
 hqamaker.cc:2682
 hqamaker.cc:2683
 hqamaker.cc:2684
 hqamaker.cc:2685
 hqamaker.cc:2686
 hqamaker.cc:2687
 hqamaker.cc:2688
 hqamaker.cc:2689
 hqamaker.cc:2690
 hqamaker.cc:2691
 hqamaker.cc:2692
 hqamaker.cc:2693
 hqamaker.cc:2694
 hqamaker.cc:2695
 hqamaker.cc:2696
 hqamaker.cc:2697
 hqamaker.cc:2698
 hqamaker.cc:2699
 hqamaker.cc:2700
 hqamaker.cc:2701
 hqamaker.cc:2702
 hqamaker.cc:2703
 hqamaker.cc:2704
 hqamaker.cc:2705
 hqamaker.cc:2706
 hqamaker.cc:2707
 hqamaker.cc:2708
 hqamaker.cc:2709
 hqamaker.cc:2710
 hqamaker.cc:2711
 hqamaker.cc:2712
 hqamaker.cc:2713
 hqamaker.cc:2714
 hqamaker.cc:2715
 hqamaker.cc:2716
 hqamaker.cc:2717
 hqamaker.cc:2718
 hqamaker.cc:2719
 hqamaker.cc:2720
 hqamaker.cc:2721
 hqamaker.cc:2722
 hqamaker.cc:2723
 hqamaker.cc:2724
 hqamaker.cc:2725
 hqamaker.cc:2726
 hqamaker.cc:2727
 hqamaker.cc:2728
 hqamaker.cc:2729
 hqamaker.cc:2730
 hqamaker.cc:2731
 hqamaker.cc:2732
 hqamaker.cc:2733
 hqamaker.cc:2734
 hqamaker.cc:2735
 hqamaker.cc:2736
 hqamaker.cc:2737
 hqamaker.cc:2738
 hqamaker.cc:2739
 hqamaker.cc:2740
 hqamaker.cc:2741
 hqamaker.cc:2742
 hqamaker.cc:2743
 hqamaker.cc:2744
 hqamaker.cc:2745
 hqamaker.cc:2746
 hqamaker.cc:2747
 hqamaker.cc:2748
 hqamaker.cc:2749
 hqamaker.cc:2750
 hqamaker.cc:2751
 hqamaker.cc:2752
 hqamaker.cc:2753
 hqamaker.cc:2754
 hqamaker.cc:2755
 hqamaker.cc:2756
 hqamaker.cc:2757
 hqamaker.cc:2758
 hqamaker.cc:2759
 hqamaker.cc:2760
 hqamaker.cc:2761
 hqamaker.cc:2762
 hqamaker.cc:2763
 hqamaker.cc:2764
 hqamaker.cc:2765
 hqamaker.cc:2766
 hqamaker.cc:2767
 hqamaker.cc:2768
 hqamaker.cc:2769
 hqamaker.cc:2770
 hqamaker.cc:2771
 hqamaker.cc:2772
 hqamaker.cc:2773
 hqamaker.cc:2774
 hqamaker.cc:2775
 hqamaker.cc:2776
 hqamaker.cc:2777
 hqamaker.cc:2778
 hqamaker.cc:2779
 hqamaker.cc:2780
 hqamaker.cc:2781
 hqamaker.cc:2782
 hqamaker.cc:2783
 hqamaker.cc:2784
 hqamaker.cc:2785
 hqamaker.cc:2786
 hqamaker.cc:2787
 hqamaker.cc:2788
 hqamaker.cc:2789
 hqamaker.cc:2790
 hqamaker.cc:2791
 hqamaker.cc:2792
 hqamaker.cc:2793
 hqamaker.cc:2794
 hqamaker.cc:2795
 hqamaker.cc:2796
 hqamaker.cc:2797
 hqamaker.cc:2798
 hqamaker.cc:2799
 hqamaker.cc:2800
 hqamaker.cc:2801
 hqamaker.cc:2802
 hqamaker.cc:2803
 hqamaker.cc:2804
 hqamaker.cc:2805
 hqamaker.cc:2806
 hqamaker.cc:2807
 hqamaker.cc:2808
 hqamaker.cc:2809
 hqamaker.cc:2810
 hqamaker.cc:2811
 hqamaker.cc:2812
 hqamaker.cc:2813
 hqamaker.cc:2814
 hqamaker.cc:2815
 hqamaker.cc:2816
 hqamaker.cc:2817
 hqamaker.cc:2818
 hqamaker.cc:2819
 hqamaker.cc:2820
 hqamaker.cc:2821
 hqamaker.cc:2822
 hqamaker.cc:2823
 hqamaker.cc:2824
 hqamaker.cc:2825
 hqamaker.cc:2826
 hqamaker.cc:2827
 hqamaker.cc:2828
 hqamaker.cc:2829
 hqamaker.cc:2830
 hqamaker.cc:2831
 hqamaker.cc:2832
 hqamaker.cc:2833
 hqamaker.cc:2834
 hqamaker.cc:2835
 hqamaker.cc:2836
 hqamaker.cc:2837
 hqamaker.cc:2838
 hqamaker.cc:2839
 hqamaker.cc:2840
 hqamaker.cc:2841
 hqamaker.cc:2842
 hqamaker.cc:2843
 hqamaker.cc:2844
 hqamaker.cc:2845
 hqamaker.cc:2846
 hqamaker.cc:2847
 hqamaker.cc:2848
 hqamaker.cc:2849
 hqamaker.cc:2850
 hqamaker.cc:2851
 hqamaker.cc:2852
 hqamaker.cc:2853
 hqamaker.cc:2854
 hqamaker.cc:2855
 hqamaker.cc:2856
 hqamaker.cc:2857
 hqamaker.cc:2858
 hqamaker.cc:2859
 hqamaker.cc:2860
 hqamaker.cc:2861
 hqamaker.cc:2862
 hqamaker.cc:2863
 hqamaker.cc:2864
 hqamaker.cc:2865
 hqamaker.cc:2866
 hqamaker.cc:2867
 hqamaker.cc:2868