#include #include #include #include #include #include namespace COMET { class ITreeMaker; }; class COMET::ITreeMaker : public ICOMETEventLoopFunction { public: ITreeMaker(){}; virtual ~ITreeMaker() {}; void Initialize(); bool operator() (COMET::ICOMETEvent& event); void Finalize(ICOMETOutput* const output); //void LoopOverDigits(); // void LoopOverHits(); private: int BarFromName(std::string); int LayerXFromName(std::string); int LayerYFromName(std::string); TTree* FindOrClone(const char* name, TTree* src); TTree* fDigitSimTree; UInt_t fChan; UInt_t fTfb; UInt_t fRmm; UInt_t fSubdet; Int_t fSide; UInt_t fErr; Long64_t fTdc; Long64_t fTdcTrig; Long64_t fTdcRead; struct tdc_t{ UInt_t coarse; UInt_t fine; } fT; struct adc_t{ Int_t lo; Int_t hi; } fAdc; TTree* fHitTree; Float_t fTime; Float_t fCharge; UInt_t fGeomId; struct position_t{ Float_t x; Float_t y; Float_t z; } fPos; Int_t fXLayer; Int_t fYLayer; Int_t fBar; Int_t fEnd; Float_t fTimeRead; Int_t fEvent; };