// ------------------------------------------------------------------ // ----- CbmTofTests ----- // ----- Created 29/08/2013 by P.-A. Loizeau ----- // ------------------------------------------------------------------ #ifndef _CBMTOFANATESTBEAM_H_ #define _CBMTOFANATESTBEAM_H_ 1 class CbmTofGeoHandler; class CbmTofCell; // Geometry class CbmTofGeoHandler; class CbmTofDetectorId; class CbmTofCell; class CbmTofDigiPar; class CbmTofDigiBdfPar; class TMbsMappingTofPar; #include "FairTask.h" class TClonesArray; class TH1; class TH2; class TString; #include "TTimeStamp.h" class CbmTofAnaTestbeam : public FairTask { public: CbmTofAnaTestbeam(); CbmTofAnaTestbeam(const char* name, Int_t verbose = 1); virtual ~CbmTofAnaTestbeam(); virtual InitStatus Init(); virtual void Exec(Option_t* option); virtual void Finish(); /** ** @brief Inherited from FairTask. **/ virtual void SetParContainers(); Bool_t RegisterInputs(); inline void SetDXMean (Double_t val) { fdDXMean = val;} inline void SetDYMean (Double_t val) { fdDYMean = val;} inline void SetDTMean (Double_t val) { fdDTMean = val;} inline void SetDXWidth (Double_t val) { fdDXWidth = val;} inline void SetDYWidth (Double_t val) { fdDYWidth = val;} inline void SetDTWidth (Double_t val) { fdDTWidth = val;} inline void SetMul0Max (Double_t val) { fdMul0Max = val;} inline void SetMul4Max (Double_t val) { fdMul4Max = val;} inline void SetCh4Sel (Double_t val) { fdCh4Sel = val;} inline void SetDCh4Sel (Double_t val) { fdDCh4Sel = val;} inline void SetPosY4Sel (Double_t val) { fdPosY4Sel = val;} inline void SetMulDMax (Double_t val) { fdMulDMax = val;} inline void SetDTDia (Double_t val) { fdDTDia = val;} inline void SetHitDistMin(Double_t val) { fdHitDistMin = val;} inline void SetTOffD4 (Double_t val) { fdTOffD4 = val;} inline void SetCorMode (Int_t ival) { fiCorMode = ival;} inline void SetDut (Int_t ival) { fiDut = ival;} inline void SetMrpcRef (Int_t ival) { fiMrpcRef = ival;} inline void SetPlaSelect (Int_t ival) { fiPlaSelect = ival;} inline void SetCalParFileName(TString CalParFileName) { fCalParFileName = CalParFileName; } private: Bool_t CreateHistos(); Bool_t FillHistos(); Bool_t WriteHistos(); Bool_t DeleteHistos(); /** ** @brief Initialize other parameters not included in parameter classes. **/ Bool_t InitParameters(); /** ** @brief Load the geometry: for now just resizing the Digis temporary vectors **/ Bool_t LoadCalParameter(); CbmTofAnaTestbeam(const CbmTofAnaTestbeam&); CbmTofAnaTestbeam operator=(const CbmTofAnaTestbeam&); Int_t fEvents; // Number of processed events // Geometry infos CbmTofGeoHandler * fGeoHandler; CbmTofDetectorId * fTofId; CbmTofCell * fChannelInfo; TMbsMappingTofPar *fMbsMappingPar; Int_t iNbSmTot; std::vector< Int_t > fvTypeSmOffs; // Offset in SM index for first SM of each SM type Int_t iNbRpcTot; std::vector< std::vector< Int_t > > fvSmRpcOffs; // Offset in RPC index for first RPC of each SM Int_t iNbChTot; std::vector< std::vector< std::vector< Int_t > > > fvRpcChOffs; // Offset in channel index for first channel of each RPC // Parameters CbmTofDigiPar * fDigiPar; CbmTofDigiBdfPar * fDigiBdfPar; TClonesArray * fTofDigisColl; // TOF Digis TClonesArray * fTofHitsColl; // TOF hits TClonesArray * fTofDigiMatchColl; // TOF DigiMatches Double_t fdDXMean; Double_t fdDYMean; Double_t fdDTMean; Double_t fdDXWidth; Double_t fdDYWidth; Double_t fdDTWidth; // Histograms TH1 *fhDT2; TH2 *fhXX2; TH2 *fhYY2; TH1 *fhNMatch04; TH2 *fhXX04; TH2 *fhYY04; TH2 *fhTT04; TH1 *fhChi04; TH2 *fhDXDY04; TH2 *fhDXDT04; TH2 *fhDYDT04; TH1 *fhNMatch04sel; TH1 *fhChi04best; TH1 *fhDigiMul0best; TH1 *fhDigiMul4best; TH2 *fhDXDY04best; TH2 *fhDXDT04best; TH2 *fhDYDT04best; TH2 *fhChiDT04best; TH2 *fhDT24DT04best; TH2 *fhDTD4DT04best; TH2 *fhX0DT04best; TH2 *fhY0DT04best; TH1 *fhNMatchD4sel; TH1 *fhChi04D4best; TH1 *fhTofD4best; TH1 *fhVelD4best; TH1 *fhDigiMul0D4best; TH1 *fhDigiMul4D4best; TH2 *fhCluMul04D4best; TH2 *fhDXDY04D4best; TH2 *fhDXDT04D4best; TH2 *fhDYDT04D4best; TH2 *fhDistDT04D4best; TH2 *fhTexpDT04D4best; TH2 *fhCluSize0DT04D4best; TH2 *fhCluSize4DT04D4best; TH2 *fhTot0DT04D4best; TH2 *fhTot4DT04D4best; TH2 *fhChiDT04D4best; TH2 *fhDT24DT04D4best; TH2 *fhDTD4DT04D4best; TH2 *fhX0DT04D4best; TH2 *fhY0DT04D4best; TH2 *fhDTMul4D4best; TH2 *fhDTX4D4best; TH2 *fhDTY4D4best; TH2 *fhDXX4D4best; TH2 *fhDXY4D4best; TH2 *fhDYX4D4best; TH2 *fhDYY4D4best; TH2 *fhDTMul0D4best; TH2 *fhDTX0D4best; TH2 *fhDTY0D4best; TH2 *fhDXX0D4best; TH2 *fhDXY0D4best; TH2 *fhDYX0D4best; TH2 *fhDYY0D4best; TH1 *fhNMatch24; TH1 *fhNMatch24sel; TH1 *fhDT24sel; TH1 *fhChi24; TH2 *fhXY24; TH2 *fhDXDY24; TH2 *fhDXDT24; TH2 *fhDYDT24; TH1 *fhDTD4sel; TH2 *fhXX02[2]; TH2 *fhYY02[2]; std::vector< TH2* > fhXYPos; //[nbDet] // Test class performance // Rates and data rates // Performances check // Control TTimeStamp fStart; TTimeStamp fStop; TString fCalParFileName; // name of the file name with Calibration Parameters TFile* fCalParFile; // pointer to Calibration Parameter file TH1 *fhDTD4DT04D4Off; // 'calibration' histo TH1 *fhDTX4D4Off; // 'calibration' histo TH1 *fhDTY4D4Off; // 'calibration' histo TH1 *fhDTTexpD4Off; // 'calibration' histo Double_t fdMulDMax; // max multiplicity in Diamond counter Double_t fdDTDia; // max time difference between diamonds Double_t fdMul0Max; // max multiplicity in Dut Double_t fdMul4Max; // max multiplicity in HD/Buc Ref counter Double_t fdCh4Sel; // Center of selected strip numbers Double_t fdDCh4Sel; // Width of selected strip numbers Double_t fdPosY4Sel; // Fraction of Y-Size Double_t fdHitDistMin; // minimal spatial distance of correlated hits Double_t fdTOffD4; // Offset to calibrate TD4 to time of flight Int_t fiCorMode; // Correction histogram generation mode Int_t fiDut; // Device under test Int_t fiMrpcRef; // Reference Mrpc Int_t fiPlaSelect; // Select plastics: 0 - P2, 2 - Buc2013 ClassDef(CbmTofAnaTestbeam, 1); }; #endif