|
//_____________________________________________________________________ // // Class to store the centrality calibraion for the full multiplicity // array // // // $Id: BrMultCentCalibration.cxx,v 1.16 2002/04/22 17:22:17 sanders Exp $ // $Author: sanders $ // $Date: 2002/04/22 17:22:17 $ // $Copyright: (C) 2001 BRAHMS Collaboration <brahmlib@rhic.bnl.gov> // #ifndef WIN32 #include <iostream> #include <iomanip> #include <cfloat> #include <fstream> #else #include <iostream.h> #include <iomanip.h> #include <float.h> #include <fstream> #endif #include <TString.h> #include <TSystem.h> #ifndef BRAT_BrDataObject #include "BrDataObject.h" #endif #ifndef BRAT_BrMultCentCalibration #include "BrMultCentCalibration.h" #endif //____________________________________________________________________ ClassImp(BrMultCentCalibration); //____________________________________________________________________ BrMultCentCalibration::BrMultCentCalibration() { // Default CTOR } //____________________________________________________________________ BrMultCentCalibration::BrMultCentCalibration(const Char_t* name, const Char_t* title) : BrCalibration((char*)name, (char*)title) { } #ifdef BR_MULT_CAL_TMP //____________________________________________________________________ ClassImp(BrMultCentTmpCalibration); //____________________________________________________________________ BrMultCentTmpCalibration* BrMultCentTmpCalibration::fgInstance = 0; //____________________________________________________________________ BrMultCentTmpCalibration::BrMultCentTmpCalibration() { // Create the calibrtation and set default values. // We inform the user that this object is of transitory nature Warning("Init", "n" "* WARNING * WARNING * WARNING * WARNING *n" "=========================================n" " Using temporary hardcoded calibrationn" " constants. Check it out!!!n"); Defaults(); } //____________________________________________________________________ BrMultCentTmpCalibration::BrMultCentTmpCalibration(const Char_t* name, const Char_t* title) : TNamed(name, title) { // Create the calibrtation and set default values. // We inform the user that this object is of transitory nature Warning("Init", "n" "* WARNING * WARNING * WARNING * WARNING *n" "=========================================n" " Using temporary hardcoded calibrationn" " constants. Check it out!!!n"); Defaults(); } //____________________________________________________________________ BrMultCentTmpCalibration::~BrMultCentTmpCalibration() { // Destructor Warning("~BrMultCentTmpCalibration", "clear method called"); Clear(); } //____________________________________________________________________ BrMultCentTmpCalibration* BrMultCentTmpCalibration::Instance() { // Return a pointer to (temporary) calibration. if (!fgInstance) fgInstance = new BrMultCentTmpCalibration("MultCent", "Temporaty cent calib"); return fgInstance; } //____________________________________________________________________ void BrMultCentTmpCalibration::Defaults() { //Polynomial coefficients for converting average Si+Tile multiplicity to //equivalent centrality. These parameters are used in //BrMultCentModule::MultToCent // parameters for mult>100 fCentParamLOrder = 7; fCentParamL[0] = 7.83632e+01; fCentParamL[1] = -2.32123e-01; fCentParamL[2] = 5.54168e-04 ; fCentParamL[3] = -9.56201e-07; fCentParamL[4] = 1.02429e-09; fCentParamL[5] = -6.48206e-13; fCentParamL[6] = 2.21456e-16; fCentParamL[7] = -3.12967e-20; // parameters for mult<=200 fCentParamHOrder=9; fCentParamH[0] = 9.71596e+01; fCentParamH[1] = -4.69147e-01; fCentParamH[2] = -7.03424e-02; fCentParamH[3] = 5.89319e-03; fCentParamH[4] = -2.34798e-04; fCentParamH[5] = 5.51690e-06; fCentParamH[6] = -7.97825e-08; fCentParamH[7] = 6.97400e-10; fCentParamH[8] = -3.37945e-12; fCentParamH[9] = 6.96812e-15; } //___________________________________________________________________ void BrMultCentTmpCalibration::SetRunNumber(const Int_t runno) { // Here it is assumed that all run >=3700 require the // yr 2 calibration for 200 GeV Au+Au. In principle, these // multiplicity to centrality parameters may change depending on // which specific detector elements are active. // parameters for mult>100 if(runno < 3700 ) return; if( runno <= 4640) { cout<<"Setting 200 GeV MultCent Calibration based on run 4640"<<endl; fCentParamLOrder = 2; // exp0 function fCentParamL[0] = 0.7115037471134283; fCentParamL[1] = -0.01280939188136365; fCentParamMOrder = 9; // pol9 function fCentParamM[0] = 84.21552218612278; fCentParamM[1] = -0.2506616323029845; fCentParamM[2] = 0.0007554937919977783; fCentParamM[3] = -1.794332598488154e-06; fCentParamM[4] = 2.853453742106815e-09; fCentParamM[5] = -2.96762188168866e-12; fCentParamM[6] = 1.985046808146938e-15; fCentParamM[7] = -8.201326335732758e-19; fCentParamM[8] = 1.900009950909639e-22; fCentParamM[9] = -1.88430934057697e-26; fCentParamHOrder = 9; // pol9 function fCentParamH[0] = 98.94117819396671; fCentParamH[1] = -0.9874096765420101; fCentParamH[2] = 0.02729337667918181; fCentParamH[3] = -0.0009235033968669986; fCentParamH[4] = 2.482834228093767e-05; fCentParamH[5] = -4.451661680990975e-07; fCentParamH[6] = 5.067726699677098e-09; fCentParamH[7] = -3.523455261512735e-11; fCentParamH[8] = 1.368337782030307e-13; fCentParamH[9] = -2.281725108830072e-16; } else if (runno <= 4713 ) { cout<<"Setting 200 GeV MultCent Calibration based on run 4713"<<endl; fCentParamLOrder = 2; // exp0 function fCentParamL[0] = 0.6186396302826878; fCentParamL[1] = -0.01458587328430601; fCentParamMOrder = 9; // pol9 function fCentParamM[0] = 82.81536283066161; fCentParamM[1] = -0.2425959346932076; fCentParamM[2] = 0.0006992127087113412; fCentParamM[3] = -1.554163257319101e-06; fCentParamM[4] = 2.295698111146182e-09; fCentParamM[5] = -2.233989379377625e-12; fCentParamM[6] = 1.422095379471485e-15; fCentParamM[7] = -5.707579963381e-19; fCentParamM[8] = 1.309986592434355e-22; fCentParamM[9] = -1.308075205226205e-26; fCentParamHOrder = 9; // pol9 function fCentParamH[0] = 99.65103768107738; fCentParamH[1] = -1.158376393349129; fCentParamH[2] = 0.02251826428476162; fCentParamH[3] = 0.0004405398401719877; fCentParamH[4] = -5.009623709830398e-05; fCentParamH[5] = 1.583202903860225e-06; fCentParamH[6] = -2.60095355881349e-08; fCentParamH[7] = 2.387712020641006e-10; fCentParamH[8] = -1.16017255214274e-12; fCentParamH[9] = 2.326517950518476e-15; } else if (runno <= 5702 ) { cout<<"Setting 200 GeV MultCent Calibration based on runs 5677-5702"<<endl; fCentParamLOrder = 2; // exp0 function fCentParamL[0] = 0.7213745659084361; fCentParamL[1] = -0.0160729613985755; fCentParamMOrder = 9; // pol9 function fCentParamM[0] = 84.81236313638395; fCentParamM[1] = -0.2602882348854907; fCentParamM[2] = 0.0008141892474151584; fCentParamM[3] = -1.945328157399581e-06; fCentParamM[4] = 3.048931882588921e-09; fCentParamM[5] = -3.097957791103164e-12; fCentParamM[6] = 2.019422812730711e-15; fCentParamM[7] = -8.129566320619018e-19; fCentParamM[8] = 1.835866772641357e-22; fCentParamM[9] = -1.775247647319059e-26; fCentParamHOrder = 9; // pol9 function fCentParamH[0] = 99.07800499857818; fCentParamH[1] = -0.8200223388848575; fCentParamH[2] = 0.008762380145719704; fCentParamH[3] = 0.000120853539642879; fCentParamH[4] = -1.33903537634076e-05; fCentParamH[5] = 4.792359414960928e-07; fCentParamH[6] = -9.215454045333284e-09; fCentParamH[7] = 9.810463930861118e-11; fCentParamH[8] = -5.420239252553307e-13; fCentParamH[9] = 1.211718075997528e-15; } else { cout<<"Setting 200 GeV MultCent Calibration based on runs 5953-5965 "<<endl; fCentParamLOrder = 2; // exp0 function fCentParamL[0] = 0.7589244395167604; fCentParamL[1] = -0.0128909383902691; fCentParamMOrder = 9; // pol9 function fCentParamM[0] = 82.27924529522386; fCentParamM[1] = -0.2267582769274251; fCentParamM[2] = 0.000618501234454045; fCentParamM[3] = -1.39018856568594e-06; fCentParamM[4] = 2.152004237547149e-09; fCentParamM[5] = -2.192938711014026e-12; fCentParamM[6] = 1.428988047925804e-15; fCentParamM[7] = -5.687742407389138e-19; fCentParamM[8] = 1.252664491301764e-22; fCentParamM[9] = -1.163873019804521e-26; fCentParamHOrder = 9; // pol9 function fCentParamH[0] = 98.60375387923075; fCentParamH[1] = -0.6560140814790718; fCentParamH[2] = -0.02219373466706674; fCentParamH[3] = 0.002350095578289925; fCentParamH[4] = -9.956102191910961e-05; fCentParamH[5] = 2.445286973293112e-06; fCentParamH[6] = -3.6303615693576e-08; fCentParamH[7] = 3.190031849552404e-10; fCentParamH[8] = -1.523238620352014e-12; fCentParamH[9] = 3.042478923351077e-15; } } //____________________________________________________________________ void BrMultCentTmpCalibration::Clear() { // Clear method should not be used. Left over from when everyhing // was stored on stack Warning("Clear", "clear method called"); } #endif //____________________________________________________________________ // // $Log: BrMultCentCalibration.cxx,v $ // Revision 1.16 2002/04/22 17:22:17 sanders // Added new calibration based on runs 5953-5965 // // Revision 1.15 2002/04/05 20:22:09 sanders // revised run 4640 mult to cent calibration // // Revision 1.14 2002/04/01 20:44:03 sanders // revised mult to cent calibraiton for runs 5677-5702 // // Revision 1.13 2002/03/27 23:39:29 sanders // Fixed precision problem with mult to cent calibration parameters // // Revision 1.12 2002/03/23 16:08:07 sanders // Modified mutliplicity to centrality calibration function. The // high end of the mutliplicity distribution is now fitted with an // exponential, rather than a high order polynomial. The maximum // vertex for which the centrality calculation is performed has // also been changed to 35 cm, rather than the previous 45 cm. // It should be noted that even allowing 35 cm is dangerous. The // actual calibrations only use vertices < 30 cm....which is already // outside of the si array. // // Revision 1.11 2002/03/09 20:49:46 sanders // added mult to cent calib based on runs 5677 - 5702 // // Revision 1.10 2002/03/09 16:13:02 sanders // Another tweaking of mult to cent calibration for run 4640 // // Revision 1.9 2002/03/07 23:22:35 sanders // revised mult to cent calibration for run 4640 // // Revision 1.8 2002/03/05 20:26:01 sanders // "improved" mult to cent calibration for 200 GeV runs // // Revision 1.7 2001/12/06 23:36:33 sanders // modified 200 GeV cent calibration // // Revision 1.6 2001/12/06 00:32:46 sanders // Fixed calibrations to obtain average pseudorapidity and geometric // scaling factor for si and tile elements. // // Revision 1.5 2001/11/19 13:03:40 sanders // small revision of mult to cent calibration for 200 GeV data // // Revision 1.4 2001/11/19 04:09:35 sanders // Revised calibration modules for 200 GeV (yr 2001) si/tile calibrations. // // Revision 1.3 2001/11/12 15:00:09 sanders // Added code for 200 GeV calibrations // // Revision 1.2 2001/10/08 10:27:14 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.1.1.1 2001/06/21 14:54:59 hagel // Initial revision of brat2 // // Revision 1.5 2001/06/06 19:39:27 sanders // Tilt angle correction for individual detector elements fixed. The // <si/tile> centrality function parameters changed accordingly. // // Revision 1.4 2001/06/05 18:42:41 cholm // Removed BrDbInc.h an all references to it // // Revision 1.3 2001/06/02 15:22:35 sanders // Modified parameters for E-to-N conversions. Also modified parameters // for converting the average Si+Tile sum multiplicity to centrality. The // new parameters result from an analysis where GEANT simulations are used // to correct for the excessive number of low multiplicity events arising from // pedestal tails being counted as particle hits. Events with tile multiplicities // between 4 and 200 are compared to the corresponding GBRAHMS (Hijing input) // simulations to estimate the number of expected events with tile multiplicity // below 4. // // Revision 1.2 2001/05/31 01:45:55 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.1 2001/04/19 15:09:42 cholm // Renamed BrCent... to BrMultCent... to reduce confusion // // |
||||||
This page automatically generated by script docBrat by Christian Holm |
Copyright ; 2002 BRAHMS Collaboration
<brahmlib@rcf.rhic.bnl.gov>
|