diff --git a/src/THcExtTarCor.cxx b/src/THcExtTarCor.cxx index 6f3bdd39219b016a8e8eb42fba9aaad7eee42974..2ceaa01643421365d57b7b4bec8b140b42a6f99f 100644 --- a/src/THcExtTarCor.cxx +++ b/src/THcExtTarCor.cxx @@ -37,6 +37,17 @@ THcExtTarCor::~THcExtTarCor() DefineVariables( kDelete ); } +//_____________________________________________________________________________ +void THcExtTarCor::Clear( Option_t* opt ) +{ + // Clear all event-by-event variables. + + THaPhysicsModule::Clear(opt); + TrkIfoClear(); + fDeltaTh = fDeltaDp = fDeltaP = 0.0; + fxsieve = kBig; + fysieve = kBig; +} //_____________________________________________________________________________ Int_t THcExtTarCor::DefineVariables( EMode mode ) @@ -52,6 +63,8 @@ Int_t THcExtTarCor::DefineVariables( EMode mode ) { "delta_p", "Size of momentum correction", "fDeltaP" }, { "delta_dp", "Size of delta correction (%)", "fDeltaDp" }, { "delta_xptar", "Size of xptar correction (rad)", "fDeltaTh" }, + { "xsieve", "Golden track vertical position at sieve location (cm)", "fxsieve" }, + { "ysieve", "Golden track horizontal position at sieve location (cm) (cm)", "fysieve" }, { 0 } }; DefineVarsFromList( var2, mode ); @@ -119,6 +132,16 @@ Int_t THcExtTarCor::Process( const THaEvData& ) TVector3 pvect_temp; spectro->TransportToLab(theTrack->GetP(),theTrack->GetTTheta(),theTrack->GetTPhi(),pvect_temp); theTrack->SetPvect(pvect_temp); + if (strcmp(spectro->GetName(),"H")==0) { + fxsieve=xtar_new+xptar*168.; + fysieve=ytar*100.+yptar*168.; + } + if (strcmp(spectro->GetName(),"P")==0) { + fxsieve=xtar_new+xptar*253.; + Double_t delta_per=delta*100; + fysieve=ytar*100+yptar*253.-(0.019+40.*.01*0.052)*delta_per+(0.00019+40*.01*.00052)*delta_per*delta_per; + } + } } // Save results in our TrackInfo diff --git a/src/THcExtTarCor.h b/src/THcExtTarCor.h index 3c1052ef00de1bb67d4758311396bd3a9df1d3b7..848abfd2cca26a720b8aef94785c7aec3a243101 100644 --- a/src/THcExtTarCor.h +++ b/src/THcExtTarCor.h @@ -20,10 +20,13 @@ public: virtual Int_t Process( const THaEvData& ); + Double_t fxsieve,fysieve; + protected: virtual Int_t DefineVariables( EMode mode = kDefine ); virtual Int_t ReadDatabase( const TDatime& date ); + virtual void Clear( Option_t* opt="" ); ClassDef(THcExtTarCor,0) //Extended target corrections module };