Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

NueMiniAna.cxx

Go to the documentation of this file.
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 

Generated on Mon Feb 15 11:07:11 2010 for loon by  doxygen 1.3.9.1