ROOT logo
//*-- Created : 03/08/2012 by S.Spataro
//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////////
//
//  HParticleStart2HitF
//
//  This class finds the correct start hit
//  Th correctiom method is store in HStart2Hit::gerCorrFlag() :
//      -1 : no corr, 0 : mod0, 1 : mod1. 2: both mods
//
///////////////////////////////////////////////////////////////////////////////

#include "hades.h"
#include "hcategory.h"
#include "hevent.h"
#include "hruntimedb.h"
#include "hspectrometer.h"

#include "hstart2cal.h"
#include "hstart2hit.h"
#include "htofhit.h"
#include "htofcluster.h"
#include "hrpchit.h"
#include "hrpccluster.h"
#include "htofhitsim.h"
#include "htofclustersim.h"
#include "hrpchitsim.h"
#include "hrpcclustersim.h"
#include "hparticlestart2hitf.h"
#include "tofdef.h"
#include "rpcdef.h"
#include "hstartdef.h"

#include "TMath.h"

#include <iomanip>
#include <iostream>

ClassImp(HParticleStart2HitF)

    HParticleStart2HitF::HParticleStart2HitF(void)
    : HReconstructor()
{
    // default constructor

    fCatTof      = NULL;
    fCatTofClu   = NULL;
    fCatRpc      = NULL;
    fCatRpcClu   = NULL;
    fCatStartCal = NULL;
    fCatStartHit = NULL;
    bDebug            = kFALSE;
    startTimeOriginal = 0.;
    startFlag         =-1;
    setTimeCut(15.);
}

HParticleStart2HitF::HParticleStart2HitF(const Text_t *name, const Text_t *title, Bool_t skip)
: HReconstructor(name, title)
{
    // constructor

    fCatTof      = NULL;
    fCatTofClu   = NULL;
    fCatRpc      = NULL;
    fCatRpcClu   = NULL;
    fCatStartCal = NULL;
    fCatStartHit = NULL;
    bDebug            = kFALSE;
    startTimeOriginal = 0.;
    startFlag         =-1;
    setTimeCut(5.,15.);
}

Bool_t HParticleStart2HitF::init(void)
{
    // init function

    fCatTof = gHades->getCurrentEvent()->getCategory(catTofHit);
    if (NULL == fCatTof) {
	Warning("init", "HTofHit category not available!");
    }

    fCatTofClu = gHades->getCurrentEvent()->getCategory(catTofCluster);
    if (NULL == fCatTofClu) {
	Warning("init", "HTofCluster category not available!");
    }

    fCatRpc = gHades->getCurrentEvent()->getCategory(catRpcHit);
    if (NULL == fCatRpc) {
	Warning("init", "HRpcHit category not available!");
    }

    fCatRpcClu = gHades->getCurrentEvent()->getCategory(catRpcCluster);
    if (NULL == fCatRpcClu) {
	Warning("init", "HRpcCluster category not available!");
    }

    fCatStartCal = gHades->getCurrentEvent()->getCategory(catStart2Cal);
    if (NULL == fCatStartCal) {
	Warning("init", "HStart2Cal category not available!");
    }

    fCatStartHit = gHades->getCurrentEvent()->getCategory(catStart2Hit);
    if (NULL == fCatStartHit) {
	Warning("init", "HStart2Hit category not available!");
    }

    if (bDebug)
    {
	out = new TFile("./start_output.root","RECREATE");
	nt1 = new TNtuple("nt1","nt1","evt:sys:tof:dist:tofn");
	nt2 = new TNtuple("nt2","nt2","evt:size0:size1:tof1:tof0:tof:n1:n0:n");
	nt3 = new TNtuple("nt3","nt3","evt:tof:start0:start1:dist0:dist1:startold:startnew:flag");
    }

    return kTRUE;
}

Int_t HParticleStart2HitF::execute(void)
{
    // makes the hits and fills the HStartHit category


    //--------------------------------------------------------------------
    // find the minimum tof from tof+rpc (already corrected for start hit)
    Float_t minTime = findMinimumTime();
    if (minTime < 0) return 0; // if no good minimum tof value then skip the rest
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    // find the start time from HStart2Hit
    startTimeOriginal = findOriginalStartTime();
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    // find new start time, "minTime + startTimeOriginal" is the time
    // before the start correction from start hit
    firstCluster.clear();
    secondCluster.clear();
    fSecondTime = -10000;
    Float_t startTime = findStartTime(minTime + startTimeOriginal);
    //--------------------------------------------------------------------

    //if (TMath::Abs(startTime - startTimeOriginal) < 0.5) return kSkipEvent; // to comment out!!

    //--------------------------------------------------------------------
    correctTof(startTime - startTimeOriginal);
    correctRpc(startTime - startTimeOriginal);
    correctStart(startTime - startTimeOriginal);
    //--------------------------------------------------------------------

    return 0;
}

Float_t HParticleStart2HitF::findMinimumTime(void)
{
    // Function which loops inside tof and rpc hits, find the 3 hits
    // with minimum time-of-flight, and returns the average value -> fastes signal

    HTofHit* pTofHit = NULL;
    HRpcHit* pRpcHit = NULL;

    vector<Float_t> tofList, rpcList, allList; // lists of time-of-flight

    //--------------------------------------------------------------------
    // loop in HTofHit category
    if(fCatTof) {
	for (Int_t tofEntry = 0; tofEntry < fCatTof->getEntries(); ++tofEntry)
	{
	    if (NULL == (pTofHit = static_cast<HTofHit*>(fCatTof->getObject(tofEntry)))) {
		Error("findMinimumTime", "Pointer to HTofHit object == NULL, returning");
		return -1;
	    }

	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HTofHitSim* pTofHitSim = 0;
		pTofHitSim = dynamic_cast<HTofHitSim*>(pTofHit);
		if(pTofHitSim){
                    if(pTofHitSim->getNTrack1() > 0 || pTofHitSim->getNTrack2() > 0) continue;
		}
	    }
	    //--------------------------------------------------------------------


	    Float_t tofTof = pTofHit->getTof();
	    if ( (tofTof < 0) || (tofTof > 300) ) continue; // cuts too low or high tof values

	    Float_t distTof = 0;
	    pTofHit->getDistance(distTof);
	    if (distTof > 3000) continue; // cuts not feasible distances

	    tofList.push_back(2100. * tofTof / distTof);  // fill with normalized tof to 2100 mm
	    allList.push_back(2100. * tofTof / distTof);  // fill with normalized tof to 2100 mm
	    if (bDebug) nt1->Fill(gHades->getEventCounter(), 1, tofTof, distTof, 2100. * tofTof / distTof);
	} // end of HTofHit loop
    }
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    // loop in RpcHit category
    Int_t tracksL[10];
    Int_t tracksR[10];

    if(fCatRpc){
	for (Int_t rpcEntry = 0; rpcEntry < fCatRpc->getEntries(); ++rpcEntry)
	{
	    if (NULL == (pRpcHit = static_cast<HRpcHit*>(fCatRpc->getObject(rpcEntry)))) {
		Error("execute", "Pointer to HRpcHit object == NULL, returning");
		return -1;
	    }

	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HRpcHitSim* pRpcHitSim = 0;
		pRpcHitSim = dynamic_cast<HRpcHitSim*>(pRpcHit);
		if(pRpcHitSim){
		    pRpcHitSim->getTrackLArray(tracksL);
                    pRpcHitSim->getTrackRArray(tracksR);
                    Bool_t simTrack=kFALSE;
		    for(Int_t i = 0; i < 10; i++){
			if(tracksL[i] > 0 || tracksR[i] > 0) { simTrack = kTRUE; break;}
		    }
                    if(simTrack) continue;
		}
	    }
	    //--------------------------------------------------------------------

	    Float_t tofRpc = pRpcHit->getTof();
	    if ( (tofRpc < 0) || (tofRpc > 300) ) continue; // cuts too low or high tof values

	    Float_t xRpc = 0., yRpc = 0., zRpc = 0.;
	    pRpcHit->getXYZLab(xRpc, yRpc, zRpc);
	    Float_t distRpc = TMath::Sqrt(xRpc * xRpc + yRpc * yRpc + zRpc * zRpc);
	    if (distRpc > 3000) continue; // cuts not feasible distances

	    rpcList.push_back(2100. * tofRpc / distRpc);  // fill with normalized tof to 2100 mm;
	    allList.push_back(2100. * tofRpc / distRpc);  // fill with normalized tof to 2100 mm;
	    if (bDebug) nt1->Fill(gHades->getEventCounter(), 0, tofRpc, distRpc, 2100. * tofRpc / distRpc);
	} // end of HRpcHit loop
    }
    //--------------------------------------------------------------------

    if (allList.size() == 0) return -1; // if no good time, returns a negative value

    //--------------------------------------------------------------------
    // sort tof lists from minimum to maximum value
    std::sort(tofList.begin(), tofList.end());
    std::sort(rpcList.begin(), rpcList.end());
    std::sort(allList.begin(), allList.end());
    //--------------------------------------------------------------------


    //--------------------------------------------------------------------
    // select the three tof values with minimum time,
    // and calculate the average, for tof rpc and both
    Float_t tofSum   = 0, rpcSum   = 0, allSum   = 0;
    Float_t tofMean  = 0, rpcMean  = 0, allMean  = 0;
    Int_t   tofCount = 0, rpcCount = 0, allCount = 0;
    for (vector<Float_t>::iterator it = tofList.begin(); it != tofList.end(); ++it) {
	if (tofCount < 3) {
	    tofSum += *it;
	    tofCount++;
	}
    }
    if (tofCount > 0) tofMean = tofSum / tofCount;

    for (vector<Float_t>::iterator it = rpcList.begin(); it != rpcList.end(); ++it) {
	if (rpcCount < 3) {
	    rpcSum += *it;
	    rpcCount++;
	}
    }
    if (rpcCount > 0) rpcMean = rpcSum/rpcCount;

    for (vector<Float_t>::iterator it = allList.begin(); it != allList.end(); ++it) {
	if (allCount < 3) {
	    allSum += *it;
	    allCount++;
	}
    }
    if (allCount > 0) allMean = allSum / allCount;
    //--------------------------------------------------------------------

    if (bDebug) nt2->Fill(gHades->getEventCounter(), rpcList.size(), tofList.size(), tofMean, rpcMean, allMean, tofCount, rpcCount, allCount);

    return allMean; // returns the minimum time from tof+rpc
}

Float_t HParticleStart2HitF::findOriginalStartTime(void)
{
    // function to retrieve the start time from HStart2Hit category
    
    Float_t start_time = 0;
    //--------------------------------------------------------------------
    if(fCatStartHit)
    {
	HStart2Hit* pStartHit = NULL;
	for (Int_t startEntry = 0; startEntry < fCatStartHit->getEntries(); ++startEntry)
	{
	    // loop on HStartHit
	    if (NULL == (pStartHit = static_cast<HStart2Hit*>(fCatStartHit->getObject(startEntry)))) {
		Error("findOriginalStartTime", "Pointer to HStartHit object == NULL, returning");
		return -1;
	    }
	    start_time = pStartHit->getTime();
	} // end of start hit loop
    }
    //--------------------------------------------------------------------
    return start_time;
}

Float_t HParticleStart2HitF::findStartTime(Float_t minTof)
{
    // Find the correct start time, where time-start closer to 7ns

    
    Float_t startTimeDiff[2] = { 300., 300.};
    Float_t startTime    [2] = { 300., 300. };

    Int_t strip[2]={-1,-1};
    //--------------------------------------------------------------------
    if(fCatStartCal)
    {
	HStart2Cal* pStartCal = NULL;
	for (Int_t startEntry = 0; startEntry < fCatStartCal->getEntries(); ++startEntry)
	{
	    // loop on HStartCal
	    if (NULL == (pStartCal = static_cast<HStart2Cal*>(fCatStartCal->getObject(startEntry)))) {
		Error("findStartTime", "Pointer to HStartCal object == NULL, returning");
		return -1;
	    }

	    Int_t mod = pStartCal->getModule();
	    if (mod > 1) continue; // skip VETO

	    for (Int_t nStart = 0; nStart < pStartCal->getMaxMultiplicity(); nStart++) // loop on the start time
	    {
		Float_t time = pStartCal->getTime(nStart + 1);
		//if ((time<-10) || (time>230) ) continue;  // use only [-10,230] ns as confidential range
		if ( ((minTof-time) < timeCutL) || ((minTof-time) > timeCutR) ) continue; // consider start hits where tof is [5,15] ns

		// select start time (modulewise) where tof-start is closer to 7 ns.
		if (TMath::Abs(minTof - time - 7.) < TMath::Abs(startTimeDiff[mod]))
		{
		    startTimeDiff[mod] = minTof - time - 7.;
		    startTime    [mod] = time;
                    strip        [mod] = startEntry*1000+nStart+1;
		}
	    } // end of loop inside 4 start time

	} // end of start hit loop
    }
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    Float_t newStart = 0;
    startFlag = -1;
    if ( (startTime[0] != 300) && (startTime[1] != 300) ) // if there is good start time for both modules
    {
	// if they are within 0.5ns then calculates mean value
	if (TMath::Abs(startTime[0] - startTime[1]) < 0.5)
	{
	    newStart = 0.5 * (startTime[0] + startTime[1]);
	    startFlag = 2;
	} else {
	    // if the 2 start times are not correlated, take the closer to 7 ns
	    if (TMath::Abs(startTimeDiff[0]) < TMath::Abs(startTimeDiff[1]))
	    {
		newStart = startTime[0];
		startFlag = 0;
	    }
	    else
	    {
		newStart = startTime[1];
		startFlag = 1;
	    }
	}
    } // end of both modules
    else
    {
	// if only one start time is present, select such module for time
	if (startTime[0] != 300)
	{
	    newStart = startTime[0];
	    startFlag = 0;
	}
	if (startTime[1] != 300)
	{
	    newStart = startTime[1];
	    startFlag = 1;
	}
    }
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    // collect cluster infos
    if(startFlag>-1){ // any good found

        Float_t minDiffSecond = 0.5;

        // put the closest strip allways first in vector
        if(startFlag == 0 || startFlag == 2) firstCluster.push_back(strip[0]);
        if(startFlag == 1 || startFlag == 2) firstCluster.push_back(strip[1]);

        vector<Int_t> vtemp;   // temp vector for strips will be refilled later
	Int_t    nextHit =-1;
        Float_t timediff = 100000;   // local var
        Float_t newStart2= -100000;  // clostest scond time
	HStart2Cal* pStartCal = NULL;
	for (Int_t startEntry = 0; startEntry < fCatStartCal->getEntries(); ++startEntry)
	{
	    // loop on HStartCal
	    if (NULL == (pStartCal = static_cast<HStart2Cal*>(fCatStartCal->getObject(startEntry)))) {
		Error("findStartTime", "Pointer to HStartCal object == NULL, returning");
		return -1;
	    }

	    Int_t mod = pStartCal->getModule();
	    if (mod > 1) continue; // skip VETO

	    for (Int_t nStart = 0; nStart < pStartCal->getMaxMultiplicity(); nStart++) // loop on the 4 start time
	    {
		Float_t time = pStartCal->getTime(nStart + 1);
		//if ((time<-10) || (time>230) ) continue;  // use only [-10,230] ns as confidential range
		if ( ((minTof-time) < timeCutL) || ((minTof-time) > timeCutR) ) continue; // consider start hits where tof is [5,15] ns
                Int_t newstrip = startEntry*1000+nStart+1 ;
		// fill all strips of first cluster

                Float_t diff =  TMath::Abs( newStart - time );
		if (diff < 0.5)
		{
		    if(find(firstCluster.begin(),firstCluster.end(),newstrip)==firstCluster.end()){
			firstCluster.push_back(newstrip);
		    }

		} else {

		    if (diff > minDiffSecond)
		    {
			if(diff<timediff) {
			    timediff  = diff;
			    newStart2 = time;
			    nextHit   = newstrip;
			}
			vtemp.push_back(newstrip);
		    }
		}
	    } // end of loop inside 4 start time

	} // end of start hit loop

	if(vtemp.size()>0){  // there was something else
	    fSecondTime = newStart2;
	    secondCluster.push_back(nextHit);
	    for(UInt_t i=0;i<vtemp.size();i++){
		if(find(secondCluster.begin(),secondCluster.end(),vtemp[i])==secondCluster.end()){
		    secondCluster.push_back(vtemp[i]);
		}
	    }
	}

    }

    //--------------------------------------------------------------------





    // if no good time is present in no start modules, the start time remains "0"

    if (bDebug) nt3->Fill(gHades->getEventCounter(), minTof, startTime[0], startTime[1], startTimeDiff[0], startTimeDiff[1], startTimeOriginal, newStart, startFlag);

    return newStart;
}

void HParticleStart2HitF::correctTof(Float_t corrTime)
{
    // function which loops into HTofHit/HTofCluster categories and correct the tof
    // newtof = oldtof - corrTime

    //--------------------------------------------------------------------
    if(fCatTof){
	HTofHit* pTofHit = NULL;
	for (Int_t tofEntry = 0; tofEntry < fCatTof->getEntries(); ++tofEntry)
	{
	    // loop in HTofHit category
	    if (NULL == (pTofHit = static_cast<HTofHit*>(fCatTof->getObject(tofEntry)))) {
		Error("correctTof", "Pointer to HTofHit object == NULL, returning");
		return;
	    }

	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HTofHitSim* pTofHitSim = 0;
		pTofHitSim = dynamic_cast<HTofHitSim*>(pTofHit);
		if(pTofHitSim){
                    if(pTofHitSim->getNTrack1() > 0 || pTofHitSim->getNTrack2() > 0) continue;
		}
	    }
	    //--------------------------------------------------------------------

	    Float_t tofTof = pTofHit->getTof();
	    pTofHit->setTof(tofTof - corrTime);
	} // end of HTofHit loop
    }
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    if(fCatTofClu){
	HTofCluster* pTofCluster = NULL;
	for (Int_t tofEntry = 0; tofEntry < fCatTofClu->getEntries(); ++tofEntry)
	{
	    // loop in HTofCluster category
	    if (NULL == (pTofCluster = static_cast<HTofCluster*>(fCatTofClu->getObject(tofEntry)))) {
		Error("findMinimumTime", "Pointer to HTofCluster object == NULL, returning");
		return;
	    }

	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HTofClusterSim* pTofClusterSim = 0;
		pTofClusterSim = dynamic_cast<HTofClusterSim*>(pTofCluster);
		if(pTofClusterSim){
                    if(pTofClusterSim->getNTrack1() > 0 || pTofClusterSim->getNTrack2() > 0) continue;
		}
	    }
	    //--------------------------------------------------------------------

	    Float_t tofTof = pTofCluster->getTof();
	    pTofCluster->setTof(tofTof - corrTime);
	} // end of HTofCluster loop
    }
    //--------------------------------------------------------------------

    return;
}

void HParticleStart2HitF::correctRpc(Float_t corrTime)
{
    // function which loops into HRpcHit/HRpcCluster categories and correct the tof
    // newtof = oldtof - corrTime

    //--------------------------------------------------------------------

    if(fCatRpc){
        Int_t tracksL[10];
        Int_t tracksR[10];

	HRpcHit* pRpcHit = NULL;
	for (Int_t tofEntry = 0; tofEntry < fCatRpc->getEntries(); ++tofEntry)
	{
	    // loop in HRpcHit category
	    if (NULL == (pRpcHit = static_cast<HRpcHit*>(fCatRpc->getObject(tofEntry)))) {
		Error("correctRpc", "Pointer to HRpcHit object == NULL, returning");
		return;
	    }
	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HRpcHitSim* pRpcHitSim = 0;
		pRpcHitSim = dynamic_cast<HRpcHitSim*>(pRpcHit);
		if(pRpcHitSim){
		    pRpcHitSim->getTrackLArray(tracksL);
                    pRpcHitSim->getTrackRArray(tracksR);
                    Bool_t simTrack=kFALSE;
		    for(Int_t i = 0; i < 10; i++){
			if(tracksL[i] > 0 || tracksR[i] > 0) { simTrack = kTRUE; break;}
		    }
                    if(simTrack) continue;
		}
	    }
	    //--------------------------------------------------------------------

	    Float_t tofRpc  = pRpcHit->getTof();
	    Float_t newTof  = tofRpc - corrTime;
	    Float_t acharge = pRpcHit->getCharge();
	    Float_t axmod   = pRpcHit->getXMod();
	    Float_t aymod   = pRpcHit->getYMod();
	    Float_t azmod   = pRpcHit->getZMod();

	    pRpcHit->setHit(newTof, acharge, axmod, aymod, azmod);
	} // end of HRpcHit loop
    }
    //--------------------------------------------------------------------

    //--------------------------------------------------------------------
    if(fCatRpcClu){
        Int_t tracks[4];
	HRpcCluster* pRpcCluster = NULL;
	for (Int_t tofEntry = 0; tofEntry < fCatRpcClu->getEntries(); ++tofEntry)
	{
	    // loop in HRpcCluster category
	    if (NULL == (pRpcCluster = static_cast<HRpcCluster*>(fCatRpcClu->getObject(tofEntry)))) {
		Error("findMinimumTime", "Pointer to HRpcCluster object == NULL, returning");
		return;
	    }

	    //--------------------------------------------------------------------
            // skipp the embedded sim tracks
	    if(gHades->getEmbeddingMode()>0){
		HRpcClusterSim* pRpcClusterSim = 0;
		pRpcClusterSim = dynamic_cast<HRpcClusterSim*>(pRpcCluster);
		if(pRpcClusterSim){
		    pRpcClusterSim->getTrackList(tracks);
                    Bool_t simTrack=kFALSE;
		    for(Int_t i = 0; i < 4; i++){
			if(tracks[i] > 0) { simTrack = kTRUE; break;}
		    }
                    if(simTrack) continue;
		}
	    }
	    //--------------------------------------------------------------------

	    Float_t tofRpc  = pRpcCluster->getTof();
	    Float_t newTof  = tofRpc - corrTime;
	    Float_t acharge = pRpcCluster->getCharge();
	    Float_t axmod   = pRpcCluster->getXMod();
	    Float_t aymod   = pRpcCluster->getYMod();
	    Float_t azmod   = pRpcCluster->getZMod();

	    pRpcCluster->setCluster(newTof, acharge, axmod, aymod, azmod);
	} // end of HRpcCluster loop
    }
    //--------------------------------------------------------------------

    return;
} // end of correctRpc function

void HParticleStart2HitF::correctStart(Float_t corrTime)
{
    // function which loops into HStart2Hit category and correct the tof
    // newtof = oldtof - corrTime

    //--------------------------------------------------------------------
    if(fCatStartHit){
	HStart2Hit* pStartHit = NULL;
	for (Int_t startEntry = 0; startEntry < fCatStartHit->getEntries(); ++startEntry)
	{
	    // loop in HStart2Hit category
	    if (NULL == (pStartHit = static_cast<HStart2Hit*>(fCatStartHit->getObject(startEntry)))) {
		Error("correctStart", "Pointer to HStart2Hit object == NULL, returning");
		return;
	    }

	    Float_t timeStart = 0, widthStart = 0;
	    pStartHit->getTimeAndWidth(timeStart, widthStart);
	    pStartHit->setTimeAndWidth(timeStart + corrTime, widthStart);
	    pStartHit->setCorrFlag(startFlag);
            pStartHit->setIteration(2);


	    //--------------------------------------------------------------------
	    // fill cluster infos
	    if(startFlag!=-1){
		pStartHit->resetClusterStrip(2);
		for(UInt_t i=0;i<firstCluster.size();i++){
		    pStartHit->setClusterStrip (0, firstCluster[i]);
		}
		for(UInt_t i=0;i<secondCluster.size();i++){
		    pStartHit->setClusterStrip (1, secondCluster[i]);
		}
		pStartHit->setSecondTime(fSecondTime);

		if(secondCluster.size()>0) pStartHit->setMultiplicity(2);
                else                       pStartHit->setMultiplicity(1);
	    }
	    //--------------------------------------------------------------------









	} // end of HStart2Hit loop
    }
    //--------------------------------------------------------------------

    return;
}

Bool_t HParticleStart2HitF::finalize(void)
{
    if (bDebug){
	out->cd();
	nt1->Write();
	nt2->Write();
	nt3->Write();
	out->Save();

	nt1->Delete();
	nt2->Delete();
	nt3->Delete();
	nt1 = 0;
	nt2 = 0;
	nt3 = 0;

	out->Close();
    }

    return kTRUE;
}
 hparticlestart2hitf.cc:1
 hparticlestart2hitf.cc:2
 hparticlestart2hitf.cc:3
 hparticlestart2hitf.cc:4
 hparticlestart2hitf.cc:5
 hparticlestart2hitf.cc:6
 hparticlestart2hitf.cc:7
 hparticlestart2hitf.cc:8
 hparticlestart2hitf.cc:9
 hparticlestart2hitf.cc:10
 hparticlestart2hitf.cc:11
 hparticlestart2hitf.cc:12
 hparticlestart2hitf.cc:13
 hparticlestart2hitf.cc:14
 hparticlestart2hitf.cc:15
 hparticlestart2hitf.cc:16
 hparticlestart2hitf.cc:17
 hparticlestart2hitf.cc:18
 hparticlestart2hitf.cc:19
 hparticlestart2hitf.cc:20
 hparticlestart2hitf.cc:21
 hparticlestart2hitf.cc:22
 hparticlestart2hitf.cc:23
 hparticlestart2hitf.cc:24
 hparticlestart2hitf.cc:25
 hparticlestart2hitf.cc:26
 hparticlestart2hitf.cc:27
 hparticlestart2hitf.cc:28
 hparticlestart2hitf.cc:29
 hparticlestart2hitf.cc:30
 hparticlestart2hitf.cc:31
 hparticlestart2hitf.cc:32
 hparticlestart2hitf.cc:33
 hparticlestart2hitf.cc:34
 hparticlestart2hitf.cc:35
 hparticlestart2hitf.cc:36
 hparticlestart2hitf.cc:37
 hparticlestart2hitf.cc:38
 hparticlestart2hitf.cc:39
 hparticlestart2hitf.cc:40
 hparticlestart2hitf.cc:41
 hparticlestart2hitf.cc:42
 hparticlestart2hitf.cc:43
 hparticlestart2hitf.cc:44
 hparticlestart2hitf.cc:45
 hparticlestart2hitf.cc:46
 hparticlestart2hitf.cc:47
 hparticlestart2hitf.cc:48
 hparticlestart2hitf.cc:49
 hparticlestart2hitf.cc:50
 hparticlestart2hitf.cc:51
 hparticlestart2hitf.cc:52
 hparticlestart2hitf.cc:53
 hparticlestart2hitf.cc:54
 hparticlestart2hitf.cc:55
 hparticlestart2hitf.cc:56
 hparticlestart2hitf.cc:57
 hparticlestart2hitf.cc:58
 hparticlestart2hitf.cc:59
 hparticlestart2hitf.cc:60
 hparticlestart2hitf.cc:61
 hparticlestart2hitf.cc:62
 hparticlestart2hitf.cc:63
 hparticlestart2hitf.cc:64
 hparticlestart2hitf.cc:65
 hparticlestart2hitf.cc:66
 hparticlestart2hitf.cc:67
 hparticlestart2hitf.cc:68
 hparticlestart2hitf.cc:69
 hparticlestart2hitf.cc:70
 hparticlestart2hitf.cc:71
 hparticlestart2hitf.cc:72
 hparticlestart2hitf.cc:73
 hparticlestart2hitf.cc:74
 hparticlestart2hitf.cc:75
 hparticlestart2hitf.cc:76
 hparticlestart2hitf.cc:77
 hparticlestart2hitf.cc:78
 hparticlestart2hitf.cc:79
 hparticlestart2hitf.cc:80
 hparticlestart2hitf.cc:81
 hparticlestart2hitf.cc:82
 hparticlestart2hitf.cc:83
 hparticlestart2hitf.cc:84
 hparticlestart2hitf.cc:85
 hparticlestart2hitf.cc:86
 hparticlestart2hitf.cc:87
 hparticlestart2hitf.cc:88
 hparticlestart2hitf.cc:89
 hparticlestart2hitf.cc:90
 hparticlestart2hitf.cc:91
 hparticlestart2hitf.cc:92
 hparticlestart2hitf.cc:93
 hparticlestart2hitf.cc:94
 hparticlestart2hitf.cc:95
 hparticlestart2hitf.cc:96
 hparticlestart2hitf.cc:97
 hparticlestart2hitf.cc:98
 hparticlestart2hitf.cc:99
 hparticlestart2hitf.cc:100
 hparticlestart2hitf.cc:101
 hparticlestart2hitf.cc:102
 hparticlestart2hitf.cc:103
 hparticlestart2hitf.cc:104
 hparticlestart2hitf.cc:105
 hparticlestart2hitf.cc:106
 hparticlestart2hitf.cc:107
 hparticlestart2hitf.cc:108
 hparticlestart2hitf.cc:109
 hparticlestart2hitf.cc:110
 hparticlestart2hitf.cc:111
 hparticlestart2hitf.cc:112
 hparticlestart2hitf.cc:113
 hparticlestart2hitf.cc:114
 hparticlestart2hitf.cc:115
 hparticlestart2hitf.cc:116
 hparticlestart2hitf.cc:117
 hparticlestart2hitf.cc:118
 hparticlestart2hitf.cc:119
 hparticlestart2hitf.cc:120
 hparticlestart2hitf.cc:121
 hparticlestart2hitf.cc:122
 hparticlestart2hitf.cc:123
 hparticlestart2hitf.cc:124
 hparticlestart2hitf.cc:125
 hparticlestart2hitf.cc:126
 hparticlestart2hitf.cc:127
 hparticlestart2hitf.cc:128
 hparticlestart2hitf.cc:129
 hparticlestart2hitf.cc:130
 hparticlestart2hitf.cc:131
 hparticlestart2hitf.cc:132
 hparticlestart2hitf.cc:133
 hparticlestart2hitf.cc:134
 hparticlestart2hitf.cc:135
 hparticlestart2hitf.cc:136
 hparticlestart2hitf.cc:137
 hparticlestart2hitf.cc:138
 hparticlestart2hitf.cc:139
 hparticlestart2hitf.cc:140
 hparticlestart2hitf.cc:141
 hparticlestart2hitf.cc:142
 hparticlestart2hitf.cc:143
 hparticlestart2hitf.cc:144
 hparticlestart2hitf.cc:145
 hparticlestart2hitf.cc:146
 hparticlestart2hitf.cc:147
 hparticlestart2hitf.cc:148
 hparticlestart2hitf.cc:149
 hparticlestart2hitf.cc:150
 hparticlestart2hitf.cc:151
 hparticlestart2hitf.cc:152
 hparticlestart2hitf.cc:153
 hparticlestart2hitf.cc:154
 hparticlestart2hitf.cc:155
 hparticlestart2hitf.cc:156
 hparticlestart2hitf.cc:157
 hparticlestart2hitf.cc:158
 hparticlestart2hitf.cc:159
 hparticlestart2hitf.cc:160
 hparticlestart2hitf.cc:161
 hparticlestart2hitf.cc:162
 hparticlestart2hitf.cc:163
 hparticlestart2hitf.cc:164
 hparticlestart2hitf.cc:165
 hparticlestart2hitf.cc:166
 hparticlestart2hitf.cc:167
 hparticlestart2hitf.cc:168
 hparticlestart2hitf.cc:169
 hparticlestart2hitf.cc:170
 hparticlestart2hitf.cc:171
 hparticlestart2hitf.cc:172
 hparticlestart2hitf.cc:173
 hparticlestart2hitf.cc:174
 hparticlestart2hitf.cc:175
 hparticlestart2hitf.cc:176
 hparticlestart2hitf.cc:177
 hparticlestart2hitf.cc:178
 hparticlestart2hitf.cc:179
 hparticlestart2hitf.cc:180
 hparticlestart2hitf.cc:181
 hparticlestart2hitf.cc:182
 hparticlestart2hitf.cc:183
 hparticlestart2hitf.cc:184
 hparticlestart2hitf.cc:185
 hparticlestart2hitf.cc:186
 hparticlestart2hitf.cc:187
 hparticlestart2hitf.cc:188
 hparticlestart2hitf.cc:189
 hparticlestart2hitf.cc:190
 hparticlestart2hitf.cc:191
 hparticlestart2hitf.cc:192
 hparticlestart2hitf.cc:193
 hparticlestart2hitf.cc:194
 hparticlestart2hitf.cc:195
 hparticlestart2hitf.cc:196
 hparticlestart2hitf.cc:197
 hparticlestart2hitf.cc:198
 hparticlestart2hitf.cc:199
 hparticlestart2hitf.cc:200
 hparticlestart2hitf.cc:201
 hparticlestart2hitf.cc:202
 hparticlestart2hitf.cc:203
 hparticlestart2hitf.cc:204
 hparticlestart2hitf.cc:205
 hparticlestart2hitf.cc:206
 hparticlestart2hitf.cc:207
 hparticlestart2hitf.cc:208
 hparticlestart2hitf.cc:209
 hparticlestart2hitf.cc:210
 hparticlestart2hitf.cc:211
 hparticlestart2hitf.cc:212
 hparticlestart2hitf.cc:213
 hparticlestart2hitf.cc:214
 hparticlestart2hitf.cc:215
 hparticlestart2hitf.cc:216
 hparticlestart2hitf.cc:217
 hparticlestart2hitf.cc:218
 hparticlestart2hitf.cc:219
 hparticlestart2hitf.cc:220
 hparticlestart2hitf.cc:221
 hparticlestart2hitf.cc:222
 hparticlestart2hitf.cc:223
 hparticlestart2hitf.cc:224
 hparticlestart2hitf.cc:225
 hparticlestart2hitf.cc:226
 hparticlestart2hitf.cc:227
 hparticlestart2hitf.cc:228
 hparticlestart2hitf.cc:229
 hparticlestart2hitf.cc:230
 hparticlestart2hitf.cc:231
 hparticlestart2hitf.cc:232
 hparticlestart2hitf.cc:233
 hparticlestart2hitf.cc:234
 hparticlestart2hitf.cc:235
 hparticlestart2hitf.cc:236
 hparticlestart2hitf.cc:237
 hparticlestart2hitf.cc:238
 hparticlestart2hitf.cc:239
 hparticlestart2hitf.cc:240
 hparticlestart2hitf.cc:241
 hparticlestart2hitf.cc:242
 hparticlestart2hitf.cc:243
 hparticlestart2hitf.cc:244
 hparticlestart2hitf.cc:245
 hparticlestart2hitf.cc:246
 hparticlestart2hitf.cc:247
 hparticlestart2hitf.cc:248
 hparticlestart2hitf.cc:249
 hparticlestart2hitf.cc:250
 hparticlestart2hitf.cc:251
 hparticlestart2hitf.cc:252
 hparticlestart2hitf.cc:253
 hparticlestart2hitf.cc:254
 hparticlestart2hitf.cc:255
 hparticlestart2hitf.cc:256
 hparticlestart2hitf.cc:257
 hparticlestart2hitf.cc:258
 hparticlestart2hitf.cc:259
 hparticlestart2hitf.cc:260
 hparticlestart2hitf.cc:261
 hparticlestart2hitf.cc:262
 hparticlestart2hitf.cc:263
 hparticlestart2hitf.cc:264
 hparticlestart2hitf.cc:265
 hparticlestart2hitf.cc:266
 hparticlestart2hitf.cc:267
 hparticlestart2hitf.cc:268
 hparticlestart2hitf.cc:269
 hparticlestart2hitf.cc:270
 hparticlestart2hitf.cc:271
 hparticlestart2hitf.cc:272
 hparticlestart2hitf.cc:273
 hparticlestart2hitf.cc:274
 hparticlestart2hitf.cc:275
 hparticlestart2hitf.cc:276
 hparticlestart2hitf.cc:277
 hparticlestart2hitf.cc:278
 hparticlestart2hitf.cc:279
 hparticlestart2hitf.cc:280
 hparticlestart2hitf.cc:281
 hparticlestart2hitf.cc:282
 hparticlestart2hitf.cc:283
 hparticlestart2hitf.cc:284
 hparticlestart2hitf.cc:285
 hparticlestart2hitf.cc:286
 hparticlestart2hitf.cc:287
 hparticlestart2hitf.cc:288
 hparticlestart2hitf.cc:289
 hparticlestart2hitf.cc:290
 hparticlestart2hitf.cc:291
 hparticlestart2hitf.cc:292
 hparticlestart2hitf.cc:293
 hparticlestart2hitf.cc:294
 hparticlestart2hitf.cc:295
 hparticlestart2hitf.cc:296
 hparticlestart2hitf.cc:297
 hparticlestart2hitf.cc:298
 hparticlestart2hitf.cc:299
 hparticlestart2hitf.cc:300
 hparticlestart2hitf.cc:301
 hparticlestart2hitf.cc:302
 hparticlestart2hitf.cc:303
 hparticlestart2hitf.cc:304
 hparticlestart2hitf.cc:305
 hparticlestart2hitf.cc:306
 hparticlestart2hitf.cc:307
 hparticlestart2hitf.cc:308
 hparticlestart2hitf.cc:309
 hparticlestart2hitf.cc:310
 hparticlestart2hitf.cc:311
 hparticlestart2hitf.cc:312
 hparticlestart2hitf.cc:313
 hparticlestart2hitf.cc:314
 hparticlestart2hitf.cc:315
 hparticlestart2hitf.cc:316
 hparticlestart2hitf.cc:317
 hparticlestart2hitf.cc:318
 hparticlestart2hitf.cc:319
 hparticlestart2hitf.cc:320
 hparticlestart2hitf.cc:321
 hparticlestart2hitf.cc:322
 hparticlestart2hitf.cc:323
 hparticlestart2hitf.cc:324
 hparticlestart2hitf.cc:325
 hparticlestart2hitf.cc:326
 hparticlestart2hitf.cc:327
 hparticlestart2hitf.cc:328
 hparticlestart2hitf.cc:329
 hparticlestart2hitf.cc:330
 hparticlestart2hitf.cc:331
 hparticlestart2hitf.cc:332
 hparticlestart2hitf.cc:333
 hparticlestart2hitf.cc:334
 hparticlestart2hitf.cc:335
 hparticlestart2hitf.cc:336
 hparticlestart2hitf.cc:337
 hparticlestart2hitf.cc:338
 hparticlestart2hitf.cc:339
 hparticlestart2hitf.cc:340
 hparticlestart2hitf.cc:341
 hparticlestart2hitf.cc:342
 hparticlestart2hitf.cc:343
 hparticlestart2hitf.cc:344
 hparticlestart2hitf.cc:345
 hparticlestart2hitf.cc:346
 hparticlestart2hitf.cc:347
 hparticlestart2hitf.cc:348
 hparticlestart2hitf.cc:349
 hparticlestart2hitf.cc:350
 hparticlestart2hitf.cc:351
 hparticlestart2hitf.cc:352
 hparticlestart2hitf.cc:353
 hparticlestart2hitf.cc:354
 hparticlestart2hitf.cc:355
 hparticlestart2hitf.cc:356
 hparticlestart2hitf.cc:357
 hparticlestart2hitf.cc:358
 hparticlestart2hitf.cc:359
 hparticlestart2hitf.cc:360
 hparticlestart2hitf.cc:361
 hparticlestart2hitf.cc:362
 hparticlestart2hitf.cc:363
 hparticlestart2hitf.cc:364
 hparticlestart2hitf.cc:365
 hparticlestart2hitf.cc:366
 hparticlestart2hitf.cc:367
 hparticlestart2hitf.cc:368
 hparticlestart2hitf.cc:369
 hparticlestart2hitf.cc:370
 hparticlestart2hitf.cc:371
 hparticlestart2hitf.cc:372
 hparticlestart2hitf.cc:373
 hparticlestart2hitf.cc:374
 hparticlestart2hitf.cc:375
 hparticlestart2hitf.cc:376
 hparticlestart2hitf.cc:377
 hparticlestart2hitf.cc:378
 hparticlestart2hitf.cc:379
 hparticlestart2hitf.cc:380
 hparticlestart2hitf.cc:381
 hparticlestart2hitf.cc:382
 hparticlestart2hitf.cc:383
 hparticlestart2hitf.cc:384
 hparticlestart2hitf.cc:385
 hparticlestart2hitf.cc:386
 hparticlestart2hitf.cc:387
 hparticlestart2hitf.cc:388
 hparticlestart2hitf.cc:389
 hparticlestart2hitf.cc:390
 hparticlestart2hitf.cc:391
 hparticlestart2hitf.cc:392
 hparticlestart2hitf.cc:393
 hparticlestart2hitf.cc:394
 hparticlestart2hitf.cc:395
 hparticlestart2hitf.cc:396
 hparticlestart2hitf.cc:397
 hparticlestart2hitf.cc:398
 hparticlestart2hitf.cc:399
 hparticlestart2hitf.cc:400
 hparticlestart2hitf.cc:401
 hparticlestart2hitf.cc:402
 hparticlestart2hitf.cc:403
 hparticlestart2hitf.cc:404
 hparticlestart2hitf.cc:405
 hparticlestart2hitf.cc:406
 hparticlestart2hitf.cc:407
 hparticlestart2hitf.cc:408
 hparticlestart2hitf.cc:409
 hparticlestart2hitf.cc:410
 hparticlestart2hitf.cc:411
 hparticlestart2hitf.cc:412
 hparticlestart2hitf.cc:413
 hparticlestart2hitf.cc:414
 hparticlestart2hitf.cc:415
 hparticlestart2hitf.cc:416
 hparticlestart2hitf.cc:417
 hparticlestart2hitf.cc:418
 hparticlestart2hitf.cc:419
 hparticlestart2hitf.cc:420
 hparticlestart2hitf.cc:421
 hparticlestart2hitf.cc:422
 hparticlestart2hitf.cc:423
 hparticlestart2hitf.cc:424
 hparticlestart2hitf.cc:425
 hparticlestart2hitf.cc:426
 hparticlestart2hitf.cc:427
 hparticlestart2hitf.cc:428
 hparticlestart2hitf.cc:429
 hparticlestart2hitf.cc:430
 hparticlestart2hitf.cc:431
 hparticlestart2hitf.cc:432
 hparticlestart2hitf.cc:433
 hparticlestart2hitf.cc:434
 hparticlestart2hitf.cc:435
 hparticlestart2hitf.cc:436
 hparticlestart2hitf.cc:437
 hparticlestart2hitf.cc:438
 hparticlestart2hitf.cc:439
 hparticlestart2hitf.cc:440
 hparticlestart2hitf.cc:441
 hparticlestart2hitf.cc:442
 hparticlestart2hitf.cc:443
 hparticlestart2hitf.cc:444
 hparticlestart2hitf.cc:445
 hparticlestart2hitf.cc:446
 hparticlestart2hitf.cc:447
 hparticlestart2hitf.cc:448
 hparticlestart2hitf.cc:449
 hparticlestart2hitf.cc:450
 hparticlestart2hitf.cc:451
 hparticlestart2hitf.cc:452
 hparticlestart2hitf.cc:453
 hparticlestart2hitf.cc:454
 hparticlestart2hitf.cc:455
 hparticlestart2hitf.cc:456
 hparticlestart2hitf.cc:457
 hparticlestart2hitf.cc:458
 hparticlestart2hitf.cc:459
 hparticlestart2hitf.cc:460
 hparticlestart2hitf.cc:461
 hparticlestart2hitf.cc:462
 hparticlestart2hitf.cc:463
 hparticlestart2hitf.cc:464
 hparticlestart2hitf.cc:465
 hparticlestart2hitf.cc:466
 hparticlestart2hitf.cc:467
 hparticlestart2hitf.cc:468
 hparticlestart2hitf.cc:469
 hparticlestart2hitf.cc:470
 hparticlestart2hitf.cc:471
 hparticlestart2hitf.cc:472
 hparticlestart2hitf.cc:473
 hparticlestart2hitf.cc:474
 hparticlestart2hitf.cc:475
 hparticlestart2hitf.cc:476
 hparticlestart2hitf.cc:477
 hparticlestart2hitf.cc:478
 hparticlestart2hitf.cc:479
 hparticlestart2hitf.cc:480
 hparticlestart2hitf.cc:481
 hparticlestart2hitf.cc:482
 hparticlestart2hitf.cc:483
 hparticlestart2hitf.cc:484
 hparticlestart2hitf.cc:485
 hparticlestart2hitf.cc:486
 hparticlestart2hitf.cc:487
 hparticlestart2hitf.cc:488
 hparticlestart2hitf.cc:489
 hparticlestart2hitf.cc:490
 hparticlestart2hitf.cc:491
 hparticlestart2hitf.cc:492
 hparticlestart2hitf.cc:493
 hparticlestart2hitf.cc:494
 hparticlestart2hitf.cc:495
 hparticlestart2hitf.cc:496
 hparticlestart2hitf.cc:497
 hparticlestart2hitf.cc:498
 hparticlestart2hitf.cc:499
 hparticlestart2hitf.cc:500
 hparticlestart2hitf.cc:501
 hparticlestart2hitf.cc:502
 hparticlestart2hitf.cc:503
 hparticlestart2hitf.cc:504
 hparticlestart2hitf.cc:505
 hparticlestart2hitf.cc:506
 hparticlestart2hitf.cc:507
 hparticlestart2hitf.cc:508
 hparticlestart2hitf.cc:509
 hparticlestart2hitf.cc:510
 hparticlestart2hitf.cc:511
 hparticlestart2hitf.cc:512
 hparticlestart2hitf.cc:513
 hparticlestart2hitf.cc:514
 hparticlestart2hitf.cc:515
 hparticlestart2hitf.cc:516
 hparticlestart2hitf.cc:517
 hparticlestart2hitf.cc:518
 hparticlestart2hitf.cc:519
 hparticlestart2hitf.cc:520
 hparticlestart2hitf.cc:521
 hparticlestart2hitf.cc:522
 hparticlestart2hitf.cc:523
 hparticlestart2hitf.cc:524
 hparticlestart2hitf.cc:525
 hparticlestart2hitf.cc:526
 hparticlestart2hitf.cc:527
 hparticlestart2hitf.cc:528
 hparticlestart2hitf.cc:529
 hparticlestart2hitf.cc:530
 hparticlestart2hitf.cc:531
 hparticlestart2hitf.cc:532
 hparticlestart2hitf.cc:533
 hparticlestart2hitf.cc:534
 hparticlestart2hitf.cc:535
 hparticlestart2hitf.cc:536
 hparticlestart2hitf.cc:537
 hparticlestart2hitf.cc:538
 hparticlestart2hitf.cc:539
 hparticlestart2hitf.cc:540
 hparticlestart2hitf.cc:541
 hparticlestart2hitf.cc:542
 hparticlestart2hitf.cc:543
 hparticlestart2hitf.cc:544
 hparticlestart2hitf.cc:545
 hparticlestart2hitf.cc:546
 hparticlestart2hitf.cc:547
 hparticlestart2hitf.cc:548
 hparticlestart2hitf.cc:549
 hparticlestart2hitf.cc:550
 hparticlestart2hitf.cc:551
 hparticlestart2hitf.cc:552
 hparticlestart2hitf.cc:553
 hparticlestart2hitf.cc:554
 hparticlestart2hitf.cc:555
 hparticlestart2hitf.cc:556
 hparticlestart2hitf.cc:557
 hparticlestart2hitf.cc:558
 hparticlestart2hitf.cc:559
 hparticlestart2hitf.cc:560
 hparticlestart2hitf.cc:561
 hparticlestart2hitf.cc:562
 hparticlestart2hitf.cc:563
 hparticlestart2hitf.cc:564
 hparticlestart2hitf.cc:565
 hparticlestart2hitf.cc:566
 hparticlestart2hitf.cc:567
 hparticlestart2hitf.cc:568
 hparticlestart2hitf.cc:569
 hparticlestart2hitf.cc:570
 hparticlestart2hitf.cc:571
 hparticlestart2hitf.cc:572
 hparticlestart2hitf.cc:573
 hparticlestart2hitf.cc:574
 hparticlestart2hitf.cc:575
 hparticlestart2hitf.cc:576
 hparticlestart2hitf.cc:577
 hparticlestart2hitf.cc:578
 hparticlestart2hitf.cc:579
 hparticlestart2hitf.cc:580
 hparticlestart2hitf.cc:581
 hparticlestart2hitf.cc:582
 hparticlestart2hitf.cc:583
 hparticlestart2hitf.cc:584
 hparticlestart2hitf.cc:585
 hparticlestart2hitf.cc:586
 hparticlestart2hitf.cc:587
 hparticlestart2hitf.cc:588
 hparticlestart2hitf.cc:589
 hparticlestart2hitf.cc:590
 hparticlestart2hitf.cc:591
 hparticlestart2hitf.cc:592
 hparticlestart2hitf.cc:593
 hparticlestart2hitf.cc:594
 hparticlestart2hitf.cc:595
 hparticlestart2hitf.cc:596
 hparticlestart2hitf.cc:597
 hparticlestart2hitf.cc:598
 hparticlestart2hitf.cc:599
 hparticlestart2hitf.cc:600
 hparticlestart2hitf.cc:601
 hparticlestart2hitf.cc:602
 hparticlestart2hitf.cc:603
 hparticlestart2hitf.cc:604
 hparticlestart2hitf.cc:605
 hparticlestart2hitf.cc:606
 hparticlestart2hitf.cc:607
 hparticlestart2hitf.cc:608
 hparticlestart2hitf.cc:609
 hparticlestart2hitf.cc:610
 hparticlestart2hitf.cc:611
 hparticlestart2hitf.cc:612
 hparticlestart2hitf.cc:613
 hparticlestart2hitf.cc:614
 hparticlestart2hitf.cc:615
 hparticlestart2hitf.cc:616
 hparticlestart2hitf.cc:617
 hparticlestart2hitf.cc:618
 hparticlestart2hitf.cc:619
 hparticlestart2hitf.cc:620
 hparticlestart2hitf.cc:621
 hparticlestart2hitf.cc:622
 hparticlestart2hitf.cc:623
 hparticlestart2hitf.cc:624
 hparticlestart2hitf.cc:625
 hparticlestart2hitf.cc:626
 hparticlestart2hitf.cc:627
 hparticlestart2hitf.cc:628
 hparticlestart2hitf.cc:629
 hparticlestart2hitf.cc:630
 hparticlestart2hitf.cc:631
 hparticlestart2hitf.cc:632
 hparticlestart2hitf.cc:633
 hparticlestart2hitf.cc:634
 hparticlestart2hitf.cc:635
 hparticlestart2hitf.cc:636
 hparticlestart2hitf.cc:637
 hparticlestart2hitf.cc:638
 hparticlestart2hitf.cc:639
 hparticlestart2hitf.cc:640
 hparticlestart2hitf.cc:641
 hparticlestart2hitf.cc:642
 hparticlestart2hitf.cc:643
 hparticlestart2hitf.cc:644
 hparticlestart2hitf.cc:645
 hparticlestart2hitf.cc:646
 hparticlestart2hitf.cc:647
 hparticlestart2hitf.cc:648
 hparticlestart2hitf.cc:649
 hparticlestart2hitf.cc:650
 hparticlestart2hitf.cc:651
 hparticlestart2hitf.cc:652
 hparticlestart2hitf.cc:653
 hparticlestart2hitf.cc:654
 hparticlestart2hitf.cc:655
 hparticlestart2hitf.cc:656
 hparticlestart2hitf.cc:657
 hparticlestart2hitf.cc:658
 hparticlestart2hitf.cc:659
 hparticlestart2hitf.cc:660
 hparticlestart2hitf.cc:661
 hparticlestart2hitf.cc:662
 hparticlestart2hitf.cc:663
 hparticlestart2hitf.cc:664
 hparticlestart2hitf.cc:665
 hparticlestart2hitf.cc:666
 hparticlestart2hitf.cc:667
 hparticlestart2hitf.cc:668
 hparticlestart2hitf.cc:669
 hparticlestart2hitf.cc:670
 hparticlestart2hitf.cc:671
 hparticlestart2hitf.cc:672
 hparticlestart2hitf.cc:673
 hparticlestart2hitf.cc:674
 hparticlestart2hitf.cc:675
 hparticlestart2hitf.cc:676
 hparticlestart2hitf.cc:677
 hparticlestart2hitf.cc:678
 hparticlestart2hitf.cc:679
 hparticlestart2hitf.cc:680
 hparticlestart2hitf.cc:681
 hparticlestart2hitf.cc:682
 hparticlestart2hitf.cc:683
 hparticlestart2hitf.cc:684
 hparticlestart2hitf.cc:685
 hparticlestart2hitf.cc:686
 hparticlestart2hitf.cc:687
 hparticlestart2hitf.cc:688
 hparticlestart2hitf.cc:689
 hparticlestart2hitf.cc:690
 hparticlestart2hitf.cc:691
 hparticlestart2hitf.cc:692
 hparticlestart2hitf.cc:693
 hparticlestart2hitf.cc:694
 hparticlestart2hitf.cc:695
 hparticlestart2hitf.cc:696
 hparticlestart2hitf.cc:697
 hparticlestart2hitf.cc:698
 hparticlestart2hitf.cc:699
 hparticlestart2hitf.cc:700
 hparticlestart2hitf.cc:701
 hparticlestart2hitf.cc:702
 hparticlestart2hitf.cc:703
 hparticlestart2hitf.cc:704
 hparticlestart2hitf.cc:705
 hparticlestart2hitf.cc:706
 hparticlestart2hitf.cc:707
 hparticlestart2hitf.cc:708
 hparticlestart2hitf.cc:709
 hparticlestart2hitf.cc:710
 hparticlestart2hitf.cc:711