/*************************************************************************** * * $Id: StHiMicroEvent.cxx,v 1.2 2002/06/05 02:31:51 jklay Exp $ * * Author: Bum Choi, UT Austin, Apr 2002 * *************************************************************************** * * Description: This is a uDST for highpt Analysis. * *************************************************************************** * * $Log: StHiMicroEvent.cxx,v $ * Revision 1.2 2002/06/05 02:31:51 jklay * New Nch centrality limits from Zhangbu added * * Revision 1.1 2002/04/02 19:36:15 jklay * Bums highpt uDST format * * **************************************************************************/ #include "StHiMicroEvent.h" #include #include using namespace std; #define DEBUG 0 // set the static pointers to zero. TClonesArray* StHiMicroEvent::mSTracks = 0; TClonesArray* StHiMicroEvent::mSHits = 0; //______________________ StHiMicroEvent::StHiMicroEvent() : mNTrack(0) { // // create the clones arrays the first time any // StHiMicroEvent object is instantiated // // 01/27/03 - BUM - bumped trackSZ to 5000 just in case Int_t trackSZ = 5000; Int_t hitSZ = 1000*50; if(DEBUG) cout << "StHiMicroEvent::StHiMicroEvent" << endl << "\tCreating the clonesarrays..." << endl; // Hmm, there was some faulty logic with the static pointers. // Hope this is fixed now, but not sure. // Potential problems with reading two trees in parallel probably remain. if(!mSTracks) { mTracks = new TClonesArray("StHiMicroTrack",trackSZ); mSTracks = mTracks; } else mTracks=mSTracks; if(!mSHits) { mHits = new TClonesArray("StHiMicroHit",hitSZ); mSHits = mHits; } else mHits=mSHits; if(DEBUG) cout << "\t...done" <CenterOfMassEnergy() >= 199.) { if (fabs(this->MagneticField()) >= 4.) { //cout << "StHiMicroEvent->SetCentralityYear2AuAuFull: " << N << endl; // Centrality for year=2, Au+Au and Full Field // Zhangbu's corrected numbers as of 4-Jun-2002: int cent[] = {14,30,56,94,146,217,312,431,510}; if (N < cent[0]) { mCentrality = 0; } else if (N < cent[1]) { mCentrality = 1; } else if (N < cent[2]) { mCentrality = 2; } else if (N < cent[3]) { mCentrality = 3; } else if (N < cent[4]) { mCentrality = 4; } else if (N < cent[5]) { mCentrality = 5; } else if (N < cent[6]) { mCentrality = 6; } else if (N < cent[7]) { mCentrality = 7; } else if (N < cent[8]) { mCentrality = 8; } else { mCentrality = 9; } } else { //cout << "StHiMicroEvent->SetCentralityYear2AuAuHalf: " << N << endl; // Centrality for year=2, Au+Au and Half Field int cent[] = {14,32,59,98,149,216,302,409,474}; if (N < cent[0]) { mCentrality = 0; } else if (N < cent[1]) { mCentrality = 1; } else if (N < cent[2]) { mCentrality = 2; } else if (N < cent[3]) { mCentrality = 3; } else if (N < cent[4]) { mCentrality = 4; } else if (N < cent[5]) { mCentrality = 5; } else if (N < cent[6]) { mCentrality = 6; } else if (N < cent[7]) { mCentrality = 7; } else if (N < cent[8]) { mCentrality = 8; } else { mCentrality = 9; } } } else { //cout << "StHiMicroEvent->SetCentrality: " << N << endl; //cout << "WARNING: MAKE SURE THE RIGHT ETA RANGE IS DEFINED BEFORE USING THESE DEFINITIONS!!!" << endl; //year 1, |eta|<0.75, year 2, |eta|<0.5 // Centrality for year=1 int cent[] = {20,100,180,270,360,460,560,660,870}; if (N < cent[0]) { mCentrality = 0; } else if (N < cent[1]) { mCentrality = 1; } else if (N < cent[2]) { mCentrality = 2; } else if (N < cent[3]) { mCentrality = 3; } else if (N < cent[4]) { mCentrality = 4; } else if (N < cent[5]) { mCentrality = 5; } else if (N < cent[6]) { mCentrality = 6; } else if (N < cent[7]) { mCentrality = 7; } else if (N < cent[8]) { mCentrality = 8; } else { mCentrality = 9; } } } //_______________________ Bool_t StHiMicroEvent::IsTrigger(UInt_t id) { for(int i=0;i=NTRIGGERID) return 0; else return mId[indx]; } //_______________________ void StHiMicroEvent::ClearTriggerIds(){ for(int i=0;i=NTRIGGERID){ cerr << "Index " << indx << ">=NTRIGGERID " << NTRIGGERID << endl; exit(-1); } else{ mId[indx]=val; } } //_______________________ void StHiMicroEvent::Clear(Option_t* option) { mTracks->Clear(option); mHits->Clear(option); mFpd->Clear(option); mNTrack = 0; mNHit = 0; } ostream& operator<<(ostream& ostr,StHiMicroEvent& event) { return ostr << "\tvertex z : " << event.VertexZ() << endl << "\tmultiplicity : " << event.OriginMult() << endl << "\tuncorrected h- : " << event.NUncorrectedNegativePrimaries() << endl << "\tuncorrected Nch : " << event.NUncorrectedPrimaries() << endl << "\tNch centrality : " << event.Centrality() << endl << "\tbbc hit east : " << event.BBCNHitE() << " + " << event.BBCNHitEL() << "\t" << "\tbbc hit west : " << event.BBCNHitW() << " + " << event.BBCNHitWL() << endl << "\tbbc adc east : " << event.BBCAdcSumE()<< " + "<< event.BBCAdcSumEL() << "\t" << "\tbbc adc west : " << event.BBCAdcSumW()<< " + "<< event.BBCAdcSumWL() << endl << "\tFTPCe : " << event.FTPCe() << "\t" << "FTPCw : " << event.FTPCw() << endl << "\tb field : " << event.MagneticField() << " (kG) " << endl; } ClassImp(StHiMicroEvent)