From d418aa8d1ac45613857a7f7aa309e6d93c4672ed Mon Sep 17 00:00:00 2001 From: Simon Zhamkochyan <szh@jlab.org> Date: Wed, 6 Jun 2012 06:46:13 -0400 Subject: [PATCH] The THcScintillatorplane was changed for working with older root versions --- src/THcScintillatorPlane.cxx | 129 +++++++++++++++++++++++++++++++++++ src/THcScintillatorPlane.h | 5 ++ 2 files changed, 134 insertions(+) diff --git a/src/THcScintillatorPlane.cxx b/src/THcScintillatorPlane.cxx index 7353a92..66abaae 100644 --- a/src/THcScintillatorPlane.cxx +++ b/src/THcScintillatorPlane.cxx @@ -13,6 +13,7 @@ #include "THcParmList.h" #include "THcHitList.h" #include "THcHodoscope.h" +#include "TClass.h" #include <cstring> #include <cstdio> @@ -35,6 +36,10 @@ THcScintillatorPlane::THcScintillatorPlane( const char* name, fNegTDCHits = new TClonesArray("THcSignalHit",16); fPosADCHits = new TClonesArray("THcSignalHit",16); fNegADCHits = new TClonesArray("THcSignalHit",16); + fPosTDCHitsClass = fPosTDCHits->GetClass(); + fNegTDCHitsClass = fNegTDCHits->GetClass(); + fPosADCHitsClass = fPosADCHits->GetClass(); + fNegADCHitsClass = fNegADCHits->GetClass(); fPlaneNum = planenum; } @@ -205,6 +210,129 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) break; } + +if(hit->fTDC_pos > 0) { +#if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fPosTDCHits->ConstructedAt(nPosTDCHits++); + sighit->Set(hit->fCounter, hit->fTDC_pos); +#else +TObjrct* obj = (*fPoaTDCHits)[nPosTDCHits++]; +R_ASSERT( obj ); +if(!obj->TestBit (TObject::kNotDeleted)) +fPosTDCHitsClass->New(obj); +THcSignalHit *sighit = (THcSignalHit*)obj; +#endif + sighit->Set(hit->fCounter, hit->fTDC_pos); +} + + +if(hit->fTDC_neg > 0) { +#if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fNegTDCHits->ConstructedAt(nNegTDCHits++); + sighit->Set(hit->fCounter, hit->fTDC_neg); +#else + TObjrct* obj = (*fPoaTDCHits)[nNegTDCHits++]; + R_ASSERT( obj ); +if(!obj->TestBit (TObject::kNotDeleted)) + fNegTDCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*)obj; +#endif + sighit->Set(hit->fCounter, hit->fTDC_neg); +} + +if(hit->fADC_pos > 0) { +#if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fPosADCHits->ConstructedAt(nPosADCHits++); + sighit->Set(hit->fCounter, hit->fADC_pos); +#else + TObjrct* obj = (*fPoaTDCHits)[nPosADCHits++]; + R_ASSERT( obj ); +if(!obj->TestBit (TObject::kNotDeleted)) + fPosADCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*)obj; +#endif + sighit->Set(hit->fCounter, hit->fADC_pos); +} + +if(hit->fADC_neg > 0) { +#if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fNegADCHits->ConstructedAt(nNegADCHits++); + sighit->Set(hit->fCounter, hit->fADC_neg); +#else + TObjrct* obj = (*fPoaTDCHits)[nNegADCHits++]; + R_ASSERT( obj ); +if(!obj->TestBit (TObject::kNotDeleted)) + fNegADCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*)obj; +#endif + sighit->Set(hit->fCounter, hit->fADC_neg); +} + +/* + if(hit->fTDC_pos > 0) { + #if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fPosTDCHits->ConstructedAt(nPosTDCHits++); + sighit->Set(hit->fCounter, hit->fTDC_pos); + #else + // The essence of the ConstructedAt code explictly + TObject* obj = (*fPosTDCHits)[nPosTDCHits++]; + R__ASSERT( obj ); // should never happen ... + if( !obj->TestBit(TObject::kNotDeleted) ) + fPosTDCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*) obj; + #endif + sighit->Set(hit->fCounter, hit->fTDC_pos); + } + */ + /* + if(hit->fTDC_neg > 0) { + #if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fNegTDCHits->ConstructedAt(nNegTDCHits++); + sighit->Set(hit->fCounter, hit->fTDC_neg); + #else + // The essence of the ConstructedAt code explictly + TObject* obj = (*fNegTDCHits)[nNegTDCHits++]; + R__ASSERT( obj ); // should never happen ... + if( !obj->TestBit(TObject::kNotDeleted) ) + fNegTDCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*) obj; + #endif + sighit->Set(hit->fCounter, hit->fTDC_neg); + } + + + if(hit->fADC_pos > 0) { + #if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fNegTDCHits->ConstructedAt(nPosADCHits++); + sighit->Set(hit->fCounter, hit->fADC_pos); + #else + // The essence of the ConstructedAt code explictly + TObject* obj = (*fPosADCHits)[nPosADCHits++]; + R__ASSERT( obj ); // should never happen ... + if( !obj->TestBit(TObject::kNotDeleted) ) + fPosADCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*) obj; + #endif + sighit->Set(hit->fCounter, hit->fADC_pos); + } + + if(hit->fADC_neg > 0) { + #if ROOT_VERSION_CODE >= ROOT_VERSION(5,32,0) + THcSignalHit *sighit = (THcSignalHit*) fNegADCHits->ConstructedAt(nNegADCHits++); + sighit->Set(hit->fCounter, hit->fTDC_neg); + #else + // The essence of the ConstructedAt code explictly + TObject* obj = (*fNegADCHits)[nNegADCHits++]; + R__ASSERT( obj ); // should never happen ... + if( !obj->TestBit(TObject::kNotDeleted) ) + fNegADCHitsClass->New(obj); + THcSignalHit *sighit = (THcSignalHit*) obj; + #endif + sighit->Set(hit->fCounter, hit->fADC_neg); + } +*/ + +/* if(hit->fTDC_pos > 0) { THcSignalHit *sighit = (THcSignalHit*) fPosTDCHits->ConstructedAt(nPosTDCHits++); sighit->Set(hit->fCounter, hit->fTDC_pos); @@ -224,6 +352,7 @@ Int_t THcScintillatorPlane::ProcessHits(TClonesArray* rawhits, Int_t nexthit) THcSignalHit *sighit = (THcSignalHit*) fNegADCHits->ConstructedAt(nNegADCHits++); sighit->Set(hit->fCounter, hit->fADC_neg); } +*/ ihit++; } return(ihit); diff --git a/src/THcScintillatorPlane.h b/src/THcScintillatorPlane.h index ad3f6cb..dda5931 100644 --- a/src/THcScintillatorPlane.h +++ b/src/THcScintillatorPlane.h @@ -47,6 +47,11 @@ class THcScintillatorPlane : public THaSubDetector { TClonesArray* fPosADCHits; TClonesArray* fNegADCHits; + TClass* fPosTDCHitsClass; + TClass* fNegTDCHitsClass; + TClass* fPosADCHitsClass; + TClass* fNegADCHitsClass; + Int_t fPlaneNum; virtual Int_t ReadDatabase( const TDatime& date ); -- GitLab