DataMCPlots Class Reference

#include <DataMCPlots.h>

Inheritance diagram for DataMCPlots:
NuDSTAna NuBase

List of all members.

Public Member Functions

 DataMCPlots (NuXMLConfig *xmlConfig)
virtual ~DataMCPlots ()
virtual void MakeDataPlots ()

Private Member Functions

virtual NuInputEventsGetEventListForLooping ()
virtual void PrepareEventForPlotting (NuEvent &event) const
virtual void Delete (TH1D *p)
virtual void CreateHistograms (const NuEvent &nu)
virtual void DeleteHistograms ()
virtual void FillPlots (NuEvent &event)
virtual void FillRoIDPlots (NuEvent &event)
virtual void FillPlotsNCN_1 (NuEvent &event)
virtual void WritePlots ()

Private Attributes

Bool_t fHistogramsCreated
NuCuts::NuAnaVersion_t fAnaVersion
NuCutterfCutter
NuLibraryfLib
NuMIPPfMipp
NuXMLConfigfxmlConfig
NuSystematicfsyst
NuTransitionftransition
TH1D * hRecoEnergyAll
TH1D * hRecoEnergyNQ
TH1D * hRecoEnergyPQ
TH1D * hTrkEnergyNQ
TH1D * hTrkEnergyPQ
TH1D * hShwEnergyNQ
TH1D * hShwEnergyPQ
TH1D * hShwEnergyCorNQ
TH1D * hShwEnergyCorPQ
TH1D * hxTrkVtxNQ
TH1D * hxTrkVtxPQ
TH1D * hyTrkVtxNQ
TH1D * hyTrkVtxPQ
TH1D * hrTrkVtxNQ
TH1D * hrTrkVtxPQ
TH1D * hr2TrkVtxNQ
TH1D * hr2TrkVtxPQ
TH1D * hPlaneTrkVtxNQ
TH1D * hPlaneTrkVtxPQ
TH1D * hxTrkEndNQ
TH1D * hxTrkEndPQ
TH1D * hyTrkEndNQ
TH1D * hyTrkEndPQ
TH1D * hrTrkEndNQ
TH1D * hrTrkEndPQ
TH1D * hr2TrkEndNQ
TH1D * hr2TrkEndPQ
TH1D * hPlaneTrkEndNQ
TH1D * hPlaneTrkEndPQ
TH1D * hInelasticityNQ
TH1D * hInelasticityPQ
TH1D * hRelativeAngleAll
TH1D * hRelativeAngleNQ
TH1D * hRelativeAnglePQ
TH1D * hqp_sigqpAll
TH1D * hqpAll
TH1D * hDirCosNuNQ
TH1D * hDirCosNuPQ
TH1D * hroIDN_1NQ
TH1D * hroIDN_1PQ
TH1D * hrecoENC
TH1D * hrecoENCPR
TH1D * hdistToEdge
TH1D * hnstripEvt
TH1D * hphFrac
TH1D * hmaxConsPlanes
TH1D * hphFracPR
TH1D * hmaxConsPlanesPR
TH1D * hnumTracks
TH1D * hevtLength
TH1D * htrackExt
TH1D * hminTimeSep
TH1D * hphFracN_1
TH1D * hmaxConsPlanesN_1
TH1D * hphFracN_1PR
TH1D * hmaxConsPlanesN_1PR
TH1D * hnumTracksN_1
TH1D * hevtLengthN_1
TH1D * htrackExtN_1
TH1D * hminTimeSepN_1
TH1D * hvtxXNC
TH1D * hvtxYNC
TH1D * hvtxZNC
TH1D * hRecoEnergyNotNuMuCCNQ
TH1D * hTrkEnergyNotNuMuCCNQ
TH1D * hShwEnergyNotNuMuCCNQ
TH1D * hroIDN_1NotNuMuCCNQ
TH1D * hInelasticityNotNuMuCCNQ
TH1D * hknn10TrkMeanPhEvtN_1NQ
TH1D * hknn01TrkActivePlanesEvtN_1NQ
TH1D * hknn20LowHighPhEvtN_1NQ
TH1D * hknn40TrkPhFracEvtN_1NQ
TH1D * hRecoEnergyNotNuMuCCPQ
TH1D * hTrkEnergyNotNuMuCCPQ
TH1D * hShwEnergyNotNuMuCCPQ
TH1D * hroIDN_1NotNuMuCCPQ
TH1D * hInelasticityNotNuMuCCPQ
TH1D * hknn10TrkMeanPhEvtN_1PQ
TH1D * hknn01TrkActivePlanesEvtN_1PQ
TH1D * hknn20LowHighPhEvtN_1PQ
TH1D * hknn40TrkPhFracEvtN_1PQ
std::vector< TH1D * > fvHistos

Detailed Description

Definition at line 26 of file DataMCPlots.h.


Constructor & Destructor Documentation

DataMCPlots::DataMCPlots ( NuXMLConfig xmlConfig  )  [explicit]

Definition at line 31 of file DataMCPlots.cxx.

References NuCutter::AnaVersion(), NuXMLConfig::AnaVersionString(), fAnaVersion, fCutter, fHistogramsCreated, fLib, fMipp, fsyst, ftransition, fxmlConfig, NuCutter::GetCut(), NuLibrary::Instance(), Msg::kWarning, MSG, NuSystematic::SetCCSelector(), and NuSystematic::SetNuBarSelector().

00032 {
00033   if (!xmlConfig){
00034     MSG("DataMCPlots",Msg::kWarning)
00035       << "Far over Near analysis object configured with a non-existent xml object."
00036       << endl
00037       << "Asserting now."
00038       << endl;
00039     assert(false);
00040   }
00041   fxmlConfig = xmlConfig;
00042 
00043   // Get the anaVersion and anaVersionNC from the XML config
00044   TString anaVer = fxmlConfig->AnaVersionString();
00045 
00046   fCutter = new NuCutter(anaVer);
00047 
00048   // Get NuAnaVersion_t from the cutter objects
00049   fAnaVersion = static_cast<NuCuts::NuAnaVersion_t>(fCutter->AnaVersion());
00050 
00051   //create transition object, this will apply oscillations of their set in the xml file
00052   ftransition = new NuTransition(xmlConfig);
00053   
00054   //create NuSystematic object:
00055   fsyst = new NuSystematic(*xmlConfig);
00056   fsyst->SetNuBarSelector(fCutter->GetCut());
00057   fsyst->SetCCSelector(fCutter->GetCut());
00058 
00059   //create MIPP object:
00060   fMipp = new NuMIPP(*xmlConfig);
00061   
00062   fLib = &NuLibrary::Instance();
00063   fHistogramsCreated = false;
00064 }

DataMCPlots::~DataMCPlots (  )  [virtual]

Definition at line 67 of file DataMCPlots.cxx.

References DeleteHistograms(), fCutter, and fLib.

00068 {
00069   if (fCutter) {
00070     delete fCutter;
00071     fCutter = 0;
00072   }
00073   fLib = 0; //I didn't create this, so don't have the right to delete it.
00074   this->DeleteHistograms();
00075 }


Member Function Documentation

void DataMCPlots::CreateHistograms ( const NuEvent nu  )  [private, virtual]

Definition at line 150 of file DataMCPlots.cxx.

References NuEvent::detector, MuELoss::e, fAnaVersion, fHistogramsCreated, fvHistos, hDirCosNuNQ, hDirCosNuPQ, hdistToEdge, hevtLength, hevtLengthN_1, hInelasticityNotNuMuCCNQ, hInelasticityNotNuMuCCPQ, hInelasticityNQ, hInelasticityPQ, hknn01TrkActivePlanesEvtN_1NQ, hknn01TrkActivePlanesEvtN_1PQ, hknn10TrkMeanPhEvtN_1NQ, hknn10TrkMeanPhEvtN_1PQ, hknn20LowHighPhEvtN_1NQ, hknn20LowHighPhEvtN_1PQ, hknn40TrkPhFracEvtN_1NQ, hknn40TrkPhFracEvtN_1PQ, hmaxConsPlanes, hmaxConsPlanesN_1, hmaxConsPlanesN_1PR, hmaxConsPlanesPR, hminTimeSep, hminTimeSepN_1, hnstripEvt, hnumTracks, hnumTracksN_1, hphFrac, hphFracN_1, hphFracN_1PR, hphFracPR, hPlaneTrkEndNQ, hPlaneTrkEndPQ, hPlaneTrkVtxNQ, hPlaneTrkVtxPQ, hqp_sigqpAll, hqpAll, hr2TrkEndNQ, hr2TrkEndPQ, hr2TrkVtxNQ, hr2TrkVtxPQ, hrecoENC, hrecoENCPR, hRecoEnergyAll, hRecoEnergyNotNuMuCCNQ, hRecoEnergyNotNuMuCCPQ, hRecoEnergyNQ, hRecoEnergyPQ, hRelativeAngleAll, hRelativeAngleNQ, hRelativeAnglePQ, hroIDN_1NotNuMuCCNQ, hroIDN_1NotNuMuCCPQ, hroIDN_1NQ, hroIDN_1PQ, hrTrkEndNQ, hrTrkEndPQ, hrTrkVtxNQ, hrTrkVtxPQ, hShwEnergyCorNQ, hShwEnergyCorPQ, hShwEnergyNotNuMuCCNQ, hShwEnergyNotNuMuCCPQ, hShwEnergyNQ, hShwEnergyPQ, htrackExt, htrackExtN_1, hTrkEnergyNotNuMuCCNQ, hTrkEnergyNotNuMuCCPQ, hTrkEnergyNQ, hTrkEnergyPQ, hvtxXNC, hvtxYNC, hvtxZNC, hxTrkEndNQ, hxTrkEndPQ, hxTrkVtxNQ, hxTrkVtxPQ, hyTrkEndNQ, hyTrkEndPQ, hyTrkVtxNQ, hyTrkVtxPQ, NuCuts::kCC1070Std, Detector::kFar, SimFlag::kMC, NuCuts::kNCPRLNC, Detector::kNear, and NuEvent::simFlag.

Referenced by MakeDataPlots().

00151 {
00152   cout << "Creating histograms" << endl;
00153   hRecoEnergyAll = new TH1D("hRecoEnergyAll","",400,0,200);
00154   hRecoEnergyNQ = new TH1D("hRecoEnergyNQ","",400,0,200);
00155   hRecoEnergyPQ = new TH1D("hRecoEnergyPQ","",400,0,200);
00156   hTrkEnergyNQ = new TH1D("hTrkEnergyNQ","",60,0,30);
00157   hTrkEnergyPQ = new TH1D("hTrkEnergyPQ","",60,0,30);
00158   hShwEnergyNQ = new TH1D("hShwEnergyNQ","",200,0,100);
00159   hShwEnergyPQ = new TH1D("hShwEnergyPQ","",200,0,100);
00160   hShwEnergyCorNQ = new TH1D("hShwEnergyCorNQ","",200,0,100);
00161   hShwEnergyCorPQ = new TH1D("hShwEnergyCorPQ","",200,0,100);
00162   hInelasticityNQ = new TH1D("hInelasticityNQ","",50,0,1);
00163   hInelasticityPQ = new TH1D("hInelasticityPQ","",50,0,1);
00164   
00165   hRelativeAngleAll = new TH1D("hRelativeAngleAll","",60,0,TMath::Pi());
00166   hRelativeAngleNQ = new TH1D("hRelativeAngleNQ","",60,0,TMath::Pi());
00167   hRelativeAnglePQ = new TH1D("hRelativeAnglePQ","",60,0,TMath::Pi());
00168   hqp_sigqpAll = new TH1D("hqp_sigqpAll","",120,-30,30);
00169   hqpAll = new TH1D("hqpAll","",160,-4,4);
00170   hDirCosNuNQ = new TH1D("hDirCosNuNQ","", 100,0,1);
00171   hDirCosNuPQ = new TH1D("hDirCosNuPQ","", 100,0,1);
00172   
00173   hroIDN_1NQ = new TH1D("hroIDN_1NQ","",81,0,1);
00174   hroIDN_1PQ = new TH1D("hroIDN_1PQ","",81,0,1);
00175   
00176   //used for FHC selection background comparisons
00177   if(NuCuts::kCC1070Std == fAnaVersion ){
00178     hknn10TrkMeanPhEvtN_1NQ = new TH1D("hknn10TrkMeanPhEvtN_1NQ", "hknn10TrkMeanPhEvtN_1\
00179 NQ", 2000, 0, 600);
00180     hknn01TrkActivePlanesEvtN_1NQ = new TH1D("hknn01TrkActivePlanesEvtN_1NQ", "hknn01TrkActivePlanesEvtN_1\
00181 NQ", 2000, 0, 600);
00182     hknn20LowHighPhEvtN_1NQ = new TH1D("hknn20LowHighPhEvtN_1NQ", "hknn20LowHighPhEvtN_1\
00183 NQ", 100, 0, 1);
00184     hknn40TrkPhFracEvtN_1NQ = new TH1D("hknn40TrkPhFracEvtN_1NQ", "hknn40TrkPhFracEvtN_1\
00185 NQ", 200, 0, 2);
00186     hknn10TrkMeanPhEvtN_1PQ = new TH1D("hknn10TrkMeanPhEvtN_1PQ", "hknn10TrkMeanPhEvtN_1\
00187 PQ", 2000, 0, 600);
00188     hknn01TrkActivePlanesEvtN_1PQ = new TH1D("hknn01TrkActivePlanesEvtN_1PQ", "hknn01TrkActivePlanesEvtN_1\
00189 PQ", 2000, 0, 600);
00190     hknn20LowHighPhEvtN_1PQ = new TH1D("hknn20LowHighPhEvtN_1PQ", "hknn20LowHighPhEvtN_1\
00191 PQ", 100, 0, 1);
00192     hknn40TrkPhFracEvtN_1PQ = new TH1D("hknn40TrkPhFracEvtN_1PQ", "hknn40TrkPhFracEvtN_1\
00193 PQ", 200, 0, 2);
00194   }
00195   if(NuCuts::kCC1070Std == fAnaVersion && event.simFlag==SimFlag::kMC){
00196     hRecoEnergyNotNuMuCCNQ = new TH1D("hRecoEnergyNotNuMuCCNQ","",400,0,200);
00197     hTrkEnergyNotNuMuCCNQ = new TH1D("hTrkEnergyNotNuMuCCNQ","",60,0,30);
00198     hShwEnergyNotNuMuCCNQ = new TH1D("hShwEnergyNotNuMuCCNQ","",200,0,100);
00199     hroIDN_1NotNuMuCCNQ = new TH1D("hroIDN_1NotNuMuCCNQ","",81,0,1);
00200     hRecoEnergyNotNuMuCCPQ = new TH1D("hRecoEnergyNotNuMuCCPQ","",400,0,200);
00201     hTrkEnergyNotNuMuCCPQ = new TH1D("hTrkEnergyNotNuMuCCPQ","",60,0,30);
00202     hShwEnergyNotNuMuCCPQ = new TH1D("hShwEnergyNotNuMuCCPQ","",200,0,100);
00203     hroIDN_1NotNuMuCCPQ = new TH1D("hroIDN_1NotNuMuCCPQ","",81,0,1);
00204     hInelasticityNotNuMuCCNQ = new TH1D("hInelasticityNQ","",50,0,1);
00205     hInelasticityNotNuMuCCPQ = new TH1D("hInelasticityPQ","",50,0,1);
00206   }
00207   //Used for NC selection comparisons 
00208   if(NuCuts::kNCPRLNC == fAnaVersion){
00209     hrecoENC          = new TH1D("hrecoENC","", 20, 0, 20);
00210     hdistToEdge       = new TH1D("hdistToEdge","", 50, -1, 2);
00211     hnstripEvt        = new TH1D("hnstripEvt","", 50, 0, 150);
00212     hphFrac           = new TH1D("hphFrac","",50, 0., 1.);
00213     hmaxConsPlanes    = new TH1D("hmaxConsPlanes","",60, 0, 60);
00214     //For MC files, also fill in the Poor Reconstruction histos
00215     if(SimFlag::kMC == event.simFlag){
00216       hrecoENCPR        = new TH1D("hrecoENCPR","", 20, 0, 20);
00217       hphFracPR         = new TH1D("hphFracPR","",50, 0., 1.);
00218       hmaxConsPlanesPR  = new TH1D("hmaxConsPlanesPR","",60, 0, 60);
00219     }
00220     hnumTracks        = new TH1D("hnumTracks","",5, 0, 5);
00221     hevtLength        = new TH1D("hevtLength","",20, 0, 100);
00222     htrackExt         = new TH1D("htrackExt","",30, -10, 20);
00223     hminTimeSep       = new TH1D("hminTimeSep","",40, -2e-6, 2e-6);
00224 
00225     // Also define "N-1" versions of these plots using only
00226     // preselection (N-X really)
00227     hphFracN_1        = new TH1D("hphFracN_1","",50, 0., 1.);
00228     hmaxConsPlanesN_1 = new TH1D("hmaxConsPlanesN_1","",60, 0, 60);
00229     //For MC files, also fill in the Poor Reconstruction histos
00230     if(SimFlag::kMC == event.simFlag){
00231       hphFracN_1PR         = new TH1D("hphFracN_1PR","",50, 0., 1.);
00232       hmaxConsPlanesN_1PR  = new TH1D("hmaxConsPlanesN_1PR","",60, 0, 60);
00233     }
00234     hnumTracksN_1     = new TH1D("hnumTracksN_1","",5, 0, 5);
00235     hevtLengthN_1     = new TH1D("hevtLengthN_1","",20, 0, 100);
00236     htrackExtN_1      = new TH1D("htrackExtN_1","",30, -10, 20);
00237     hminTimeSepN_1    = new TH1D("hminTimeSepN_1","",40, -2e-6, 2e-6);
00238 
00239     if (Detector::kNear == event.detector){
00240       hvtxXNC = new TH1D("hvtxXNC","",60,0.5,2.5);
00241       hvtxYNC = new TH1D("hvtxYNC","",50,-0.8,1.4);
00242       hvtxZNC = new TH1D("hvtxZNC","",101,0.0,6.0095);
00243     } else if (Detector::kFar == event.detector){
00244       hvtxXNC = new TH1D("hvtxXNC","",50,-5.0,5.0);
00245       hvtxYNC = new TH1D("hvtxYNC","",50,-5.0,5.0);
00246       hvtxZNC = new TH1D("hvtxZNC","",101,0.0,30.0475);
00247     }
00248   }
00249 
00250   if (Detector::kNear == event.detector){
00251     hxTrkVtxNQ = new TH1D("hxTrkVtxNQ","",60,0.5,2.5);
00252     hxTrkVtxPQ = new TH1D("hxTrkVtxPQ","",60,0.5,2.5);
00253     hyTrkVtxNQ = new TH1D("hyTrkVtxNQ","",50,-0.8,1.4);
00254     hyTrkVtxPQ = new TH1D("hyTrkVtxPQ","",50,-0.8,1.4);
00255     hrTrkVtxNQ = new TH1D("hrTrkVtxNQ","",90,0,3.5);
00256     hr2TrkVtxNQ = new TH1D("hr2TrkVtxNQ","",100,0,10);
00257     hrTrkVtxPQ = new TH1D("hrTrkVtxPQ","",90,0,3.5);
00258     hr2TrkVtxPQ = new TH1D("hr2TrkVtxPQ","",100,0,10);
00259     hPlaneTrkVtxNQ = new TH1D("hPlaneTrkVtxNQ","",300,0,300);
00260     hPlaneTrkVtxPQ = new TH1D("hPlaneTrkVtxPQ","",300,0,300);
00261     hxTrkEndNQ = new TH1D("hxTrkEndNQ","",60,-0.2,3.4);
00262     hxTrkEndPQ = new TH1D("hxTrkEndPQ","",60,-0.2,3.4);
00263     hyTrkEndNQ = new TH1D("hyTrkEndNQ","",50,-2.2,2.2);
00264     hyTrkEndPQ = new TH1D("hyTrkEndPQ","",50,-2.2,2.2);
00265     hrTrkEndNQ = new TH1D("hrTrkEndNQ","",90,0,3.5);
00266     hr2TrkEndNQ = new TH1D("hr2TrkEndNQ","",100,0,10);
00267     hrTrkEndPQ = new TH1D("hrTrkEndPQ","",90,0,3.5);
00268     hr2TrkEndPQ = new TH1D("hr2TrkEndPQ","",100,0,10);
00269     hPlaneTrkEndNQ = new TH1D("hPlaneTrkEndNQ","",60,0,300);
00270     hPlaneTrkEndPQ = new TH1D("hPlaneTrkEndPQ","",60,0,300);
00271     
00272   }
00273   else if (Detector::kFar == event.detector){
00274     hxTrkVtxNQ = new TH1D("hxTrkVtxNQ","",50,-5,5);
00275     hxTrkVtxPQ = new TH1D("hxTrkVtxPQ","",50,-5,5);
00276     hyTrkVtxNQ = new TH1D("hyTrkVtxNQ","",50,-5,5);
00277     hyTrkVtxPQ = new TH1D("hyTrkVtxPQ","",50,-5,5);
00278     hrTrkVtxNQ = new TH1D("hrTrkVtxNQ","",25,0,5);
00279     hr2TrkVtxNQ = new TH1D("hr2TrkVtxNQ","",125,0,25);
00280     hrTrkVtxPQ = new TH1D("hrTrkVtxPQ","",25,0,5);
00281     hr2TrkVtxPQ = new TH1D("hr2TrkVtxPQ","",125,0,25);
00282     hPlaneTrkVtxNQ = new TH1D("hPlaneTrkVtxNQ","",50,0,500);
00283     hPlaneTrkVtxPQ = new TH1D("hPlaneTrkVtxPQ","",50,0,500);
00284     hxTrkEndNQ = new TH1D("hxTrkEndNQ","",50,-5,5);
00285     hxTrkEndPQ = new TH1D("hxTrkEndPQ","",50,-5,5);
00286     hyTrkEndNQ = new TH1D("hyTrkEndNQ","",50,-5,5);
00287     hyTrkEndPQ = new TH1D("hyTrkEndPQ","",50,-5,5);
00288     hrTrkEndNQ = new TH1D("hrTrkEndNQ","",25,0,5);
00289     hr2TrkEndNQ = new TH1D("hr2TrkEndNQ","",125,0,25);
00290     hrTrkEndPQ = new TH1D("hrTrkEndPQ","",25,0,5);
00291     hr2TrkEndPQ = new TH1D("hr2TrkEndPQ","",125,0,25);
00292     hPlaneTrkEndNQ = new TH1D("hPlaneTrkEndNQ","",50,0,500);
00293     hPlaneTrkEndPQ = new TH1D("hPlaneTrkEndPQ","",50,0,500);
00294   }
00295 
00296   fvHistos.push_back(hRecoEnergyAll);
00297   fvHistos.push_back(hRecoEnergyNQ);
00298   fvHistos.push_back(hRecoEnergyPQ);
00299   fvHistos.push_back(hTrkEnergyNQ);
00300   fvHistos.push_back(hTrkEnergyPQ);
00301   fvHistos.push_back(hShwEnergyNQ);
00302   fvHistos.push_back(hShwEnergyPQ);
00303   fvHistos.push_back(hShwEnergyCorNQ);
00304   fvHistos.push_back(hShwEnergyCorPQ);
00305   fvHistos.push_back(hInelasticityNQ);
00306   fvHistos.push_back(hInelasticityPQ);
00307   fvHistos.push_back(hxTrkVtxNQ);
00308   fvHistos.push_back(hyTrkVtxNQ);
00309   fvHistos.push_back(hrTrkVtxNQ);
00310   fvHistos.push_back(hr2TrkVtxNQ);
00311   fvHistos.push_back(hPlaneTrkVtxNQ);
00312   fvHistos.push_back(hxTrkVtxPQ);
00313   fvHistos.push_back(hyTrkVtxPQ);
00314   fvHistos.push_back(hrTrkVtxPQ);
00315   fvHistos.push_back(hr2TrkVtxPQ);
00316   fvHistos.push_back(hPlaneTrkVtxPQ);
00317   fvHistos.push_back(hxTrkEndNQ);
00318   fvHistos.push_back(hyTrkEndNQ);
00319   fvHistos.push_back(hrTrkEndNQ);
00320   fvHistos.push_back(hr2TrkEndNQ);
00321   fvHistos.push_back(hPlaneTrkEndNQ);
00322   fvHistos.push_back(hxTrkEndPQ);
00323   fvHistos.push_back(hyTrkEndPQ);
00324   fvHistos.push_back(hrTrkEndPQ);
00325   fvHistos.push_back(hr2TrkEndPQ);
00326   fvHistos.push_back(hPlaneTrkEndPQ);
00327   fvHistos.push_back(hRelativeAngleAll);
00328   fvHistos.push_back(hRelativeAngleNQ);
00329   fvHistos.push_back(hRelativeAnglePQ);
00330   fvHistos.push_back(hqp_sigqpAll);
00331   fvHistos.push_back(hqpAll);
00332   fvHistos.push_back(hroIDN_1NQ);
00333   fvHistos.push_back(hroIDN_1PQ);
00334   fvHistos.push_back(hDirCosNuNQ);
00335   fvHistos.push_back(hDirCosNuPQ);
00336 
00337   //Used for FHC selection comparisons 
00338   if(NuCuts::kCC1070Std == fAnaVersion){
00339     fvHistos.push_back(hknn10TrkMeanPhEvtN_1NQ);
00340     fvHistos.push_back(hknn01TrkActivePlanesEvtN_1NQ);
00341     fvHistos.push_back(hknn20LowHighPhEvtN_1NQ);
00342     fvHistos.push_back(hknn40TrkPhFracEvtN_1NQ);
00343     fvHistos.push_back(hknn10TrkMeanPhEvtN_1PQ);
00344     fvHistos.push_back(hknn01TrkActivePlanesEvtN_1PQ);
00345     fvHistos.push_back(hknn20LowHighPhEvtN_1PQ);
00346     fvHistos.push_back(hknn40TrkPhFracEvtN_1PQ);    
00347   }
00348   if(NuCuts::kCC1070Std == fAnaVersion && event.simFlag==SimFlag::kMC){
00349     fvHistos.push_back(hRecoEnergyNotNuMuCCNQ);
00350     fvHistos.push_back(hTrkEnergyNotNuMuCCNQ);
00351     fvHistos.push_back(hShwEnergyNotNuMuCCNQ);
00352     fvHistos.push_back(hroIDN_1NotNuMuCCNQ);
00353     fvHistos.push_back(hRecoEnergyNotNuMuCCPQ);
00354     fvHistos.push_back(hTrkEnergyNotNuMuCCPQ);
00355     fvHistos.push_back(hShwEnergyNotNuMuCCPQ);
00356     fvHistos.push_back(hroIDN_1NotNuMuCCPQ);
00357     fvHistos.push_back(hInelasticityNotNuMuCCNQ);
00358     fvHistos.push_back(hInelasticityNotNuMuCCPQ);
00359   }
00360 
00361   //Used for NC selection comparisons 
00362   if(NuCuts::kNCPRLNC == fAnaVersion){
00363     fvHistos.push_back(hrecoENC);
00364     fvHistos.push_back(hdistToEdge);
00365     fvHistos.push_back(hnstripEvt);
00366     fvHistos.push_back(hphFrac);
00367     fvHistos.push_back(hmaxConsPlanes);
00368     if(SimFlag::kMC == event.simFlag){
00369       fvHistos.push_back(hrecoENCPR);
00370       fvHistos.push_back(hphFracPR);
00371       fvHistos.push_back(hmaxConsPlanesPR);
00372     }
00373     fvHistos.push_back(hnumTracks);
00374     fvHistos.push_back(hevtLength);
00375     fvHistos.push_back(htrackExt);
00376     fvHistos.push_back(hminTimeSep);
00377     fvHistos.push_back(hvtxXNC);
00378     fvHistos.push_back(hvtxYNC);
00379     fvHistos.push_back(hvtxZNC);
00380     fvHistos.push_back(hphFracN_1);
00381     fvHistos.push_back(hmaxConsPlanesN_1);
00382     if(SimFlag::kMC == event.simFlag){
00383       fvHistos.push_back(hphFracN_1PR);
00384       fvHistos.push_back(hmaxConsPlanesN_1PR);
00385     }
00386     fvHistos.push_back(hnumTracksN_1);
00387     fvHistos.push_back(hevtLengthN_1);
00388     fvHistos.push_back(htrackExtN_1);
00389     fvHistos.push_back(hminTimeSepN_1);
00390   }
00391 
00392   fHistogramsCreated = true;
00393 } // CreateHistograms()

void DataMCPlots::Delete ( TH1D *  p  )  [private, virtual]

Definition at line 406 of file DataMCPlots.cxx.

Referenced by DeleteHistograms().

00407 {
00408   if (p){delete p; p=0;}
00409 }

void DataMCPlots::DeleteHistograms (  )  [private, virtual]

Definition at line 396 of file DataMCPlots.cxx.

References Delete(), fvHistos, and it.

Referenced by ~DataMCPlots().

00397 {
00398   for (vector<TH1D*>::iterator it = fvHistos.begin();
00399        it != fvHistos.end();
00400        ++it){
00401     this->Delete(*it);
00402   }
00403 } // DeleteHistograms()

void DataMCPlots::FillPlots ( NuEvent event  )  [private, virtual]

Definition at line 412 of file DataMCPlots.cxx.

References NuEvent::charge, NuEvent::detector, NuEvent::dirCosNu, NuEvent::energy, NuEvent::energyNC, fAnaVersion, hDirCosNuNQ, hDirCosNuPQ, hdistToEdge, hevtLength, hInelasticityNotNuMuCCNQ, hInelasticityNotNuMuCCPQ, hInelasticityNQ, hInelasticityPQ, hknn01TrkActivePlanesEvtN_1NQ, hknn01TrkActivePlanesEvtN_1PQ, hknn10TrkMeanPhEvtN_1NQ, hknn10TrkMeanPhEvtN_1PQ, hknn20LowHighPhEvtN_1NQ, hknn20LowHighPhEvtN_1PQ, hknn40TrkPhFracEvtN_1NQ, hknn40TrkPhFracEvtN_1PQ, hminTimeSep, hnstripEvt, hnumTracks, hPlaneTrkEndNQ, hPlaneTrkEndPQ, hPlaneTrkVtxNQ, hPlaneTrkVtxPQ, hqp_sigqpAll, hqpAll, hr2TrkEndNQ, hr2TrkEndPQ, hr2TrkVtxNQ, hr2TrkVtxPQ, hrecoENC, hrecoENCPR, hRecoEnergyAll, hRecoEnergyNotNuMuCCNQ, hRecoEnergyNotNuMuCCPQ, hRecoEnergyNQ, hRecoEnergyPQ, hRelativeAngleAll, hRelativeAngleNQ, hRelativeAnglePQ, hrTrkEndNQ, hrTrkEndPQ, hrTrkVtxNQ, hrTrkVtxPQ, hShwEnergyCorNQ, hShwEnergyCorPQ, hShwEnergyNotNuMuCCNQ, hShwEnergyNotNuMuCCPQ, hShwEnergyNQ, hShwEnergyPQ, htrackExt, hTrkEnergyNotNuMuCCNQ, hTrkEnergyNotNuMuCCPQ, hTrkEnergyNQ, hTrkEnergyPQ, hvtxXNC, hvtxYNC, hvtxZNC, hxTrkEndNQ, hxTrkEndPQ, hxTrkVtxNQ, hxTrkVtxPQ, hyTrkEndNQ, hyTrkEndPQ, hyTrkVtxNQ, hyTrkVtxPQ, NuEvent::iaction, NuCuts::kCC1070Std, SimFlag::kMC, NuCuts::kNCPRLNC, Detector::kNear, NuEvent::knn01TrkActivePlanesEvt, NuEvent::knn10TrkMeanPhEvt, NuEvent::knn20LowHighPhEvt, NuEvent::knn40TrkPhFracEvt, NuEvent::minTimeSeparation, NuEvent::nplaneShw, NuEvent::nstripEvt, NuEvent::ntrk, NuEvent::planeTrkEnd, NuEvent::planeTrkVtx, PrepareEventForPlotting(), NuEvent::qp, NuEvent::relativeAngle, NuEvent::rTrkEnd, NuEvent::rTrkVtx, NuEvent::rw, NuEvent::shwEn, NuEvent::shwEnCor, NuEvent::shwEnMC, NuEvent::sigqp_qp, NuEvent::simFlag, NuEvent::trkEn, NuEvent::trknplane, NuEvent::vtxMetersToCloseEdgeEvt, NuEvent::vtxMetersToCloseEdgeTrk, NuEvent::xEvtVtx, NuEvent::xTrkEnd, NuEvent::xTrkVtx, NuEvent::y, NuEvent::yEvtVtx, NuEvent::yTrkEnd, NuEvent::yTrkVtx, NuEvent::zEvtVtx, and NuEvent::zTrkVtx.

Referenced by MakeDataPlots().

00413 {
00414   this->PrepareEventForPlotting(event);
00415 
00416   hRecoEnergyAll->Fill(event.energy, event.rw);
00417   hRelativeAngleAll->Fill(fabs(event.relativeAngle-TMath::Pi()), event.rw);
00418   hqp_sigqpAll->Fill(1./(event.sigqp_qp), event.rw);
00419   hqpAll->Fill(event.qp, event.rw);
00420 
00421   if (-1 == event.charge){
00422     hRecoEnergyNQ->Fill(event.energy, event.rw);
00423     hTrkEnergyNQ->Fill(event.trkEn, event.rw);
00424     hShwEnergyNQ->Fill(event.shwEn, event.rw);
00425     hShwEnergyCorNQ->Fill(event.shwEnCor, event.rw);
00426     hInelasticityNQ->Fill(event.y, event.rw);
00427     hxTrkVtxNQ->Fill(event.xTrkVtx, event.rw);
00428     hyTrkVtxNQ->Fill(event.yTrkVtx, event.rw);
00429     hPlaneTrkVtxNQ->Fill(event.planeTrkVtx, event.rw);
00430     hxTrkEndNQ->Fill(event.xTrkEnd, event.rw);
00431     hyTrkEndNQ->Fill(event.yTrkEnd, event.rw);
00432     hPlaneTrkEndNQ->Fill(event.planeTrkEnd, event.rw);
00433     hRelativeAngleNQ->Fill(fabs(event.relativeAngle-TMath::Pi()), event.rw);
00434     hrTrkVtxNQ->Fill(event.rTrkVtx, event.rw);
00435     hr2TrkVtxNQ->Fill(event.rTrkVtx*event.rTrkVtx, event.rw);    
00436     hrTrkEndNQ->Fill(event.rTrkEnd, event.rw);
00437     hr2TrkEndNQ->Fill(event.rTrkEnd*event.rTrkEnd, event.rw);
00438     hDirCosNuNQ->Fill(event.dirCosNu, event.rw);
00439   }
00440   if (1 == event.charge){
00441     hRecoEnergyPQ->Fill(event.energy, event.rw);
00442     hTrkEnergyPQ->Fill(event.trkEn, event.rw);
00443     hShwEnergyPQ->Fill(event.shwEn, event.rw);
00444     hShwEnergyCorPQ->Fill(event.shwEnCor, event.rw);
00445     hInelasticityPQ->Fill(event.y, event.rw);
00446     hxTrkVtxPQ->Fill(event.xTrkVtx, event.rw);
00447     hyTrkVtxPQ->Fill(event.yTrkVtx, event.rw);
00448     hPlaneTrkVtxPQ->Fill(event.planeTrkVtx, event.rw);
00449     hxTrkEndPQ->Fill(event.xTrkEnd, event.rw);
00450     hyTrkEndPQ->Fill(event.yTrkEnd, event.rw);
00451     hPlaneTrkEndPQ->Fill(event.planeTrkEnd, event.rw);
00452     hRelativeAnglePQ->Fill(fabs(event.relativeAngle-TMath::Pi()), event.rw);
00453     hrTrkVtxPQ->Fill(event.rTrkVtx, event.rw);
00454     hr2TrkVtxPQ->Fill(event.rTrkVtx*event.rTrkVtx, event.rw);    
00455     hrTrkEndPQ->Fill(event.rTrkEnd, event.rw);
00456     hr2TrkEndPQ->Fill(event.rTrkEnd*event.rTrkEnd, event.rw);
00457     hDirCosNuPQ->Fill(event.dirCosNu, event.rw);
00458   }
00459 
00460   //Fill the FHC stuff here
00461   if(NuCuts::kCC1070Std == fAnaVersion){
00462     if(-1 ==event.charge){
00463       hknn01TrkActivePlanesEvtN_1NQ->Fill(event.knn01TrkActivePlanesEvt,event.rw);
00464       hknn10TrkMeanPhEvtN_1NQ->Fill(event.knn10TrkMeanPhEvt,event.rw);
00465       hknn20LowHighPhEvtN_1NQ->Fill(event.knn20LowHighPhEvt,event.rw);
00466       hknn40TrkPhFracEvtN_1NQ->Fill(event.knn40TrkPhFracEvt,event.rw);
00467     }
00468     if(1 ==event.charge){
00469       hknn01TrkActivePlanesEvtN_1PQ->Fill(event.knn01TrkActivePlanesEvt,event.rw);
00470       hknn10TrkMeanPhEvtN_1PQ->Fill(event.knn10TrkMeanPhEvt,event.rw);
00471       hknn20LowHighPhEvtN_1PQ->Fill(event.knn20LowHighPhEvt,event.rw);
00472       hknn40TrkPhFracEvtN_1PQ->Fill(event.knn40TrkPhFracEvt,event.rw);
00473     }
00474   }
00475   if(NuCuts::kCC1070Std == fAnaVersion && event.simFlag==SimFlag::kMC){
00476     if (-1 == event.charge && !(event.iaction==1)){
00477       hRecoEnergyNotNuMuCCNQ->Fill(event.energy, event.rw);
00478       hTrkEnergyNotNuMuCCNQ->Fill(event.trkEn, event.rw);
00479       hShwEnergyNotNuMuCCNQ->Fill(event.shwEn, event.rw);
00480       hInelasticityNotNuMuCCNQ->Fill(event.shwEn, event.rw);
00481     }
00482     if (1 == event.charge && !(event.iaction==1)){
00483       hRecoEnergyNotNuMuCCPQ->Fill(event.energy, event.rw);
00484       hTrkEnergyNotNuMuCCPQ->Fill(event.trkEn, event.rw);
00485       hShwEnergyNotNuMuCCPQ->Fill(event.shwEn, event.rw);
00486       hInelasticityNotNuMuCCPQ->Fill(event.shwEn, event.rw);
00487     }
00488   }
00489   
00490   //Fill the NC stuff here
00491   if(NuCuts::kNCPRLNC == fAnaVersion){
00492     hrecoENC->Fill(event.energyNC, event.rw);
00493     if(SimFlag::kMC == event.simFlag){
00494       if( event.energyNC/event.shwEnMC < 0.3 ){
00495         hrecoENCPR->Fill(event.energyNC, event.rw);
00496       }
00497     }
00498     hnstripEvt->Fill(event.nstripEvt, event.rw);     
00499     //  hphFrac->Fill(event.slicePHFraction, event.rw);
00500     // hmaxConsPlanes->Fill(event.maxConsecutivePlanes, event.rw);
00501     hnumTracks->Fill(event.ntrk, event.rw);
00502 
00503     //Need to compute these quantities
00504     int trackExtension=-999;
00505     int planesInShower=-999;
00506     int planesInTrack=-999;
00507     
00508     if(event.trknplane == -999)
00509       planesInTrack = -9999;
00510     else 
00511       planesInTrack = event.trknplane;
00512     
00513     if(event.nplaneShw == -1)
00514       planesInShower = -9999;
00515     else
00516       planesInShower = event.nplaneShw;
00517 
00518     int eventLength=-999;
00519     
00520     if (Detector::kNear == event.detector){
00521       eventLength    = (event.planeEvtEnd - event.planeEvtBeg) + 1;
00522       trackExtension = planesInTrack - planesInShower;
00523     } else {
00524       eventLength    = event.planeEvtN;
00525       trackExtension = planesInTrack - planesInShower;
00526       //      trackExtension = event.nplaneShw - event.trknplane;
00527     }
00528     
00529     hevtLength->Fill(eventLength,event.rw);
00530     htrackExt->Fill(trackExtension, event.rw);
00531     hminTimeSep->Fill(event.minTimeSeparation,event.rw);
00532    
00533     //Dist to edge and vertex can use the event vertex or the track vertex
00534     if (event.ntrk > 0 && trackExtension > 0){
00535       hdistToEdge->Fill(event.vtxMetersToCloseEdgeTrk, event.rw);
00536       hvtxXNC->Fill(event.xTrkVtx, event.rw);
00537       hvtxYNC->Fill(event.yTrkVtx, event.rw);
00538       hvtxZNC->Fill(event.zTrkVtx-0.0392, event.rw);
00539     }
00540     else{
00541       hdistToEdge->Fill(event.vtxMetersToCloseEdgeEvt, event.rw);
00542       hvtxXNC->Fill(event.xEvtVtx, event.rw);
00543       hvtxYNC->Fill(event.yEvtVtx, event.rw);
00544       hvtxZNC->Fill(event.zEvtVtx, event.rw);
00545     }
00546   }
00547 }

void DataMCPlots::FillPlotsNCN_1 ( NuEvent event  )  [private, virtual]

Definition at line 572 of file DataMCPlots.cxx.

References NuEvent::detector, NuEvent::energyNC, fCutter, hevtLengthN_1, hmaxConsPlanes, hmaxConsPlanesN_1, hmaxConsPlanesN_1PR, hmaxConsPlanesPR, hminTimeSepN_1, hnumTracksN_1, hphFrac, hphFracN_1, hphFracN_1PR, hphFracPR, htrackExtN_1, SimFlag::kMC, Detector::kNear, NuEvent::maxConsecutivePlanes, NuEvent::minTimeSeparation, NuEvent::nplaneShw, NuEvent::ntrk, NuCutter::Passed(), NuCutter::PassedUpTo(), PrepareEventForPlotting(), NuEvent::rw, NuEvent::shwEnMC, NuEvent::simFlag, NuEvent::slicePHFraction, and NuEvent::trknplane.

Referenced by MakeDataPlots().

00573 {
00574   this->PrepareEventForPlotting(event);
00575   //Fill the cleaning variables first (all fiducial events included)
00576   hphFrac->Fill(event.slicePHFraction, event.rw);
00577   hmaxConsPlanes->Fill(event.maxConsecutivePlanes, event.rw);
00578   
00579   //Fill Poor Reconstruction histos here
00580   if(SimFlag::kMC == event.simFlag){
00581     if( event.energyNC/event.shwEnMC < 0.3 ){
00582       hphFracPR->Fill(event.slicePHFraction, event.rw);
00583       hmaxConsPlanesPR->Fill(event.maxConsecutivePlanes, event.rw);
00584     }
00585   }
00586 
00587   //Useful to do timing here as well
00588   hminTimeSepN_1->Fill(event.minTimeSeparation,event.rw);
00589   
00590   //Now do the N-1 cleaning variable plots
00591   if (fCutter->Passed("maxPlanes") ){
00592     hphFracN_1->Fill(event.slicePHFraction, event.rw);
00593     if(SimFlag::kMC == event.simFlag){
00594       if( event.energyNC/event.shwEnMC < 0.3 ){
00595         hphFracN_1PR->Fill(event.slicePHFraction, event.rw);
00596       }
00597     }
00598   }
00599   if (fCutter->PassedUpTo("maxPlanes") ){      
00600     hmaxConsPlanesN_1->Fill(event.maxConsecutivePlanes, event.rw);
00601     if(SimFlag::kMC == event.simFlag){
00602       if( event.energyNC/event.shwEnMC < 0.3 ){
00603         hmaxConsPlanesN_1PR->Fill(event.maxConsecutivePlanes, event.rw);
00604       }
00605     }
00606   }
00607   
00608   //Do the selection variables next. Use fiducial+ND cleaning here
00609   if (fCutter->PassedUpTo("evtLength") ){
00610     hnumTracksN_1->Fill(event.ntrk, event.rw);
00611     
00612     //Need to recompute these quantities
00613     int trackExtension=-999;
00614     int planesInShower=-999;
00615     int planesInTrack=-999;
00616     
00617     if(event.trknplane == -999)
00618       planesInTrack = -9999;
00619     else 
00620       planesInTrack = event.trknplane;
00621     
00622     if(event.nplaneShw == -1)
00623       planesInShower = -9999;
00624     else
00625       planesInShower = event.nplaneShw;
00626     
00627     int eventLength=-999;
00628     
00629     if (Detector::kNear == event.detector){
00630       eventLength    = (event.planeEvtEnd - event.planeEvtBeg) + 1;
00631       trackExtension = planesInTrack - planesInShower;
00632     } else {
00633       eventLength    = event.planeEvtN;
00634       trackExtension = planesInTrack - planesInShower;
00635       // trackExtension = event.nplaneShw - event.trknplane;
00636     }
00637     
00638     hevtLengthN_1->Fill(eventLength, event.rw);
00639    
00640     //Fill track extension N-1 after length cut applied
00641     if(fCutter->PassedUpTo("trkExtend") ){
00642       htrackExtN_1->Fill(trackExtension, event.rw);
00643     }
00644   }
00645 }

void DataMCPlots::FillRoIDPlots ( NuEvent event  )  [private, virtual]

Definition at line 550 of file DataMCPlots.cxx.

References NuEvent::charge, fAnaVersion, hroIDN_1NotNuMuCCNQ, hroIDN_1NotNuMuCCPQ, hroIDN_1NQ, hroIDN_1PQ, NuEvent::iaction, NuCuts::kCC1070Std, SimFlag::kMC, PrepareEventForPlotting(), NuEvent::roID, NuEvent::rw, and NuEvent::simFlag.

Referenced by MakeDataPlots().

00551 {
00552   this->PrepareEventForPlotting(event);
00553   if (-1 == event.charge){
00554     hroIDN_1NQ->Fill(event.roID, event.rw);
00555   }
00556   if (1 == event.charge){
00557     hroIDN_1PQ->Fill(event.roID, event.rw);
00558   }
00559   if(NuCuts::kCC1070Std == fAnaVersion && event.simFlag==SimFlag::kMC){
00560     if (-1 == event.charge && !(event.iaction==1)){
00561       hroIDN_1NotNuMuCCNQ->Fill(event.roID, event.rw);
00562     }
00563     if (1 == event.charge && !(event.iaction==1)){
00564       hroIDN_1NotNuMuCCPQ->Fill(event.roID, event.rw);
00565     }
00566   }
00567 }

NuInputEvents & DataMCPlots::GetEventListForLooping (  )  [private, virtual]

Definition at line 78 of file DataMCPlots.cxx.

References NuDSTAna::DoIO(), fxmlConfig, and NuInputEvents::ResetNuEventLoopPositionToStart().

Referenced by MakeDataPlots().

00079 {
00080   NuInputEvents& input = this->DoIO(0, "", "null");
00081   fxmlConfig->Write();
00082   input.ResetNuEventLoopPositionToStart();
00083   return input;
00084 }

void DataMCPlots::MakeDataPlots (  )  [virtual]

Definition at line 87 of file DataMCPlots.cxx.

References CreateHistograms(), fAnaVersion, fCutter, fHistogramsCreated, FillPlots(), FillPlotsNCN_1(), FillRoIDPlots(), NuInputEvents::GetEntriesNuEvent(), GetEventListForLooping(), NuInputEvents::GetNextNuEvent(), Msg::kDebug, NuCuts::kNCPRLNC, NuCutter::MakeCuts(), NuCutter::Passed(), NuCutter::PassedExcept(), NuCutter::PassedUpTo(), PrepareEventForPlotting(), NuCutter::PrintSummary(), NuUtilities::ProgressBar(), and WritePlots().

00088 {
00089   NuInputEvents& input = this->GetEventListForLooping();
00090 
00091   for (Int_t i = 0; i < input.GetEntriesNuEvent(); ++i){
00092     NuUtilities::ProgressBar(i, input.GetEntriesNuEvent(), 5);
00093     NuEvent &nu = const_cast<NuEvent&>(input.GetNextNuEvent(Msg::kDebug));
00094     if (!fHistogramsCreated){this->CreateHistograms(nu);}
00095     
00096 
00097     this->PrepareEventForPlotting(nu);
00098     
00099     
00100     fCutter->MakeCuts(nu);
00101     
00102     if (fCutter->Passed()) {
00103       this->FillPlots(nu);
00104     }
00105     
00106     if (fCutter->PassedExcept("pid")){
00107       this->FillRoIDPlots(nu);
00108     }
00109     if(NuCuts::kNCPRLNC == fAnaVersion){
00110       //This is necessary for the NC N-X plots
00111       //Only use events that pass cuts up to and including fiducial cuts
00112       if (fCutter->PassedUpTo("slicePH")){
00113         this->FillPlotsNCN_1(nu);
00114       }
00115     } //if (kNCPRLNC)
00116      
00117  } // for
00118   this->WritePlots();
00119 
00120   fCutter->PrintSummary();
00121 }

void DataMCPlots::PrepareEventForPlotting ( NuEvent event  )  const [private, virtual]

Definition at line 124 of file DataMCPlots.cxx.

References NuMIPP::ApplyMippWeights(), NuReco::ApplyReweights(), NuReco::CalcResolution(), NuXMLConfig::ConfigureWeights(), NuEvent::detector, fAnaVersion, fLib, fMipp, fsyst, ftransition, fxmlConfig, NuReco::GetEvtEnergy(), SimFlag::kData, Detector::kFar, NuCuts::kNCPRLNC, Detector::kNear, NuLibrary::reco, NuTransition::Reweight(), NuSystematic::Shift(), and NuEvent::simFlag.

Referenced by FillPlots(), FillPlotsNCN_1(), FillRoIDPlots(), and MakeDataPlots().

00125 {
00126     event.anaVersion = fAnaVersion;
00127 
00128     fxmlConfig->ConfigureWeights(event);
00129 
00130     //RE-RECONSTRUCT the neutrino energy
00131     fLib->reco.GetEvtEnergy(event, false);
00132     fLib->reco.ApplyReweights(event);
00133     fLib->reco.CalcResolution(event);
00134    
00135     //apply systematics & oscillations
00136     if (event.simFlag!=SimFlag::kData) {
00137       if(event.detector == Detector::kNear) fsyst->Shift(event);
00138       if(event.detector == Detector::kFar) ftransition->Reweight(event);
00139       fMipp->ApplyMippWeights(event);
00140     }
00141     
00142   //Used for NC selection comparisons 
00143     if(NuCuts::kNCPRLNC == fAnaVersion){
00144       //Do nothing for now
00145     }
00146     
00147 }

void DataMCPlots::WritePlots (  )  [private, virtual]

Definition at line 649 of file DataMCPlots.cxx.

References fvHistos, and it.

Referenced by MakeDataPlots().

00650 {
00651   for (vector<TH1D*>::iterator it = fvHistos.begin();
00652        it != fvHistos.end();
00653        ++it){
00654     (*it)->Write();
00655   }
00656 }


Member Data Documentation

Definition at line 37 of file DataMCPlots.h.

Referenced by DataMCPlots(), FillPlotsNCN_1(), MakeDataPlots(), and ~DataMCPlots().

Definition at line 35 of file DataMCPlots.h.

Referenced by CreateHistograms(), DataMCPlots(), and MakeDataPlots().

Definition at line 38 of file DataMCPlots.h.

Referenced by DataMCPlots(), PrepareEventForPlotting(), and ~DataMCPlots().

Definition at line 39 of file DataMCPlots.h.

Referenced by DataMCPlots(), and PrepareEventForPlotting().

Definition at line 41 of file DataMCPlots.h.

Referenced by DataMCPlots(), and PrepareEventForPlotting().

Definition at line 42 of file DataMCPlots.h.

Referenced by DataMCPlots(), and PrepareEventForPlotting().

std::vector<TH1D*> DataMCPlots::fvHistos [private]

Definition at line 141 of file DataMCPlots.h.

Referenced by CreateHistograms(), DeleteHistograms(), and WritePlots().

Definition at line 40 of file DataMCPlots.h.

Referenced by DataMCPlots(), GetEventListForLooping(), and PrepareEventForPlotting().

TH1D* DataMCPlots::hDirCosNuNQ [private]

Definition at line 86 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hDirCosNuPQ [private]

Definition at line 87 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hdistToEdge [private]

Definition at line 95 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hevtLength [private]

Definition at line 102 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hevtLengthN_1 [private]

Definition at line 111 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

Definition at line 123 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 134 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 78 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 79 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 126 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 137 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 125 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 136 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 127 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 138 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 128 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 139 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hmaxConsPlanes [private]

Definition at line 98 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

Definition at line 107 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

Definition at line 109 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

Definition at line 100 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hminTimeSep [private]

Definition at line 104 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hminTimeSepN_1 [private]

Definition at line 113 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hnstripEvt [private]

Definition at line 96 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hnumTracks [private]

Definition at line 101 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hnumTracksN_1 [private]

Definition at line 110 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hphFrac [private]

Definition at line 97 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hphFracN_1 [private]

Definition at line 106 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hphFracN_1PR [private]

Definition at line 108 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hphFracPR [private]

Definition at line 99 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

TH1D* DataMCPlots::hPlaneTrkEndNQ [private]

Definition at line 75 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hPlaneTrkEndPQ [private]

Definition at line 76 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hPlaneTrkVtxNQ [private]

Definition at line 64 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hPlaneTrkVtxPQ [private]

Definition at line 65 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hqp_sigqpAll [private]

Definition at line 84 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hqpAll [private]

Definition at line 85 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hr2TrkEndNQ [private]

Definition at line 73 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hr2TrkEndPQ [private]

Definition at line 74 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hr2TrkVtxNQ [private]

Definition at line 62 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hr2TrkVtxPQ [private]

Definition at line 63 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hrecoENC [private]

Definition at line 93 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hrecoENCPR [private]

Definition at line 94 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hRecoEnergyAll [private]

Definition at line 44 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 119 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 130 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hRecoEnergyNQ [private]

Definition at line 45 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hRecoEnergyPQ [private]

Definition at line 46 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 81 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 82 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 83 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 122 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillRoIDPlots().

Definition at line 133 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillRoIDPlots().

TH1D* DataMCPlots::hroIDN_1NQ [private]

Definition at line 89 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillRoIDPlots().

TH1D* DataMCPlots::hroIDN_1PQ [private]

Definition at line 90 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillRoIDPlots().

TH1D* DataMCPlots::hrTrkEndNQ [private]

Definition at line 71 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hrTrkEndPQ [private]

Definition at line 72 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hrTrkVtxNQ [private]

Definition at line 60 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hrTrkVtxPQ [private]

Definition at line 61 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 53 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 54 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 121 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 132 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hShwEnergyNQ [private]

Definition at line 51 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hShwEnergyPQ [private]

Definition at line 52 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::htrackExt [private]

Definition at line 103 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::htrackExtN_1 [private]

Definition at line 112 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlotsNCN_1().

Definition at line 120 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

Definition at line 131 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hTrkEnergyNQ [private]

Definition at line 48 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hTrkEnergyPQ [private]

Definition at line 49 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hvtxXNC [private]

Definition at line 115 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hvtxYNC [private]

Definition at line 116 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hvtxZNC [private]

Definition at line 117 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hxTrkEndNQ [private]

Definition at line 67 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hxTrkEndPQ [private]

Definition at line 68 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hxTrkVtxNQ [private]

Definition at line 56 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hxTrkVtxPQ [private]

Definition at line 57 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hyTrkEndNQ [private]

Definition at line 69 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hyTrkEndPQ [private]

Definition at line 70 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hyTrkVtxNQ [private]

Definition at line 58 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().

TH1D* DataMCPlots::hyTrkVtxPQ [private]

Definition at line 59 of file DataMCPlots.h.

Referenced by CreateHistograms(), and FillPlots().


The documentation for this class was generated from the following files:

Generated on 2 Nov 2017 for loon by  doxygen 1.6.1