// -*- mode: c++ -*- // // $Id: BrTileCalibration.h,v 1.10 2002/03/02 15:33:39 cholm Exp $ // #ifndef BRAT_BrTileCalibration #define BRAT_BrTileCalibration #ifndef BRAT_BrMultCalibration #include "BrMultCalibration.h" #endif class BrTileCalibration : public BrMultCalibration { private: BrCalibrationData fAdcGap; // Gap of dual ADCs public: BrTileCalibration(); BrTileCalibration(const Char_t* name, const Char_t* title); virtual Short_t GetAdcGap(Int_t tileNo) const; virtual void SetAdcGap(Int_t tileNo, Short_t gap); ClassDef(BrTileCalibration,2) // Calibration of tile array }; #ifdef BR_MULT_CAL_TMP #define BR_TILE_RING_MAX 8 #ifndef BRAT_BrTileDig // For BR_TILE_CHAN_MAX #include "BrTileDig.h" #endif class BrTileTmpCalibration : public BrMultTmpCalibration { private: Float_t fPedestal[BR_TILE_CHAN_MAX]; // Pedestal of ADCs Float_t fPedestalWidth[BR_TILE_CHAN_MAX]; // Pedestal width of ADCs Int_t fAdcGap[BR_TILE_CHAN_MAX]; // Gap of dual ADCs Float_t fAdcGain[BR_TILE_CHAN_MAX]; // Gain of ADCs Float_t fConversionFunc[7 * BR_TILE_RING_MAX]; // as above Float_t fCorrectionFunc[5]; // vtx dep. conversion from N' to N Float_t fCentralityFunc[128]; //[(fCentralityOrder+2)*fCentralityN] // These are geometry things proper, but put here for now, until a // concensus of how to do the geometry database. Short_t fRingMap[BR_TILE_CHAN_MAX]; // ADC ch. no. to ring map Short_t fRowMap[BR_TILE_CHAN_MAX]; // ADC ch. no. to row map Float_t fRingPosition[BR_TILE_RING_MAX]; // Z coordinate of center of rings Float_t fTilt[BR_TILE_CHAN_MAX]; // Tilt of individual tiles Int_t fRunNo; // run no associated with calibraiton Int_t fRingCnt[BR_TILE_RING_MAX]; // no. of detectors in ring static BrTileTmpCalibration* fgInstance; public: BrTileTmpCalibration(); BrTileTmpCalibration(const Char_t* name, const Char_t* title); ~BrTileTmpCalibration(); static BrTileTmpCalibration* Instance(); // Various "special" methods void Clear(); void Defaults(); void ReadASCIIFile(Int_t runno); // Set run specific calibration void SetRunNo(const Int_t runno); Int_t GetRunNo() const {return fRunNo;} // ADC calibration Float_t GetPedestal(Int_t tileNo) const; Float_t GetPedestalWidth(Int_t tileNo) const; Int_t GetAdcGap(Int_t tileNo) const; Float_t GetAdcGain(Int_t tileNo) const; // For the eta correction function Float_t GetConversionFuncPar(Int_t ringNo, Int_t parno) const; // For the centrality cuts Float_t GetCorrectionFuncPar(Int_t parno) const; // For the centrality cuts Float_t GetCentralityFuncCut(Int_t) const; Float_t GetCentralityFuncPar(Int_t, Int_t) const; // Geometry - shoud be in geometry database Short_t GetRingMap(Int_t tileNo) const; Short_t GetRowMap(Int_t tileNo) const; Float_t GetRingPosition(Int_t ringNo) const; Float_t GetTilt(Int_t tileNo) const; Int_t GetRingCnt(Int_t ring) const {return fRingCnt[ring];} // Setters needed for the array calibration program, otherwise these // should not be needed void SetPedestal(Int_t tileNo, Float_t ped) {fPedestal[tileNo] = ped;} void SetPedestalWidth(Int_t tileNo, Float_t pedwid) {fPedestalWidth[tileNo] = pedwid;} void SetAdcGain(Int_t tileNo, Float_t gain) {fAdcGain[tileNo]=gain;} void Print(Option_t* option="") const; ClassDef(BrTileTmpCalibration, 0) // temporary tile calibration } ; #endif #endif // // $Log: BrTileCalibration.h,v $ // Revision 1.10 2002/03/02 15:33:39 cholm // Expanded arrays for more centrality cuts // // Revision 1.9 2002/02/04 23:51:44 sanders // Add setter for detector gains // // Revision 1.8 2002/01/06 08:31:01 sanders // Add Setters for pedestals and pedestal width so that these can // be changed dynamically for calibrations. // // Revision 1.7 2001/12/06 00:33:16 sanders // Fixed calibrations to obtain average pseudorapidity and geometric // scaling factor for si and tile elements. // // Revision 1.6 2001/11/24 15:42:56 sanders // Added si and tile calibrations for: // 1) converting from detector multiplicities to ring dNdEta values // 2) finding the HIJING weighted ring eta value for a given vertex position // Both of these calibrations were found doing 8th order polynomial fits // to functions obtained by taking HIJING particle distributions starting // from vertex locations between -46cm and +46 cm, in 2 cm steps, and // checking if the corresponding particles "hit" any of the si or tile // detectors in the array. // // Revision 1.5 2001/11/21 19:12:26 cholm // Added code for reading SDE centrality calibrations for run 4640 // (and forward?). See also http://www4.rhic.bnl.gov/~cholm/mult.html. Took // out the default numbers since they were invalid and not used. // // Revision 1.4 2001/11/19 04:09:36 sanders // Revised calibration modules for 200 GeV (yr 2001) si/tile calibrations. // // Revision 1.3 2001/10/08 10:27:25 cholm // Changed detector calibration data classes to derive from BrCalibration, // rather than BrParameterElement, since that has been replaced. Impact // on various modules, and so on. Some user code may need to be changed to. // // Revision 1.2 2001/09/12 15:05:59 cholm // Varius fixes that was needed for the thing to work properly. Mistakes on // my part. Stupid ones too. // // Revision 1.1.1.1 2001/06/21 14:54:59 hagel // Initial revision of brat2 // // Revision 1.6 2001/05/31 01:45:06 cholm // Second rewamp of this directory. All RDO modules use the common // BrMultRdoModule, and they both write BrMultRdo Objects. Also introduced // ABC for Br[Tile|Si][Parameters|Calibration] since they have a lot in common, // and the code can be made more efficient this way. // // A possible further thing to do, is to make an ABC for the CentModules, and // the corresponding calibration modules, since they are very VERY similar. // However, the current module BrMultCentModule is in the way. Need to talk // to Steve about that. // // Revision 1.5 2001/05/17 11:12:28 cholm // Added support for reading ASCII calibration files for centrality cuts // in classes BrTileTmpCalibration and BrSiTmpCalibration. // Added some preliminary work for using the energy signal rather than the // multiplicity signal for the centrality determination in classses // BrTileCentCalModule and BrSiCentCalModule. // // Revision 1.4 2001/04/06 19:52:50 cholm // Updated the temporary class BrTileTmpCalibration, for per ring // conversion functions. // // Revision 1.3 2001/04/02 01:14:22 sanders // BrRdoMult and BrRdoModuleMult reinstated. These files develop the joint // Si+Tile multiplicity. BrRdoModuleMult now gets it parameters from the // BrTileRdoModule and BrSiRdoModule classes and is a friend of these classes. // // Revision 1.2 2001/03/12 19:03:32 cholm // Revisted the tile classes. Please note, that these are binary incompatible // with previous classes. These classes now includes (I believe) all that // Steve and Hiro recently added to thier working code. // // Revision 1.1 2001/01/29 20:43:50 cholm // Added two modules for making tile calibrations (pedestal and gap), as well // as a calibration data object foir use with the calibration database. The // ADC gap module is not complete, and the pedestal module isn't tested. // //