#include <AlgCosmicMuonRemoval.h>
Inheritance diagram for AlgCosmicMuonRemoval:

Public Member Functions | |
| AlgCosmicMuonRemoval () | |
| virtual | ~AlgCosmicMuonRemoval () |
| virtual void | RunAlg (AlgConfig &ac, CandHandle &ch, CandContext &cx) |
| virtual void | Trace (const char *c) const |
Private Member Functions | |
| void | Reset () |
| void | FillTrkInfo (const CandEventHandle *event, const CandTrackHandle *track) |
| void | FillEvtInfo (const CandEventHandle *event, const CandTrackHandle *track, const CandShowerHandle *shower) |
Private Attributes | |
| Int_t | cTrackLikePlanes |
| Int_t | cShowerLikePlanes |
| Float_t | fTrkQ [500] |
| Float_t | fPlnQ [500] |
| Float_t | fTrkMIPDcosz [500] |
| Int_t | fTrkStrip [500] |
| Int_t | fNTrackStrip [500] |
| Int_t | fNTotalStrip [500] |
| bool | fTrkMIPCalibOkay |
| Float_t | fTrkMIPDcoszMean |
| Int_t | fMinTrackPlane |
| Int_t | fMaxTrackPlane |
| Double_t | fMinTrackAngle |
| Double_t | fMaxTrackAngle |
| Int_t | fMinShowerPlane |
| Int_t | fMaxShowerPlane |
|
|
Definition at line 45 of file AlgCosmicMuonRemoval.cxx. 00046 {
00047 Reset();
00048 cTrackLikePlanes = 5;
00049 cShowerLikePlanes = 2;
00050 }
|
|
|
Definition at line 53 of file AlgCosmicMuonRemoval.cxx. 00054 {
00055 }
|
|
||||||||||||||||
|
Definition at line 276 of file AlgCosmicMuonRemoval.cxx. References fMaxShowerPlane, fMaxTrackAngle, fMaxTrackPlane, fMinShowerPlane, fMinTrackAngle, fMinTrackPlane, fNTotalStrip, fNTrackStrip, fPlnQ, fTrkMIPCalibOkay, fTrkMIPDcosz, fTrkMIPDcoszMean, fTrkQ, fTrkStrip, CandStripHandle::GetCharge(), CandHandle::GetDaughterIterator(), CandRecoHandle::GetEndDirCosZ(), CandRecoHandle::GetEndPlane(), CandStripHandle::GetPlane(), CandRecoHandle::GetPlaneCharge(), CandStripHandle::GetStrip(), CandRecoHandle::GetStripCharge(), CandTrackHandle::GetU(), CandTrackHandle::GetV(), CandRecoHandle::GetVtxDirCosZ(), CandRecoHandle::GetVtxPlane(), CandTrackHandle::GetZ(), CandTrackHandle::IsTPosValid(), and MSG. Referenced by RunAlg(). 00277 {
00278 //
00279 //fill info about track direction at each plane
00280 //
00281 const double nplanes = TMath::Abs(track->GetEndPlane() - track->GetVtxPlane()) + 1;
00282
00283 const int vtxplane = track->GetVtxPlane();
00284 const int endplane = track->GetEndPlane();
00285
00286 const double vtxangle = track->GetVtxDirCosZ();
00287 const double endangle = track->GetEndDirCosZ();
00288
00289 if (vtxplane < endplane) {
00290 fMinTrackPlane = vtxplane;
00291 fMaxTrackPlane = endplane;
00292 fMinTrackAngle = vtxangle;
00293 fMaxTrackAngle = endangle;
00294 } else {
00295 fMinTrackPlane = endplane;
00296 fMaxTrackPlane = vtxplane;
00297 fMinTrackAngle = endangle;
00298 fMaxTrackAngle = vtxangle;
00299 }
00300
00301 MSG("RmMu",Msg::kDebug) << " Track planes: " << fMinTrackPlane << " " << fMaxTrackPlane << endl;
00302 MSG("RmMu",Msg::kDebug) << " Track angle: " << fMinTrackAngle << " " << fMaxTrackAngle << endl;
00303
00304 for(int ipln = fMinTrackPlane; ipln<=fMaxTrackPlane; ++ipln){
00305
00306 double dcosz = fabs(fMinTrackAngle + ((ipln - fMinTrackPlane)/nplanes)*(fMaxTrackAngle - fMinTrackAngle));
00307
00308 int ip1 =-1;
00309 int ip2 =-1;
00310 if(track->IsTPosValid(ipln-1) && track->IsTPosValid(ipln+1)){
00311 ip2 = ipln+1; ip1 = ipln-1;
00312 }else if(track->IsTPosValid(ipln) && track->IsTPosValid(ipln+1)){
00313 ip2 = ipln+1; ip1 = ipln;
00314 }else if(track->IsTPosValid(ipln) && track->IsTPosValid(ipln-1)){
00315 ip2 = ipln; ip1 = ipln-1;
00316 }
00317 if(ip1!=-1 && ip2!=-1){
00318 const double l = sqrt( (track->GetU(ip2) - track->GetU(ip1)) *
00319 (track->GetU(ip2) - track->GetU(ip1))
00320 + (track->GetV(ip2) - track->GetV(ip1)) *
00321 (track->GetV(ip2) - track->GetV(ip1))
00322 + (track->GetZ(ip2) - track->GetZ(ip1)) *
00323 (track->GetZ(ip2) - track->GetZ(ip1)) );
00324 if(l!=0) dcosz = fabs( track->GetZ(ip2) - track->GetZ(ip1) ) / l;
00325 else dcosz = 1;
00326 }
00327 fTrkMIPDcosz[ipln] = track->GetPlaneCharge(ipln, CalStripType::kMIP)*dcosz;
00328 if(track->GetPlaneCharge(ipln, CalStripType::kMIP)<1e-3){
00329 fTrkMIPDcosz[ipln] =1.;
00330 }
00331 }
00332
00333 TIter trkstpIter(track->GetDaughterIterator());
00334 int ntrkcalibstps = 0;
00335 while(const CandStripHandle* strip = dynamic_cast<const CandStripHandle*>(trkstpIter())){
00336 fTrkQ[strip->GetPlane()]+=strip->GetCharge(CalDigitType::kPE);
00337 if(track->GetStripCharge(strip, CalStripType::kMIP)!=0) ntrkcalibstps++;
00338 fTrkStrip[strip->GetPlane()] = strip->GetStrip();
00339 }
00340 fTrkMIPCalibOkay = (ntrkcalibstps>4);
00341
00342 // get the shower infomation
00343
00344 const int shower_vtxplane = shower->GetVtxPlane();
00345 const int shower_endplane = shower->GetEndPlane();
00346
00347 fMinShowerPlane = (shower_vtxplane<shower_endplane)?shower_vtxplane:shower_endplane;
00348 fMaxShowerPlane = (shower_vtxplane>shower_endplane)?shower_vtxplane:shower_endplane;
00349
00350 MSG("RmMu",Msg::kDebug) << " Shower planes: " << fMinShowerPlane << " " << fMaxShowerPlane << endl;
00351
00352 // change the min and max track plane for the track
00353
00354 if (fMinTrackPlane<fMinShowerPlane-cTrackLikePlanes) fMinTrackPlane = fMinShowerPlane - cTrackLikePlanes;
00355 if (fMaxTrackPlane>fMaxShowerPlane+cTrackLikePlanes) fMaxTrackPlane = fMaxShowerPlane + cTrackLikePlanes;
00356
00357 Float_t total_mips = 0;
00358 int mip_count_planes = 0;
00359
00360 if ((fMinShowerPlane<=fMinTrackPlane)&&(fMaxShowerPlane>=fMaxTrackPlane)) { // shower is longer than track on both end
00361 for (int ipln = fMinTrackPlane; ipln<=fMaxTrackPlane; ++ipln) {
00362 mip_count_planes++;
00363 total_mips += 1.0;
00364 }
00365
00366 MSG("RmMu",Msg::kDebug) << " Shower is longer than track on both sides ... "
00367 << " planes : " << mip_count_planes << " mips :" << total_mips << endl;
00368
00369 } else if (fMinShowerPlane<=fMinTrackPlane) { // shower start before track
00370 for (int ipln = fMaxShowerPlane+1; ipln<=fMaxTrackPlane; ++ipln) {
00371 mip_count_planes++;
00372 total_mips += fTrkMIPDcosz[ipln];
00373 }
00374
00375 MSG("RmMu",Msg::kDebug) << " Shower starts before track ... "
00376 << " planes : " << mip_count_planes << " mips :" << total_mips << endl;
00377
00378 } else if (fMaxShowerPlane>=fMaxTrackPlane) { // shower end after track
00379 for (int ipln = fMinTrackPlane; ipln<fMinShowerPlane; ++ipln) {
00380 mip_count_planes++;
00381 total_mips += fTrkMIPDcosz[ipln];
00382 }
00383
00384 MSG("RmMu",Msg::kDebug) << " Shower ends after track ... "
00385 << " planes : " << mip_count_planes << " mips :" << total_mips << endl;
00386
00387 } else { // shower is inside of track planes
00388 for (int ipln = fMinTrackPlane; ipln<fMinShowerPlane; ++ipln) {
00389 mip_count_planes++;
00390 total_mips += fTrkMIPDcosz[ipln];
00391 }
00392
00393 for (int ipln = fMaxShowerPlane+1; ipln<=fMaxTrackPlane; ++ipln) {
00394 mip_count_planes++;
00395 total_mips += fTrkMIPDcosz[ipln];
00396 }
00397
00398 MSG("RmMu",Msg::kDebug) << " Shower is inside of track ... "
00399 << " planes : " << mip_count_planes << " mips :" << total_mips << endl;
00400 }
00401
00402 if(mip_count_planes!=0) fTrkMIPDcoszMean = (total_mips/mip_count_planes);
00403
00404 if(fTrkMIPDcoszMean<0.3) {
00405 MSG("RmMu",Msg::kWarning) << "total_mips, planes, fTrkMIPDcoszMean : " << total_mips << " , " << mip_count_planes << " , " << fTrkMIPDcoszMean << endl;
00406 MSG("RmMu",Msg::kWarning) << "fTrkMIPDcoszMean = " << fTrkMIPDcoszMean << ", which is less than 0.3, set to be 1.0." << endl;
00407 fTrkMIPDcoszMean = 1.0;
00408 }
00409
00410 TIter stpIter(event->GetDaughterIterator());
00411 while(const CandStripHandle* strip = dynamic_cast<const CandStripHandle*>(stpIter())){
00412 const int plane = strip->GetPlane();
00413 fPlnQ[plane]+=strip->GetCharge(CalDigitType::kPE);
00414 if(plane>0 && plane<500) {
00415 fNTotalStrip[plane]++;
00416 if (TMath::Abs(strip->GetStrip()-fTrkStrip[plane])<=1){
00417 fNTrackStrip[plane]++;
00418 }
00419 }
00420 }
00421 }
|
|
||||||||||||
|
|
|
|
Definition at line 57 of file AlgCosmicMuonRemoval.cxx. References fNTotalStrip, fNTrackStrip, fPlnQ, fTrkMIPCalibOkay, fTrkMIPDcosz, fTrkMIPDcoszMean, fTrkQ, and fTrkStrip. Referenced by RunAlg(). 00058 {
00059 for(int ipln=0; ipln<500; ++ipln){
00060 fTrkQ[ipln] = 0;
00061 fPlnQ[ipln] = 0;
00062 fTrkMIPDcosz[ipln] = 0;
00063 fTrkStrip[ipln] = 0;
00064 fNTrackStrip[ipln] = 0;
00065 fNTotalStrip[ipln] = 0;
00066 }
00067 fTrkMIPCalibOkay = false;
00068 fTrkMIPDcoszMean = 0;
00069 }
|
|
||||||||||||||||
|
Implements AlgBase. Definition at line 71 of file AlgCosmicMuonRemoval.cxx. References CandHandle::AddDaughterLink(), cShowerLikePlanes, cTrackLikePlanes, digit(), FillEvtInfo(), CandRecord::FindCandHandle(), CandHandle::FindDaughter(), fMaxShowerPlane, fMinShowerPlane, fPlnQ, fTrkMIPCalibOkay, fTrkMIPDcosz, fTrkMIPDcoszMean, fTrkQ, Registry::Get(), CandDigitListHandle::GetAbsTime(), AlgHandle::GetAlgConfig(), AlgFactory::GetAlgHandle(), CandContext::GetCandRecord(), CandEventHandle::GetCandSlice(), CandStripHandle::GetCharge(), CandContext::GetDataIn(), CandHandle::GetDaughterIterator(), RecMinos::GetHeader(), AlgFactory::GetInstance(), CandDigitListHandle::GetIsSparse(), CandContext::GetMom(), CandStripHandle::GetPlane(), CandDigitHandle::GetRawDigitIndex(), GetRemovableTrack(), CandHeader::GetRun(), CandEventHandle::GetShower(), CandHeader::GetSnarl(), CandStripHandle::GetStrip(), Registry::LockKeys(), Registry::LockValues(), CandDigit::MakeCandidate(), MSG, Reset(), SelectCosmicEvent(), Registry::Set(), CandDigitListHandle::SetAbsTime(), CandDigitListHandle::SetIsSparse(), Registry::UnLockKeys(), and Registry::UnLockValues(). 00072 {
00073 //
00074 //set up the sub-algs
00075 //
00076 AlgFactory &algfactory = AlgFactory::GetInstance();
00077 const char *tmpcs = 0;
00078 Int_t tmpi = 5;
00079 Int_t tmpt = 2;
00080
00081 const char *pass_algorithm = 0;
00082 const char *pass_algconfig = 0;
00083
00084 if (ac.Get("PassThruAlgorithm", tmpcs)) pass_algorithm = tmpcs;
00085 if (ac.Get("PassThruAlgConfig", tmpcs)) pass_algconfig = tmpcs;
00086 if (ac.Get("TrackLikePlanes", tmpi)) cTrackLikePlanes = tmpi;
00087 if (ac.Get("ShowerLikePlanes", tmpt)) cShowerLikePlanes = tmpt;
00088
00089 AlgHandle pass_alg = algfactory.GetAlgHandle(pass_algorithm, pass_algconfig);
00090
00091 CandContext cxx(this, cx.GetMom());
00092 cxx.SetCandRecord(cx.GetCandRecord());
00093
00094 MSG("RmMu",Msg::kDebug) << " AlgCosmicMuonRemoval::RunAlg() " <<endl;
00095 //MSG("RmMu",Msg::kDebug) << " SubAlg : " <<pass_algorithm<<endl;
00096 //MSG("RmMu",Msg::kDebug) << " SubAlg Config : " <<pass_algconfig<<endl;
00097
00098 //
00099 //Do event setup
00100 //
00101 Reset();
00102
00103 TObjArray *input = (TObjArray *)(cx.GetDataIn());
00104 const CandRecord* record = dynamic_cast<const CandRecord*>(input->At(0));
00105 assert(record);
00106 const CandHeader* header = dynamic_cast<const CandHeader*>(record->GetHeader());
00107 if(header){
00108 MSG("RmMu",Msg::kDebug) << " Snarl: " << header->GetRun() << " / "<< header->GetSnarl() <<endl;
00109 }
00110
00111 const CandEventListHandle * eventlist = dynamic_cast<CandEventListHandle*>(record->FindCandHandle("CandEventListHandle"));
00112 const CandDigitListHandle* digitlist = dynamic_cast<const CandDigitListHandle*>(record->FindCandHandle("CandDigitListHandle"));
00113
00114 if(eventlist==NULL || digitlist==NULL){
00115 MSG("RmMu",Msg::kError) << " Bailing out of Event eventlist = " << eventlist<< " digitlist = " << digitlist <<endl;
00116 return; //bail out
00117 }
00118
00119
00120 //
00121 //A list of digits to chuck/modify
00122 //
00123 std::vector<int> digitidx;
00124 std::vector<float> digitweight;
00125 long ntrackdigits = 0;
00126
00127 TIter event_iter(eventlist->GetDaughterIterator());
00128 while( const CandEventHandle* event = dynamic_cast<const CandEventHandle*>(event_iter()) ){
00129 MSG("RmMu",Msg::kDebug) << " New event " <<endl;
00130 if(SelectCosmicEvent(event)){
00131 MSG("RmMu",Msg::kDebug) << " Event is selected for cosmic muon removal " <<endl;
00132
00133 Reset();
00134
00135 const CandTrackHandle* track = GetRemovableTrack(event);
00136 if(!track){
00137 MSG("RmMu",Msg::kError) << " NO removalable track! "<<endl;
00138 }
00139
00140 const CandShowerHandle* shower = event->GetShower(0);
00141 if(!shower) {
00142 MSG("RmMu",Msg::kError) << " NO shower in event! " << endl;
00143 }
00144 //
00145 //Fill some local info
00146 //
00147 FillEvtInfo(event,track,shower);
00148
00149 MSG("RmMu",Msg::kDebug) << " fTrkMIPCalibOkay: "<< fTrkMIPCalibOkay << " fTrkMIPDcoszMean : " << fTrkMIPDcoszMean <<endl;
00150
00151 //TY loop through hits in the slice instead of event
00152 const CandSliceHandle *csh = event->GetCandSlice();
00153
00154 TIter stpIter(csh->GetDaughterIterator());
00155 while(const CandStripHandle* strip = dynamic_cast<const CandStripHandle*>(stpIter())){
00156 const int planeno = strip->GetPlane();
00157 const int stripno = strip->GetStrip();
00158 const bool isintrack =(track->FindDaughter(strip)!=NULL);
00159
00160 bool notmuon = fTrkMIPDcosz[planeno]<= 0.3;
00161 bool isinshower = (planeno>=fMinShowerPlane && planeno<=fMaxShowerPlane) || (planeno>=fMinShowerPlane-cShowerLikePlanes && planeno<fMinShowerPlane&& fNTotalStrip[planeno]>1) || (planeno>fMaxShowerPlane && planeno<=fMaxShowerPlane+cShowerLikePlanes && fNTotalStrip[planeno]>1);
00162
00163 bool doscale = isinshower && isintrack && fTrkMIPCalibOkay && fTrkMIPDcosz[planeno] >= fTrkMIPDcoszMean*1.2;
00164
00165 const double scale = ((fTrkMIPDcosz[planeno]>0.3)? (fTrkMIPDcosz[planeno]-fTrkMIPDcoszMean)/fTrkMIPDcosz[planeno] : 1.);
00166
00167 int modifydigit = 0;
00168
00169 if(!isintrack || stripno<0 || doscale || (isintrack && notmuon && fTrkMIPCalibOkay)){ // we are going to keep this digit.
00170 if(doscale) modifydigit = 1;
00171 }else{
00172 modifydigit = 2;
00173 }
00174
00175 if(planeno < fMinShowerPlane-cShowerLikePlanes || planeno > fMaxShowerPlane+cShowerLikePlanes) modifydigit = 2;
00176
00177 if(modifydigit==0){
00178 MSG("RmMu",Msg::kVerbose) << " KEEP : " << planeno << "/"<< stripno
00179 << " Q: " << strip->GetCharge()
00180 << " TrkMIP: " << fTrkMIPDcosz[planeno]
00181 << " TrkQ: " << fTrkQ[planeno]
00182 << " PlnQ: " << fPlnQ[planeno]
00183 << " intrk: " << isintrack
00184 << " notmuon: " << notmuon
00185 << " doscale: " << doscale
00186 << " scale: " << scale <<endl;
00187 }else if(modifydigit==1){
00188 MSG("RmMu",Msg::kVerbose) << " SCALE : " << planeno << "/"<< stripno
00189 << " Q: " << strip->GetCharge()
00190 << " TrkMIP: " << fTrkMIPDcosz[planeno]
00191 << " TrkQ: " << fTrkQ[planeno]
00192 << " PlnQ: " << fPlnQ[planeno]
00193 << " intrk: " << isintrack
00194 << " notmuon: " << notmuon
00195 << " doscale: " << doscale
00196 << " scale: " << scale <<endl;
00197
00198 }else if(modifydigit==2){
00199 MSG("RmMu",Msg::kVerbose) << " REJECT : " << planeno << "/"<< stripno
00200 << " Q: " << strip->GetCharge()
00201 << " TrkMIP: " << fTrkMIPDcosz[planeno]
00202 << " TrkQ: " << fTrkQ[planeno]
00203 << " PlnQ: " << fPlnQ[planeno]
00204 << " intrk: " << isintrack
00205 << " notmuon: " << notmuon
00206 << " doscale: " << doscale
00207 << " scale: " << scale <<endl;
00208
00209 }
00210
00211 if(modifydigit || isintrack){ //
00212 TIter digitIter(strip->GetDaughterIterator());
00213 while( CandDigitHandle* digit = dynamic_cast<CandDigitHandle*>(digitIter()) ) {
00214 if(modifydigit){
00215 digitidx.push_back(digit->GetRawDigitIndex());
00216 if(modifydigit==1) digitweight.push_back(scale);
00217 else digitweight.push_back(-1.);
00218 }
00219 if(isintrack) ntrackdigits++;
00220 }
00221 }
00222 }
00223 }
00224 }
00225
00226 MSG("RmMu",Msg::kDebug) << " There are " << digitidx.size()<< " digits to be modified and " << ntrackdigits <<" track digits" <<endl;
00227
00228 //iterate over base digits and do modifications
00229 TIter digitIter(digitlist->GetDaughterIterator());
00230 const unsigned int nmoddigit = digitidx.size();
00231 while( CandDigitHandle* digit = dynamic_cast<CandDigitHandle*>(digitIter()) ) {
00232 const int thisidx = digit->GetRawDigitIndex();
00233 bool ditch = 0;
00234 bool scale = 0;
00235 float scale_factor = 0;
00236 for(unsigned int idig = 0; idig<nmoddigit; ++idig){
00237 if(digitidx[idig] == thisidx ){
00238 if(digitweight[idig]>0){
00239 scale = 1;
00240 scale_factor = digitweight[idig];
00241 }else{
00242 ditch = 1;
00243 }
00244 digitidx[idig] = -1;
00245 }
00246 }
00247 if(!ditch){
00248 AlgConfig& algconfig = pass_alg.GetAlgConfig();
00249 algconfig.UnLockKeys();
00250 algconfig.UnLockValues();
00251 if(scale){
00252 algconfig.Set("doscale", 1);
00253 algconfig.Set("scalefactor", scale_factor);
00254 }else{
00255 algconfig.Set("doscale", 0);
00256 algconfig.Set("scalefactor", 1.);
00257 }
00258 algconfig.LockKeys();
00259 algconfig.LockValues();
00260 TObjArray digitalg_input;
00261 digitalg_input.Add(digit);
00262 cxx.SetDataIn(&digitalg_input);
00263 CandDigitHandle cdh = CandDigit::MakeCandidate(pass_alg, cxx);
00264 ch.AddDaughterLink(cdh, kFALSE);
00265 }
00266 }
00267
00268 //
00269 //global list stuff
00270 //
00271 CandDigitListHandle &cdlh = dynamic_cast<CandDigitListHandle &>(ch);
00272 cdlh.SetAbsTime(digitlist->GetAbsTime());
00273 cdlh.SetIsSparse(digitlist->GetIsSparse());
00274 }
|
|
|
Reimplemented from AlgBase. Definition at line 423 of file AlgCosmicMuonRemoval.cxx. 00423 {
00424 }
|
|
|
Definition at line 22 of file AlgCosmicMuonRemoval.h. Referenced by RunAlg(). |
|
|
Definition at line 21 of file AlgCosmicMuonRemoval.h. Referenced by RunAlg(). |
|
|
Definition at line 38 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), and RunAlg(). |
|
|
Definition at line 36 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(). |
|
|
Definition at line 34 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(). |
|
|
Definition at line 37 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), and RunAlg(). |
|
|
Definition at line 35 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(). |
|
|
Definition at line 33 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(). |
|
|
Definition at line 30 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), and Reset(). |
|
|
Definition at line 29 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), and Reset(). |
|
|
Definition at line 26 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), Reset(), and RunAlg(). |
|
|
Definition at line 31 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), Reset(), and RunAlg(). |
|
|
Definition at line 27 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), Reset(), and RunAlg(). |
|
|
Definition at line 32 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), Reset(), and RunAlg(). |
|
|
Definition at line 25 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), Reset(), and RunAlg(). |
|
|
Definition at line 28 of file AlgCosmicMuonRemoval.h. Referenced by FillEvtInfo(), and Reset(). |
1.3.9.1