00001 00002 //$Id: NueMiniAna.cxx,v 1.15 2009/09/13 22:16:01 jjling Exp $ 00003 // 00004 //NueMini 00005 // 00006 //J Boehm 12/2007 00008 00009 #include "NueAna/NueMini.h" 00010 #include "NueAna/NueMiniAna.h" 00011 00012 #include "MessageService/MsgService.h" 00013 #include "TMath.h" 00014 #include "NueAna/NueRecord.h" 00015 #include "NueAna/NueStandard.h" 00016 #include "NueAna/NueHeader.h" 00017 00018 00019 CVSID("$Id: NueMiniAna.cxx,v 1.15 2009/09/13 22:16:01 jjling Exp $"); 00020 00021 00022 //------------------------------------------------------------------- 00023 void NueMiniAna::FillMini(NueRecord *nr, NueMini *nm) 00024 { 00025 if(!nr){ 00026 MSG("NueMiniAna", Msg::kError) << "No NueRecord Passed"<<endl; 00027 return; 00028 } 00029 00030 if(nr->GetHeader().GetRelease() != nm->fRelease){ 00031 MSG("NueMiniAna", Msg::kError) << "ReleaseType MisMatch: " 00032 << nr->GetHeader().GetRelease()<<" != "<<nm->fRelease<<endl; 00033 } 00034 if(nr->GetHeader().GetBeamType() != nm->fBeam){ 00035 MSG("NueMiniAna", Msg::kError) << "BeamType MisMatch: " 00036 << nr->GetHeader().GetBeamType()<<" != "<<nm->fBeam<<endl; 00037 } 00038 if(nr->GetHeader().GetVldContext().GetDetector() != nm->fDet){ 00039 MSG("NueMiniAna", Msg::kError) << "Detector MisMatch: " 00040 << nr->GetHeader().GetVldContext().GetDetector() 00041 <<" != "<<nm->fDet<<endl; 00042 } 00043 00044 nm->evtRecoNueEnergy = nr->srevent.phNueGeV; 00045 nm->evtRecoMEUEnergy = nr->srevent.phMip; 00046 00047 int tP = 0; int tLP = 0; float trkECC = 0; 00048 if(nr->srtrack.phCCGeV > -10){ 00049 trkECC = nr->srtrack.phCCGeV; 00050 tP = TMath::Abs(nr->srtrack.endPlane - nr->srtrack.begPlane); 00051 tLP = nr->srtrack.trklikePlanes; 00052 } 00053 nm->trkRecoCCEnergy = trkECC; 00054 nm->trkPlanes = tP; 00055 nm->trkEndPlane = nr->srtrack.endPlane; 00056 nm->trkBegPlane = nr->srtrack.begPlane; 00057 nm->trkLikePlanes = tLP; 00058 nm->nshower = nr->srevent.showers; 00059 nm->contPlanes = nr->shwfit.contPlaneCount050; 00060 00061 00062 if(nr->srshower.phCCGeV > -10) 00063 nm->shwRecoCCEnergy = nr->srshower.phCCGeV; 00064 else nm->shwRecoCCEnergy = 0; 00065 00066 nm->annpid_11inp = nr->ann.pid_11inp; 00067 nm->annpid_11inp_daikon04 = nr->ann.pid_11inp_daikon04; 00068 nm->annpid_14inp_daikon04 = nr->ann.pid_14inp_daikon04; 00069 nm->annpid = nr->ann.pid; 00070 00071 00072 nm->ssPID = nr->subshowervars.pid; 00073 00074 00075 //LEM variables 00076 nm->mcnnv_meanfracQmatched = nr->mcnnv.meanfracQmatched; 00077 nm->mcnnv_var2 = nr->mcnnv.mcnn_var2; 00078 nm->mcnnv_fracCCy = nr->mcnnv.fracCCy; 00079 nm->mcnnv_qtot = nr->mcnnv.qtot; 00080 nm->mcnnPID = nr->mcnnv.mcnn_var1; 00081 nm->mcnnMatch = nr->mcnnv.bestmatches; 00082 00083 nm->mcnnv_fracCC = nr->mcnnv.fracCC; 00084 nm->mcnnv_ymean = nr->mcnnv.ymean; 00085 nm->mcnnv_meanfracQmatched = nr->mcnnv.meanfracQmatched; 00086 00087 //truth values 00088 nm->shiEpi0 = nr->shi.epi0; 00089 nm->shiEmEnergy = nr->shi.emenergy; 00090 nm->nuEnergy = nr->mctrue.nuEnergy; 00091 nm->nuFlavor = nr->mctrue.nuFlavor; 00092 nm->nonOscNuFlavor = nr->mctrue.nonOscNuFlavor; 00093 nm->nueClass = nr->mctrue.fNueClass; 00094 00095 nm->nueOscProb = nr->mctrue.fOscProb; 00096 nm->interactionType = nr->mctrue.interactionType; 00097 nm->nuDCosX = nr->mctrue.nuDCosX; 00098 nm->nuDCosY = nr->mctrue.nuDCosY; 00099 nm->nuDCosZ = nr->mctrue.nuDCosZ; 00100 nm->hadronicY = nr->mctrue.hadronicY; 00101 nm->hadronicFinalState = nr->mctrue.hadronicFinalState; 00102 nm->w2 = nr->mctrue.w2; 00103 nm->q2 = nr->mctrue.q2; 00104 nm->bjorkenX = nr->mctrue.bjorkenX; 00105 nm->targetPX = nr->mctrue.targetPX; 00106 nm->targetPY = nr->mctrue.targetPY; 00107 nm->targetPZ = nr->mctrue.targetPZ; 00108 nm->targetEnergy = nr->mctrue.targetEnergy; 00109 nm->atomicNumber = nr->mctrue.atomicNumber; 00110 nm->atomicWeight = nr->mctrue.atomicWeight; 00111 nm->initialState = nr->mctrue.initialState; 00112 nm->resonanceCode = nr->mctrue.resonanceCode; 00113 00114 nm->skzpWeight = nr->fluxweights.totskzpweight; 00115 00116 00117 nm->ntrack = nr->srevent.tracks; 00118 nm->trkPass = nr->srtrack.passedFit; 00119 nm->endPlaneU = nr->srtrack.endPlaneU; 00120 nm->endPlaneV = nr->srtrack.endPlaneV; 00121 nm->deltaUVVtx = nr->srtrack.deltaUVVtx; 00122 nm->abCCPID = nr->anainfo.abCCPID; 00123 nm->roCCPID = nr->anainfo.roCCPID; 00124 00125 nm->mri_orig_roCCPID = nr->mri.orig_roCCPID; 00126 nm->mri_orig_abCCPID = nr->mri.orig_abCCPID; 00127 nm->mri_trkPass = nr->mri.fitp; 00128 nm->gapPlanes = nr->srshower.gapPlanes; 00129 nm->neugenStdXsec = 1; 00130 nm->cosmicCut = (int) nr->eventq.passCosmicCut; 00131 nm->largestEvent = nr->srevent.largestEvent; 00132 00133 00134 00135 00136 nm->run=nr->GetHeader().GetRun(); 00137 nm->subrun=nr->GetHeader().GetSubRun(); 00138 nm->event=nr->GetHeader().GetEventNo(); 00139 nm->snarl=nr->GetHeader().GetSnarl(); 00140 00141 nm->passes_NueStandard_PassesDataQuality=NueStandard::PassesDataQuality(nr); 00142 nm->passes_NueStandard_IsInFid=NueStandard::IsInFid(nr); 00143 nm->passes_NueStandard_PassesPOTStandards=NueStandard::PassesPOTStandards(nr); 00144 nm->passes_NueStandard_PassesCosmicCut=NueStandard::PassesCosmicCut(nr); 00145 nm->passes_NueStandard_PassesNonHEPreSelection=NueStandard::PassesNonHEPreSelection(nr); 00146 nm->passes_NueStandard_PassesPreSelection=NueStandard::PassesPreSelection(nr); 00147 00148 nm->passes_NueStandard_PassesMinPlaneCut=NueStandard::PassesMinPlaneCut(nr); 00149 nm->passes_NueStandard_PassesShowerCut=NueStandard::PassesShowerCut(nr); 00150 nm->passes_NueStandard_PassesTrackPlaneCut=NueStandard::PassesTrackPlaneCut(nr); 00151 nm->passes_NueStandard_PassesTrackLikePlaneCut=NueStandard::PassesTrackLikePlaneCut(nr); 00152 nm->passes_NueStandard_PassesLowEnergyCut=NueStandard::PassesLowEnergyCut(nr); 00153 nm->passes_NueStandard_PassesHighEnergyCut=NueStandard::PassesHighEnergyCut(nr); 00154 00155 nm->passes_NueStandard_PassesMRCCFiducial=NueStandard::PassesMRCCFiducial(nr); 00156 nm->passes_NueStandard_PassesMRCCPreSelection=NueStandard::PassesMRCCPreSelection(nr); 00157 00158 00159 00160 00161 00162 00163 //MRCC variables 00164 nm->mri_best_complete_phw = nr->mri.best_complete_phw; 00165 nm->mri_best_purity_phw = nr->mri.best_purity_phw; 00166 nm->mri_shwe = nr->mri.shwe; 00167 nm->mri_pmux = nr->mri.pmux; 00168 nm->mri_pmuy = nr->mri.pmuy; 00169 nm->mri_pmuz = nr->mri.pmuz; 00170 nm->mri_vtxx = nr->mri.vtxx; 00171 nm->mri_vtxy = nr->mri.vtxy; 00172 nm->mri_vtxz = nr->mri.vtxz; 00173 00174 00175 00176 00177 00178 //ANN 11 Variables: 00179 nm->shwfit_par_a = nr->shwfit.par_a; 00180 nm->shwfit_par_b = nr->shwfit.par_b; 00181 nm->shwfit_uv_molrad_peak_9s_2pe_dw = nr->shwfit.uv_molrad_peak_9s_2pe_dw; 00182 nm->shwfit_uv_rms_9s_2pe_dw = nr->shwfit.uv_rms_9s_2pe_dw; 00183 nm->mstvars_e4w_PLUS_mstvars_o4w = nr->mstvars.e4w + nr->mstvars.o4w; 00184 nm->fracvars_fract_road = nr->fracvars.fract_road; 00185 nm->fracvars_fract_2_planes = nr->fracvars.fract_2_planes; 00186 nm->fracvars_fract_4_planes = nr->fracvars.fract_4_planes; 00187 nm->fracvars_fract_6_planes = nr->fracvars.fract_6_planes; 00188 nm->fracvars_fract_8_counters = nr->fracvars.fract_8_counters; 00189 nm->shwfit_LongE = nr->shwfit.LongE; 00190 00191 00192 // ANN14 Variables, new added: 00193 nm->fracvars_shw_max = nr->fracvars.shw_max; 00194 nm->fracvars_shw_slp = nr->fracvars.shw_slp; 00195 nm->fracvars_dis2stp = nr->fracvars.dis2stp; 00196 nm->fracvars_fract_1_plane = nr->fracvars.fract_1_plane; 00197 nm->fracvars_fract_5_planes = nr->fracvars.fract_5_planes; 00198 nm->fracvars_fract_6_counters = nr->fracvars.fract_6_counters; 00199 nm->fracvars_fract_20_counters = nr->fracvars.fract_20_counters; 00200 nm->event_length = TMath::Abs(nr->srevent.endPlane - nr->srevent.begPlane); 00201 00202 00203 //SSPID variables: 00204 nm->ssvar1 = nr->subshowervars.PHFracRMSU + nr->subshowervars.PHFracRMSV; 00205 nm->ssvar2 = ((nr->subshowervars.PHAvgProbEMU * nr->subshowervars.PHAvgProbEMU)+ 00206 (nr->subshowervars.PHAvgProbEMV * nr->subshowervars.PHAvgProbEMV))/2.; 00207 nm->ssvar3 = (nr->subshowervars.PHAvgIDU + nr->subshowervars.PHAvgIDV)/2.; 00208 nm->ssvar4 = nr->subshowervars.PHAvgDevU + nr->subshowervars.PHAvgDevV; 00209 00210 nm->vtxX = nr->srevent.vtxX; 00211 nm->vtxY = nr->srevent.vtxY; 00212 nm->vtxZ = nr->srevent.vtxZ; 00213 00214 00215 nm->timestamp = nr->GetHeader().GetVldContext().GetTimeStamp().GetSec(); 00216 00217 00218 00219 00220 } 00221 00222 void NueMiniAna::FillRecord(NueRecord *nr, NueMini *nm) 00223 { 00224 if(!nr || !nm){ 00225 MSG("NueMini", Msg::kError) << "No NueRecord Passed"<<endl; 00226 return; 00227 } 00228 00229 nr->srevent.phNueGeV = nm->evtRecoNueEnergy; 00230 nr->srevent.phMip = nm->evtRecoMEUEnergy; 00231 nr->srtrack.phCCGeV = nm->trkRecoCCEnergy; 00232 nr->srtrack.trklikePlanes = nm->trkLikePlanes; 00233 nr->srtrack.begPlane = nm->trkBegPlane; 00234 nr->srtrack.endPlane = nm->trkEndPlane; 00235 nr->srshower.phCCGeV = nm->shwRecoCCEnergy; 00236 00237 nr->srevent.showers = nm->nshower; 00238 nr->shwfit.contPlaneCount050 = nm->contPlanes; 00239 00240 00241 00242 nr->ann.pid_11inp = nm->annpid_11inp; 00243 nr->ann.pid_11inp_daikon04 = nm->annpid_11inp_daikon04; 00244 nr->ann.pid = nm->annpid; 00245 00246 nr->subshowervars.pid = nm->ssPID; 00247 nr->mcnnv.mcnn_var1 = nm->mcnnPID; 00248 nr->mcnnv.bestmatches = nm->mcnnMatch; 00249 00250 //truth values 00251 nr->shi.epi0 = nm->shiEpi0; 00252 nr->shi.emenergy = nm->shiEmEnergy; 00253 nr->mctrue.nuEnergy = nm->nuEnergy; 00254 nr->mctrue.nuFlavor = nm->nuFlavor; 00255 nr->mctrue.nonOscNuFlavor = nm->nonOscNuFlavor; 00256 nr->mctrue.fNueClass = nm->nueClass; 00257 00258 nr->mctrue.fOscProb = nm->nueOscProb; 00259 nr->mctrue.interactionType = nm->interactionType; 00260 nr->mctrue.nuDCosX = nm->nuDCosX; 00261 nr->mctrue.nuDCosY = nm->nuDCosY; 00262 nr->mctrue.nuDCosZ = nm->nuDCosZ; 00263 nr->mctrue.hadronicY = nm->hadronicY; 00264 nr->mctrue.hadronicFinalState = nm->hadronicFinalState; 00265 nr->mctrue.w2 = nm->w2; 00266 nr->mctrue.q2 = nm->q2; 00267 nr->mctrue.bjorkenX = nm->bjorkenX; 00268 nr->mctrue.targetPX = nm->targetPX; 00269 nr->mctrue.targetPY = nm->targetPY; 00270 nr->mctrue.targetPZ = nm->targetPZ; 00271 nr->mctrue.targetEnergy = nm->targetEnergy; 00272 nr->mctrue.atomicNumber = nm->atomicNumber; 00273 nr->mctrue.atomicWeight = nm->atomicWeight; 00274 nr->mctrue.initialState = nm->initialState; 00275 nr->mctrue.resonanceCode = nm->resonanceCode; 00276 00277 nr->fluxweights.totbeamweight = nm->skzpWeight; 00278 00279 nr->srevent.tracks = nm->ntrack; 00280 nr->srtrack.passedFit = nm->trkPass; 00281 nr->srtrack.endPlaneU = nm->endPlaneU; 00282 nr->srtrack.endPlaneV = nm->endPlaneV; 00283 nr->srtrack.deltaUVVtx = nm->deltaUVVtx; 00284 nr->anainfo.abCCPID = nm->abCCPID; 00285 nr->anainfo.roCCPID = nm->roCCPID; 00286 00287 nr->mri.orig_roCCPID = nm->mri_orig_roCCPID; 00288 nr->mri.orig_abCCPID = nm->mri_orig_abCCPID; 00289 nr->mri.fitp = nm->mri_trkPass; 00290 nr->srshower.gapPlanes = nm->gapPlanes; 00291 nr->eventq.passCosmicCut = nm->cosmicCut; 00292 nr->srevent.largestEvent = nm->largestEvent; 00293 00294 00295 NueHeader * nh = const_cast<NueHeader *> (&(nr->GetHeader())); 00296 nh->SetRun(nm->run); 00297 nh->SetSubRun(nm->subrun); 00298 nh->SetEventNo(nm->event); 00299 nh->SetSnarl(nm->snarl); 00300 00301 00302 00303 //MRCC variables 00304 nr->mri.best_complete_phw = nm->mri_best_complete_phw; 00305 nr->mri.best_purity_phw = nm->mri_best_purity_phw; 00306 nr->mri.shwe = nm->mri_shwe; 00307 nr->mri.pmux = nm->mri_pmux; 00308 nr->mri.pmuy = nm->mri_pmuy; 00309 nr->mri.pmuz = nm->mri_pmuz; 00310 nr->mri.vtxx = nm->mri_vtxx; 00311 nr->mri.vtxy = nm->mri_vtxy; 00312 nr->mri.vtxz = nm->mri_vtxz; 00313 00314 00315 00316 00317 00318 //ANN 11 Variables: 00319 nr->shwfit.par_a = nm->shwfit_par_a; 00320 nr->shwfit.par_b = nm->shwfit_par_b; 00321 nr->shwfit.uv_molrad_peak_9s_2pe_dw = nm->shwfit_uv_molrad_peak_9s_2pe_dw; 00322 nr->shwfit.uv_rms_9s_2pe_dw = nm->shwfit_uv_rms_9s_2pe_dw; 00323 nr->mstvars.e4w = nm->mstvars_e4w_PLUS_mstvars_o4w; 00324 nr->fracvars.fract_road = nm->fracvars_fract_road; 00325 nr->fracvars.fract_2_planes = nm->fracvars_fract_2_planes; 00326 nr->fracvars.fract_4_planes = nm->fracvars_fract_4_planes; 00327 nr->fracvars.fract_6_planes = nm->fracvars_fract_6_planes; 00328 nr->fracvars.fract_8_counters = nm->fracvars_fract_8_counters; 00329 nr->shwfit.LongE =nm->shwfit_LongE; 00330 00331 00332 //LEM variables: 00333 nr->mcnnv.fracCC = nm->mcnnv_fracCC; 00334 nr->mcnnv.ymean = nm->mcnnv_ymean; 00335 nr->mcnnv.meanfracQmatched = nm->mcnnv_meanfracQmatched; 00336 00337 //SSPID variables: 00338 //We can't fill these back in... 00339 00340 00341 00342 00343 nr->srevent.vtxX = nm->vtxX; 00344 nr->srevent.vtxY = nm->vtxY; 00345 nr->srevent.vtxZ = nm->vtxZ; 00346 00347 00348 //time stamp 00349 //can't reload the time stamp... 00350 00351 00352 00353 } 00354
1.3.9.1