|
//____________________________________________________________________ // // //____________________________________________________________________ // // $Id: BrTrackTree.cxx,v 1.11 2002/03/21 21:26:42 ejkim Exp $ // $Author: ejkim $ // $Date: 2002/03/21 21:26:42 $ // $Copyright: 2001 BRAHMS Collaboration <brahmlib@rhic.bnl.gov> // //____________________________________________________________________ #include "BrTrackTree.h" //____________________________________________________________________ ClassImp(BrTrackTree); //____________________________________________________________________ TClonesArray *BrTrackTree::fgMrsTracks = 0; TClonesArray *BrTrackTree::fgTPM1Tracks = 0; TClonesArray *BrTrackTree::fgTPM2Tracks = 0; TClonesArray *BrTrackTree::fgFfsTracks = 0; TClonesArray *BrTrackTree::fgBfsTracks = 0; TClonesArray *BrTrackTree::fgTOFWHits = 0; TClonesArray *BrTrackTree::fgTOF1Hits = 0; TClonesArray *BrTrackTree::fgTOF2Hits = 0; TClonesArray *BrTrackTree::fgTD1Hits = 0; TClonesArray *BrTrackTree::fgTMRSHits = 0; TClonesArray *BrTrackTree::fgTofwPid = 0; TClonesArray *BrTrackTree::fgTOFWCalHits = 0; //____________________________________________________________________ BrTrackTree::BrTrackTree() { // Create an Event object. // When the constructor is invoked for the first time, the class static // variable fgTracks is 0 and the TClonesArray fgTracks is created. if (!fgMrsTracks) fgMrsTracks = new TClonesArray("BrMrsTrack", 100); if (!fgTPM1Tracks) fgTPM1Tracks = new TClonesArray("BrDetectorTrack", 100); if (!fgTPM2Tracks) fgTPM2Tracks = new TClonesArray("BrDetectorTrack", 100); if (!fgFfsTracks) fgFfsTracks = new TClonesArray("BrFfsTrack", 100); if (!fgBfsTracks) fgBfsTracks = new TClonesArray("BrBfsTrack", 100); if (!fgTOFWHits) fgTOFWHits = new TClonesArray("BrTofDig", 100); if (!fgTOF1Hits) fgTOF1Hits = new TClonesArray("BrTofDig", 100); if (!fgTOF2Hits) fgTOF2Hits = new TClonesArray("BrTofDig", 100); if (!fgTD1Hits) fgTD1Hits = new TClonesArray("BrTofDig", 100); if (!fgTMRSHits) fgTMRSHits = new TClonesArray("BrTofDig", 100); if (!fgTofwPid) fgTofwPid = new TClonesArray("BrTofPid", 100); if (!fgTOFWCalHits) fgTOFWCalHits = new TClonesArray("BrTofDig", 100); fMrsTracks = fgMrsTracks; fTPM1Tracks = fgTPM1Tracks; fTPM2Tracks = fgTPM2Tracks; fFfsTracks = fgFfsTracks; fBfsTracks = fgBfsTracks; fTOFWHits = fgTOFWHits; fTOF1Hits = fgTOF1Hits; fTOF2Hits = fgTOF2Hits; fTD1Hits = fgTD1Hits; fTMRSHits = fgTMRSHits; fTofwPid = fgTofwPid; fTOFWCalHits = fgTOFWCalHits; fNMrsTracks = 0; fNTPM1Tracks = 0; fNTPM2Tracks = 0; fNFfsTracks = 0; fNBfsTracks = 0; fNTOFWHits = 0; fNTOF1Hits = 0; fNTOF2Hits = 0; fNTD1Hits = 0; fNTMRSHits = 0; fNTofwPid = 0; fNTOFWCalHits = 0; } //____________________________________________________________________ BrTrackTree::~BrTrackTree() { Clear(); delete fgMrsTracks; } //____________________________________________________________________ void BrTrackTree::AddMrsTrack(BrMrsTrack *mrsTrack) { // Add a new track to the list of tracks for this event. // To avoid calling the very time consuming operator new for each track, // the standard but not well know C++ operator "new with placement" // is called. If tracks[i] is 0, a new Track object will be created // otherwise the previous Track[i] will be overwritten. TClonesArray &tracks = *fMrsTracks; new(tracks[fNMrsTracks++]) BrMrsTrack(*mrsTrack); } //____________________________________________________________________ void BrTrackTree::AddTPM1Track(BrDetectorTrack *tpm1Track) { // Add a new track to the list of tracks for this event. // To avoid calling the very time consuming operator new for each track, // the standard but not well know C++ operator "new with placement" // is called. If tracks[i] is 0, a new Track object will be created // otherwise the previous Track[i] will be overwritten. TClonesArray &tracks = *fTPM1Tracks; new(tracks[fNTPM1Tracks++]) BrDetectorTrack(*tpm1Track); } //____________________________________________________________________ void BrTrackTree::AddTPM2Track(BrDetectorTrack *tpm2Track) { // Add a new track to the list of tracks for this event. // To avoid calling the very time consuming operator new for each track, // the standard but not well know C++ operator "new with placement" // is called. If tracks[i] is 0, a new Track object will be created // otherwise the previous Track[i] will be overwritten. TClonesArray &tracks = *fTPM2Tracks; new(tracks[fNTPM2Tracks++]) BrDetectorTrack(*tpm2Track); } //____________________________________________________________________ void BrTrackTree::AddFfsTrack(BrFfsTrack *ffsTrack) { // Add a new track to the list of tracks for this event. // To avoid calling the very time consuming operator new for each track, // the standard but not well know C++ operator "new with placement" // is called. If tracks[i] is 0, a new Track object will be created // otherwise the previous Track[i] will be overwritten. TClonesArray &tracks = *fFfsTracks; new(tracks[fNFfsTracks++]) BrFfsTrack(*ffsTrack); } //____________________________________________________________________ void BrTrackTree::AddBfsTrack(BrBfsTrack *bfsTrack) { // Add a new track to the list of tracks for this event. // To avoid calling the very time consuming operator new for each track, // the standard but not well know C++ operator "new with placement" // is called. If tracks[i] is 0, a new Track object will be created // otherwise the previous Track[i] will be overwritten. TClonesArray &tracks = *fBfsTracks; new(tracks[fNBfsTracks++]) BrBfsTrack(*bfsTrack); } //____________________________________________________________________ void BrTrackTree::AddTOFWHit(BrTofDig *tofwHit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTOFWHits; new(hits[fNTOFWHits++]) BrTofDig(*tofwHit); } //____________________________________________________________________ void BrTrackTree::AddTOFWCalHit(BrTofDig *tofwCalHit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTOFWCalHits; new(hits[fNTOFWCalHits++]) BrTofDig(*tofwCalHit); } //____________________________________________________________________ void BrTrackTree::AddTOF1Hit(BrTofDig *tof1Hit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTOF1Hits; new(hits[fNTOF1Hits++]) BrTofDig(*tof1Hit); } //____________________________________________________________________ void BrTrackTree::AddTOF2Hit(BrTofDig *tof2Hit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTOF2Hits; new(hits[fNTOF2Hits++]) BrTofDig(*tof2Hit); } //____________________________________________________________________ void BrTrackTree::AddTD1Hit(BrTofDig *td1Hit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTD1Hits; new(hits[fNTD1Hits++]) BrTofDig(*td1Hit); } //____________________________________________________________________ void BrTrackTree::AddTMRSHit(BrTofDig *tmrsHit) { //Add a new TOFW hit to list of tofw hits TClonesArray &hits = *fTMRSHits; new(hits[fNTMRSHits++]) BrTofDig(*tmrsHit); } //____________________________________________________________________ void BrTrackTree::AddTofwPid(BrTofPid *tofwPid) { //Add a new TOFW hit to list of tofw hits TClonesArray &pid = *fTofwPid; new(pid[fNTofwPid++]) BrTofPid(*tofwPid); } //____________________________________________________________________ void BrTrackTree::SetEventHeader(BrEventHeader *header) { fEventHeader.SetEventHeader(header); } //____________________________________________________________________ void BrTrackTree::Clear(Option_t *option) { fMrsTracks->Clear(option); fTPM1Tracks->Clear(option); fTPM2Tracks->Clear(option); fFfsTracks->Clear(option); fBfsTracks->Clear(option); fTOFWHits->Clear(option); fTOF1Hits->Clear(option); fTOF2Hits->Clear(option); fTD1Hits->Clear(option); fTMRSHits->Clear(option); fTofwPid->Clear(option); fTOFWCalHits->Clear(option); fNMrsTracks = 0; fNTPM1Tracks = 0; fNTPM2Tracks = 0; fNFfsTracks = 0; fNBfsTracks = 0; fNTOFWHits = 0; fNTOF1Hits = 0; fNTOF2Hits = 0; fNTD1Hits = 0; fNTMRSHits = 0; fNTofwPid = 0; fNTOFWCalHits = 0; fNTPM1Clusters = 0; fNTPM2Clusters = 0; fTileMult=0; fSiMult=0; fMultMult=0.; fMultCent=0.; fTileCent=0.; fSiCent=0.; fRdoBB.Clear(); fRdoZDC.Clear(); fMrsTrackVertex.Clear(); fMRSClusterVertex.Clear(); fBbVertex.Clear(); fFibTpm2F.Clear(); fFibTpm2B.Clear(); fDvDig.Clear(); } //____________________________________________________________________ void BrTrackTree::Reset(Option_t *option) { // Static function to reset all static objects for this event // fgTracks->Delete(option); delete fgMrsTracks; fgMrsTracks = 0; delete fgTPM1Tracks; fgTPM1Tracks = 0; delete fgTPM2Tracks; fgTPM2Tracks = 0; delete fgFfsTracks; fgFfsTracks = 0; delete fgBfsTracks; fgFfsTracks = 0; delete fgTOFWHits; fgTOFWHits = 0; delete fgTOF1Hits; fgTOF1Hits = 0; delete fgTOF2Hits; fgTOF2Hits = 0; delete fgTD1Hits; fgTD1Hits = 0; delete fgTMRSHits; fgTMRSHits = 0; delete fgTofwPid; fgTofwPid = 0; delete fgTOFWCalHits; fgTOFWCalHits = 0; } // $Log: BrTrackTree.cxx,v $ // Revision 1.11 2002/03/21 21:26:42 ejkim // add TOFWCal Object for DANA! // // Revision 1.10 2002/01/03 18:06:41 ejkim // add trigger counter for pp running // // Revision 1.9 2001/12/14 19:32:06 ejkim // added DVM information // // Revision 1.8 2001/12/14 16:10:33 ejkim // // // Fixed bug // // Revision 1.7 2001/12/12 21:27:26 ejkim // Instead of "BrPid", put "BrTofPid". // // Revision 1.6 2001/12/12 19:39:39 ejkim // Added BrBbVertex & TofPid Tofw Information // // Revision 1.5 2001/11/07 20:30:00 ejkim // added TPM2 Fib Object... // // Revision 1.4 2001/11/05 06:53:17 ouerdane // changed FFS to Ffs, MRS to Mrs etc // // Revision 1.3 2001/07/13 15:34:45 ejkim // Add TPM1/TPM2 Number of Clusters, MultCent etc // // Revision 1.2 2001/06/22 17:35:32 cholm // Change names so that every data class has the same format so that // we have that down from the very beginning, so that we will not have to // worry about that later on. The affected classes are: // // // BrRdoBB -> BrBbRdo // BrRdoZDC -> BrZdcRdo // BrTPCCluster -> BrTpcCluster // BrTPCClusterTable -> BrTpcClusterTable // // Revision 1.1.1.1 2001/06/21 14:55:02 hagel // Initial revision of brat2 // // Revision 1.8 2001/06/16 17:25:34 videbaek // add removal in destcurtor // // Revision 1.7 2001/03/23 14:22:22 ejkim // Add TPM2 track // // Revision 1.6 2001/01/29 20:37:06 cholm // Updated to use the new data objects for the multiplicity array. See the // relevant classes (BrTileDig, BrTileRdo, BrSiDig, BrSiRdo) for more details. // // Revision 1.5 2001/01/02 14:17:07 videbaek // Added stuff for FS // // Revision 1.4 2001/01/01 20:47:17 bramreco // Add BdL to output in ListParameters // // Revision 1.3 2000/12/22 18:38:22 videbaek // Add TPM1 tracks to tracktree // // Revision 1.2 2000/12/20 00:15:20 hagel // Improvements to bring into spec // // Revision 1.1 2000/12/19 03:22:38 hagel // Initial Revision // |
||||||
This page automatically generated by script docBrat by Christian Holm |
Copyright ; 2002 BRAHMS Collaboration
<brahmlib@rcf.rhic.bnl.gov>
|