RockEvent Class Reference

#include <RockEvent.h>

List of all members.

Public Member Functions

 RockEvent (void)
 RockEvent (const NuEvent &nu)
void Reset (void)
 Resets everything to default.
void Fill (NuEvent nu, const bool dohoveshift=true)
 Fills variables from a NuEvent.
 ClassDef (RockEvent, 12)

Public Attributes

Float_t rw
 Monte Carlo event weight.
Int_t regionTrkVtx
 The event's 'region', e.g. front.
Char_t edgeRegionTrkVtx
 which edge of the octagon
Short_t stripHoveNumTrkVtx
 how far from a horizontal/vertical edge
Char_t stripTrkBegPerpFlag
 if the first diagonal hit is perpendicular
Short_t parallelStripTrkVtx
 which diagonal parallel strip is 1st hit
Int_t planeTrkBegu
 plane of first u hit
Int_t planeTrkBegv
 plane of first v hit
Char_t edgemid
 how rock-like edge events are (currently 2 categories)
Float_t trkEn
 Track energy.
Float_t dirCosNu
 reconstructed direction cosine of track
Float_t dang
 acos(dirCosNu) in degrees
Float_t neuEnMC
 True energy.
Int_t inu
 True particle ID.
Int_t iaction
 True interaction type (1=CC, 0=NC).
Float_t trkStartEnMC
 Muon energy at first scintillator hit.
Int_t neuEnMCBin
Int_t binNumber
 The true energy bin.

Detailed Description

A reduced NuEvent, for Rock Muons, so they can be stored in memory. This needs to duplicate the NuEvent variables so that it can be converted back into a (mostly empty) NuEvent for systematic shifts later. I think that it doesn't hurt (except for memory usage) to also have convenience variables derived from these as well.

Definition at line 18 of file RockEvent.h.


Constructor & Destructor Documentation

RockEvent::RockEvent ( void   ) 

Definition at line 19 of file RockEvent.cxx.

References Reset().

00020 {
00021   this->Reset();
00022 }

RockEvent::RockEvent ( const NuEvent nu  ) 

Definition at line 26 of file RockEvent.cxx.

References Fill().

00026                                       : neuEnMCBin(-1), binNumber(-1)
00027 {
00028   this->Fill(nu);
00029 }


Member Function Documentation

RockEvent::ClassDef ( RockEvent  ,
12   
)
void RockEvent::Fill ( NuEvent  nu,
const bool  dohoveshift = true 
)

Fills variables from a NuEvent.

Definition at line 44 of file RockEvent.cxx.

References NuEvent::containmentFlagCC0250Std, dang, dirCosNu, NuEvent::dirCosNu, MuELoss::e, NuCutImps::EdgeMID(), edgemid, NuEvent::edgeRegionTrkVtx, edgeRegionTrkVtx, NuEvent::iaction, iaction, NuEvent::inu, inu, SimFlag::kMC, Msg::kWarning, MAXMSG, neuEnMC, NuEvent::neuEnMC, NuEvent::parallelStripTrkVtx, parallelStripTrkVtx, planeTrkBegu, NuEvent::planeTrkBegu, planeTrkBegv, NuEvent::planeTrkBegv, NuEvent::regionTrkVtx, regionTrkVtx, NuEvent::rw, rw, ShiftHoveStrip(), NuEvent::simFlag, NuEvent::stripHoveNumTrkVtx, stripHoveNumTrkVtx, NuEvent::stripTrkBegPerpFlag, stripTrkBegPerpFlag, NuEvent::trkEn, trkEn, NuEvent::trkEnCurv, NuEvent::trkEnRange, NuEvent::trkStartEnMC, and trkStartEnMC.

Referenced by Reset(), and RockEvent().

00045 {
00046   // Apply geometry corrections.  This is not the ideal place to do it, but
00047   // Justin and I (Matt) decided that this was the best way that is feasible
00048   // at the moment.  For the next analysis round, this should be handled
00049   // in NuReco::ApplyReweights in the same way as energy shifts are.
00050   // Make sure this is done only for monte carlo and fake data (which is,
00051   // of course, monte carlo and so still gets SimFlag::kMC)
00052   if(dohoveshift && nu.simFlag == SimFlag::kMC)
00053     ShiftHoveStrip(nu);
00054 
00055   // Event variables
00056   this->rw = nu.rw;
00057 
00058   // Binning/histogram selecting variables
00059 
00060   this->regionTrkVtx = nu.regionTrkVtx;
00061 
00062   this->edgeRegionTrkVtx = nu.edgeRegionTrkVtx;
00063   this->stripHoveNumTrkVtx = nu.stripHoveNumTrkVtx;
00064   this->stripTrkBegPerpFlag = nu.stripTrkBegPerpFlag;
00065   this->parallelStripTrkVtx = nu.parallelStripTrkVtx;
00066   this->planeTrkBegu = nu.planeTrkBegu;
00067   this->planeTrkBegv = nu.planeTrkBegv;
00068 
00069   // edgemid = Edge Medium Identification
00070   // Possible media are:
00071   // 0 = rock-like
00072   // 1 = detector-like
00073   //
00074   // this has a value whether or not a track vertex is near an edge
00075   // Vertices far from an edge should all be labeled detector-like,
00076   // although near the ends of each supermodule this is not reliable
00077   this->edgemid = NuCutImps::EdgeMID(nu.edgeRegionTrkVtx, nu.stripHoveNumTrkVtx,
00078                                      nu.parallelStripTrkVtx);
00079 
00080   // "Best" track energy of the "primary" track, where "best" and "primary"
00081   // are defined upstream.  Force the correct definition of containment
00082   // for choosing range or curvature.
00083   const float trkEn = (nu.containmentFlagCC0250Std == 1) ? nu.trkEnRange : nu.trkEnCurv;
00084   if(fabs(trkEn-nu.trkEn) > 1e-3){
00085     MAXMSG("RockEvent", Msg::kWarning, 10)
00086       << "Adjusting trkEn because it doesn't agree with "
00087       << "containmentFlagCC0250Std. Are you using old DSTs?" << endl;
00088   }
00089   this->trkEn = trkEn;
00090 
00091   this->dirCosNu = nu.dirCosNu;
00092 
00093   // Angle of the track with respect to the beam direction, in degrees.
00094   // It's easier to bin sensibly than dirCosNu
00095   this->dang = TMath::ACos(nu.dirCosNu)*180/TMath::Pi();
00096 
00097   // Truth variables
00098   this->neuEnMC = nu.neuEnMC;
00099   this->inu = nu.inu;
00100   this->iaction = nu.iaction;
00101   this->trkStartEnMC = nu.trkStartEnMC;
00102 }

void RockEvent::Reset ( void   ) 

Resets everything to default.

Definition at line 33 of file RockEvent.cxx.

References binNumber, Fill(), and neuEnMCBin.

Referenced by RockEvent().

00034 {
00035   // Create a new, blank NuEvent so that the reset values will always be the same
00036   this->Fill(NuEvent());
00037 
00038   this->neuEnMCBin = -1;
00039   this->binNumber    = -1;
00040 }


Member Data Documentation

Float_t RockEvent::dang

reconstructed direction cosine of track

Definition at line 48 of file RockEvent.h.

Referenced by Fill().

which edge of the octagon

Definition at line 35 of file RockEvent.h.

Referenced by Fill().

which diagonal parallel strip is 1st hit

Definition at line 38 of file RockEvent.h.

Referenced by Fill().

plane of first u hit

Definition at line 39 of file RockEvent.h.

Referenced by Fill().

plane of first v hit

Definition at line 40 of file RockEvent.h.

Referenced by Fill().

Float_t RockEvent::rw

how far from a horizontal/vertical edge

Definition at line 36 of file RockEvent.h.

Referenced by Fill().

if the first diagonal hit is perpendicular

Definition at line 37 of file RockEvent.h.

Referenced by Fill().

Muon energy at first scintillator hit.

Definition at line 57 of file RockEvent.h.

Referenced by Fill(), and Rock1DMatrix::GetVariable().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1