//////////////////////////////////////////// // StaLandAdapter interface // generic interface to Root/Trees // e.d.f revision 04/2012 // // Author: sebastian.kupny@uj.edu.pl //////////////////////////////////////////// #ifndef STA_LAND_ADAPTER_H #define STA_LAND_ADAPTER_H #include "TTree.h" #include "TFile.h" #include "TNamed.h" #include "TMath.h" #include "TRandom2.h" #include "TLANDEvent.h" #include "TRootEvent.h" #include "STA.h" /// Class PaddleCalParam is a container for LAND configuration parameters wchich are /// needed for the STA algorithm. class PaddleCalParam: public TObject{ public: PaddleCalParam(); ~PaddleCalParam(); Double_t rDiff; Double_t rWidth; Double_t rLambda; /// default value = 100 Double_t rChannel2MeV; /// default value = 1 Double_t rTimeOffset; Double_t rQdc1Gain; Double_t rQdc2Gain; Double_t rQdc1Offset; Double_t rQdc2Offset; Double_t rQdcDiff; void print(); ClassDef( PaddleCalParam, 1 ); }; class StaAdapter: public TObject { public: StaAdapter(); ~StaAdapter(); void configure ( string configFile1, string configFile2 = ""); //void calculate ( TRootLANDEventStaOutput *A_landEvtOut, const TRootLANDEvent * A_rootLandEv, TRandom2 *A_randomNumberGeneratort = NULL ); Bool_t isConfigured() { return rAreParameterConfigured; } void SetVerboseLevel(const Int_t NewVerboseLevel) { rVerboseLevel = NewVerboseLevel; } Int_t GetVerboseLevel( void ) { return rVerboseLevel; } void SetGlobalTimeOffset(const Double_t NewGlobalTimeOffset) { rGlobalTimeOffsetForAllPaddles = NewGlobalTimeOffset; } Double_t GetGlobalTimeOffset( void ) { return rGlobalTimeOffsetForAllPaddles; } void fStaPrepareData(TRootLANDEventStaInput *A_landEvtStaIn, const TRootLANDEvent * A_rootLandEv, TRandom2 *A_randomNumberGeneratort = NULL); void fStaCalculate(TRootLANDEventStaOutput *A_landEvtOut, const TRootLANDEventStaInput *A_landEvtIn); void printConfigurationsParameters(); void fStaPrepareParameters( string configFileWithDiffAndWidth, string configFileWithQDiffAndGain = "", string configFileWithOffset ="" ); void fStaRadFromFile_DiffAndWidth ( string configFileWithDiffAndWidth ); void fStaRadFromFile_QDiffAndGain ( string configFileWithQDiffAndGain ); void fStaRadFromFile_Offset ( string configFileWithOffset ); Double_t tempLandX; Double_t tempLandY; Double_t tempLandZ; Double_t tempLand2X; Double_t tempLand2Y; Double_t tempLand2Z; private: static const int rPlaneNo = 11; static const int rPaddlesInPlaneNo = 20; static const Double_t rLandDistanceFromTarget = 433.0; ///[cm] ///TODO: Need to be set (400) ASK IGOR (TARGET<->LAND SUPPORT ON THE GROUND <-> FIRST PLANE ) static const Double_t rDistanceBetweenVetoAndFirstPlane = 10; ///[cm] ///TODO: Need to be set (10) ASK IGOR static const Double_t rLandAngleFromBeamLine_thetaY = -46.2; ///[deg] ///TODO: Need to be set 46.2 PaddleCalParam rLandConfigParam[rPlaneNo][rPaddlesInPlaneNo]; Bool_t rAreParameterConfigured; Int_t rVerboseLevel; Double_t rGlobalTimeOffsetForAllPaddles; ///To synchronize Land event with other detectors (with real lab time) ///Added 2012.07.03 //TRootLANDEventStaInput * rTempLandEvtStaIn; ClassDef( StaAdapter, 1 ); }; #endif //STA_LAND_ADAPTER_H