#include <AtNuTreeModule.h>
Inheritance diagram for AtNuTreeModule:

Public Member Functions | |
| AtNuTreeModule () | |
| ~AtNuTreeModule () | |
| void | BeginJob () |
| JobCResult | Ana (const MomNavigator *mom) |
| const Registry & | DefaultConfig () 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] |
|
|
Definition at line 61 of file AtNuTreeModule.cxx. 00061 : 00062 fAtNuFile(0), 00063 fAtNuTree(0), 00064 fAtNuFileName("atnutree") 00065 { 00066 00067 }
|
|
|
Definition at line 69 of file AtNuTreeModule.cxx. 00070 {
00071
00072 }
|
|
|
Implement this for read only access to the MomNavigator Reimplemented from JobCModule. Definition at line 93 of file AtNuTreeModule.cxx. References begpln, date, digit(), Eel, Ehad, REROOT_FLSHit::ELoss(), REROOT_NeuKin::EMFrac(), 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, CandDigitListHandle::GetAbsTime(), CandTrackAtNuHandle::GetAssocTrkPH(), CandTrackAtNuHandle::GetAssocTrkPHfrac(), CandRecoHandle::GetBegPlane(), PlexSEIdAltL::GetBestSEId(), CandRecord::GetCandHandleIter(), CandRecord::GetCandHeader(), CandStripHandle::GetCharge(), CandDigitHandle::GetCharge(), CandFitTrackHandle::GetChi2(), CandFitTrackAtNuHandle::GetChi2Lin(), RecDataRecord< T >::GetComponents(), CandShowerAtNuListHandle::GetCPUTime(), CandTrackAtNuListHandle::GetCPUTime(), CandHandle::GetDaughterIterator(), CandDeMuxDigitHandle::GetDeMuxDigitFlagWord(), 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(), CandHandle::GetNDaughters(), CandFitTrackHandle::GetPass(), CandStripHandle::GetPlane(), PlexPlaneId::GetPlane(), CandStripHandle::GetPlaneView(), UgliPlnHandle::GetPlaneView(), CandDigitHandle::GetPlexSEIdAltL(), 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(), CandStripHandle::GetStrip(), 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(), UgliPlnHandle::GetZ0(), REROOT_NeuKin::IAction(), REROOT_NeuKin::IBoson(), IDact, IDboson, IDnu, IDres, IDtarget, REROOT_NeuKin::INu(), REROOT_FLSHit::IPackedPEC(), REROOT_FLSHit::IPDG(), REROOT_NeuKin::IResonance(), CandTrackHandle::IsTPosValid(), REROOT_NeuKin::ITg(), REROOT_FLSHit::ITrack(), MSG, muendvtxpln, muendvtxR, muendvtxX, muendvtxY, muendvtxZ, mupbeg, mupend, muvtxpln, muvtxR, muvtxX, muvtxY, muvtxZ, Ndigits, Nfits, Nmuplns, Nplns, Nshws, Nstrps, Ntrks, REROOT_NeuKin::P4El1(), REROOT_NeuKin::P4Mu1(), REROOT_NeuKin::P4Neu(), REROOT_NeuKin::P4Shw(), REROOT_NeuKin::P4Tgt(), PelX, PelY, PelZ, PhadX, PhadY, PhadZ, PmuX, PmuY, PmuZ, PnuX, PnuY, PnuZ, PtargX, PtargY, PtargZ, REROOT_FLSHit::Ptot(), REROOT_NeuKin::Q2(), 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, REROOT_NeuKin::Sigma(), 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, REROOT_NeuKin::W2(), W2, REROOT_NeuKin::X(), x, REROOT_FLSHit::XBegin(), REROOT_FLSHit::XEnd(), Xsection, REROOT_NeuKin::Y(), 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 }
|
|
|
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 }
|
|
|
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 }
|
|
|
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 }
|
|
|
Implement for notification of end of job Reimplemented from JobCModule. Definition at line 1392 of file AtNuTreeModule.cxx. References fAtNuFile, fAtNuTree, 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 }
|
|
|
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 }
|
|
|
Definition at line 58 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 45 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 87 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 91 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 75 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 83 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 59 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 79 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 95 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 28 of file AtNuTreeModule.h. |
|
|
Definition at line 30 of file AtNuTreeModule.h. Referenced by Ana(), Config(), and DefaultConfig(). |
|
|
Definition at line 29 of file AtNuTreeModule.h. |
|
|
Definition at line 193 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 195 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 197 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 196 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 191 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 194 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 190 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 203 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 204 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 205 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 200 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 199 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 198 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 202 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 201 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 192 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 31 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 34 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 32 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 33 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 66 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 67 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 65 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 69 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 68 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 108 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 107 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 104 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 105 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 106 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 109 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 110 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 103 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 102 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 99 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 100 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 101 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 51 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 189 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 60 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 53 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 208 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 52 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 113 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 84 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 85 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 86 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 88 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 89 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 90 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 80 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 81 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 82 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 76 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 77 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 78 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 92 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 93 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 94 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 72 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 40 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 43 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 215 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 210 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 213 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 226 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 229 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 227 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 216 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 232 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 231 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 209 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 211 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 218 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 219 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 220 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 233 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 212 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 217 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 214 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 228 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 223 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 224 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 225 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 221 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 222 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 42 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 37 of file AtNuTreeModule.h. Referenced by Ana(), and BeginJob(). |
|
|
Definition at line 36 of file AtNuTreeModule.h. Referenced by Ana(), and BeginJob(). |
|
|
Definition at line 41 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 46 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 47 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 62 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 44 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 49 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 48 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 125 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 126 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 120 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 141 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 169 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 168 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 142 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 143 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 149 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 139 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 140 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 148 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 172 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 174 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 173 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 145 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 144 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 147 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 146 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 136 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 137 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 138 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 115 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 118 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 164 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 167 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 166 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 165 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 121 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 155 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 171 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 170 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 156 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 157 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 163 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 153 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 154 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 162 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 175 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 177 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 176 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 159 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 158 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 161 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 160 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 150 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 151 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 152 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 114 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 180 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 127 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 128 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 129 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 130 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 131 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 132 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 133 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 134 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 135 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 116 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 178 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 179 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 186 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 181 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 182 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 183 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 184 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 185 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 124 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 117 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 123 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 122 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 119 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 55 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 54 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 57 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 56 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 96 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 97 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 98 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 73 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 70 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 74 of file AtNuTreeModule.h. Referenced by Ana(). |
|
|
Definition at line 71 of file AtNuTreeModule.h. Referenced by Ana(). |
1.3.9.1