Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
AnitaDataset Class Reference

Public Types

enum  BlindingStrategy {
  kNoBlinding = 0x00, kInsertedVPolEvents = 0x01, kInsertedHPolEvents = 0x02, kRandomizePolarity = 0x04,
  kDefault = kNoBlinding
}
 
enum  DataDirectory {
  ANITA_ROOT_DATA = -1, ANITA_MC_DATA = 0, ANITA1_ROOT_DATA =1, ANITA2_ROOT_DATA =2,
  ANITA3_ROOT_DATA =3, ANITA4_ROOT_DATA =4
}
 

Public Member Functions

BlindingStrategy setStrategy (BlindingStrategy strat)
 
BlindingStrategy getStrategy ()
 
TString describeCurrentStrategy ()
 
 AnitaDataset (int run, bool decimated=false, WaveCalType::WaveCalType_t cal=WaveCalType::kDefault, DataDirectory dir=ANITA_ROOT_DATA, BlindingStrategy strat=AnitaDataset::kDefault)
 
void setCalType (WaveCalType::WaveCalType_t cal)
 
virtual ~AnitaDataset ()
 
bool loadRun (int run, bool decimated=false, DataDirectory dir=ANITA_ROOT_DATA)
 
int getEvent (ULong_t eventNumber, bool quiet=false)
 
int getEntry (int entryNumber)
 
int current ()
 
int next ()
 
int previous ()
 
int first ()
 
int last ()
 
int N () const
 
int firstEvent ()
 
int nextEvent ()
 
int previousEvent ()
 
int lastEvent ()
 
int nthEvent (int i)
 
int nextMinBiasEvent ()
 
int previousMinBiasEvent ()
 
int setCut (const TCut &cut)
 
int NInCut () const
 
int firstInCut ()
 
int lastInCut ()
 
int nextInCut ()
 
int previousInCut ()
 
int nthInCut (int i)
 
int setPlaylist (const char *playlist)
 
int NInPlaylist () const
 
int firstInPlaylist ()
 
int lastInPlaylist ()
 
int nextInPlaylist ()
 
int previousInPlaylist ()
 
int nthInPlaylist (int i)
 
virtual UsefulAnitaEventuseful (bool force_reload=false)
 
RawAnitaEventraw (bool force_reload=false)
 
CalibratedAnitaEventcalibrated (bool force_reload=false)
 
Adu5Patgps (bool force_reload=false)
 
PrettyAnitaHkhk (bool force_reload=false)
 
virtual RawAnitaHeaderheader (bool force_reload=false)
 
TurfRateturf (bool force_reload=false)
 
SurfHksurf (bool force_reload=false)
 
TruthAnitaEventtruth (bool force_reload=true)
 
std::vector< Double_t > * RcoInfo (bool force_reload=false)
 
std::vector< Double_t > * ClockPhiInfo (bool force_reload=false)
 
std::vector< Double_t > * TempFactorInfo (bool force_reload=false)
 
Int_t ClockProblemInfo (bool force_reload=false)
 
Int_t ClockSpikeInfo (bool force_reload=false)
 
Int_t RFSpikeInfo (bool force_reload=false)
 
int getCurrRun ()
 
bool maybeInvertPolarity (UInt_t eventNumber)
 
void hiCal (Double_t &longitude, Double_t &latitude, Double_t &altitude)
 

Static Public Member Functions

static TString getDescription (BlindingStrategy strat)
 
static int getRunContainingEventNumber (UInt_t eventNumber)
 Get the run that contains the eventNumber. More...
 
static const char * getDataDir (DataDirectory dir=ANITA_ROOT_DATA)
 
static int getRunAtTime (double t)
 
static bool isKnownHiCalEvent (UInt_t eventNumber, Int_t anita=AnitaVersion::get())
 
static void hiCal (UInt_t unixTime, Double_t &longitude, Double_t &latitude, Double_t &altitude)
 

Public Attributes

bool fRunLoaded
 

Protected Member Functions

void unloadRun ()
 
int loadPlaylist (const char *playlist)
 Where was HiCal?
 
int getPlaylistRun ()
 
Long64_t getPlaylistEvent ()
 
void zeroBlindPointers ()
 
void loadBlindTrees ()
 
Int_t needToOverwriteEvent (AnitaPol::AnitaPol_t pol, UInt_t eventNumber)
 !< Have we loaded the tree of events to insert? More...
 
void overwriteHeader (RawAnitaHeader *header, AnitaPol::AnitaPol_t pol, Int_t fakeTreeEntry)
 
void overwriteEvent (UsefulAnitaEvent *useful, AnitaPol::AnitaPol_t pol, Int_t fakeTreeEntry)
 

Static Protected Member Functions

static void loadRunToEv (int anita)
 
static void loadHiCalGps ()
 

Protected Attributes

TTree * fHeadTree
 
TTree * fDecimatedHeadTree
 
Long64_t * fIndices
 
Long64_t fIndex
 
RawAnitaHeaderfHeader
 
TTree * fEventTree
 
TTree * fCalibInfoTree
 
CalibratedAnitaEventfCalEvent
 
RawAnitaEventfRawEvent
 
UsefulAnitaEventfUseful
 
std::vector< Double_t > * fRcoInfo
 
std::vector< Double_t > * fClockPhiInfo
 
std::vector< Double_t > * fTempFactorInfo
 
Int_t fClockProblemInfo
 
Int_t fClockSpikeInfo
 
Int_t fRFSpikeInfo
 
Bool_t fUsefulDirty
 
Bool_t fCalDirty
 
Bool_t fGpsDirty
 
TTree * fGpsTree
 
Adu5PatfGps
 
TTree * fHkTree
 
PrettyAnitaHkfHk
 
TTree * fTurfTree
 
TurfRatefTurf
 
Bool_t fTurfDirty
 
TTree * fSurfTree
 
SurfHkfSurf
 
Bool_t fSurfDirty
 
TTree * fTruthTree
 
TruthAnitaEventfTruth
 
int currRun
 
Long64_t fWantedEntry
 
Long64_t fDecimatedEntry
 
Bool_t fHaveGpsEvent
 
Bool_t fHaveCalibFile
 
Bool_t fHaveCalibInfo
 
WaveCalType::WaveCalType_t fCalType
 
std::vector< TFile * > filesToClose
 
bool fDecimated
 
TEventList * fCutList
 
int fCutIndex
 
int fPlaylistIndex
 
std::vector< std::vector< long > > fPlaylist
 
BlindingStrategy theStrat
 
TRandom3 fRandy
 !< Currently selected blinding strategy
 
bool loadedBlindTrees
 !< for deciding whether to do polarity flipping (eventNumber is used as seed)
 
TFile * fBlindFile
 
TTree * fBlindEventTree [AnitaPol::kNotAPol]
 !< Pointer to file containing tree of UsefulAnitaEvents to insert
 
TTree * fBlindHeadTree [AnitaPol::kNotAPol]
 !< Tree of UsefulAnitaEvents to insert
 
UsefulAnitaEventfBlindEvent [AnitaPol::kNotAPol]
 !< Tree of headers to insert
 
RawAnitaHeaderfBlindHeader [AnitaPol::kNotAPol]
 !< Pointer to fake UsefulAnitaEvent
 
std::vector< UInt_t > eventsToOverwrite
 !< Pointer to fake header
 
std::vector< AnitaPol::AnitaPol_tpolarityOfEventToInsert
 
std::vector< Int_t > fakeTreeEntries
 
DataDirectory datadir
 

Detailed Description

Definition at line 47 of file AnitaDataset.h.

Collaboration diagram for AnitaDataset:
Collaboration graph
[legend]

Constructor & Destructor Documentation

AnitaDataset::AnitaDataset ( int  run,
bool  decimated = false,
WaveCalType::WaveCalType_t  cal = WaveCalType::kDefault,
DataDirectory  dir = ANITA_ROOT_DATA,
BlindingStrategy  strat = AnitaDataset::kDefault 
)

Constructor loading a run with calibration type and anita version. If decimated is true, the decimated header file is read and you only have access to the 10% dataset.

cal changes the calibration type.

version is: negative to read ANITA_ROOT_DATA postive # to read ANITA::_ROOT_DATA 0 to read ANITA_MC_DATA

strat is the blinding strategy.

Definition at line 214 of file AnitaDataset.cxx.

AnitaDataset::~AnitaDataset ( )
virtual

Destructor

Definition at line 531 of file AnitaDataset.cxx.

Member Function Documentation

CalibratedAnitaEvent * AnitaDataset::calibrated ( bool  force_reload = false)

Loads the calibrated event. This may be read directly from disk if available or otherwise created on the fly. If force_reload is true, the event will be reloaded from the tree.

Definition at line 310 of file AnitaDataset.cxx.

std::vector< Double_t > * AnitaDataset::ClockPhiInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the clockphi info part.

Definition at line 1292 of file AnitaDataset.cxx.

Int_t AnitaDataset::ClockProblemInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the clock problem info part.

Definition at line 1314 of file AnitaDataset.cxx.

Int_t AnitaDataset::ClockSpikeInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the clock spike info part.

Definition at line 1325 of file AnitaDataset.cxx.

TString AnitaDataset::describeCurrentStrategy ( )
inline

Get the description string for the currently enabled strategy

Returns
the description for the current strategy

Definition at line 105 of file AnitaDataset.h.

int AnitaDataset::first ( )
inline

loads the first entry

Definition at line 188 of file AnitaDataset.h.

int AnitaDataset::firstEvent ( )

Loads the firstEvent (in case the entries are not in order). returns the entry of it

Definition at line 878 of file AnitaDataset.cxx.

int AnitaDataset::firstInCut ( )

Loads the first event passing the cut. Returns the entry number or -1 if no cut applied

Definition at line 986 of file AnitaDataset.cxx.

int AnitaDataset::firstInPlaylist ( )

Loads the first event in the playlist. Returns the entry number or -1 if no playlist

Definition at line 1061 of file AnitaDataset.cxx.

int AnitaDataset::getCurrRun ( )
inline

Want to see what run you previously loaded? Look no further

Definition at line 321 of file AnitaDataset.h.

const char * AnitaDataset::getDataDir ( DataDirectory  dir = ANITA_ROOT_DATA)
static

Get the data directory for the anita version based on environmental variables.

Definition at line 162 of file AnitaDataset.cxx.

TString AnitaDataset::getDescription ( BlindingStrategy  strat)
static

Get a one line description of the blinding strategy (please update this in AnitaDataset.cxx when you add a strategy.

Parameters
stratis the strategy to describe.
Returns
the description

Definition at line 1487 of file AnitaDataset.cxx.

int AnitaDataset::getEntry ( int  entryNumber)

loads the desired entry within the tree. Returns the current entry afterwards.

Definition at line 466 of file AnitaDataset.cxx.

int AnitaDataset::getEvent ( ULong_t  eventNumber,
bool  quiet = false 
)

loads the desired eventNumber and returns the current entry If quiet is true, won't print out a warning about changing runs or missing events.

Definition at line 502 of file AnitaDataset.cxx.

int AnitaDataset::getRunAtTime ( double  t)
static

Returns the run at the requested time

Definition at line 1365 of file AnitaDataset.cxx.

int AnitaDataset::getRunContainingEventNumber ( UInt_t  eventNumber)
static

Get the run that contains the eventNumber.

Uses AnitaVersion::get(), if it's not correct you won't get the right answer!

Parameters
eventNumberis the eventNumber
Returns
the run

Definition at line 1107 of file AnitaDataset.cxx.

AnitaDataset::BlindingStrategy AnitaDataset::getStrategy ( )

Get the currently set strategy

Returns
the strategy that was set

Definition at line 1517 of file AnitaDataset.cxx.

Adu5Pat * AnitaDataset::gps ( bool  force_reload = false)

Loads the GPS. This is either from the gpsEventTree or the best-timed PAT from the gpsTree. force_reload will reload it even if it has already been loaded

Definition at line 270 of file AnitaDataset.cxx.

RawAnitaHeader * AnitaDataset::header ( bool  force_reload = false)
virtual

Loads the Header. This will preferentially be from the timedHeader tree but will fall back to the less glamorous one if need be. If the decimated run was loaded, the decimated header tree is used. Optionally can force a reload

Definition at line 343 of file AnitaDataset.cxx.

void AnitaDataset::hiCal ( UInt_t  realTime,
Double_t &  longitude,
Double_t &  latitude,
Double_t &  altitude 
)
static

Where was hical at a particular time?

Parameters
longitudehical position
latitudehical position
altitudehical position
realTimeunixTime stamp of the gps tree

Definition at line 1675 of file AnitaDataset.cxx.

void AnitaDataset::hiCal ( Double_t &  longitude,
Double_t &  latitude,
Double_t &  altitude 
)

Where was hical? Uses the current header realTime to query the hical gps tree...

Parameters
longitudehical position
latitudehical position
altitudehical position

Definition at line 1660 of file AnitaDataset.cxx.

PrettyAnitaHk * AnitaDataset::hk ( bool  force_reload = false)

Loads the PrettyAnitaHk. Optionally can force a reload

Definition at line 333 of file AnitaDataset.cxx.

bool AnitaDataset::isKnownHiCalEvent ( UInt_t  eventNumber,
Int_t  anita = AnitaVersion::get() 
)
static

Check against the list of known Hi-Cal events. Warning... this list is likely incomplete!

Todo:
implement this for ANITA-4
Parameters
eventNumberthe eventNumber
anitawhich ANITA flight? (optional: uses AnitaVersion::get() if not supplied.)
Returns
true if the event is on the list, false otherwise.

Definition at line 47 of file AnitaDataset.cxx.

int AnitaDataset::last ( )
inline

loads the last entry

Definition at line 191 of file AnitaDataset.h.

int AnitaDataset::lastEvent ( )

Loads last event (in case the entries are not in order). returns the entry of it.

Definition at line 883 of file AnitaDataset.cxx.

int AnitaDataset::lastInCut ( )

Loads the last event passing the cut. Returns the entry number or -1 if no cut applied

Definition at line 991 of file AnitaDataset.cxx.

int AnitaDataset::lastInPlaylist ( )

Loads the last event in the playlist. Returns the entry number or -1 if no playlist

Definition at line 1066 of file AnitaDataset.cxx.

bool AnitaDataset::loadRun ( int  run,
bool  decimated = false,
DataDirectory  dir = ANITA_ROOT_DATA 
)

Loads run. Can use decimated to load the 10% data file

Definition at line 609 of file AnitaDataset.cxx.

int AnitaDataset::N ( ) const

returns the number of entries

Definition at line 910 of file AnitaDataset.cxx.

Int_t AnitaDataset::needToOverwriteEvent ( AnitaPol::AnitaPol_t  pol,
UInt_t  eventNumber 
)
protected

!< Have we loaded the tree of events to insert?

Loop through list of events to overwrite for a given polarisation and return the fakeTreeEntry we need to overwrite

Parameters
polis the polarity to consider blinding
eventNumberis the eventNumber, obviously
Returns
-1 if we don't overwrite, the entry in the fakeTree otherwise

Definition at line 1706 of file AnitaDataset.cxx.

int AnitaDataset::next ( )
inline

gets the next entry and returns the current entry afterwards

Definition at line 182 of file AnitaDataset.h.

int AnitaDataset::nextEvent ( )

Loads next event (in case the entries are not in order). returns the entry of it

Definition at line 897 of file AnitaDataset.cxx.

int AnitaDataset::nextInCut ( )

Loads the next passing the cut. Returns the entry number or -1 if no cut applied

Definition at line 1007 of file AnitaDataset.cxx.

int AnitaDataset::nextInPlaylist ( )

Loads the next playlist event. Returns the entry number or -1 if no playlist

Definition at line 1082 of file AnitaDataset.cxx.

int AnitaDataset::nextMinBiasEvent ( )

Loads next minbias event. returns the entry of it

Definition at line 938 of file AnitaDataset.cxx.

int AnitaDataset::NInCut ( ) const

The number of events in the cut (or -1 if no cut is applied)

Definition at line 975 of file AnitaDataset.cxx.

int AnitaDataset::NInPlaylist ( ) const

The number of events in the playlist (or -1 if no playlist)

Definition at line 1050 of file AnitaDataset.cxx.

int AnitaDataset::nthEvent ( int  i)

Returns the nth event (in case the entries are not in order). returns the entry of it.

Definition at line 888 of file AnitaDataset.cxx.

int AnitaDataset::nthInCut ( int  i)

Loads the nth event passing the cut. Returns the entry number or -1 if no cut applied

Definition at line 997 of file AnitaDataset.cxx.

int AnitaDataset::nthInPlaylist ( int  i)

Loads the nth playlist event. Returns the entry number or -1 if no playlist

Definition at line 1072 of file AnitaDataset.cxx.

int AnitaDataset::previous ( )
inline

gets the previous entry and returns the current entry afterwards

Definition at line 185 of file AnitaDataset.h.

int AnitaDataset::previousEvent ( )

Loads previous event (in case the entries are not in order). returns the entry of it

Definition at line 864 of file AnitaDataset.cxx.

int AnitaDataset::previousInCut ( )

Loads the previous passing the cut. Returns the entry number or -1 if no cut applied

Definition at line 1023 of file AnitaDataset.cxx.

int AnitaDataset::previousInPlaylist ( )

Loads the previous playlist event. Returns the entry number or -1 if no playlist

Definition at line 1094 of file AnitaDataset.cxx.

int AnitaDataset::previousMinBiasEvent ( )

Loads previous minbias event. returns the entry of it

Definition at line 916 of file AnitaDataset.cxx.

RawAnitaEvent * AnitaDataset::raw ( bool  force_reload = false)

Loads the raw event. If force_reload is true, the event will be reloaded from the tree.

Definition at line 378 of file AnitaDataset.cxx.

std::vector< Double_t > * AnitaDataset::RcoInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the rco info part. These are computed by makeCalibratedEventInfo in anitaTreeMaker so that you can have consistent calibratedEventFiles that can be generated on the fly

Definition at line 1281 of file AnitaDataset.cxx.

Int_t AnitaDataset::RFSpikeInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the rf spike info part.

Definition at line 1336 of file AnitaDataset.cxx.

void AnitaDataset::setCalType ( WaveCalType::WaveCalType_t  cal)
inline

Change the calibration type

Definition at line 157 of file AnitaDataset.h.

int AnitaDataset::setCut ( const TCut &  cut)

Applies a cut to the entire dataset. Supercedes any previous cut. Once you apply a cut, you may use NInCut, firstInCut(), nextInCut(), previousInCut(), lastInCut() to iterate. The cut applies to the headTree. Returns the number of event sin the cut

Definition at line 961 of file AnitaDataset.cxx.

int AnitaDataset::setPlaylist ( const char *  playlist)

Loads a playlist for your dataset.Playlist format is RUN EVENTNUMBER
or EVENTNUMBER
After applying playlist, use these to iterate through. Need runToEv files from MagicDisplay

Definition at line 1039 of file AnitaDataset.cxx.

AnitaDataset::BlindingStrategy AnitaDataset::setStrategy ( BlindingStrategy  strat)

Set the current strategy (see AnitaDataset.h) for strategy options

Parameters
stratis the strategy to use. This can be a combination e.g. (kInsertedVPolEvents | kAnotherStrategy)
Returns
the strategy that was set

Definition at line 1511 of file AnitaDataset.cxx.

SurfHk * AnitaDataset::surf ( bool  force_reload = false)

Loads the SURF Hk. This is indexed so that the the payload times match as closely as possible

Definition at line 1253 of file AnitaDataset.cxx.

std::vector< Double_t > * AnitaDataset::TempFactorInfo ( bool  force_reload = false)

Loads the calibInfo file and produces the tempfactor info part.

Definition at line 1303 of file AnitaDataset.cxx.

TruthAnitaEvent * AnitaDataset::truth ( bool  force_reload = true)

Loads the MCTruth. This will be NULL if there is no truth (like if you're working with real data.

Definition at line 1269 of file AnitaDataset.cxx.

TurfRate * AnitaDataset::turf ( bool  force_reload = false)

Loads the TURF Rate. This is indexed so that the fTurf->realTime is as close as possible to the header triggerTime

Definition at line 1238 of file AnitaDataset.cxx.

UsefulAnitaEvent * AnitaDataset::useful ( bool  force_reload = false)
virtual

Loads the useful event. If force_reload is true, the event will be reloaded from the tree (in case you made some changes and want a fresh copy). This will either be created from the CalibratedAnitaEvent or RawAnitaEvent, whichever the Dataset found

Definition at line 389 of file AnitaDataset.cxx.

Member Data Documentation

bool AnitaDataset::fRunLoaded

Lets you check to see if you have a header and event file actually loaded, or if it failed loading

Definition at line 318 of file AnitaDataset.h.


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