#ifndef PNDSTTMAPCREATOR_H #define PNDSTTMAPCREATOR_H #include #include #include "TObject.h" #include "TArrayI.h" class PndSttTube; class PndGeoSttPar; class PndSttMapCreator : public TObject { public: PndSttMapCreator(); PndSttMapCreator(Int_t geoType); PndSttMapCreator(PndGeoSttPar *par); ~PndSttMapCreator(); // general functions void SetGeneralParameters(); void SetGeometryParameters(PndGeoSttPar *par); // general functions, to be specified depending on geo type Int_t GetTubeIDFromPath(TString path); Int_t GetTubeIDFromName(TString name); PndSttTube * GetTubeFromTubeID(Int_t tubeid); TClonesArray * FillTubeArray(); TString GetNameFromTubeID(Int_t tubeid); TArrayI ComputeNeighboringGeoType1(int tubeid); void Print(); private: // geometry type 1 specific functions Int_t GetTubeIDFromPathGeoType1(TString path); Int_t GetTubeIDFromNameGeoType1(TString name); TString GetNameFromPathGeoType1(TString path); TString GetNameFromTubeIDGeoType1(Int_t tubeid, Bool_t isCopy); PndSttTube * GetTubeFromTubeIDGeoType1(Int_t tubeid); PndSttTube * GetTubeFromTubeIDToFillGeoType1(Int_t tubeid); TClonesArray* FillTubeArrayGeoType1(); Int_t GetTubeLayerGeoType1(int tubeid); Int_t GetTubeSectorGeoType1(int tubeid); Int_t fGeoType; PndGeoSttPar *fSttParameters; Double_t fTubeInRad, fTubeOutRad; // fGeoType1 std::map copy_map; PndSttMapCreator(const PndSttMapCreator& L); PndSttMapCreator& operator= (const PndSttMapCreator&) {return *this;}; Int_t fNLayers, fNSectors, fNTubes, fNTubes_inner_parallel, fNTubes_outer_parallel, fNTubes_fillup_parallel, fNTubes_skewed, fNLayers_inner_parallel, fNLayers_outer_parallel, fNLayers_fillup_parallel; // Int_t fStartTube[fNSectors][fNLayers], fEndTube[fNSectors][fNLayers] Int_t **fStartTube, **fEndTube, **fShift; protected: ClassDef(PndSttMapCreator,1) }; #endif