BRAT 2.4.5
Class index
Full class index
brahmlib
BRAHMS
ROOT page
//_____________________________________________________________________
//
// 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>
Last Update on by

Validate HTML
Validate CSS