1 #ifndef ANITA_DATASET_H 2 #define ANITA_DATASET_H 29 #include "AnitaConventions.h" 58 kInsertedVPolEvents = 0x01,
59 kInsertedHPolEvents = 0x02,
60 kRandomizePolarity = 0x04,
61 kDefault = kNoBlinding
91 BlindingStrategy
setStrategy(BlindingStrategy strat);
123 static const char *
getDataDir(DataDirectory dir = ANITA_ROOT_DATA);
138 static bool isKnownHiCalEvent(UInt_t eventNumber, Int_t anita=AnitaVersion::get());
154 DataDirectory dir = ANITA_ROOT_DATA , BlindingStrategy strat = AnitaDataset::kDefault);
168 bool loadRun(
int run,
bool decimated =
false, DataDirectory dir = ANITA_ROOT_DATA );
173 int getEvent(
int eventNumber,
bool quiet =
false);
179 int current() {
return fDecimated ? fDecimatedEntry : fWantedEntry; }
182 int next() {
return getEntry(fDecimated ? fDecimatedEntry +1 : fWantedEntry+1); }
221 int setCut(
const TCut & cut);
305 std::vector<Double_t>*
RcoInfo(
bool force_reload =
false);
307 std::vector<Double_t>*
ClockPhiInfo(
bool force_reload =
false);
324 bool maybeInvertPolarity(UInt_t eventNumber);
327 static void hiCal(UInt_t unixTime, Double_t& longitude, Double_t& latitude, Double_t& altitude);
330 void hiCal(Double_t& longitude, Double_t& latitude, Double_t& altitude);
335 TTree * fDecimatedHeadTree;
340 TTree* fCalibInfoTree;
344 std::vector<Double_t>* fRcoInfo;
345 std::vector<Double_t>* fClockPhiInfo;
346 std::vector<Double_t>* fTempFactorInfo;
347 Int_t fClockProblemInfo;
348 Int_t fClockSpikeInfo;
373 Long64_t fWantedEntry;
374 Long64_t fDecimatedEntry;
375 Bool_t fHaveGpsEvent;
376 Bool_t fHaveCalibFile;
377 Bool_t fHaveCalibInfo;
379 std::vector<TFile *> filesToClose;
381 TEventList * fCutList;
384 static void loadRunToEv(
int anita);
385 static void loadHiCalGps();
388 std::vector<std::vector<long> > fPlaylist;
389 int getPlaylistRun() {
return fPlaylist[fPlaylistIndex][0]; }
390 Long64_t getPlaylistEvent() {
return fPlaylist[fPlaylistIndex][1]; }
394 void zeroBlindPointers();
395 void loadBlindTrees();
397 BlindingStrategy theStrat;
416 std::vector<AnitaPol::AnitaPol_t> polarityOfEventToInsert;
417 std::vector<Int_t> fakeTreeEntries;
419 DataDirectory datadir;
425 inline AnitaDataset::BlindingStrategy operator|(AnitaDataset::BlindingStrategy strat1, AnitaDataset::BlindingStrategy strat2){
426 return static_cast<AnitaDataset::BlindingStrategy
>(
static_cast<UInt_t
>(strat1) | static_cast<UInt_t>(strat2));
429 inline AnitaDataset::BlindingStrategy operator&(AnitaDataset::BlindingStrategy strat1, AnitaDataset::BlindingStrategy strat2){
430 return static_cast<AnitaDataset::BlindingStrategy
>(
static_cast<UInt_t
>(strat1) & static_cast<UInt_t>(strat2));
bool loadedBlindTrees
!< for deciding whether to do polarity flipping (eventNumber is used as seed)
static int getRunAtTime(double t)
std::vector< Double_t > * RcoInfo(bool force_reload=false)
int setCut(const TCut &cut)
TTree * fBlindEventTree[AnitaPol::kNotAPol]
!< Pointer to file containing tree of UsefulAnitaEvents to insert
Int_t ClockSpikeInfo(bool force_reload=false)
AnitaDataset(int run, bool decimated=false, WaveCalType::WaveCalType_t cal=WaveCalType::kDefault, DataDirectory dir=ANITA_ROOT_DATA, BlindingStrategy strat=AnitaDataset::kDefault)
CalibratedAnitaEvent * calibrated(bool force_reload=false)
static void hiCal(UInt_t unixTime, Double_t &longitude, Double_t &latitude, Double_t &altitude)
std::vector< UInt_t > eventsToOverwrite
!< Pointer to fake header
Adu5Pat – The ADU5 Position and Attitude Data.
enum WaveCalType::EWaveCalType WaveCalType_t
The calibration enumeration type.
PrettyAnitaHk – The prettified ANITA Hk.
void setCalType(WaveCalType::WaveCalType_t cal)
int getEntry(int entryNumber)
int previousMinBiasEvent()
TruthAnitaEvent * truth(bool force_reload=true)
Int_t needToOverwriteEvent(AnitaPol::AnitaPol_t pol, UInt_t eventNumber)
!< Have we loaded the tree of events to insert?
bool loadRun(int run, bool decimated=false, DataDirectory dir=ANITA_ROOT_DATA)
static bool isKnownHiCalEvent(UInt_t eventNumber, Int_t anita=AnitaVersion::get())
int getEvent(int eventNumber, bool quiet=false)
Int_t RFSpikeInfo(bool force_reload=false)
SurfHk – The raw SURF scaler+threshold data.
What you should call for analysis work.
virtual UsefulAnitaEvent * useful(bool force_reload=false)
SurfHk * surf(bool force_reload=false)
UsefulAnitaEvent – The Calibrated Useful Anita Event object.
std::vector< Double_t > * TempFactorInfo(bool force_reload=false)
RawAnitaEvent * raw(bool force_reload=false)
CalibratedAnitaEvent – The Calibrated Calibrated Anita Event object.
TTree * fBlindHeadTree[AnitaPol::kNotAPol]
!< Tree of UsefulAnitaEvents to insert
TruthAnitaEvent – The Truth ANITA Event.
UsefulAnitaEvent * fBlindEvent[AnitaPol::kNotAPol]
!< Tree of headers to insert
static TString getDescription(BlindingStrategy strat)
BlindingStrategy getStrategy()
Int_t ClockProblemInfo(bool force_reload=false)
static const char * getDataDir(DataDirectory dir=ANITA_ROOT_DATA)
TurfRate – The Turf Rate data.
Adu5Pat * gps(bool force_reload=false)
RawAnitaHeader * fBlindHeader[AnitaPol::kNotAPol]
!< Pointer to fake UsefulAnitaEvent
TRandom3 fRandy
!< Currently selected blinding strategy
PrettyAnitaHk * hk(bool force_reload=false)
virtual RawAnitaHeader * header(bool force_reload=false)
int loadPlaylist(const char *playlist)
Where was HiCal?
std::vector< Double_t > * ClockPhiInfo(bool force_reload=false)
TString describeCurrentStrategy()
BlindingStrategy setStrategy(BlindingStrategy strat)
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.
static int getRunContainingEventNumber(UInt_t eventNumber)
Get the run that contains the eventNumber.
int setPlaylist(const char *playlist)
RawAnitaEvent – The Raw ANITA Event Data.
TurfRate * turf(bool force_reload=false)