AtNuTreeModule Class Reference

#include <AtNuTreeModule.h>

Inheritance diagram for AtNuTreeModule:

JobCModule List of all members.

Public Member Functions

 AtNuTreeModule ()
 ~AtNuTreeModule ()
void BeginJob ()
JobCResult Ana (const MomNavigator *mom)
const RegistryDefaultConfig () const
void Config (const Registry &r)
void HandleCommand (JobCommand *command)
void EndJob ()

Private Attributes

TFile * fAtNuFile
TTree * fAtNuTree
TString fAtNuFileName
TObjArray fMCStrpList [500]
TObjArray fTotStrpList [500]
TObjArray fTrkStrpList [500]
TObjArray fShwStrpList [500]
Int_t StrpExtr [8]
Int_t StrpCell [28]
Int_t run
Int_t subrun
Int_t snarl
Int_t runtype
Int_t trigsrc
Int_t date
Int_t time
Int_t timeframe
Double_t trigtimeraw
Double_t trigtimecorr
Int_t Ndigits
Int_t Nstrps
Int_t Nplns
Int_t Ustrps
Int_t Uplns
Int_t Vstrps
Int_t Vplns
Int_t begpln
Int_t endpln
Int_t Nmuplns
Double_t totPH
Int_t IDnu
Int_t IDact
Int_t IDboson
Int_t IDtarget
Int_t IDres
Double_t x
Double_t y
Double_t Q2
Double_t W2
Double_t Xsection
Double_t EMfrac
Double_t PnuX
Double_t PnuY
Double_t PnuZ
Double_t Enu
Double_t PmuX
Double_t PmuY
Double_t PmuZ
Double_t Emu
Double_t PelX
Double_t PelY
Double_t PelZ
Double_t Eel
Double_t PhadX
Double_t PhadY
Double_t PhadZ
Double_t Ehad
Double_t PtargX
Double_t PtargY
Double_t PtargZ
Double_t Etarg
Double_t vtxX
Double_t vtxY
Double_t vtxZ
Double_t muvtxX
Double_t muvtxY
Double_t muvtxZ
Double_t muvtxR
Int_t muvtxpln
Double_t muendvtxX
Double_t muendvtxY
Double_t muendvtxZ
Double_t muendvtxR
Int_t muendvtxpln
Double_t mupbeg
Double_t mupend
Int_t Ntrks
Int_t TRKlast
Double_t TRKcputime
Int_t TRKplns [3]
Int_t TRKstrps [3]
Int_t TRKdigits [3]
Int_t TRKvtxpln [3]
Int_t TRKbegpln [3]
Int_t TRKendpln [3]
Int_t TRKtrkplns [3]
Double_t TRKtrkPH [3]
Double_t TRKshwPH [3]
Double_t TRKassocPH [3]
Double_t TRKassocPHfrac [3]
Double_t TRKpbegX [3]
Double_t TRKpbegY [3]
Double_t TRKpbegZ [3]
Double_t TRKpendX [3]
Double_t TRKpendY [3]
Double_t TRKpendZ [3]
Double_t TRKplinX [3]
Double_t TRKplinY [3]
Double_t TRKplinZ [3]
Double_t TRKbegvtxX [3]
Double_t TRKbegvtxY [3]
Double_t TRKbegvtxZ [3]
Double_t TRKbegvtxR [3]
Double_t TRKbegvtxRdigits [3]
Int_t TRKbegplndigits [3]
Double_t TRKbegtrace [3]
Double_t TRKbegtraceZ [3]
Double_t TRKbegvtxUwidth [3]
Double_t TRKbegvtxUmean [3]
Double_t TRKbegvtxVwidth [3]
Double_t TRKbegvtxVmean [3]
Double_t TRKbegvtxRmax [3]
Double_t TRKbegvtxQmax [3]
Double_t TRKendvtxX [3]
Double_t TRKendvtxY [3]
Double_t TRKendvtxZ [3]
Double_t TRKendvtxR [3]
Double_t TRKendvtxRdigits [3]
Int_t TRKendplndigits [3]
Double_t TRKendtrace [3]
Double_t TRKendtraceZ [3]
Double_t TRKendvtxUwidth [3]
Double_t TRKendvtxUmean [3]
Double_t TRKendvtxVwidth [3]
Double_t TRKendvtxVmean [3]
Double_t TRKendvtxRmax [3]
Double_t TRKendvtxQmax [3]
Double_t TRKdir [3]
Double_t TRKdirTrue [3]
Double_t TRKdirTimeSlope [3]
Double_t TRKdirTimeScatter [3]
Double_t TRKbegTimeFitRms [3]
Int_t TRKbegTimeFitNdf [3]
Double_t TRKendTimeFitRms [3]
Int_t TRKendTimeFitNdf [3]
Int_t TRKbegvtxshw [3]
Int_t TRKbegvtxshwstrips [3]
Int_t TRKbegvtxshwreseeded [3]
Int_t TRKendvtxshw [3]
Int_t TRKendvtxshwstrips [3]
Int_t TRKendvtxshwreseeded [3]
Double_t TRKrange [3]
Double_t TRKrangeSteel [3]
Double_t TRKmomentumRange [3]
Double_t TRKscore [3]
Double_t TRKscoreMuEff [3]
Double_t TRKscoreMuPur [3]
Double_t TRKscorePiEff [3]
Double_t TRKscorePiPur [3]
Int_t TRKreseeded [3]
Int_t Nfits
Int_t FITlast
Double_t FITcputime [3]
Int_t FITvtxpln [3]
Int_t FITbegpln [3]
Int_t FITendpln [3]
Double_t FITcharge [3]
Double_t FITchisqlin [3]
Double_t FITchisq [3]
Double_t FITQPmean [3]
Double_t FITQPerr [3]
Double_t FITQPcorr [3]
Double_t FITQPwidth [3]
Int_t FITQPplns [3]
Double_t FITmomentumCurve [3]
Double_t FITmomentumCurveErr [3]
Int_t FITpass [3]
Int_t Nshws
Int_t SHWlast
Double_t SHWcputime
Int_t SHWplns [3]
Int_t SHWstrps [3]
Int_t SHWdigits [3]
Int_t SHWvtxpln [3]
Int_t SHWbegpln [3]
Int_t SHWendpln [3]
Double_t SHWtotPH [3]
Double_t SHWpshwX [3]
Double_t SHWpshwY [3]
Double_t SHWpshwZ [3]
Double_t SHWwidthU [3]
Double_t SHWwidthV [3]
Double_t SHWvtxX [3]
Double_t SHWvtxY [3]
Double_t SHWvtxZ [3]
Double_t SHWdir [3]
Double_t SHWdirTrue [3]
Int_t SHWvtxshw [3]
Double_t SHWdirTrk [3]
Double_t SHWenergyPH [3]
Double_t SHWenergyNstrps [3]
Int_t SHWreseeded [3]

Detailed Description

Definition at line 13 of file AtNuTreeModule.h.


Constructor & Destructor Documentation

AtNuTreeModule::AtNuTreeModule (  ) 

Definition at line 61 of file AtNuTreeModule.cxx.

00061                                : 
00062   fAtNuFile(0),
00063   fAtNuTree(0),
00064   fAtNuFileName("atnutree") 
00065 {
00066    
00067 }

AtNuTreeModule::~AtNuTreeModule (  ) 

Definition at line 69 of file AtNuTreeModule.cxx.

00070 {
00071 
00072 }


Member Function Documentation

JobCResult AtNuTreeModule::Ana ( const MomNavigator mom  )  [virtual]

Implement this for read only access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 93 of file AtNuTreeModule.cxx.

References begpln, EVD::Clear(), date, digit(), Eel, Ehad, EMfrac, Emu, endpln, Enu, Etarg, fAtNuFile, fAtNuFileName, fAtNuTree, FITbegpln, FITcharge, FITchisq, FITchisqlin, FITcputime, FITendpln, FITlast, FITmomentumCurve, FITmomentumCurveErr, FITpass, FITQPcorr, FITQPerr, FITQPmean, FITQPplns, FITQPwidth, FITvtxpln, fMCStrpList, fShwStrpList, fTotStrpList, fTrkStrpList, CandTrackAtNuHandle::GetAssocTrkPH(), CandTrackAtNuHandle::GetAssocTrkPHfrac(), CandRecoHandle::GetBegPlane(), CandRecord::GetCandHandleIter(), CandRecord::GetCandHeader(), OscFit::GetCharge(), CandFitTrackHandle::GetChi2(), CandFitTrackAtNuHandle::GetChi2Lin(), RecDataRecord< T >::GetComponents(), CandHandle::GetDaughterIterator(), VldContext::GetDetector(), CandShowerAtNuHandle::GetDirCosErrU(), CandShowerAtNuHandle::GetDirCosErrV(), CandRecoHandle::GetDirCosU(), CandRecoHandle::GetDirCosV(), CandRecoHandle::GetDirCosZ(), CandTrackAtNuHandle::GetDirTimeScatter(), CandShowerAtNuHandle::GetDirTimeScore(), CandTrackAtNuHandle::GetDirTimeScore(), CandTrackAtNuHandle::GetDirTimeSlope(), CandShowerAtNuHandle::GetDirVtxShwScore(), CandTrackHandle::GetdS(), CandFitTrackHandle::GetEMCharge(), CandRecoHandle::GetEndDirCosU(), CandRecoHandle::GetEndDirCosV(), CandRecoHandle::GetEndDirCosZ(), CandRecoHandle::GetEndPlane(), CandTrackAtNuHandle::GetEndPlaneDigits(), CandTrackAtNuHandle::GetEndQmax(), CandTrackAtNuHandle::GetEndR(), CandTrackAtNuHandle::GetEndRdigits(), CandTrackAtNuHandle::GetEndRmax(), CandTrackAtNuHandle::GetEndShw(), CandTrackAtNuHandle::GetEndShwReseedFlag(), CandTrackAtNuHandle::GetEndShwStrips(), CandTrackHandle::GetEndTrace(), CandTrackHandle::GetEndTraceZ(), CandRecoHandle::GetEndU(), CandTrackAtNuHandle::GetEndUmean(), CandTrackAtNuHandle::GetEndUwidth(), CandRecoHandle::GetEndV(), CandTrackAtNuHandle::GetEndVmean(), CandTrackAtNuHandle::GetEndVwidth(), CandRecoHandle::GetEndZ(), CandShowerHandle::GetEnergy(), RerootExodus::GetEventNo(), RerootExodus::GetFLSHitList(), MomNavigator::GetFragment(), CandTrackAtNuHandle::GetLinearDirCosU(), CandTrackAtNuHandle::GetLinearDirCosV(), CandTrackAtNuHandle::GetLinearDirCosZ(), CandTrackHandle::GetMomentum(), CandFitTrackHandle::GetMomentumCurve(), CandFitTrackAtNuHandle::GetMomentumCurveErr(), CandFitTrackHandle::GetPass(), CandFitTrackAtNuHandle::GetQPcorr(), CandFitTrackAtNuHandle::GetQPerr(), CandFitTrackAtNuHandle::GetQPmean(), CandFitTrackAtNuHandle::GetQPplns(), CandFitTrackAtNuHandle::GetQPwidth(), CandTrackAtNuHandle::GetRangeThruSteel(), RawRecord::GetRawBlockIter(), RawRecord::GetRawHeader(), CandShowerAtNuHandle::GetReseedFlag(), CandTrackAtNuHandle::GetReseedFlag(), CandHeader::GetRun(), RawSnarlHeaderBlock::GetRun(), RawDaqHeader::GetRun(), RecDataHeader::GetRun(), RerootExodus::GetRunNo(), RawSnarlHeaderBlock::GetRunType(), RawDaqHeader::GetRunType(), RecDataHeader::GetRunType(), UgliGeomHandle::GetScintPlnHandle(), CandTrackAtNuHandle::GetShwPH(), SimSnarlRecord::GetSimSnarlHeader(), CandHeader::GetSnarl(), RawSnarlHeaderBlock::GetSnarl(), RawDaqSnarlHeader::GetSnarl(), RecPhysicsHeader::GetSnarl(), UgliGeomHandle::GetStripHandle(), RawSnarlHeaderBlock::GetSubRun(), RawDaqHeader::GetSubRun(), RecDataHeader::GetSubRun(), CandTrackHandle::GetTimeBackwardFitNDOF(), CandTrackHandle::GetTimeBackwardFitRMS(), CandTrackHandle::GetTimeForwardFitNDOF(), CandTrackHandle::GetTimeForwardFitRMS(), RawSnarlHeaderBlock::GetTimeFrameNum(), RawDaqHeader::GetTimeFrameNum(), CandRecoHandle::GetTimeSlope(), UgliStripHandle::GetTPos(), CandTrackAtNuHandle::GetTrackLikePlanes(), RawSnarlHeaderBlock::GetTriggerSource(), RawSnarlHeaderBlock::GetTriggerTime(), RawDaqSnarlHeader::GetTrigSrc(), CandTrackAtNuHandle::GetTrkPH(), RecMinos::GetVldContext(), RecRecordImp< T >::GetVldContext(), CandRecoHandle::GetVtxPlane(), CandTrackAtNuHandle::GetVtxPlaneDigits(), CandTrackAtNuHandle::GetVtxQmax(), CandTrackAtNuHandle::GetVtxR(), CandTrackAtNuHandle::GetVtxRdigits(), CandTrackAtNuHandle::GetVtxRmax(), CandShowerAtNuHandle::GetVtxShw(), CandTrackAtNuHandle::GetVtxShw(), CandTrackAtNuHandle::GetVtxShwReseedFlag(), CandTrackAtNuHandle::GetVtxShwStrips(), CandTrackHandle::GetVtxTrace(), CandTrackHandle::GetVtxTraceZ(), CandRecoHandle::GetVtxU(), CandTrackAtNuHandle::GetVtxUmean(), CandTrackAtNuHandle::GetVtxUwidth(), CandRecoHandle::GetVtxV(), CandTrackAtNuHandle::GetVtxVmean(), CandTrackAtNuHandle::GetVtxVwidth(), CandRecoHandle::GetVtxZ(), IDact, IDboson, IDnu, IDres, IDtarget, CandTrackHandle::IsTPosValid(), Msg::kDebug, Msg::kInfo, JobCResult::kPassed, CalDigitType::kPE, PlaneView::kU, PlaneView::kV, CandDeMuxDigit::kXTalk, MSG, muendvtxpln, muendvtxR, muendvtxX, muendvtxY, muendvtxZ, mupbeg, mupend, muvtxpln, muvtxR, muvtxX, muvtxY, muvtxZ, Ndigits, Nfits, Nmuplns, Nplns, Nshws, Nstrps, Ntrks, PelX, PelY, PelZ, PhadX, PhadY, PhadZ, PmuX, PmuY, PmuZ, PnuX, PnuY, PnuZ, PtargX, PtargY, PtargZ, Q2, run, runtype, SHWbegpln, SHWcputime, SHWdigits, SHWdir, SHWdirTrk, SHWdirTrue, SHWendpln, SHWenergyNstrps, SHWenergyPH, SHWlast, SHWplns, SHWpshwX, SHWpshwY, SHWpshwZ, SHWreseeded, SHWstrps, SHWtotPH, SHWvtxpln, SHWvtxshw, SHWvtxX, SHWvtxY, SHWvtxZ, SHWwidthU, SHWwidthV, snarl, StrpCell, StrpExtr, subrun, time, timeframe, totPH, trigsrc, trigtimecorr, trigtimeraw, TRKassocPH, TRKassocPHfrac, TRKbegpln, TRKbegplndigits, TRKbegTimeFitNdf, TRKbegTimeFitRms, TRKbegtrace, TRKbegtraceZ, TRKbegvtxQmax, TRKbegvtxR, TRKbegvtxRdigits, TRKbegvtxRmax, TRKbegvtxshw, TRKbegvtxshwreseeded, TRKbegvtxshwstrips, TRKbegvtxUmean, TRKbegvtxUwidth, TRKbegvtxVmean, TRKbegvtxVwidth, TRKbegvtxX, TRKbegvtxY, TRKbegvtxZ, TRKcputime, TRKdigits, TRKdir, TRKdirTimeScatter, TRKdirTimeSlope, TRKdirTrue, TRKendpln, TRKendplndigits, TRKendTimeFitNdf, TRKendTimeFitRms, TRKendtrace, TRKendtraceZ, TRKendvtxQmax, TRKendvtxR, TRKendvtxRdigits, TRKendvtxRmax, TRKendvtxshw, TRKendvtxshwreseeded, TRKendvtxshwstrips, TRKendvtxUmean, TRKendvtxUwidth, TRKendvtxVmean, TRKendvtxVwidth, TRKendvtxX, TRKendvtxY, TRKendvtxZ, TRKlast, TRKmomentumRange, TRKpbegX, TRKpbegY, TRKpbegZ, TRKpendX, TRKpendY, TRKpendZ, TRKplinX, TRKplinY, TRKplinZ, TRKplns, TRKrange, TRKrangeSteel, TRKreseeded, TRKscore, TRKscoreMuEff, TRKscoreMuPur, TRKscorePiEff, TRKscorePiPur, TRKshwPH, TRKstrps, TRKtrkPH, TRKtrkplns, TRKvtxpln, Uplns, Ustrps, Vplns, Vstrps, vtxX, vtxY, vtxZ, W2, x, Xsection, and y.

00094 {
00095 
00096   MSG("AtNuTreeModule",Msg::kInfo) << " *** AtNuTreeModule::Ana() *** " << endl;
00097   JobCResult result(JobCResult::kPassed);
00098   Int_t i,j,k;
00099 
00100   /*******************************
00101    * I N I T I A L I Z A T I O N *
00102    *******************************/
00103 
00104   run = -1; 
00105   subrun = -1;
00106   snarl = -1; 
00107   runtype = -1; 
00108   trigsrc = -1;
00109   date = -1;
00110   time = -1;
00111   timeframe = -1; 
00112   trigtimeraw = -999.9;
00113   trigtimecorr = -999.9;
00114 
00115   Ndigits = 0;
00116   Nstrps = 0;
00117   Ustrps = 0;
00118   Vstrps = 0;
00119   Nplns = 0; 
00120   Uplns = 0;
00121   Vplns = 0;
00122   begpln = -1;
00123   endpln = -1; 
00124   Nmuplns = 0;
00125 
00126   totPH = 0.0;
00127 
00128   IDnu = 0; 
00129   IDact = 0; 
00130   IDboson = 0;
00131   IDres = 0; 
00132   IDtarget = 0;
00133   x = -1.0; 
00134   y = -1.0; 
00135   Q2 = -1.0;
00136   W2 = -1.0; 
00137   Xsection = -1.0; 
00138   EMfrac = -1.0; 
00139   PnuX = 0.0; 
00140   PnuY = 0.0; 
00141   PnuZ = 0.0; 
00142   Enu = 0.0; 
00143   PmuX = 0.0; 
00144   PmuY = 0.0; 
00145   PmuZ = 0.0; 
00146   Emu = 0.0; 
00147   PelX = 0.0;
00148   PelY = 0.0;
00149   PelZ = 0.0; 
00150   Eel = 0.0;
00151   PhadX = 0.0; 
00152   PhadY = 0.0; 
00153   PhadZ = 0.0; 
00154   Ehad = 0.0; 
00155   PtargX = 0.0;
00156   PtargY = 0.0;
00157   PtargZ = 0.0;
00158   Etarg = 0.0;
00159   vtxX = 0.0; 
00160   vtxY = 0.0;
00161   vtxZ = 0.0; 
00162   muvtxX = 0.0; 
00163   muvtxY = 0.0;
00164   muvtxZ = 0.0; 
00165   muvtxR = 0.0;
00166   muvtxpln=-1;
00167   muendvtxX = 0.0;
00168   muendvtxY = 0.0;
00169   muendvtxZ = 0.0;
00170   muendvtxR = 0.0;
00171   muendvtxpln=-1;
00172   mupbeg = 0.0;
00173   mupend = 0.0;
00174   
00175   Ntrks = 0;
00176   TRKlast = 0;
00177   TRKcputime = 0.0;
00178   for(j=0;j<3;j++){ 
00179     TRKplns[j] = 0; 
00180     TRKstrps[j] = 0; 
00181     TRKdigits[j] = 0;
00182     TRKvtxpln[j] = -1;
00183     TRKbegpln[j] = -1; 
00184     TRKendpln[j] = -1; 
00185     TRKtrkplns[j] = 0; 
00186     TRKtrkPH[j] = 0.0; 
00187     TRKshwPH[j] = 0.0;
00188     TRKassocPH[j] = 0.0; 
00189     TRKassocPHfrac[j] = 0.0;
00190     TRKpbegX[j] = 0.0; 
00191     TRKpbegY[j] = 0.0; 
00192     TRKpbegZ[j] = 0.0; 
00193     TRKpendX[j] = 0.0; 
00194     TRKpendY[j] = 0.0; 
00195     TRKpendZ[j] = 0.0; 
00196     TRKplinX[j] = 0.0; 
00197     TRKplinY[j] = 0.0; 
00198     TRKplinZ[j] = 0.0; 
00199     TRKbegvtxX[j] = 0.0; 
00200     TRKbegvtxY[j] = 0.0; 
00201     TRKbegvtxZ[j] = 0.0;
00202     TRKbegvtxR[j] = -999.9;
00203     TRKbegvtxRdigits[j] = -999.9;
00204     TRKbegplndigits[j] = -1;
00205     TRKbegtrace[j] = -999.9; 
00206     TRKbegtraceZ[j] = 0.0; 
00207     TRKbegvtxUwidth[j] = 0.0;
00208     TRKbegvtxUmean[j] = 0.0;
00209     TRKbegvtxVwidth[j] = 0.0;
00210     TRKbegvtxVmean[j] = 0.0;
00211     TRKbegvtxRmax[j] = 0.0;
00212     TRKbegvtxQmax[j] = 0.0;
00213     TRKendvtxX[j] = 0.0; 
00214     TRKendvtxY[j] = 0.0; 
00215     TRKendvtxZ[j] = 0.0; 
00216     TRKendvtxR[j] = -999.9;
00217     TRKendvtxRdigits[j] = -999.9;
00218     TRKendplndigits[j] = -1;
00219     TRKendtrace[j] = -999.9;
00220     TRKendtraceZ[j] = -999.9;
00221     TRKendvtxUwidth[j] = 0.0;
00222     TRKendvtxUmean[j] = 0.0;
00223     TRKendvtxVwidth[j] = 0.0;
00224     TRKendvtxVmean[j] = 0.0;
00225     TRKendvtxRmax[j] = 0.0;
00226     TRKendvtxQmax[j] = 0.0; 
00227     TRKdir[j] = 0.0;
00228     TRKdirTrue[j] = 0.0;
00229     TRKdirTimeSlope[j] = 0.0;
00230     TRKdirTimeScatter[j] = 0.0;
00231     TRKbegTimeFitRms[j] = -1.0;
00232     TRKbegTimeFitNdf[j] = 0;
00233     TRKendTimeFitRms[j] = -1.0;
00234     TRKendTimeFitNdf[j] = 0;
00235     TRKbegvtxshw[j] = 0;
00236     TRKbegvtxshwstrips[j] = 0;
00237     TRKbegvtxshwreseeded[j] = -1;
00238     TRKendvtxshw[j] = 0;
00239     TRKendvtxshwstrips[j] = 0;
00240     TRKendvtxshwreseeded[j] = -1;
00241     TRKrange[j] = 0.0; 
00242     TRKrangeSteel[j]=0.0;
00243     TRKmomentumRange[j] = 0.0;
00244     TRKscore[j] = -1.0;
00245     TRKscoreMuEff[j] = -1.0;
00246     TRKscoreMuPur[j] = -1.0;
00247     TRKscorePiEff[j] = -1.0;
00248     TRKscorePiPur[j] = -1.0;
00249     TRKreseeded[j] = 0;
00250   }
00251 
00252   Nfits = 0;
00253   FITlast = 0;
00254   for(j=0;j<3;j++){
00255     FITcputime[j] = 0.0;
00256     FITvtxpln[j] = -1; 
00257     FITbegpln[j] = -1;
00258     FITendpln[j] = -1; 
00259     FITcharge[j] = 0.0; 
00260     FITchisqlin[j] = -1.0; 
00261     FITchisq[j] = -1.0; 
00262     FITQPmean[j] = 0.0;
00263     FITQPerr[j] = 0.0;
00264     FITQPcorr[j] = 0.0;
00265     FITQPwidth[j] = 0.0;
00266     FITQPplns[j] = 0;
00267     FITmomentumCurve[j] = 0.0; 
00268     FITmomentumCurveErr[j] = 0.0; 
00269     FITpass[j] = 0;
00270   }
00271 
00272   Nshws = 0;
00273   SHWlast = 0; 
00274   SHWcputime = 0.0;
00275   for(j=0;j<3;j++){
00276     SHWplns[j] = 0; 
00277     SHWstrps[j] = 0; 
00278     SHWdigits[j] = 0;
00279     SHWvtxpln[j] = -1;
00280     SHWbegpln[j] = -1; 
00281     SHWendpln[j] = -1; 
00282     SHWtotPH[j] = 0.0; 
00283     SHWpshwX[j] = 0.0; 
00284     SHWpshwY[j] = 0.0; 
00285     SHWpshwZ[j] = 0.0; 
00286     SHWwidthU[j] = 0.0;
00287     SHWwidthV[j] = 0.0;
00288     SHWvtxX[j] = 0.0; 
00289     SHWvtxY[j] = 0.0; 
00290     SHWvtxZ[j] = 0.0; 
00291     SHWdir[j] = 0.0;  
00292     SHWdirTrue[j] = 0.0;
00293     SHWvtxshw[j] = -1;
00294     SHWdirTrk[j] = 0.0; 
00295     SHWenergyPH[j] = 0.0; 
00296     SHWenergyNstrps[j] = 0.0; 
00297     SHWreseeded[j] = 0;
00298   }
00299 
00300  
00301   /*********************************
00302    * S I M S N A R L   R E C O R D *
00303    *********************************/
00304 
00305   MSG("AtNuTreeModule",Msg::kDebug) << " *** SIMSNARL RECORD *** " << endl;
00306 
00307   SimSnarlRecord* simrec = dynamic_cast<SimSnarlRecord *>(mom->GetFragment("SimSnarlRecord"));
00308   if(simrec){
00309 
00310     VldContext *vldc = (VldContext*)(simrec->GetVldContext());
00311     UgliGeomHandle ugh(*vldc);
00312 
00313     if(run<0) run=RerootExodus::GetRunNo();
00314     if(snarl<0) snarl=RerootExodus::GetEventNo();
00315 
00316     const SimSnarlHeader* hdr = dynamic_cast<const SimSnarlHeader*>(simrec->GetSimSnarlHeader());
00317     if(hdr){
00318       if(run<0) run = hdr->GetRun();
00319       if(subrun<0) subrun = hdr->GetSubRun();
00320       if(snarl<0) snarl = hdr->GetSnarl();
00321       if(runtype<0) runtype = hdr->GetRunType();
00322     }
00323 
00324     TObjArray arr(simrec->GetComponents());
00325     TIter iter(arr.MakeIterator());
00326     while(TObject* tob = (TObject*)(iter())){
00327       MSG("AtNuTreeModule",Msg::kDebug) << tob->GetName() << endl;
00328 
00329       if(tob->GetName()==TString("REROOT_NeuKin")){
00330         REROOT_NeuKin* nukin = dynamic_cast<REROOT_NeuKin*>(tob);
00331         MSG("AtNuTreeModule",Msg::kDebug) << " ... found REROOT_NeuKin " << endl;
00332         IDnu = nukin->INu();
00333         IDact = nukin->IAction();
00334         IDtarget = nukin->ITg();
00335         IDboson = nukin->IBoson();
00336         IDres = nukin->IResonance();
00337         Xsection = nukin->Sigma();
00338         EMfrac = nukin->EMFrac();
00339         W2 = nukin->W2();
00340         Q2 = nukin->Q2();
00341         x = nukin->X();
00342         y = nukin->Y();
00343         PnuX = nukin->P4Neu()[0];
00344         PnuY = nukin->P4Neu()[1];
00345         PnuZ = nukin->P4Neu()[2];
00346         Enu = nukin->P4Neu()[3];
00347         PmuX = nukin->P4Mu1()[0];
00348         PmuY = nukin->P4Mu1()[1];
00349         PmuZ = nukin->P4Mu1()[2];
00350         Emu = nukin->P4Mu1()[3];
00351         PelX = nukin->P4El1()[0];
00352         PelY = nukin->P4El1()[1];
00353         PelZ = nukin->P4El1()[2];
00354         Eel = nukin->P4El1()[3];
00355         PhadX = nukin->P4Shw()[0];
00356         PhadY = nukin->P4Shw()[1];
00357         PhadZ = nukin->P4Shw()[2];
00358         Ehad = nukin->P4Shw()[3];
00359         PtargX = nukin->P4Tgt()[0];
00360         PtargY = nukin->P4Tgt()[1];
00361         PtargZ = nukin->P4Tgt()[2];
00362         Etarg = nukin->P4Tgt()[3];
00363       }
00364 
00365       if(tob->GetName()==TString("StdHep")){
00366         TClonesArray* tpart = (TClonesArray*)(tob);
00367         MSG("AtNuTreeModule",Msg::kDebug) << " found StdHep " << endl;        
00368         TParticle* apart = dynamic_cast<TParticle*>(tpart->At(0));
00369         vtxX=apart->Vx(); vtxY=apart->Vy(); vtxZ=apart->Vz();
00370       }
00371     }
00372 
00373     MSG("AtNuTreeModule",Msg::kDebug) << " *** FLSHIT LIST *** " << endl;
00374     Int_t packedPEC,trueplane,trueext,truecell,truestrip,trueview=0,ipdg,itrack;
00375     Int_t itrkneg=-999,itrkpos=999;
00376     const TClonesArray* FLShits = (TClonesArray*)(RerootExodus::GetFLSHitList());
00377     for(i=0;i<1+FLShits->GetLast();i++){
00378       REROOT_FLSHit* FLS_hit = (REROOT_FLSHit*)FLShits->At(i);
00379       packedPEC=FLS_hit->IPackedPEC();
00380       trueplane=(Int_t)(packedPEC/65536.0);
00381       fMCStrpList[trueplane].Add(FLS_hit);
00382       if(FLS_hit->ITrack()>0 && FLS_hit->ITrack()<itrkpos) itrkpos=FLS_hit->ITrack();
00383       if(FLS_hit->ITrack()<0 && FLS_hit->ITrack()>itrkneg) itrkneg=FLS_hit->ITrack();
00384     }
00385 
00386     Double_t ptot,eloss;
00387     Double_t tpos=0., opos=0., xpos=0., ypos=0., upos=0., vpos=0., zpos,rpos;
00388     Double_t um,up,vm,vp,xm,xp,ym,yp;
00389     Double_t minmuvtxX=0.,minmuvtxY=0.,minmuvtxZ=0.,minmuvtxR=0.,minptot=-1.0;
00390     Double_t maxmuvtxX=0.,maxmuvtxY=0.,maxmuvtxZ=0.,maxmuvtxR=0.,maxptot=-1.0;
00391     Int_t minmuvtxpln=0,maxmuvtxpln=0;
00392     for(i=0;i<500;i++){
00393       for(j=0;j<1+fMCStrpList[i].GetLast();j++){
00394         REROOT_FLSHit* FLS_hit = (REROOT_FLSHit*)(fMCStrpList[i].At(j));        
00395         ipdg = FLS_hit->IPDG();
00396         itrack = FLS_hit->ITrack();
00397         ptot = FLS_hit->Ptot(); 
00398         eloss = FLS_hit->ELoss();
00399         if(ptot<0) ptot=-ptot;
00400         
00401         packedPEC=FLS_hit->IPackedPEC();
00402         trueplane=(Int_t)(packedPEC/65536.0);
00403         trueext=(Int_t)((packedPEC-trueplane*65536)/256.0);
00404         truecell=packedPEC-trueplane*65536-trueext*256;
00405         truestrip=StrpExtr[trueext-1]+StrpCell[truecell-1];
00406         
00407         PlexPlaneId trueplnid(vldc->GetDetector(),trueplane,0);
00408         UgliScintPlnHandle trueplnhandle = ugh.GetScintPlnHandle(trueplnid);
00409         if(trueplnhandle.GetPlaneView()==PlaneView::kU) trueview = 0;
00410         if(trueplnhandle.GetPlaneView()==PlaneView::kV) trueview = 1;  
00411         PlexStripEndId truestrpid(trueplnid,truestrip);
00412         UgliStripHandle truestrphandle = ugh.GetStripHandle(truestrpid);
00413         opos=0.005*(FLS_hit->XBegin()+FLS_hit->XEnd());
00414         tpos=truestrphandle.GetTPos();
00415         if(trueview==0){ upos=tpos; vpos=-opos; }
00416         if(trueview==1){ vpos=tpos; upos=opos; }
00417         xpos=0.7071*(upos-vpos); ypos=0.7071*(upos+vpos);
00418         zpos=trueplnhandle.GetZ0(); 
00419 
00420         rpos=4.0; 
00421         up=4.0-upos; if(up<rpos) rpos=up;
00422         um=4.0+upos; if(um<rpos) rpos=um;
00423         vp=4.0-vpos; if(vp<rpos) rpos=vp;
00424         vm=4.0+vpos; if(vm<rpos) rpos=vm;
00425         xp=4.0-xpos; if(xp<rpos) rpos=xp;
00426         xm=4.0+xpos; if(xm<rpos) rpos=xm;
00427         yp=4.0-ypos; if(yp<rpos) rpos=yp;
00428         ym=4.0+ypos; if(ym<rpos) rpos=ym;
00429 
00430         if( (IDnu==0&&(ipdg==13||ipdg==-13))
00431          || (IDnu==14&&ipdg==13)
00432          || (IDnu==-14&&ipdg==-13) ){
00433           if(minptot<0||ptot<minptot){
00434             minmuvtxX=xpos; minmuvtxY=ypos; minmuvtxZ=zpos; 
00435             minmuvtxR=rpos; minmuvtxpln=trueplane; minptot=ptot;
00436           }
00437           if(maxptot<0||ptot>maxptot){
00438             maxmuvtxX=xpos; maxmuvtxY=ypos; maxmuvtxZ=zpos;
00439             maxmuvtxR=rpos; maxmuvtxpln=trueplane; maxptot=ptot;
00440           }
00441         }
00442 
00443       }
00444     }
00445 
00446     if(minptot>=0.0 && maxptot>=0.0){
00447       muvtxX = maxmuvtxX; 
00448       muvtxY = maxmuvtxY;
00449       muvtxZ = maxmuvtxZ; 
00450       muvtxR = maxmuvtxR;
00451       muvtxpln = maxmuvtxpln;
00452       muendvtxX = minmuvtxX;
00453       muendvtxY = minmuvtxY;
00454       muendvtxZ = minmuvtxZ;
00455       muendvtxR = minmuvtxR;
00456       muendvtxpln = minmuvtxpln;
00457       mupbeg = maxptot;
00458       mupend = minptot;
00459     }
00460   }
00461 
00462   MSG("AtNuTreeModule",Msg::kDebug) << " *** END OF SIMRECORD *** " << endl;
00463 
00464 
00465   /***********************
00466    * R A W   R E C O R D * 
00467    ***********************/
00468 
00469   MSG("AtNuTreeModule",Msg::kDebug) << " *** RAW RECORD *** " << endl;
00470 
00471   RawRecord *rawrec = dynamic_cast<RawRecord *>(mom->GetFragment("RawRecord"));
00472   if(rawrec){
00473 
00474     Double_t timestamp;
00475     const RawDaqSnarlHeader* hdr = dynamic_cast<const RawDaqSnarlHeader*>(rawrec->GetRawHeader());
00476     if(hdr){
00477       if(run<0) run = hdr->GetRun(); 
00478       if(subrun<0) subrun = hdr->GetSubRun();
00479       if(snarl<0) snarl = hdr->GetSnarl();
00480       if(runtype<0) runtype = hdr->GetRunType();
00481       if(trigsrc<0) trigsrc = hdr->GetTrigSrc();
00482       if(timeframe<0) timeframe = hdr->GetTimeFrameNum();
00483     }
00484 
00485     TIter rdbit(rawrec->GetRawBlockIter());
00486     while(TObject* tob = (TObject*)(rdbit())){
00487       MSG("AtNuTreeModule",Msg::kDebug) << tob->GetName() << endl;
00488 
00489       if(tob->InheritsFrom("RawSnarlHeaderBlock")){
00490         MSG("AtNuTreeModule",Msg::kDebug) << "  ... found RawSnarlHeaderBlock " << endl;
00491         RawSnarlHeaderBlock* rdb = (RawSnarlHeaderBlock*)(tob);
00492         if(run<0) run = rdb->GetRun();
00493         if(subrun<0) subrun = rdb->GetSubRun(); 
00494         if(snarl<0) snarl = rdb->GetSnarl();
00495         if(runtype<0) runtype = rdb->GetRunType();
00496         if(trigsrc<0) trigsrc = rdb->GetTriggerSource();
00497         if(timeframe<0) timeframe = rdb->GetTimeFrameNum(); 
00498         timestamp = ((VldTimeStamp)(rdb->GetTriggerTime())).GetNanoSec();
00499         date = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)/(3600*24);
00500         time = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)%(3600*24);
00501         if(trigtimeraw<0.0) trigtimeraw=0.001*timestamp;
00502       }
00503     }
00504   }
00505 
00506   MSG("AtNuTreeModule",Msg::kDebug) << " *** END OF RAWRECORD *** " << endl;
00507  
00508 
00509   /***********************************
00510    * C A N D I D A T E   R E C O R D * 
00511    ***********************************/
00512 
00513   MSG("AtNuTreeModule",Msg::kDebug) << " *** CANDRECORD *** " << endl;
00514 
00515   CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord","PrimaryCandidateRecord"));
00516   if(candrec){
00517 
00518     const CandHeader* hdr = candrec->GetCandHeader();
00519     if(hdr){
00520       if(run<0) run = hdr->GetRun();
00521       if(snarl<0) snarl = hdr->GetSnarl();
00522     }
00523 
00524     VldContext *vldc = (VldContext*)(candrec->GetVldContext());
00525     UgliGeomHandle ugh(*vldc);
00526 
00527     Int_t SHW=0,TRK=0,FIT=0;
00528     TIter candbit(candrec->GetCandHandleIter());
00529     while(TObject* tob = (TObject*)(candbit())){
00530       MSG("AtNuTreeModule",Msg::kDebug) << tob->GetName() << endl;
00531 
00532       // DIGITS
00533       if(tob->InheritsFrom("CandDeMuxDigitListHandle")){
00534         CandDeMuxDigitListHandle* digitlist = (CandDeMuxDigitListHandle*)(tob);
00535         MSG("AtNuTreeModule",Msg::kDebug) << " ... found CandDeMuxDigitListHandle " << endl;
00536 
00537         Int_t pln,xtalk;
00538         if(trigtimecorr<0.0) trigtimecorr=1.0e6*digitlist->GetAbsTime();
00539         TIter digitr(digitlist->GetDaughterIterator());
00540         while(CandDeMuxDigitHandle* digit = (CandDeMuxDigitHandle*)(digitr())){
00541           xtalk=0;
00542           if( (digit->GetDeMuxDigitFlagWord()<8)
00543            && (digit->GetDeMuxDigitFlagWord() & CandDeMuxDigit::kXTalk)==(CandDeMuxDigit::kXTalk) ){
00544             xtalk=1;
00545           }
00546           pln=digit->GetPlexSEIdAltL().GetBestSEId().GetPlane();
00547           if( pln>0 && pln<500 ){
00548             totPH+=digit->GetCharge(CalDigitType::kPE);
00549           }
00550         }
00551       }
00552 
00553       // STRIPS
00554       if(tob->InheritsFrom("CandStripListHandle")){
00555         CandStripListHandle* strplist = (CandStripListHandle*)(tob);
00556         MSG("AtNuTreeModule",Msg::kDebug) << " ... found CandStripListHandle " << endl;
00557 
00558         Int_t pln,vuw;
00559         TIter stritr(strplist->GetDaughterIterator());        
00560         while(CandStripHandle* strip = dynamic_cast<CandStripHandle*>(stritr())){
00561           if(strip){
00562             pln=strip->GetPlane();
00563             if( pln>0 && pln<500 && strip->GetCharge()>2.0){ 
00564               if(begpln<0||pln<begpln) begpln=pln; 
00565               if(endpln<0||pln>endpln) endpln=pln;            
00566               fTotStrpList[pln].Add(strip);
00567             }
00568           }
00569         }
00570         for(i=0;i<500;i++){
00571           if(1+fTotStrpList[i].GetLast()>0){
00572             vuw=-1;
00573             for(j=0;j<1+fTotStrpList[i].GetLast();j++){
00574                CandStripHandle* strip = (CandStripHandle*)(fTotStrpList[i].At(j)); 
00575 
00576               if(strip->GetPlaneView()==PlaneView::kU){
00577                 vuw=0; Ustrps++; Ndigits+=strip->GetNDaughters();
00578               }
00579               if(strip->GetPlaneView()==PlaneView::kV){
00580                 vuw=1; Vstrps++; Ndigits+=strip->GetNDaughters();
00581               }            
00582             }
00583             if(vuw==0) Uplns++; if(vuw==1) Vplns++;
00584           }
00585         }
00586         Nplns=Uplns+Vplns; Nstrps=Ustrps+Vstrps;
00587       }
00588        
00589       Int_t ipdg,muflag=0;
00590       if(simrec){     
00591         for(i=0;i<500;i++){  
00592           if(1+fMCStrpList[i].GetLast()>0 && 1+fTotStrpList[i].GetLast()>0){    
00593             for(j=0;j<1+fMCStrpList[i].GetLast();j++){
00594               REROOT_FLSHit* FLS_hit = (REROOT_FLSHit*)(fMCStrpList[i].At(j));
00595               ipdg = FLS_hit->IPDG(); 
00596               if( (IDnu==0&&(ipdg==13||ipdg==-13))
00597                 ||(IDnu==14&&ipdg==13)||(IDnu==-14&&ipdg==-13) ){
00598                 muflag=1;
00599               }
00600             }
00601             if(muflag) Nmuplns++;
00602           }
00603         }
00604       }
00605 
00606       // TRACKS
00607       if(tob->InheritsFrom("CandTrackAtNuListHandle")&&!TRK){
00608         CandTrackAtNuListHandle* trklist = (CandTrackAtNuListHandle*)(tob);
00609         MSG("AtNuTreeModule",Msg::kDebug) << " ... found CandTrackAtNuListHandle " << endl;
00610         TRK=1;
00611           
00612         Int_t pln,flag;
00613         Double_t dir,scr,maxscr,tmpscr;
00614                 
00615         TRKcputime=trklist->GetCPUTime();
00616         Ntrks=0; TRKlast=0;
00617         CandTrackAtNuHandle* trk=0; 
00618         flag=1; maxscr=9999;
00619         while(trk||flag){
00620           trk=0; 
00621           flag=0; tmpscr=0;
00622           TIter trkitr(trklist->GetDaughterIterator());
00623           while(CandTrackAtNuHandle* trackhandle = dynamic_cast<CandTrackAtNuHandle*>(trkitr())){
00624             if(trackhandle){
00625               if(trackhandle->GetEndPlane()>trackhandle->GetBegPlane()) scr=trackhandle->GetEndPlane()-trackhandle->GetBegPlane(); else scr=trackhandle->GetBegPlane()-trackhandle->GetEndPlane();
00626               if(scr>0&&scr<maxscr&&scr>tmpscr){
00627                 tmpscr=scr; trk=trackhandle;
00628               } 
00629             }
00630           }
00631           if(trk){
00632             Ntrks++; maxscr=tmpscr;
00633             if(TRKlast<3){
00634               MSG("AtNuTreeModule",Msg::kDebug) << "  track: " << TRKlast << endl;
00635               dir=3.0e8*trk->GetTimeSlope(); 
00636                
00637               TRKtrkPH[TRKlast]=trk->GetTrkPH();
00638               TRKshwPH[TRKlast]=trk->GetShwPH();
00639               TRKassocPH[TRKlast]=trk->GetAssocTrkPH();
00640               TRKassocPHfrac[TRKlast]=trk->GetAssocTrkPHfrac();
00641               TRKvtxpln[TRKlast]=trk->GetVtxPlane();                
00642               TRKtrkplns[TRKlast]=trk->GetTrackLikePlanes();
00643               TRKdir[TRKlast]=trk->GetDirTimeScore();
00644               TRKdirTimeSlope[TRKlast]=trk->GetDirTimeSlope();  
00645               TRKdirTimeScatter[TRKlast]=trk->GetDirTimeScatter();
00646               TRKrangeSteel[TRKlast]=trk->GetRangeThruSteel();
00647               TRKmomentumRange[TRKlast]=trk->GetMomentum();
00648               TRKreseeded[TRKlast]=trk->GetReseedFlag();
00649           
00650               if(dir>=0){
00651                 TRKbegpln[TRKlast]=trk->GetBegPlane(); 
00652                 TRKbegvtxX[TRKlast]=0.7071*(trk->GetVtxU()-trk->GetVtxV());
00653                 TRKbegvtxY[TRKlast]=0.7071*(trk->GetVtxU()+trk->GetVtxV());
00654                 TRKbegvtxZ[TRKlast]=trk->GetVtxZ();
00655                 TRKpbegX[TRKlast]=0.7071*(trk->GetDirCosU()-trk->GetDirCosV());
00656                 TRKpbegY[TRKlast]=0.7071*(trk->GetDirCosU()+trk->GetDirCosV());
00657                 TRKpbegZ[TRKlast]=trk->GetDirCosZ();
00658                 TRKbegvtxR[TRKlast]=trk->GetVtxR();
00659                 TRKbegvtxRdigits[TRKlast]=trk->GetVtxRdigits();
00660                 TRKbegplndigits[TRKlast]=trk->GetVtxPlaneDigits();
00661                 TRKbegtrace[TRKlast]=trk->GetVtxTrace();
00662                 TRKbegtraceZ[TRKlast]=trk->GetVtxTraceZ();
00663                 TRKbegvtxUwidth[TRKlast]=trk->GetVtxUwidth();
00664                 TRKbegvtxUmean[TRKlast]=trk->GetVtxUmean();
00665                 TRKbegvtxVwidth[TRKlast]=trk->GetVtxVwidth();
00666                 TRKbegvtxVmean[TRKlast]=trk->GetVtxVmean();
00667                 TRKbegvtxRmax[TRKlast]=trk->GetVtxRmax();
00668                 TRKbegvtxQmax[TRKlast]=trk->GetVtxQmax();
00669                 TRKendpln[TRKlast]=trk->GetEndPlane();
00670                 TRKendvtxX[TRKlast]=0.7071*(trk->GetEndU()-trk->GetEndV());
00671                 TRKendvtxY[TRKlast]=0.7071*(trk->GetEndU()+trk->GetEndV());
00672                 TRKendvtxZ[TRKlast]=trk->GetEndZ();
00673                 TRKpendX[TRKlast]=0.7071*(trk->GetEndDirCosU()-trk->GetEndDirCosV());
00674                 TRKpendY[TRKlast]=0.7071*(trk->GetEndDirCosU()+trk->GetEndDirCosV());
00675                 TRKpendZ[TRKlast]=trk->GetEndDirCosZ();
00676                 TRKendvtxR[TRKlast]=trk->GetEndR();
00677                 TRKendvtxRdigits[TRKlast]=trk->GetEndRdigits();
00678                 TRKendplndigits[TRKlast]=trk->GetEndPlaneDigits();
00679                 TRKendtrace[TRKlast]=trk->GetEndTrace();
00680                 TRKendtraceZ[TRKlast]=trk->GetEndTraceZ();
00681                 TRKendvtxUwidth[TRKlast]=trk->GetEndUwidth();
00682                 TRKendvtxUmean[TRKlast]=trk->GetEndUmean();
00683                 TRKendvtxVwidth[TRKlast]=trk->GetEndVwidth();
00684                 TRKendvtxVmean[TRKlast]=trk->GetEndVmean();
00685                 TRKendvtxRmax[TRKlast]=trk->GetEndRmax();
00686                 TRKendvtxQmax[TRKlast]=trk->GetEndQmax();
00687                 TRKplinX[TRKlast]=0.7071*(trk->GetLinearDirCosU()-trk->GetLinearDirCosV());
00688                 TRKplinY[TRKlast]=0.7071*(trk->GetLinearDirCosU()+trk->GetLinearDirCosV());
00689                 TRKplinZ[TRKlast]=trk->GetLinearDirCosZ();
00690                 TRKbegTimeFitRms[TRKlast]=trk->GetTimeForwardFitRMS();
00691                 TRKbegTimeFitNdf[TRKlast]=trk->GetTimeForwardFitNDOF();   
00692                 TRKendTimeFitRms[TRKlast]=trk->GetTimeBackwardFitRMS();
00693                 TRKendTimeFitNdf[TRKlast]=trk->GetTimeBackwardFitNDOF();     
00694                 TRKbegvtxshw[TRKlast]=trk->GetVtxShw();         
00695                 TRKbegvtxshwstrips[TRKlast]=trk->GetVtxShwStrips();   
00696                 TRKbegvtxshwreseeded[TRKlast]=trk->GetVtxShwReseedFlag();
00697                 TRKendvtxshw[TRKlast]=trk->GetEndShw();         
00698                 TRKendvtxshwstrips[TRKlast]=trk->GetEndShwStrips();   
00699                 TRKendvtxshwreseeded[TRKlast]=trk->GetEndShwReseedFlag();
00700               }
00701               else{
00702                 TRKbegpln[TRKlast]=trk->GetEndPlane();
00703                 TRKbegvtxX[TRKlast]=0.7071*(trk->GetEndU()-trk->GetEndV());
00704                 TRKbegvtxY[TRKlast]=0.7071*(trk->GetEndU()+trk->GetEndV());
00705                 TRKbegvtxZ[TRKlast]=trk->GetEndZ();
00706                 TRKpbegX[TRKlast]=-0.7071*(trk->GetEndDirCosU()-trk->GetEndDirCosV());
00707                 TRKpbegY[TRKlast]=-0.7071*(trk->GetEndDirCosU()+trk->GetEndDirCosV());
00708                 TRKpbegZ[TRKlast]=-trk->GetEndDirCosZ();
00709                 TRKbegvtxR[TRKlast]=trk->GetEndR();
00710                 TRKbegvtxRdigits[TRKlast]=trk->GetEndRdigits();
00711                 TRKbegplndigits[TRKlast]=trk->GetEndPlaneDigits();
00712                 TRKbegtrace[TRKlast]=trk->GetEndTrace();
00713                 TRKbegtraceZ[TRKlast]=trk->GetEndTraceZ();
00714                 TRKbegvtxUwidth[TRKlast]=trk->GetEndUwidth();
00715                 TRKbegvtxUmean[TRKlast]=trk->GetEndUmean();
00716                 TRKbegvtxVwidth[TRKlast]=trk->GetEndVwidth();
00717                 TRKbegvtxVmean[TRKlast]=trk->GetEndVmean();
00718                 TRKbegvtxRmax[TRKlast]=trk->GetEndRmax();
00719                 TRKbegvtxQmax[TRKlast]=trk->GetEndQmax();
00720                 TRKendpln[TRKlast]=trk->GetBegPlane(); 
00721                 TRKendvtxX[TRKlast]=0.7071*(trk->GetVtxU()-trk->GetVtxV());
00722                 TRKendvtxY[TRKlast]=0.7071*(trk->GetVtxU()+trk->GetVtxV());
00723                 TRKendvtxZ[TRKlast]=trk->GetVtxZ();
00724                 TRKpendX[TRKlast]=-0.7071*(trk->GetDirCosU()-trk->GetDirCosV());
00725                 TRKpendY[TRKlast]=-0.7071*(trk->GetDirCosU()+trk->GetDirCosV());
00726                 TRKpendZ[TRKlast]=-trk->GetDirCosZ();
00727                 TRKendvtxR[TRKlast]=trk->GetVtxR();
00728                 TRKendvtxRdigits[TRKlast]=trk->GetVtxRdigits();
00729                 TRKendplndigits[TRKlast]=trk->GetVtxPlaneDigits();
00730                 TRKendtrace[TRKlast]=trk->GetVtxTrace();
00731                 TRKendtraceZ[TRKlast]=trk->GetVtxTraceZ();
00732                 TRKendvtxUwidth[TRKlast]=trk->GetVtxUwidth();
00733                 TRKendvtxUmean[TRKlast]=trk->GetVtxUmean();
00734                 TRKendvtxVwidth[TRKlast]=trk->GetVtxVwidth();
00735                 TRKendvtxVmean[TRKlast]=trk->GetVtxVmean();
00736                 TRKendvtxRmax[TRKlast]=trk->GetVtxRmax();
00737                 TRKendvtxQmax[TRKlast]=trk->GetVtxQmax();
00738                 TRKplinX[TRKlast]=-0.7071*(trk->GetLinearDirCosU()-trk->GetLinearDirCosV());
00739                 TRKplinY[TRKlast]=-0.7071*(trk->GetLinearDirCosU()+trk->GetLinearDirCosV());
00740                 TRKplinZ[TRKlast]=-trk->GetLinearDirCosZ();
00741                 TRKbegTimeFitRms[TRKlast]=trk->GetTimeForwardFitRMS();
00742                 TRKbegTimeFitNdf[TRKlast]=trk->GetTimeForwardFitNDOF();   
00743                 TRKendTimeFitRms[TRKlast]=trk->GetTimeBackwardFitRMS();
00744                 TRKendTimeFitNdf[TRKlast]=trk->GetTimeBackwardFitNDOF();     
00745                 TRKbegvtxshw[TRKlast]=trk->GetEndShw();         
00746                 TRKbegvtxshwstrips[TRKlast]=trk->GetEndShwStrips();   
00747                 TRKbegvtxshwreseeded[TRKlast]=trk->GetEndShwReseedFlag();
00748                 TRKendvtxshw[TRKlast]=trk->GetVtxShw();         
00749                 TRKendvtxshwstrips[TRKlast]=trk->GetVtxShwStrips();   
00750                 TRKendvtxshwreseeded[TRKlast]=trk->GetVtxShwReseedFlag();
00751               }
00752 
00753               TIter stritr(trk->GetDaughterIterator());
00754               while(CandStripHandle* strp = dynamic_cast<CandStripHandle*>(stritr())){
00755                 if(strp){
00756                   pln=strp->GetPlane();
00757                   if(pln>0 && pln<500){
00758                     fTrkStrpList[pln].Add(strp);
00759                   }
00760                 }
00761               }
00762 
00763               Double_t range=0.0,ds=0.0;
00764               for(i=0;i<500;i++){
00765                 if(1+fTrkStrpList[i].GetLast()>0){
00766                   if(trk->IsTPosValid(i)){
00767                     ds=trk->GetdS(i);
00768                     if(ds>range) range=ds;
00769                   }
00770                   TRKplns[TRKlast]++;
00771                   for(j=0;j<1+fTrkStrpList[i].GetLast();j++){
00772                     CandStripHandle* strip = (CandStripHandle*)(fTrkStrpList[i].At(j));
00773                     TRKstrps[TRKlast]++; TRKdigits[TRKlast]+=strip->GetNDaughters();
00774                   }
00775                 }
00776               }
00777               TRKrange[TRKlast]=range;
00778 
00779               if(simrec){
00780                 Int_t muflag,muflagtrk,piflag,piflagtrk;
00781                 Int_t trueview,packedPEC,trueplane,truecell,trueext,truestrip,ipdg;
00782                 Double_t trk_pln=0,trk_mu=0.0,trk_pi=0.0,notrk_mu=0.0,notrk_pi=0.0;
00783                 for(i=0;i<500;i++){
00784                   if(1+fMCStrpList[i].GetLast()>0 && 1+fTotStrpList[i].GetLast()>0){
00785                     muflag=0; muflagtrk=0; piflag=0; piflagtrk=0;
00786                     for(j=0;j<1+fMCStrpList[i].GetLast();j++){
00787                       REROOT_FLSHit* FLS_hit = (REROOT_FLSHit*)(fMCStrpList[i].At(j));
00788                       packedPEC=FLS_hit->IPackedPEC();
00789                       trueplane=(Int_t)(packedPEC/65536.0);
00790                       trueext=(Int_t)((packedPEC-trueplane*65536)/256.0);
00791                       truecell=packedPEC-trueplane*65536-trueext*256;
00792                       truestrip=StrpExtr[trueext-1]+StrpCell[truecell-1];
00793                       ipdg = FLS_hit->IPDG();
00794                       PlexPlaneId trueplnid(vldc->GetDetector(),trueplane,0);
00795                       UgliScintPlnHandle trueplnhandle = ugh.GetScintPlnHandle(trueplnid);
00796                       if(trueplnhandle.GetPlaneView()==PlaneView::kU) trueview = 0;
00797                       if(trueplnhandle.GetPlaneView()==PlaneView::kV) trueview = 1;   
00798                       if( (IDnu==0&&(ipdg==13||ipdg==-13))
00799                         ||(IDnu==14&&ipdg==13)||(IDnu==-14&&ipdg==-13) ){
00800                         muflag=1;
00801                         for(k=0;k<1+fTrkStrpList[i].GetLast();k++){
00802                           CandStripHandle* strp = (CandStripHandle*)(fTrkStrpList[i].At(k));
00803                           if(strp->GetStrip()-truestrip>-2 && strp->GetStrip()-truestrip<2){
00804                             muflagtrk=1;
00805                           }
00806                         }
00807                       }
00808                       if(ipdg==211||ipdg==-211){
00809                         piflag=1;
00810                         for(k=0;k<1+fTrkStrpList[i].GetLast();k++){
00811                           CandStripHandle* strp = (CandStripHandle*)(fTrkStrpList[i].At(k));
00812                           if(strp->GetStrip()-truestrip>-2 && strp->GetStrip()-truestrip<2){
00813                             piflagtrk=1;
00814                           }
00815                         }
00816                       }          
00817                     }
00818                     if(muflag){ if(muflagtrk) trk_mu+=1.0; else notrk_mu+=1.0; }     
00819                     if(piflag){ if(piflagtrk) trk_pi+=1.0; else notrk_pi+=1.0; }
00820                     if(1+fTrkStrpList[i].GetLast()>0) trk_pln+=1.0;
00821                   }
00822                 }
00823                 if(trk_pln>0){
00824                   TRKscore[TRKlast] = (trk_mu)/(trk_pln+notrk_mu);
00825                   if(trk_mu+notrk_mu>0.0){
00826                     TRKscoreMuEff[TRKlast] = (trk_mu)/(trk_mu+notrk_mu); 
00827                     TRKscoreMuPur[TRKlast]= (trk_mu)/(trk_pln);
00828                   }
00829                   if(trk_pi+notrk_pi>0.0){ 
00830                     TRKscorePiEff[TRKlast] = (trk_pi)/(trk_pi+notrk_pi); 
00831                     TRKscorePiPur[TRKlast] = (trk_pi)/(trk_pln);
00832                   }
00833                 }
00834 
00835                 Double_t begZ,endZ;
00836                 begZ=TRKbegvtxZ[TRKlast]; endZ=TRKendvtxZ[TRKlast];
00837                 if(endZ>begZ){
00838                   TRKdirTrue[TRKlast]=2.0*(0.5*(endZ+begZ)-vtxZ)/(endZ-begZ);
00839                 }
00840               }
00841 
00842               MSG("AtNuTreeModule",Msg::kDebug)
00843                 << " RESULTS FROM TRACKS " << endl
00844                 << " ------------------- " << endl
00845                 << " TRKplns = " << TRKplns[TRKlast] << endl
00846                 << " TRKstrps = " << TRKstrps[TRKlast] << endl
00847                 << " TRKdigits = " << TRKdigits[TRKlast] << endl
00848                 << " TRKvtxpln = " << TRKvtxpln[TRKlast] << endl
00849                 << " TRKbegpln = " << TRKbegpln[TRKlast] << endl
00850                 << " TRKendpln = " << TRKendpln[TRKlast] << endl
00851                 << " TRKtrkplns = " << TRKtrkplns[TRKlast] << endl
00852                 << " TRKtrkPH = " << TRKtrkPH[TRKlast] << endl
00853                 << " TRKshwPH = " << TRKshwPH[TRKlast] << endl
00854                 << " TRKassocPH = " << TRKassocPH[TRKlast] << endl
00855                 << " TRKassocPHfrac = " << TRKassocPHfrac[TRKlast] << endl
00856                 << " TRKpbegX = " << TRKpbegX[TRKlast] << endl
00857                 << " TRKpbegY = " << TRKpbegY[TRKlast] << endl
00858                 << " TRKpbegZ = " << TRKpbegZ[TRKlast] << endl
00859                 << " TRKpendX = " << TRKpendX[TRKlast] << endl
00860                 << " TRKpendY = " << TRKpendY[TRKlast] << endl
00861                 << " TRKpendZ = " << TRKpendZ[TRKlast] << endl
00862                 << " TRKplinX = " << TRKplinX[TRKlast] << endl
00863                 << " TRKplinY = " << TRKplinY[TRKlast] << endl
00864                 << " TRKplinZ = " << TRKplinZ[TRKlast] << endl
00865                 << " TRKbegvtxX = " << TRKbegvtxX[TRKlast] << endl
00866                 << " TRKbegvtxY = " << TRKbegvtxY[TRKlast] << endl
00867                 << " TRKbegvtxZ = " << TRKbegvtxZ[TRKlast] << endl
00868                 << " TRKbegvtxR = " << TRKbegvtxR[TRKlast] << endl
00869                 << " TRKbegvtxRdigits = " << TRKbegvtxRdigits[TRKlast] << endl
00870                 << " TRKbegplndigits = " << TRKbegplndigits[TRKlast] << endl
00871                 << " TRKbegtrace = " << TRKbegtrace[TRKlast] << endl
00872                 << " TRKbegtraceZ = " << TRKbegtraceZ[TRKlast] << endl
00873                 << " TRKbegvtxUwidth = " << TRKbegvtxUwidth[TRKlast] << endl
00874                 << " TRKbegvtxUmean = " << TRKbegvtxUmean[TRKlast] << endl
00875                 << " TRKbegvtxVwidth = " << TRKbegvtxVwidth[TRKlast] << endl
00876                 << " TRKbegvtxVmean = " << TRKbegvtxVmean[TRKlast] << endl
00877                 << " TRKbegvtxRmax = " << TRKbegvtxRmax[TRKlast] << endl
00878                 << " TRKbegvtxQmax = " << TRKbegvtxQmax[TRKlast] << endl
00879                 << " TRKendvtxX = " << TRKendvtxX[TRKlast] << endl
00880                 << " TRKendvtxY = " << TRKendvtxY[TRKlast] << endl
00881                 << " TRKendvtxZ = " << TRKendvtxZ[TRKlast] << endl
00882                 << " TRKendvtxR = " << TRKendvtxR[TRKlast] << endl
00883                 << " TRKendvtxRdigits = " << TRKendvtxRdigits[TRKlast] << endl
00884                 << " TRKendplndigits = " << TRKendplndigits[TRKlast] << endl
00885                 << " TRKendtrace = " << TRKendtrace[TRKlast] << endl
00886                 << " TRKendtraceZ = " << TRKendtraceZ[TRKlast] << endl
00887                 << " TRKendvtxUwidth = " << TRKendvtxUwidth[TRKlast] << endl 
00888                 << " TRKendvtxUmean = " << TRKendvtxUmean[TRKlast] << endl 
00889                 << " TRKendvtxVwidth = " << TRKendvtxVwidth[TRKlast] << endl 
00890                 << " TRKendvtxVmean = " << TRKendvtxVmean[TRKlast] << endl 
00891                 << " TRKendvtxRmax = " << TRKendvtxRmax[TRKlast] << endl 
00892                 << " TRKendvtxQmax = " << TRKendvtxQmax[TRKlast] << endl
00893                 << " TRKdir = " << TRKdir[TRKlast] << endl 
00894                 << " TRKdirTrue = " << TRKdirTrue[TRKlast] << endl
00895                 << " TRKdirTimeSlope = " << TRKdirTimeSlope[TRKlast] << endl
00896                 << " TRKdirTimeScatter = " << TRKdirTimeScatter[TRKlast] << endl
00897                 << " TRKbegTimeFitRms = " << TRKbegTimeFitRms[TRKlast] << endl
00898                 << " TRKbegTimeFitNdf = " << TRKbegTimeFitNdf[TRKlast] << endl
00899                 << " TRKendTimeFitRms = " << TRKendTimeFitRms[TRKlast] << endl
00900                 << " TRKendTimeFitNdf = " << TRKendTimeFitNdf[TRKlast] << endl
00901                 << " TRKbegvtxshw = " << TRKbegvtxshw[TRKlast] << endl
00902                 << " TRKbegvtxshwstrips = " << TRKbegvtxshwstrips[TRKlast] << endl
00903                 << " TRKbegvtxshwreseeded = " << TRKbegvtxshwreseeded[TRKlast] << endl 
00904                 << " TRKendvtxshw = " << TRKendvtxshw[TRKlast] << endl
00905                 << " TRKendvtxshwstrips = " << TRKendvtxshwstrips[TRKlast] << endl
00906                 << " TRKendvtxshwreseeded = " << TRKendvtxshwreseeded[TRKlast] << endl
00907                 << " TRKrange = " << TRKrange[TRKlast] << endl 
00908                 << " TRKrangeSteel = " << TRKrangeSteel[TRKlast] << endl
00909                 << " TRKmomentumRange = " << TRKmomentumRange[TRKlast] << endl
00910                 << " TRKscore = " << TRKscore[TRKlast] << endl
00911                 << " TRKscoreMuEff = " << TRKscoreMuEff[TRKlast] << endl
00912                 << " TRKscoreMuPur = " << TRKscoreMuPur[TRKlast] << endl 
00913                 << " TRKscorePiEff = " << TRKscorePiEff[TRKlast] << endl
00914                 << " TRKscorePiPur = " << TRKscorePiPur[TRKlast] << endl 
00915                 << " TRKreseeded = " << TRKreseeded[TRKlast] << endl;
00916 
00917               TRKlast++;            
00918             } 
00919           }
00920         }    
00921       }
00922 
00923 
00924       // SHOWERS
00925       if(tob->InheritsFrom("CandShowerAtNuListHandle")&&!SHW){
00926         CandShowerAtNuListHandle* shwlist = (CandShowerAtNuListHandle*)(tob);
00927         MSG("AtNuTreeModule",Msg::kDebug) << " ... found CandShowerAtNuListHandle " << endl;
00928         SHW=1; 
00929 
00930         Int_t pln,flag;
00931         Double_t dir,scr,tmpscr,maxscr;
00932 
00933         SHWcputime=shwlist->GetCPUTime();
00934         Nshws=0; SHWlast=0;
00935         CandShowerAtNuHandle* shw=0; 
00936         flag=1; maxscr=9999;
00937         while(shw||flag){
00938           shw=0; 
00939           flag=0; tmpscr=0;
00940           TIter shwitr(shwlist->GetDaughterIterator());
00941           while(CandShowerAtNuHandle* showerhandle = dynamic_cast<CandShowerAtNuHandle*>(shwitr())){
00942             if(showerhandle){
00943               scr=0;
00944               TIter stritr(showerhandle->GetDaughterIterator());
00945               while(CandStripHandle* strp = dynamic_cast<CandStripHandle*>(stritr())){
00946                 if(strp) scr++;
00947               }
00948               if(scr>0&&scr<maxscr&&scr>tmpscr){
00949                 tmpscr=scr; shw=showerhandle;
00950               } 
00951             }
00952           }
00953           if(shw){
00954             Nshws++; maxscr=tmpscr;
00955             if(SHWlast<3){
00956               MSG("AtNuTreeModule",Msg::kDebug) << "  shower: " << SHWlast << endl;
00957               dir=3.0e8*shw->GetTimeSlope();
00958             
00959               SHWvtxpln[SHWlast]=shw->GetVtxPlane();
00960               SHWvtxX[SHWlast]=0.7071*(shw->GetVtxU()-shw->GetVtxV());
00961               SHWvtxY[SHWlast]=0.7071*(shw->GetVtxU()+shw->GetVtxV());
00962               SHWvtxZ[SHWlast]=shw->GetVtxZ();
00963               SHWdir[SHWlast]=shw->GetDirTimeScore();
00964               SHWvtxshw[SHWlast]=shw->GetVtxShw();
00965               SHWdirTrk[SHWlast]=shw->GetDirVtxShwScore();
00966               SHWwidthU[SHWlast]=shw->GetDirCosErrU();
00967               SHWwidthV[SHWlast]=shw->GetDirCosErrV();
00968               SHWenergyPH[SHWlast]=shw->GetEnergy();
00969               SHWenergyNstrps[SHWlast]=0.0;
00970               SHWreseeded[SHWlast]=shw->GetReseedFlag();                       
00971  
00972               if(dir>=0){
00973                 SHWbegpln[SHWlast]=shw->GetBegPlane();
00974                 SHWendpln[SHWlast]=shw->GetEndPlane();
00975                 SHWpshwX[SHWlast]=0.7071*(shw->GetDirCosU()-shw->GetDirCosV());
00976                 SHWpshwY[SHWlast]=0.7071*(shw->GetDirCosU()+shw->GetDirCosV());
00977                 SHWpshwZ[SHWlast]=shw->GetDirCosZ();               
00978               }
00979               else{
00980                 SHWbegpln[SHWlast]=shw->GetEndPlane();
00981                 SHWendpln[SHWlast]=shw->GetBegPlane();
00982                 SHWpshwX[SHWlast]=-0.7071*(shw->GetDirCosU()-shw->GetDirCosV());
00983                 SHWpshwY[SHWlast]=-0.7071*(shw->GetDirCosU()+shw->GetDirCosV());
00984                 SHWpshwZ[SHWlast]=-shw->GetDirCosZ();   
00985               }
00986 
00987               TIter stritr(shw->GetDaughterIterator());
00988               while(CandStripHandle* strp = dynamic_cast<CandStripHandle*>(stritr())){
00989                 if(strp){
00990                   pln=strp->GetPlane();
00991                   if(pln>0 && pln<500){
00992                     fShwStrpList[pln].Add(strp);
00993                   }
00994                 }
00995               }
00996 
00997               for(i=0;i<500;i++){
00998                 if(1+fShwStrpList[i].GetLast()>0){
00999                   SHWplns[SHWlast]++;
01000                   for(j=0;j<1+fShwStrpList[i].GetLast();j++){
01001                     CandStripHandle* strip = (CandStripHandle*)(fShwStrpList[i].At(j));
01002                     SHWtotPH[SHWlast]+=strip->GetCharge();
01003                     SHWstrps[SHWlast]++; SHWdigits[SHWlast]+=strip->GetNDaughters();
01004                   }
01005                 }
01006               }
01007 
01008               if(simrec){
01009                 if(PhadX*PhadX+PhadY*PhadY+PhadZ*PhadZ>0.0){
01010                   SHWdirTrue[SHWlast]=PhadZ/sqrt(PhadX*PhadX+PhadY*PhadY+PhadZ*PhadZ);
01011                 }
01012               }
01013             
01014               MSG("AtNuTreeModule",Msg::kDebug)
01015                 << " RESULTS FROM SHOWER " << endl
01016                 << " ------------------- " << endl
01017                 << " SHWplns = " << SHWplns[SHWlast] << endl
01018                 << " SHWstrps = " << SHWstrps[SHWlast] << endl
01019                 << " SHWdigits = " << SHWdigits[SHWlast] << endl
01020                 << " SHWvtxpln = " << SHWvtxpln[SHWlast] << endl
01021                 << " SHWbegpln = " << SHWbegpln[SHWlast] << endl
01022                 << " SHWendpln = " << SHWendpln[SHWlast] << endl
01023                 << " SHWtotPH = " << SHWtotPH[SHWlast] << endl
01024                 << " SHWpshwX = " << SHWpshwX[SHWlast] << endl
01025                 << " SHWpshwY = " << SHWpshwY[SHWlast] << endl
01026                 << " SHWpshwZ = " << SHWpshwZ[SHWlast] << endl
01027                 << " SHWwidthU = " << SHWwidthU[SHWlast] << endl
01028                 << " SHWwidthV = " << SHWwidthV[SHWlast] << endl
01029                 << " SHWvtxX = " << SHWvtxX[SHWlast] << endl
01030                 << " SHWvtxY = " << SHWvtxY[SHWlast] << endl
01031                 << " SHWvtxZ = " << SHWvtxZ[SHWlast] << endl
01032                 << " SHWdir = " << SHWdir[SHWlast] << endl
01033                 << " SHWdirTrue = " << SHWdirTrue[SHWlast] << endl
01034                 << " SHWvtxshw = " << SHWvtxshw[SHWlast] << endl
01035                 << " SHWdirTrk = " << SHWdirTrk[SHWlast] << endl
01036                 << " SHWenergyPH = " << SHWenergyPH[SHWlast] << endl
01037                 << " SHWenergyNstrps = " << SHWenergyNstrps[SHWlast] << endl
01038                 << " SHWreseeded = " << SHWreseeded[SHWlast] << endl;
01039 
01040               SHWlast++;        
01041             }
01042           }
01043         }
01044       }
01045 
01046       // FITTED TRACKS
01047       if(tob->InheritsFrom("CandFitTrackAtNuListHandle")&&!FIT){
01048         CandFitTrackAtNuListHandle* fitlist = (CandFitTrackAtNuListHandle*)(tob);
01049         MSG("AtNuTreeModule",Msg::kDebug) << " ... found CandFitTrackAtNuListHandle " << endl;
01050         FIT=1;
01051 
01052         Int_t flag;
01053         Double_t dir,scr,tmpscr,maxscr;
01054 
01055         Nfits=0; FITlast=0;
01056         CandFitTrackAtNuHandle* fit=0; 
01057         flag=1; maxscr=9999;
01058         while(fit||flag){
01059           fit=0; 
01060           flag=0; tmpscr=0;
01061           TIter fititr(fitlist->GetDaughterIterator());
01062           while(CandFitTrackAtNuHandle* fithandle = dynamic_cast<CandFitTrackAtNuHandle*>(fititr())){
01063             if(fithandle){
01064               if(fithandle->GetEndPlane()>fithandle->GetBegPlane()) scr=fithandle->GetEndPlane()-fithandle->GetBegPlane(); else scr=fithandle->GetBegPlane()-fithandle->GetEndPlane();
01065               if(scr>0&&scr<maxscr&&scr>tmpscr){
01066                 tmpscr=scr; fit=fithandle;
01067               } 
01068             }
01069           }
01070           if(fit){
01071             Nfits++; maxscr=tmpscr;
01072             if(FITlast<3){
01073               MSG("AtNuTreeModule",Msg::kDebug) << "  fitted track: " << FITlast << endl;
01074               dir=3.0e8*fit->GetTimeSlope();                
01075 
01076               FITcharge[FITlast]=fit->GetEMCharge();
01077               FITchisq[FITlast]=fit->GetChi2();
01078               FITchisqlin[FITlast]=fit->GetChi2Lin();
01079               FITQPmean[FITlast]=fit->GetQPmean();
01080               FITQPerr[FITlast]=fit->GetQPerr();
01081               FITQPcorr[FITlast]=fit->GetQPcorr();
01082               FITQPwidth[FITlast]=fit->GetQPwidth();
01083               FITQPplns[FITlast]=fit->GetQPplns();
01084               FITmomentumCurve[FITlast]=fit->GetMomentumCurve();
01085               FITmomentumCurveErr[FITlast]=fit->GetMomentumCurveErr();
01086               FITpass[FITlast]=fit->GetPass();
01087                 
01088               if(dir>=0.0){ 
01089                 FITvtxpln[FITlast]=fit->GetVtxPlane();
01090                 FITbegpln[FITlast]=fit->GetBegPlane();
01091                 FITendpln[FITlast]=fit->GetEndPlane();
01092               }
01093               else{
01094                 FITvtxpln[FITlast]=fit->GetVtxPlane();
01095                 FITbegpln[FITlast]=fit->GetEndPlane();
01096                 FITendpln[FITlast]=fit->GetBegPlane();
01097               }
01098 
01099               MSG("AtNuTreeModule",Msg::kDebug)
01100                 << " RESULTS FROM FITTED TRACK " << endl
01101                 << " ------------------------- " << endl
01102                 << " FITcputime = " << FITcputime[FITlast] << endl    
01103                 << " FITvtxpln = " << FITvtxpln[FITlast] << endl 
01104                 << " FITbegpln = " << FITbegpln[FITlast] << endl
01105                 << " FITendpln = " << FITendpln[FITlast] << endl        
01106                 << " FITcharge = " << FITcharge[FITlast] << endl
01107                 << " FITchisqlin = " << FITchisqlin[FITlast] << endl
01108                 << " FITchisq = " << FITchisq[FITlast] << endl
01109                 << " FITQPmean = " << FITQPmean[FITlast] << endl
01110                 << " FITQPerr = " << FITQPerr[FITlast] << endl
01111                 << " FITQPcorr = " << FITQPcorr[FITlast] << endl
01112                 << " FITQPwidth = " << FITQPwidth[FITlast] << endl
01113                 << " FITQPplns = " << FITQPplns[FITlast] << endl
01114                 << " FITmomentumCurve = " << FITmomentumCurve[FITlast] << endl
01115                 << " FITmomentumCurveErr = " << FITmomentumCurveErr[FITlast] << endl
01116                 << " FITpass = " << FITpass[FITlast] << endl;
01117                 
01118               FITlast++;
01119             }
01120           }
01121         }
01122       }
01123 
01124       MSG("AtNuTreeModule",Msg::kDebug) << " ... next object?" << endl;
01125     }
01126   }
01127 
01128   MSG("AtNuTreeModule",Msg::kDebug) << " *** END OF CANDRECORD *** " << endl;
01129 
01130   for(i=0;i<500;i++){
01131     fTotStrpList[i].Clear();
01132     fTrkStrpList[i].Clear();
01133     fShwStrpList[i].Clear();
01134     fMCStrpList[i].Clear();
01135   }
01136 
01137 
01138   /***************************
01139    * S A V E   T O   F I L E *
01140    ***************************/
01141 
01142   MSG("AtNuTreeModule",Msg::kDebug) << " *** SAVE TO FILE *** " << endl;
01143   if(!fAtNuFile && run>0){
01144     TDirectory* tmpd = gDirectory;
01145 
01146     //TString filename("./results/atnutree");
01147     //if(run>=0){ filename.Append("."); filename+=run; }
01148     //if(subrun>=0){ filename.Append("."); filename+=subrun; }
01149     //filename.Append(".root");
01150     //TString filename("atnutree.root");
01151     TString filename(fAtNuFileName.Data());
01152     filename.Append(".root");
01153     MSG("AtNuTreeModule",Msg::kDebug) << "      ..." << filename.Data() << endl;
01154 
01155     fAtNuFile = new TFile(filename.Data(),"RECREATE");
01156     fAtNuTree = new TTree("AtNuTree","AtNuTree");
01157 
01158     fAtNuTree->SetAutoSave(100);
01159 
01160     fAtNuTree->Branch("run",&run,"run/I");
01161     fAtNuTree->Branch("subrun",&subrun,"subrun/I");
01162     fAtNuTree->Branch("snarl",&snarl,"snarl/I");
01163     fAtNuTree->Branch("runtype",&runtype,"runtype/I");
01164     fAtNuTree->Branch("trigsrc",&trigsrc,"trigsrc/I");  
01165     fAtNuTree->Branch("date",&date,"date/I");
01166     fAtNuTree->Branch("time",&time,"time/I");
01167     fAtNuTree->Branch("timeframe",&timeframe,"timeframe/I");
01168     fAtNuTree->Branch("trigtimeraw",&trigtimeraw,"trigtimeraw/D");
01169     fAtNuTree->Branch("trigtimecorr",&trigtimecorr,"trigtimecorr/D");
01170 
01171     fAtNuTree->Branch("Ndigits",&Ndigits,"Ndigits/I");
01172     fAtNuTree->Branch("Nstrps",&Nstrps,"Nstrps/I");
01173     fAtNuTree->Branch("Nplns",&Nplns,"Nplns/I");
01174     fAtNuTree->Branch("Ustrps",&Ustrps,"Ustrps/I");
01175     fAtNuTree->Branch("Uplns",&Uplns,"Uplns/I");
01176     fAtNuTree->Branch("Vstrps",&Vstrps,"Vstrps/I");
01177     fAtNuTree->Branch("Vplns",&Vplns,"Vplns/I");
01178     fAtNuTree->Branch("begpln",&begpln,"begpln/I");
01179     fAtNuTree->Branch("endpln",&endpln,"endpln/I"); 
01180     fAtNuTree->Branch("Nmuplns",&Nmuplns,"Nmuplns/I");
01181     
01182     fAtNuTree->Branch("totPH",&totPH,"totPH/D");
01183 
01184     fAtNuTree->Branch("IDnu",&IDnu,"IDnu/I");
01185     fAtNuTree->Branch("IDact",&IDact,"IDact/I");
01186     fAtNuTree->Branch("IDboson",&IDboson,"IDboson/I");
01187     fAtNuTree->Branch("IDtarget",&IDtarget,"IDtarget/I");     
01188     fAtNuTree->Branch("IDres",&IDres,"IDres/I"); 
01189     fAtNuTree->Branch("x",&x,"x/D"); 
01190     fAtNuTree->Branch("y",&y,"y/D"); 
01191     fAtNuTree->Branch("Q2",&Q2,"Q2/D"); 
01192     fAtNuTree->Branch("W2",&W2,"W2/D"); 
01193     fAtNuTree->Branch("EMfrac",&EMfrac,"EMfrac/D");
01194     fAtNuTree->Branch("Xsection",&Xsection,"Xsection/D");
01195     fAtNuTree->Branch("PnuX",&PnuX,"PnuX/D"); 
01196     fAtNuTree->Branch("PnuY",&PnuY,"PnuY/D"); 
01197     fAtNuTree->Branch("PnuZ",&PnuZ,"PnuZ/D");
01198     fAtNuTree->Branch("Enu",&Enu,"Enu/D"); 
01199     fAtNuTree->Branch("PmuX",&PmuX,"PmuX/D"); 
01200     fAtNuTree->Branch("PmuY",&PmuY,"PmuY/D"); 
01201     fAtNuTree->Branch("PmuZ",&PmuZ,"PmuZ/D"); 
01202     fAtNuTree->Branch("Emu",&Emu,"Emu/D");
01203     fAtNuTree->Branch("PelX",&PelX,"PelX/D"); 
01204     fAtNuTree->Branch("PelY",&PelY,"PelY/D"); 
01205     fAtNuTree->Branch("PelZ",&PelZ,"PelZ/D"); 
01206     fAtNuTree->Branch("Eel",&Eel,"Eel/D"); 
01207     fAtNuTree->Branch("PhadX",&PhadX,"PhadX/D"); 
01208     fAtNuTree->Branch("PhadY",&PhadY,"PhadY/D"); 
01209     fAtNuTree->Branch("PhadZ",&PhadZ,"PhadZ/D"); 
01210     fAtNuTree->Branch("Ehad",&Ehad,"Ehad/D"); 
01211     fAtNuTree->Branch("PtargX",&PtargX,"PtargX/D"); 
01212     fAtNuTree->Branch("PtargY",&PtargY,"PtargY/D"); 
01213     fAtNuTree->Branch("PtargZ",&PtargZ,"PtargZ/D"); 
01214     fAtNuTree->Branch("Etarg",&Etarg,"Etarg/D");
01215     fAtNuTree->Branch("vtxX",&vtxX,"vtxX/D");
01216     fAtNuTree->Branch("vtxY",&vtxY,"vtxY/D");
01217     fAtNuTree->Branch("vtxZ",&vtxZ,"vtxZ/D"); 
01218     fAtNuTree->Branch("muvtxX",&muvtxX,"muvtxX/D");
01219     fAtNuTree->Branch("muvtxY",&muvtxY,"muvtxY/D");
01220     fAtNuTree->Branch("muvtxZ",&muvtxZ,"muvtxZ/D"); 
01221     fAtNuTree->Branch("muvtxR",&muvtxR,"muvtxR/D");
01222     fAtNuTree->Branch("muvtxpln",&muvtxpln,"muvtxpln/I");
01223     fAtNuTree->Branch("muendvtxX",&muendvtxX,"muendvtxX/D");
01224     fAtNuTree->Branch("muendvtxY",&muendvtxY,"muendvtxY/D");
01225     fAtNuTree->Branch("muendvtxZ",&muendvtxZ,"muendvtxZ/D"); 
01226     fAtNuTree->Branch("muendvtxR",&muendvtxR,"muendvtxR/D"); 
01227     fAtNuTree->Branch("muendvtxpln",&muendvtxpln,"muendvtxpln/I"); 
01228     fAtNuTree->Branch("mupbeg",&mupbeg,"mupbeg/D");
01229     fAtNuTree->Branch("mupend",&mupend,"mupend/D");
01230 
01231     fAtNuTree->Branch("Ntrks",&Ntrks,"Ntrks/I");
01232     fAtNuTree->Branch("TRKlast",&TRKlast,"TRKlast/I"); 
01233     fAtNuTree->Branch("TRKcputime",&TRKcputime,"TRKcputime/D");
01234     fAtNuTree->Branch("TRKplns",TRKplns,"TRKplns[3]/I");
01235     fAtNuTree->Branch("TRKstrps",TRKstrps,"TRKstrps[3]/I");
01236     fAtNuTree->Branch("TRKdigits",TRKdigits,"TRKdigits[3]/I");
01237     fAtNuTree->Branch("TRKvtxpln",TRKvtxpln,"TRKvtxpln[3]/I");
01238     fAtNuTree->Branch("TRKbegpln",TRKbegpln,"TRKbegpln[3]/I");
01239     fAtNuTree->Branch("TRKendpln", TRKendpln,"TRKendpln[3]/I");
01240     fAtNuTree->Branch("TRKtrkplns",TRKtrkplns,"TRKtrkplns[3]/I");
01241     fAtNuTree->Branch("TRKtrkPH",TRKtrkPH,"TRKtrkPH[3]/D");
01242     fAtNuTree->Branch("TRKshwPH",TRKshwPH,"TRKshwPH[3]/D");
01243     fAtNuTree->Branch("TRKassocPH",TRKassocPH,"TRKassocPH[3]/D");
01244     fAtNuTree->Branch("TRKassocPHfrac",TRKassocPHfrac,"TRKassocPHfrac[3]/D");
01245     fAtNuTree->Branch("TRKpbegX",TRKpbegX,"TRKpbegX[3]/D");
01246     fAtNuTree->Branch("TRKpbegY",TRKpbegY,"TRKpbegY[3]/D");
01247     fAtNuTree->Branch("TRKpbegZ",TRKpbegZ,"TRKpbegZ[3]/D");
01248     fAtNuTree->Branch("TRKpendX",TRKpendX,"TRKpendX[3]/D");
01249     fAtNuTree->Branch("TRKpendY",TRKpendY,"TRKpendY[3]/D");
01250     fAtNuTree->Branch("TRKpendZ",TRKpendZ,"TRKpendZ[3]/D");
01251     fAtNuTree->Branch("TRKplinX",TRKplinX,"TRKplinX[3]/D");
01252     fAtNuTree->Branch("TRKplinY",TRKplinY,"TRKplinY[3]/D");
01253     fAtNuTree->Branch("TRKplinZ",TRKplinZ,"TRKplinZ[3]/D");
01254     fAtNuTree->Branch("TRKbegvtxX",TRKbegvtxX,"TRKbegvtxX[3]/D");
01255     fAtNuTree->Branch("TRKbegvtxY",TRKbegvtxY,"TRKbegvtxY[3]/D");
01256     fAtNuTree->Branch("TRKbegvtxZ",TRKbegvtxZ,"TRKbegvtxZ[3]/D");
01257     fAtNuTree->Branch("TRKbegvtxR",TRKbegvtxR,"TRKbegvtxR[3]/D");
01258     fAtNuTree->Branch("TRKbegvtxRdigits",TRKbegvtxRdigits,"TRKbegvtxRdigits[3]/D");
01259     fAtNuTree->Branch("TRKbegplndigits",TRKbegplndigits,"TRKbegplndigits[3]/I");
01260     fAtNuTree->Branch("TRKbegtrace",TRKbegtrace,"TRKbegtrace[3]/D");
01261     fAtNuTree->Branch("TRKbegtraceZ",TRKbegtraceZ,"TRKbegtraceZ[3]/D");
01262     fAtNuTree->Branch("TRKbegvtxUwidth",TRKbegvtxUwidth,"TRKbegvtxUwidth[3]/D");
01263     fAtNuTree->Branch("TRKbegvtxUmean",TRKbegvtxUmean,"TRKbegvtxUmean[3]/D");
01264     fAtNuTree->Branch("TRKbegvtxVwidth",TRKbegvtxVwidth,"TRKbegvtxVwidth[3]/D");
01265     fAtNuTree->Branch("TRKbegvtxVmean",TRKbegvtxVmean,"TRKbegvtxVmean[3]/D");
01266     fAtNuTree->Branch("TRKbegvtxRmax",TRKbegvtxRmax,"TRKbegvtxRmax[3]/D");
01267     fAtNuTree->Branch("TRKbegvtxQmax",TRKbegvtxQmax,"TRKbegvtxQmax[3]/D");
01268     fAtNuTree->Branch("TRKendvtxX",TRKendvtxX,"TRKendvtxX[3]/D");
01269     fAtNuTree->Branch("TRKendvtxY",TRKendvtxY,"TRKendvtxY[3]/D");
01270     fAtNuTree->Branch("TRKendvtxZ",TRKendvtxZ,"TRKendvtxZ[3]/D");
01271     fAtNuTree->Branch("TRKendvtxR",TRKendvtxR,"TRKendvtxR[3]/D");
01272     fAtNuTree->Branch("TRKendvtxRdigits",TRKendvtxRdigits,"TRKendvtxRdigits[3]/D");
01273     fAtNuTree->Branch("TRKendplndigits",TRKendplndigits,"TRKendplndigits[3]/I");
01274     fAtNuTree->Branch("TRKendtrace",TRKendtrace,"TRKendtrace[3]/D");
01275     fAtNuTree->Branch("TRKendtraceZ",TRKendtraceZ,"TRKendtraceZ[3]/D");
01276     fAtNuTree->Branch("TRKendvtxUwidth",TRKendvtxUwidth,"TRKendvtxUwidth[3]/D");
01277     fAtNuTree->Branch("TRKendvtxUmean",TRKendvtxUmean,"TRKendvtxUmean[3]/D");
01278     fAtNuTree->Branch("TRKendvtxVwidth",TRKendvtxVwidth,"TRKendvtxVwidth[3]/D");
01279     fAtNuTree->Branch("TRKendvtxVmean",TRKendvtxVmean,"TRKendvtxVmean[3]/D");
01280     fAtNuTree->Branch("TRKendvtxRmax",TRKendvtxRmax,"TRKendvtxRmax[3]/D");
01281     fAtNuTree->Branch("TRKendvtxQmax",TRKendvtxQmax,"TRKendvtxQmax[3]/D");
01282     fAtNuTree->Branch("TRKdir", TRKdir,"TRKdir[3]/D");
01283     fAtNuTree->Branch("TRKdirTrue", TRKdirTrue,"TRKdirTrue[3]/D");
01284     fAtNuTree->Branch("TRKdirTimeSlope", TRKdirTimeSlope,"TRKdirTimeSlope[3]/D");
01285     fAtNuTree->Branch("TRKdirTimeScatter",TRKdirTimeScatter,"TRKdirTimeScatter[3]/D");
01286     fAtNuTree->Branch("TRKbegTimeFitRms",TRKbegTimeFitRms,"TRKbegTimeFitRms[3]/D");
01287     fAtNuTree->Branch("TRKbegTimeFitNdf",TRKbegTimeFitNdf,"TRKbegTimeFitNdf[3]/I");
01288     fAtNuTree->Branch("TRKendTimeFitRms",TRKendTimeFitRms,"TRKendTimeFitRms[3]/D");
01289     fAtNuTree->Branch("TRKendTimeFitNdf",TRKendTimeFitNdf,"TRKendTimeFitNdf[3]/I");
01290     fAtNuTree->Branch("TRKbegvtxshw",TRKbegvtxshw,"TRKbegvtxshw[3]/I");
01291     fAtNuTree->Branch("TRKbegvtxshwstrips", TRKbegvtxshwstrips,"TRKbegvtxshwstrips[3]/I");
01292     fAtNuTree->Branch("TRKbegvtxshwreseeded", TRKbegvtxshwreseeded,"TRKbegvtxshwreseeded[3]/I");
01293     fAtNuTree->Branch("TRKendvtxshw",TRKendvtxshw,"TRKendvtxshw[3]/I");
01294     fAtNuTree->Branch("TRKendvtxshwstrips", TRKendvtxshwstrips,"TRKendvtxshwstrips[3]/I");
01295     fAtNuTree->Branch("TRKendvtxshwreseeded", TRKendvtxshwreseeded,"TRKendvtxshwreseeded[3]/I");
01296     fAtNuTree->Branch("TRKrange",TRKrange,"TRKrange[3]/D");
01297     fAtNuTree->Branch("TRKrangeSteel",TRKrangeSteel,"TRKrangeSteel[3]/D");
01298     fAtNuTree->Branch("TRKmomentumRange", TRKmomentumRange,"TRKmomentumRange[3]/D");
01299     fAtNuTree->Branch("TRKscore", TRKscore, "TRKscore[3]/D");
01300     fAtNuTree->Branch("TRKscoreMuEff", TRKscoreMuEff, "TRKscoreMuEff[3]/D");
01301     fAtNuTree->Branch("TRKscoreMuPur", TRKscoreMuPur, "TRKscoreMuPur[3]/D");
01302     fAtNuTree->Branch("TRKscorePiEff", TRKscorePiEff, "TRKscorePiEff[3]/D"); 
01303     fAtNuTree->Branch("TRKscorePiPur", TRKscorePiPur, "TRKscorePiPur[3]/D"); 
01304     fAtNuTree->Branch("TRKreseeded", TRKreseeded, "TRKreseeded[3]/I");
01305 
01306     fAtNuTree->Branch("Nfits",&Nfits,"Nfits/I");
01307     fAtNuTree->Branch("FITlast",&FITlast,"FITlast/I"); 
01308     fAtNuTree->Branch("FITcputime",FITcputime,"FITcputime[3]/D");
01309     fAtNuTree->Branch("FITvtxpln",FITvtxpln,"FITvtxpln[3]/I");
01310     fAtNuTree->Branch("FITbegpln",FITbegpln,"FITbegpln[3]/I");
01311     fAtNuTree->Branch("FITendpln", FITendpln,"FITendpln[3]/I");
01312     fAtNuTree->Branch("FITcharge",FITcharge,"FITcharge[3]/D");
01313     fAtNuTree->Branch("FITchisqlin", FITchisqlin, "FITchisqlin[3]/D");
01314     fAtNuTree->Branch("FITchisq", FITchisq, "FITchisq[3]/D");
01315     fAtNuTree->Branch("FITQPmean", FITQPmean, "FITQPmean[3]/D");
01316     fAtNuTree->Branch("FITQPerr", FITQPerr, "FITQPerr[3]/D");
01317     fAtNuTree->Branch("FITQPcorr", FITQPcorr, "FITQPcorr[3]/D");
01318     fAtNuTree->Branch("FITQPwidth",FITQPwidth,"FITQPwidth[3]/D");
01319     fAtNuTree->Branch("FITQPplns", FITQPplns, "FITQPplns[3]/I");
01320     fAtNuTree->Branch("FITmomentumCurve", FITmomentumCurve,"FITmomentumCurve[3]/D");
01321     fAtNuTree->Branch("FITmomentumCurveErr", FITmomentumCurveErr,"FITmomentumCurveErr[3]/D");
01322     fAtNuTree->Branch("FITpass", FITpass, "FITpass[3]/I");
01323 
01324     fAtNuTree->Branch("Nshws",&Nshws,"Nshws/I");
01325     fAtNuTree->Branch("SHWlast",&SHWlast,"SHWlast/I");
01326     fAtNuTree->Branch("SHWcputime",&SHWcputime,"SHWcputime/D");
01327     fAtNuTree->Branch("SHWplns",SHWplns,"SHWplns[3]/I");
01328     fAtNuTree->Branch("SHWstrps",SHWstrps,"SHWstrps[3]/I");
01329     fAtNuTree->Branch("SHWdigits",SHWdigits,"SHWdigits[3]/I");
01330     fAtNuTree->Branch("SHWvtxpln",SHWvtxpln,"SHWvtxpln[3]/I");
01331     fAtNuTree->Branch("SHWbegpln",SHWbegpln,"SHWbegpln[3]/I");
01332     fAtNuTree->Branch("SHWendpln",SHWendpln,"SHWendpln[3]/I");
01333     fAtNuTree->Branch("SHWtotPH",SHWtotPH,"SHWtotPH[3]/D");
01334     fAtNuTree->Branch("SHWpshwX",SHWpshwX,"SHWpshwX[3]/D");
01335     fAtNuTree->Branch("SHWpshwY",SHWpshwY,"SHWpshwY[3]/D");
01336     fAtNuTree->Branch("SHWpshwZ",SHWpshwZ,"SHWpshwZ[3]/D");
01337     fAtNuTree->Branch("SHWwidthU",SHWwidthU,"SHWwidthU[3]/D");
01338     fAtNuTree->Branch("SHWwidthV",SHWwidthV,"SHWwidthV[3]/D");
01339     fAtNuTree->Branch("SHWvtxX",SHWvtxX,"SHWvtxX[3]/D");
01340     fAtNuTree->Branch("SHWvtxY",SHWvtxY,"SHWvtxY[3]/D");
01341     fAtNuTree->Branch("SHWvtxZ",SHWvtxZ,"SHWvtxZ[3]/D");
01342     fAtNuTree->Branch("SHWdir",SHWdir,"SHWdir[3]/D");
01343     fAtNuTree->Branch("SHWdirTrue",SHWdirTrue,"SHWdirTrue[3]/D");
01344     fAtNuTree->Branch("SHWvtxshw",SHWvtxshw,"SHWvtxshw[3]/I");
01345     fAtNuTree->Branch("SHWdirTrk",SHWdirTrk,"SHWdirTrk[3]/D");
01346     fAtNuTree->Branch("SHWenergyPH",SHWenergyPH,"SHWenergyPH[3]/D");
01347     fAtNuTree->Branch("SHWenergyNstrps",SHWenergyNstrps,"SHWenergyNstrps[3]/D");
01348     fAtNuTree->Branch("SHWreseeded",SHWreseeded,"SHWreseeded[3]/I");
01349 
01350     tmpd->cd();
01351   }
01352 
01353   if(fAtNuFile){
01354     MSG("AtNuTreeModule",Msg::kDebug) << " ***** FILL TREE ***** " << endl;
01355     TDirectory* tmpd = gDirectory;   
01356     fAtNuFile->cd();
01357     fAtNuTree->Fill();
01358     tmpd->cd();
01359     MSG("AtNuTreeModule",Msg::kDebug) << " ***** TREE FILLED ***** " << endl;
01360   }  
01361 
01362   MSG("AtNuTreeModule",Msg::kInfo) << " *** AtNuTreeModule::Ana() FINISHED *** " << endl;
01363   return result;
01364 }

void AtNuTreeModule::BeginJob (  )  [virtual]

Implement for notification of begin of job

Reimplemented from JobCModule.

Definition at line 74 of file AtNuTreeModule.cxx.

References StrpCell, and StrpExtr.

00075 {
00076   Int_t k;
00077 
00078   Int_t tmpStrpExtr[8]={ 0, 28, 56, 76, 96, 116, 136, 164 };
00079   Int_t tmpStrpCell[28]={ 0, 1, 2, 3, 4, 5, 6, 
00080                           7, 8, 9, 10, 11, 12, 13, 
00081                           14, 15, 16, 17, 18, 19, 20, 
00082                           21, 22, 23, 24, 25, 26, 27 };
00083 
00084   for(k=0;k<8;k++){
00085     StrpExtr[k]=tmpStrpExtr[k];
00086   }
00087 
00088   for(k=0;k<28;k++){
00089     StrpCell[k]=tmpStrpCell[k];
00090   } 
00091 }

void AtNuTreeModule::Config ( const Registry r  )  [virtual]

Return the actual configuration. If your module directly pulls its configuration from the fConfig Registry, you don't need to override this. Override if you have local config variables.

Reimplemented from JobCModule.

Definition at line 1376 of file AtNuTreeModule.cxx.

References fAtNuFileName, and Registry::Get().

01377 {
01378   const char* tmpchar = 0;
01379 
01380   if(r.Get("AtNuFileName",tmpchar)) fAtNuFileName=tmpchar;
01381   cout << " ATNUFILENAME = " << fAtNuFileName.Data() << endl;
01382 }

const Registry & AtNuTreeModule::DefaultConfig (  )  const [virtual]

Get the default configuration registry. This should normally be overridden. One useful idiom is to implement it like:

const Registry& MyModule::DefaultConfig() const { static Registry cfg; // never is destroyed if (cfg.Size()) return cfg; // already filled it // set defaults: cfg.Set("TheAnswer",42); cfg.Set("Units","unknown"); return cfg; }

Reimplemented from JobCModule.

Definition at line 1366 of file AtNuTreeModule.cxx.

References fAtNuFileName, Registry::LockValues(), Registry::Set(), and Registry::UnLockValues().

01367 {
01368   static Registry r;
01369   r.SetName("AtNuTreeModule.config.default");
01370   r.UnLockValues();
01371   r.Set("AtNuFileName",fAtNuFileName);
01372   r.LockValues();
01373   return r;
01374 }

void AtNuTreeModule::EndJob (  )  [virtual]

Implement for notification of end of job

Reimplemented from JobCModule.

Definition at line 1392 of file AtNuTreeModule.cxx.

References fAtNuFile, fAtNuTree, Msg::kInfo, and MSG.

01393 {  
01394   if(fAtNuFile){
01395     MSG("AtNuTreeModule",Msg::kInfo) << " ***** WRITING TO FILE " << fAtNuFile->GetName() << " ***** " << endl;
01396     TDirectory* tmpd = gDirectory;
01397     fAtNuFile->cd();
01398     fAtNuTree->Write();
01399     fAtNuFile->Close();
01400     tmpd->cd();
01401     MSG("AtNuTreeModule",Msg::kInfo) << " ***** FILE CLOSED ***** " << endl;
01402   }
01403 }

void AtNuTreeModule::HandleCommand ( JobCommand command  )  [virtual]

Implement to handle a JobCommand

Reimplemented from JobCModule.

Definition at line 1384 of file AtNuTreeModule.cxx.

References JobCommand::PopCmd(), and JobCommand::PopOpt().

01385 {
01386   TString cmd = command->PopCmd();
01387   if(cmd=="Set"){
01388     TString opt = command->PopOpt();
01389   }
01390 }


Member Data Documentation

Int_t AtNuTreeModule::begpln [private]

Definition at line 58 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::date [private]

Definition at line 45 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Eel [private]

Definition at line 87 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Ehad [private]

Definition at line 91 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::EMfrac [private]

Definition at line 75 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Emu [private]

Definition at line 83 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::endpln [private]

Definition at line 59 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Enu [private]

Definition at line 79 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Etarg [private]

Definition at line 95 of file AtNuTreeModule.h.

Referenced by Ana().

TFile* AtNuTreeModule::fAtNuFile [private]

Definition at line 28 of file AtNuTreeModule.h.

Referenced by Ana(), and EndJob().

TString AtNuTreeModule::fAtNuFileName [private]

Definition at line 30 of file AtNuTreeModule.h.

Referenced by Ana(), Config(), and DefaultConfig().

TTree* AtNuTreeModule::fAtNuTree [private]

Definition at line 29 of file AtNuTreeModule.h.

Referenced by Ana(), and EndJob().

Int_t AtNuTreeModule::FITbegpln[3] [private]

Definition at line 193 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITcharge[3] [private]

Definition at line 195 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITchisq[3] [private]

Definition at line 197 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITchisqlin[3] [private]

Definition at line 196 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITcputime[3] [private]

Definition at line 191 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::FITendpln[3] [private]

Definition at line 194 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::FITlast [private]

Definition at line 190 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITmomentumCurve[3] [private]

Definition at line 203 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITmomentumCurveErr[3] [private]

Definition at line 204 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::FITpass[3] [private]

Definition at line 205 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITQPcorr[3] [private]

Definition at line 200 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITQPerr[3] [private]

Definition at line 199 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITQPmean[3] [private]

Definition at line 198 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::FITQPplns[3] [private]

Definition at line 202 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::FITQPwidth[3] [private]

Definition at line 201 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::FITvtxpln[3] [private]

Definition at line 192 of file AtNuTreeModule.h.

Referenced by Ana().

TObjArray AtNuTreeModule::fMCStrpList[500] [private]

Definition at line 31 of file AtNuTreeModule.h.

Referenced by Ana().

TObjArray AtNuTreeModule::fShwStrpList[500] [private]

Definition at line 34 of file AtNuTreeModule.h.

Referenced by Ana().

TObjArray AtNuTreeModule::fTotStrpList[500] [private]

Definition at line 32 of file AtNuTreeModule.h.

Referenced by Ana().

TObjArray AtNuTreeModule::fTrkStrpList[500] [private]

Definition at line 33 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::IDact [private]

Definition at line 66 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::IDboson [private]

Definition at line 67 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::IDnu [private]

Definition at line 65 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::IDres [private]

Definition at line 69 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::IDtarget [private]

Definition at line 68 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::muendvtxpln [private]

Definition at line 108 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muendvtxR [private]

Definition at line 107 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muendvtxX [private]

Definition at line 104 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muendvtxY [private]

Definition at line 105 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muendvtxZ [private]

Definition at line 106 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::mupbeg [private]

Definition at line 109 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::mupend [private]

Definition at line 110 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::muvtxpln [private]

Definition at line 103 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muvtxR [private]

Definition at line 102 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muvtxX [private]

Definition at line 99 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muvtxY [private]

Definition at line 100 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::muvtxZ [private]

Definition at line 101 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Ndigits [private]

Definition at line 51 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Nfits [private]

Definition at line 189 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Nmuplns [private]

Definition at line 60 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Nplns [private]

Definition at line 53 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Nshws [private]

Definition at line 208 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Nstrps [private]

Definition at line 52 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Ntrks [private]

Definition at line 113 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PelX [private]

Definition at line 84 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PelY [private]

Definition at line 85 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PelZ [private]

Definition at line 86 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PhadX [private]

Definition at line 88 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PhadY [private]

Definition at line 89 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PhadZ [private]

Definition at line 90 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PmuX [private]

Definition at line 80 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PmuY [private]

Definition at line 81 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PmuZ [private]

Definition at line 82 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PnuX [private]

Definition at line 76 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PnuY [private]

Definition at line 77 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PnuZ [private]

Definition at line 78 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PtargX [private]

Definition at line 92 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PtargY [private]

Definition at line 93 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::PtargZ [private]

Definition at line 94 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Q2 [private]

Definition at line 72 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::run [private]

Definition at line 40 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::runtype [private]

Definition at line 43 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWbegpln[3] [private]

Definition at line 215 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWcputime [private]

Definition at line 210 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWdigits[3] [private]

Definition at line 213 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWdir[3] [private]

Definition at line 226 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWdirTrk[3] [private]

Definition at line 229 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWdirTrue[3] [private]

Definition at line 227 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWendpln[3] [private]

Definition at line 216 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWenergyNstrps[3] [private]

Definition at line 232 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWenergyPH[3] [private]

Definition at line 231 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWlast [private]

Definition at line 209 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWplns[3] [private]

Definition at line 211 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWpshwX[3] [private]

Definition at line 218 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWpshwY[3] [private]

Definition at line 219 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWpshwZ[3] [private]

Definition at line 220 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWreseeded[3] [private]

Definition at line 233 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWstrps[3] [private]

Definition at line 212 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWtotPH[3] [private]

Definition at line 217 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWvtxpln[3] [private]

Definition at line 214 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::SHWvtxshw[3] [private]

Definition at line 228 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWvtxX[3] [private]

Definition at line 223 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWvtxY[3] [private]

Definition at line 224 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWvtxZ[3] [private]

Definition at line 225 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWwidthU[3] [private]

Definition at line 221 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::SHWwidthV[3] [private]

Definition at line 222 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::snarl [private]

Definition at line 42 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::StrpCell[28] [private]

Definition at line 37 of file AtNuTreeModule.h.

Referenced by Ana(), and BeginJob().

Int_t AtNuTreeModule::StrpExtr[8] [private]

Definition at line 36 of file AtNuTreeModule.h.

Referenced by Ana(), and BeginJob().

Int_t AtNuTreeModule::subrun [private]

Definition at line 41 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::time [private]

Definition at line 46 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::timeframe [private]

Definition at line 47 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::totPH [private]

Definition at line 62 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::trigsrc [private]

Definition at line 44 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::trigtimecorr [private]

Definition at line 49 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::trigtimeraw [private]

Definition at line 48 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKassocPH[3] [private]

Definition at line 125 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKassocPHfrac[3] [private]

Definition at line 126 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegpln[3] [private]

Definition at line 120 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegplndigits[3] [private]

Definition at line 141 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegTimeFitNdf[3] [private]

Definition at line 169 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegTimeFitRms[3] [private]

Definition at line 168 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegtrace[3] [private]

Definition at line 142 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegtraceZ[3] [private]

Definition at line 143 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxQmax[3] [private]

Definition at line 149 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxR[3] [private]

Definition at line 139 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxRdigits[3] [private]

Definition at line 140 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxRmax[3] [private]

Definition at line 148 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegvtxshw[3] [private]

Definition at line 172 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegvtxshwreseeded[3] [private]

Definition at line 174 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKbegvtxshwstrips[3] [private]

Definition at line 173 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxUmean[3] [private]

Definition at line 145 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxUwidth[3] [private]

Definition at line 144 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxVmean[3] [private]

Definition at line 147 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxVwidth[3] [private]

Definition at line 146 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxX[3] [private]

Definition at line 136 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxY[3] [private]

Definition at line 137 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKbegvtxZ[3] [private]

Definition at line 138 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKcputime [private]

Definition at line 115 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKdigits[3] [private]

Definition at line 118 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKdir[3] [private]

Definition at line 164 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKdirTimeScatter[3] [private]

Definition at line 167 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKdirTimeSlope[3] [private]

Definition at line 166 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKdirTrue[3] [private]

Definition at line 165 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendpln[3] [private]

Definition at line 121 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendplndigits[3] [private]

Definition at line 155 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendTimeFitNdf[3] [private]

Definition at line 171 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendTimeFitRms[3] [private]

Definition at line 170 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendtrace[3] [private]

Definition at line 156 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendtraceZ[3] [private]

Definition at line 157 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxQmax[3] [private]

Definition at line 163 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxR[3] [private]

Definition at line 153 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxRdigits[3] [private]

Definition at line 154 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxRmax[3] [private]

Definition at line 162 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendvtxshw[3] [private]

Definition at line 175 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendvtxshwreseeded[3] [private]

Definition at line 177 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKendvtxshwstrips[3] [private]

Definition at line 176 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxUmean[3] [private]

Definition at line 159 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxUwidth[3] [private]

Definition at line 158 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxVmean[3] [private]

Definition at line 161 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxVwidth[3] [private]

Definition at line 160 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxX[3] [private]

Definition at line 150 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxY[3] [private]

Definition at line 151 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKendvtxZ[3] [private]

Definition at line 152 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKlast [private]

Definition at line 114 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKmomentumRange[3] [private]

Definition at line 180 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpbegX[3] [private]

Definition at line 127 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpbegY[3] [private]

Definition at line 128 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpbegZ[3] [private]

Definition at line 129 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpendX[3] [private]

Definition at line 130 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpendY[3] [private]

Definition at line 131 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKpendZ[3] [private]

Definition at line 132 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKplinX[3] [private]

Definition at line 133 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKplinY[3] [private]

Definition at line 134 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKplinZ[3] [private]

Definition at line 135 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKplns[3] [private]

Definition at line 116 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKrange[3] [private]

Definition at line 178 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKrangeSteel[3] [private]

Definition at line 179 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKreseeded[3] [private]

Definition at line 186 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKscore[3] [private]

Definition at line 181 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKscoreMuEff[3] [private]

Definition at line 182 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKscoreMuPur[3] [private]

Definition at line 183 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKscorePiEff[3] [private]

Definition at line 184 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKscorePiPur[3] [private]

Definition at line 185 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKshwPH[3] [private]

Definition at line 124 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKstrps[3] [private]

Definition at line 117 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::TRKtrkPH[3] [private]

Definition at line 123 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKtrkplns[3] [private]

Definition at line 122 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::TRKvtxpln[3] [private]

Definition at line 119 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Uplns [private]

Definition at line 55 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Ustrps [private]

Definition at line 54 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Vplns [private]

Definition at line 57 of file AtNuTreeModule.h.

Referenced by Ana().

Int_t AtNuTreeModule::Vstrps [private]

Definition at line 56 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::vtxX [private]

Definition at line 96 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::vtxY [private]

Definition at line 97 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::vtxZ [private]

Definition at line 98 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::W2 [private]

Definition at line 73 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::x [private]

Definition at line 70 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::Xsection [private]

Definition at line 74 of file AtNuTreeModule.h.

Referenced by Ana().

Double_t AtNuTreeModule::y [private]

Definition at line 71 of file AtNuTreeModule.h.

Referenced by Ana().


The documentation for this class was generated from the following files:
Generated on Wed Sep 10 22:50:50 2014 for loon by  doxygen 1.4.7