| 1 | #ifndef MARS_MSrcPlace
|
|---|
| 2 | #define MARS_MSrcPlace
|
|---|
| 3 |
|
|---|
| 4 | #ifndef MARS_MTask
|
|---|
| 5 | #include "MTask.h"
|
|---|
| 6 | #endif
|
|---|
| 7 |
|
|---|
| 8 | class MSrcPosCam;
|
|---|
| 9 | class TH2F;
|
|---|
| 10 |
|
|---|
| 11 | class MSrcPlace : public MTask
|
|---|
| 12 | {
|
|---|
| 13 | public:
|
|---|
| 14 | enum OnOffMode_t {kOn=0,kOff};
|
|---|
| 15 |
|
|---|
| 16 | private:
|
|---|
| 17 | MSrcPosCam* fSrcPosIn; // Pointer to the input source position container
|
|---|
| 18 | MSrcPosCam* fSrcPosOut; // Pointer to the output source position container
|
|---|
| 19 |
|
|---|
| 20 | TString fSrcPosInName; // Name of the input MSrcPosCam object
|
|---|
| 21 | TString fSrcPosOutName; // Name of the output MSrcPosCam object
|
|---|
| 22 |
|
|---|
| 23 | TString fHistoName; // Name of internal histogram
|
|---|
| 24 | Float_t fHistoBinPrec; // [mm] internal histo bin size
|
|---|
| 25 |
|
|---|
| 26 | TH2F* fHistPos; // histogram of the used source positions
|
|---|
| 27 | OnOffMode_t fMode; // On/Off data mode (write/read to/from the histogram)
|
|---|
| 28 | Bool_t fCreateHisto; // flag to decide whether internal histo is created or not
|
|---|
| 29 |
|
|---|
| 30 | void SavePosIntoHisto();
|
|---|
| 31 | void ReadPosFromHisto();
|
|---|
| 32 |
|
|---|
| 33 | virtual Int_t Process();
|
|---|
| 34 | virtual Int_t PostProcess();
|
|---|
| 35 |
|
|---|
| 36 | protected:
|
|---|
| 37 | virtual Int_t PreProcess(MParList *plist);
|
|---|
| 38 |
|
|---|
| 39 | public:
|
|---|
| 40 | MSrcPlace(const char* srcin="MSrcPosCam",const char* srcout="MSrcPosCam",
|
|---|
| 41 | const char* name=NULL, const char* title=NULL);
|
|---|
| 42 |
|
|---|
| 43 | virtual ~MSrcPlace();
|
|---|
| 44 |
|
|---|
| 45 | void SetMode(OnOffMode_t mode) {fMode=mode;}
|
|---|
| 46 | void SetInputSrcPosName(TString name) {fSrcPosInName=name;}
|
|---|
| 47 | void SetOutputSrcPosName(TString name) {fSrcPosOutName=name;}
|
|---|
| 48 | void SetInternalHistoName(TString name) {fHistoName=name;}
|
|---|
| 49 | void SetInternalHistoBinSize(Float_t size){fHistoBinPrec=size;}
|
|---|
| 50 | void SetPositionHisto(TH2F* histo) {fHistPos=histo;}
|
|---|
| 51 | void SetCreateHisto(Bool_t inp=kTRUE) {fCreateHisto=inp;}
|
|---|
| 52 |
|
|---|
| 53 | OnOffMode_t GetMode() {return fMode;}
|
|---|
| 54 | TH2F* GetPositionHisto() {return fHistPos;}
|
|---|
| 55 | MSrcPosCam* GetInputSrcPosCam() {return fSrcPosIn;}
|
|---|
| 56 | MSrcPosCam* GetOutputSrcPosCam() {return fSrcPosOut;}
|
|---|
| 57 | TString GetInternalHistoName() {return fHistoName;}
|
|---|
| 58 |
|
|---|
| 59 | virtual Int_t ComputeNewSrcPosition() {return kTRUE;}
|
|---|
| 60 |
|
|---|
| 61 | ClassDef(MSrcPlace, 0) // task to rotate the position of the source as a function of Azimuth and Zenith angles
|
|---|
| 62 | };
|
|---|
| 63 |
|
|---|
| 64 | #endif
|
|---|
| 65 |
|
|---|