#ifndef MARS_MCerPhotEvt #define MARS_MCerPhotEvt #ifndef ROOT_TClonesArray #include #endif #ifndef MARS_MCamEvent #include "MCamEvent.h" #endif #ifndef MARS_MCerPhotPix #include "MCerPhotPix.h" #endif class MGeomCam; class MCerPhotPix; class MCerPhotEvt : public MCamEvent { private: UInt_t fNumPixels; TClonesArray *fPixels; //-> FIXME: Change TClonesArray away from a pointer? public: MCerPhotEvt(const char *name=NULL, const char *title=NULL); ~MCerPhotEvt() { delete fPixels; } UInt_t GetNumPixels() const { return fNumPixels; } //void InitSize(UInt_t num) { fPixels->Expand(num); } void AddPixel(Int_t id, Float_t nph, Float_t er) { new ((*fPixels)[fNumPixels++]) MCerPhotPix(id, nph, er); } void FixSize(); //Bool_t AddEvent(const MCerPhotEvt &evt); Bool_t IsPixelExisting(Int_t id) const; Bool_t IsPixelUsed (Int_t id) const; Bool_t IsPixelCore (Int_t id) const; Float_t GetNumPhotonsMin(const MGeomCam *geom=NULL) const; Float_t GetNumPhotonsMax(const MGeomCam *geom=NULL) const; Float_t GetRatioMin(const MGeomCam *geom=NULL) const; Float_t GetRatioMax(const MGeomCam *geom=NULL) const; Float_t GetErrorPhotMin(const MGeomCam *geom=NULL) const; Float_t GetErrorPhotMax(const MGeomCam *geom=NULL) const; MCerPhotPix &operator[](int i) { return *(MCerPhotPix*)(fPixels->UncheckedAt(i)); } MCerPhotPix &operator[](int i) const { return *(MCerPhotPix*)(fPixels->UncheckedAt(i)); } void Scale(Double_t f); void RemoveUnusedPixels(); MCerPhotPix *GetPixById(int id) const; void Reset(); void Draw(Option_t* option = ""); void Print(Option_t *opt=NULL) const; void Clear(Option_t *opt=NULL) { Reset(); } Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const; void DrawPixelContent(Int_t num) const { } ClassDef(MCerPhotEvt, 1) // class for an event containing cerenkov photons }; #endif