Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AlgRmMu Class Reference

#include <AlgRmMu.h>

Inheritance diagram for AlgRmMu:

AlgBase List of all members.

Public Member Functions

 AlgRmMu ()
virtual ~AlgRmMu ()
virtual void RunAlg (AlgConfig &ac, CandHandle &ch, CandContext &cx)
virtual void Trace (const char *c) const

Constructor & Destructor Documentation

AlgRmMu::AlgRmMu  ) 
 

Definition at line 42 of file AlgRmMu.cxx.

00043 {
00044 }

AlgRmMu::~AlgRmMu  )  [virtual]
 

Definition at line 47 of file AlgRmMu.cxx.

00048 {
00049 }


Member Function Documentation

void AlgRmMu::RunAlg AlgConfig ac,
CandHandle ch,
CandContext cx
[virtual]
 

Implements AlgBase.

Definition at line 52 of file AlgRmMu.cxx.

References abs(), CandHandle::AddDaughterLink(), digit(), RecDataRecord< T >::FindComponent(), Registry::Get(), PlexSEIdAltL::GetBestSEId(), Truthifier::GetBiggestHit(), CandContext::GetCandRecord(), CandDigitHandle::GetCharge(), CandContext::GetDataIn(), CandHandle::GetDaughterIterator(), VldContext::GetDetector(), CandFitTrackHandle::GetEMCharge(), CandRecoHandle::GetEndPlane(), CandRmMuHandle::GetFitPass(), MomNavigator::GetFragment(), DigiSignal::GetHit(), CandRmMuHandle::GetIsCont(), GetMaxTrackLikePlane(), CandContext::GetMom(), CandRmMuHandle::GetMomCurv(), CandFitTrackHandle::GetMomentumCurve(), CandFitTrackHandle::GetMomentumRange(), CandRmMuHandle::GetMomRange(), CandHandle::GetNDaughters(), DigiSignal::GetNumberOfHits(), CandFitTrackHandle::GetPass(), PlexPlaneId::GetPlane(), CandDigitHandle::GetPlexSEIdAltL(), CandDigitHandle::GetQieErrorBits(), CandDigitHandle::GetRawDigitIndex(), Truthifier::GetSignal(), VldContext::GetSimFlag(), CandDigitHandle::GetTime(), DigiSignal::GetTruth(), CandDigitHandle::GetVaErrorBits(), RecMinos::GetVldContext(), CandRmMuHandle::GetVtxDCosX(), CandRmMuHandle::GetVtxDCosY(), CandRmMuHandle::GetVtxDCosZ(), CandRecoHandle::GetVtxDirCosU(), CandRecoHandle::GetVtxDirCosV(), CandRecoHandle::GetVtxDirCosZ(), CandRecoHandle::GetVtxPlane(), CandRecoHandle::GetVtxU(), CandRecoHandle::GetVtxV(), CandRecoHandle::GetVtxZ(), CandHandle::IsEquivalent(), TruthHelper::IsMuon(), TruthHelper::IsNeutrino(), Truthifier::IsValid(), MSG, CandRmMuHandle::SetFitPass(), CandRmMuHandle::SetIsCont(), CandRmMuHandle::SetMaxTrkPlane(), CandRmMuHandle::SetMomCurv(), CandRmMuHandle::SetMomRange(), CandRmMuHandle::SetMomX(), CandRmMuHandle::SetMomY(), CandRmMuHandle::SetMomZ(), CandRmMuHandle::SetNMuonDig(), CandRmMuHandle::SetNMuonDigRetained(), CandRmMuHandle::SetNPlane(), CandRmMuHandle::SetNRejected(), CandRmMuHandle::SetNRejectedBoth(), CandRmMuHandle::SetNRejectedMuon(), CandRmMuHandle::SetNRejectedShw(), CandRmMuHandle::SetNRejShw(), CandRmMuHandle::SetNRejShwFakeTrk(), CandRmMuHandle::SetNRejShwMaxTrk(), CandRmMuHandle::SetNRejShwMix(), CandRmMuHandle::SetNRetained(), CandRmMuHandle::SetNRetainedBoth(), CandRmMuHandle::SetNRetainedMuon(), CandRmMuHandle::SetNRetainedShw(), CandRmMuHandle::SetNShwDig(), CandRmMuHandle::SetNShwDigAtVtx(), CandRmMuHandle::SetNShwDigRetained(), CandRmMuHandle::SetNShwDigRetainedAtVtx(), CandRmMuHandle::SetNShwPE(), CandRmMuHandle::SetNShwPEAtVtx(), CandRmMuHandle::SetNShwPERetained(), CandRmMuHandle::SetNShwPERetainedAtVtx(), CandRmMuHandle::SetOrigEvtIndex(), CandRmMuHandle::SetPass(), CandRmMuHandle::SetPERetained(), CandRmMuHandle::SetPERetainedBoth(), CandRmMuHandle::SetPERetainedMuon(), CandRmMuHandle::SetPERetainedShw(), CandRmMuHandle::SetQP(), CandRmMuHandle::SetReasonForKeeping(), CandRmMuHandle::SetVtxDCosX(), CandRmMuHandle::SetVtxDCosY(), CandRmMuHandle::SetVtxDCosZ(), CandRmMuHandle::SetVtxPlane(), CandRmMuHandle::SetVtxX(), CandRmMuHandle::SetVtxY(), CandRmMuHandle::SetVtxZ(), TrackEndContained(), and DigiScintHit::TrackId().

00053 {
00054   
00055   MSG("AlgRmMu", Msg::kDebug) << "Starting AlgRmMu::RunAlg()" << endl;
00056   
00057   assert(ch.InheritsFrom("CandRmMuHandle"));
00058   CandRmMuHandle &crmh = dynamic_cast<CandRmMuHandle &>(ch);
00059   assert(cx.GetDataIn());
00060   assert(cx.GetDataIn()->InheritsFrom("TObjArray"));
00061 
00062   const CandEventHandle *event = 0;
00063   const CandTrackHandle *track = 0;
00064   const CandDigitListHandle *digitlist = 0;
00065   const TObjArray *tary = dynamic_cast<const TObjArray*>(cx.GetDataIn());  
00066   for (Int_t i=0; i<=tary->GetLast(); i++) {
00067     TObject *tobj = tary->At(i);
00068     if(tobj->InheritsFrom("CandEventHandle")) {
00069       event = dynamic_cast<CandEventHandle*> (tobj);
00070       MSG("AlgRmMu",Msg::kDebug) << "Got Event" << endl;
00071     }
00072     if(tobj->InheritsFrom("CandTrackHandle")) {
00073       track = dynamic_cast<CandTrackHandle*> (tobj);
00074       MSG("AlgRmMu",Msg::kDebug) << "Got Track" << endl;
00075     }
00076     if(tobj->InheritsFrom("CandDigitListHandle")) {
00077       digitlist = dynamic_cast<CandDigitListHandle*> (tobj);
00078       MSG("AlgRmMu",Msg::kDebug) << "Got Digitlist" << endl;
00079     }
00080   }
00081 
00082   if(event==NULL || digitlist==NULL) {
00083     MSG("AlgRmMu",Msg::kError) << " Bailing out of Event event = " << event 
00084                                << " digitlist = " << digitlist <<endl; 
00085     return;
00086   }
00087   
00088   if(track==NULL) {
00089     MSG("AlgRmMu",Msg::kDebug) << "No track to remove" << endl;
00090     crmh.SetVtxX(0);
00091     crmh.SetVtxY(0);
00092     crmh.SetVtxZ(0);
00093     crmh.SetVtxPlane(0);
00094     crmh.SetNPlane(0);
00095     crmh.SetMomRange(0);
00096     crmh.SetMomCurv(0);
00097     crmh.SetVtxDCosX(0);
00098     crmh.SetVtxDCosY(0);
00099     crmh.SetVtxDCosZ(0);
00100     crmh.SetFitPass(0);
00101     crmh.SetIsCont(0);
00102     crmh.SetPass(0);
00103     crmh.SetMomX(0);
00104     crmh.SetMomY(0);
00105     crmh.SetMomZ(0);
00106     crmh.SetQP(0);
00107     crmh.SetOrigEvtIndex(-1);
00108     crmh.SetMaxTrkPlane(9999);
00109     crmh.SetNMuonDig(0);
00110     crmh.SetNMuonDigRetained(0);
00111     crmh.SetNShwDig(0);
00112     crmh.SetNShwDigRetained(0);
00113     crmh.SetNShwDigAtVtx(0);
00114     crmh.SetNShwDigRetainedAtVtx(0);
00115     crmh.SetNShwPE(0);
00116     crmh.SetNShwPERetained(0);
00117     crmh.SetNShwPEAtVtx(0);
00118     crmh.SetNShwPERetainedAtVtx(0);
00119     crmh.SetNRetained(0);
00120     crmh.SetNRetainedMuon(0);
00121     crmh.SetNRetainedShw(0);
00122     crmh.SetNRetainedBoth(0);
00123     crmh.SetPERetained(0);
00124     crmh.SetPERetainedMuon(0);
00125     crmh.SetPERetainedShw(0);
00126     crmh.SetPERetainedBoth(0);
00127     crmh.SetNRejected(0);
00128     crmh.SetNRejectedMuon(0);
00129     crmh.SetNRejectedShw(0);
00130     crmh.SetNRejectedBoth(0);
00131     crmh.SetNRejShw(0);
00132     crmh.SetNRejShwMaxTrk(0);
00133     crmh.SetNRejShwFakeTrk(0);
00134     crmh.SetNRejShwMix(0);
00135     return;
00136   }
00137 
00138   CandRecord* record = dynamic_cast<CandRecord*>(cx.GetCandRecord());
00139   const VldContext &vldc = *(record->GetVldContext());
00140 
00141   const CandFitTrackHandle* fittrack  = 
00142     dynamic_cast<const CandFitTrackHandle*>(track);
00143 
00144   //set muon parameters
00145   crmh.SetVtxX(0.707106781*(fittrack->GetVtxU() - fittrack->GetVtxV()));
00146   crmh.SetVtxY(0.707106781*(fittrack->GetVtxU() + fittrack->GetVtxV()));
00147   crmh.SetVtxZ(fittrack->GetVtxZ());
00148   crmh.SetVtxPlane(fittrack->GetVtxPlane());
00149   crmh.SetNPlane(TMath::Abs(fittrack->GetEndPlane()-
00150                             fittrack->GetVtxPlane())+1);
00151   crmh.SetMomRange(fittrack->GetMomentumRange());
00152   crmh.SetMomCurv(fittrack->GetMomentumCurve());
00153   crmh.SetVtxDCosX(0.707106781*(fittrack->GetVtxDirCosU()-
00154                                 fittrack->GetVtxDirCosV()));
00155   crmh.SetVtxDCosY(0.707106781*(fittrack->GetVtxDirCosU()+
00156                                 fittrack->GetVtxDirCosV()));
00157   crmh.SetVtxDCosZ(fittrack->GetVtxDirCosZ());
00158   crmh.SetFitPass(fittrack->GetPass());
00159   crmh.SetIsCont(TrackEndContained(fittrack));
00160   Int_t pass = 1;
00161   Float_t momentum = crmh.GetMomRange();
00162   if(!crmh.GetIsCont()){
00163     pass = crmh.GetFitPass();
00164     momentum = crmh.GetMomCurv();
00165   }
00166   crmh.SetPass(pass);
00167   crmh.SetMomX(crmh.GetVtxDCosX()*TMath::Abs(momentum));
00168   crmh.SetMomY(crmh.GetVtxDCosY()*TMath::Abs(momentum));
00169   crmh.SetMomZ(crmh.GetVtxDCosZ()*TMath::Abs(momentum));
00170   if(fittrack->GetMomentumCurve() > 0.001)
00171     crmh.SetQP(fittrack->GetEMCharge()/fittrack->GetMomentumCurve());
00172   
00173   //hold some vectors for use later:
00174   std::vector<Float_t> stripRetained(event->GetNDaughters());
00175   std::vector<Bool_t> stripInTrack(event->GetNDaughters());
00176   for(int i=0;i<event->GetNDaughters();i++) {
00177     stripRetained[i] = 0.0;
00178     stripInTrack[i] = 0;
00179   }
00180 
00181   //keep map of info to store about hit removal
00182   //keep track of digit<->strip associations
00183   std::map<const CandDigitHandle*,Int_t> infoToStore;
00184   std::multimap<Int_t,const CandDigitHandle*> eventStripMatch;
00185   
00186   Int_t detector = vldc.GetDetector();
00187   //add daughter links to appropriate digits
00188   TIter digitIter(digitlist->GetDaughterIterator());
00189   TIter stpIter(event->GetDaughterIterator());
00190   Int_t stpCounter = 0;
00191   while(CandDigitHandle* digit = 
00192         dynamic_cast<CandDigitHandle*>(digitIter())){
00193     infoToStore[digit] = 0;
00194     stpIter.Reset();
00195     stpCounter = 0;
00196     while(const CandStripHandle* strip = 
00197           dynamic_cast<const CandStripHandle*>(stpIter())){
00198       TIter stpdigitIter(strip->GetDaughterIterator());
00199       while(const CandDigitHandle* stpdigit =
00200             dynamic_cast<CandDigitHandle*>(stpdigitIter())){    
00201         if( ( digit->GetRawDigitIndex() == 
00202               stpdigit->GetRawDigitIndex()) &&
00203             ( digit->GetTime(CalTimeType::kNone) ==
00204               stpdigit->GetTime(CalTimeType::kNone) ) ){
00205           crmh.AddDaughterLink(*digit);
00206           if( (detector == 1 && digit->GetVaErrorBits()!=0) || 
00207               (detector == 2 && digit->GetQieErrorBits()!=0) ) {
00208             stripRetained[stpCounter] = -( digit->GetCharge() / 
00209                                            stpdigit->GetCharge() );
00210           }
00211           else stripRetained[stpCounter] = 1.0;
00212           eventStripMatch.insert(pair<Int_t,const CandDigitHandle*>(stpCounter,digit));
00213         }
00214       }
00215       stpCounter+=1;
00216     }
00217   }
00218 
00219   //find out which event strips are in the track:
00220   TIter trkstpItr(fittrack->GetDaughterIterator());
00221   stpIter.Reset();
00222   stpCounter = 1;
00223   while(const CandStripHandle* strip = 
00224         dynamic_cast<const CandStripHandle*>(stpIter())) {
00225     trkstpItr.Reset();
00226     while(const CandStripHandle* trkStrip =
00227           dynamic_cast<const CandStripHandle*>(trkstpItr())) {
00228       if(strip->IsEquivalent(trkStrip)) {
00229         stripInTrack[stpCounter] = 1;
00230       }
00231     }
00232     stpCounter += 1;
00233   }
00234 
00235   Int_t cMaxTrackLikePlanes = 6;
00236   if(!ac.Get("MaxTrackLikePlanes",cMaxTrackLikePlanes)) 
00237     cMaxTrackLikePlanes=6;
00238   int maxtrkplane = GetMaxTrackLikePlane(event,track,cMaxTrackLikePlanes);
00239   crmh.SetMaxTrkPlane(maxtrkplane);
00240   
00241   //fill reco-related hit removal info:
00242   //loop over event strips:
00243   for(stpCounter=0;stpCounter<event->GetNDaughters();stpCounter++){
00244     bool is_retained = false;
00245     if(stripRetained[stpCounter]>0) is_retained = true;
00246     bool is_track = false;
00247     if(stripInTrack[stpCounter]==1) is_track = true;
00248     bool is_retained_scaled = false;
00249     Float_t scale_factor = 1.0;
00250     if(stripRetained[stpCounter]<0) {
00251       is_retained_scaled = true;
00252       scale_factor = TMath::Abs(stripRetained[stpCounter]);      
00253     }
00254     //fill in bit-packed info:
00255     std::multimap<Int_t,const CandDigitHandle*>::iterator esm_beg;
00256     std::multimap<Int_t,const CandDigitHandle*>::iterator esm_end;          
00257     esm_beg = eventStripMatch.find(stpCounter);
00258     if(esm_beg != eventStripMatch.end()){
00259       esm_end = eventStripMatch.upper_bound(stpCounter);
00260       for ( ; esm_beg != esm_end; ++esm_beg) {
00261         infoToStore[esm_beg->second] = (int(scale_factor*RmMuMask::kRMMU_SCL_FACT_SCALE)<<RmMuMask::kRMMU_NUM_SHIFT);
00262         infoToStore[esm_beg->second] |= RmMuMask::kRMMU_ISRETAIN_MASK;
00263         if (is_retained_scaled)
00264           infoToStore[esm_beg->second] |= RmMuMask::kRMMU_ISSCALED_MASK;
00265         if (is_track)
00266           infoToStore[esm_beg->second] |= RmMuMask::kRMMU_INRECOTRK_MASK;
00267       }
00268     }
00269   }
00270   
00271   //do truth analysis?
00272   if(vldc.GetSimFlag()==SimFlag::kMC){
00273     //do truth analysis
00274     Truthifier* truth = new Truthifier(cx.GetMom());
00275     if(truth->IsValid()){
00276       TruthHelper* helper = new TruthHelper(cx.GetMom());   
00277       SimSnarlRecord *simsnarl = 
00278         dynamic_cast<SimSnarlRecord*>(cx.GetMom()->GetFragment("SimSnarlRecord"));
00279       if(simsnarl) {  //simsnarl
00280         const TClonesArray* ctca = 
00281           dynamic_cast<const TClonesArray*>(simsnarl->FindComponent("TClonesArray","StdHep"));
00282         const TClonesArray* neukinarray = 
00283           dynamic_cast<const TClonesArray*>(simsnarl->FindComponent("TClonesArray","NeuKinList"));
00284         const REROOT_NeuKin* neukin = 
00285           dynamic_cast<const REROOT_NeuKin*>(neukinarray->At(0));
00286         assert(neukin);
00287         
00288         //variables to fill:
00289         Int_t nMuonDig = 0;
00290         Int_t nMuonDigRetained = 0;
00291         Int_t nShwDig = 0;
00292         Int_t nShwDigRetained = 0;
00293         Int_t nShwDigAtVtx = 0;
00294         Int_t nShwDigRetainedAtVtx = 0;
00295         Float_t peShw = 0.;
00296         Float_t peShwRetained = 0.;
00297         Float_t peShwAtVtx = 0.;
00298         Float_t peShwRetainedAtVtx = 0.;
00299         Int_t nRetained = 0;
00300         Int_t nRetainedMuon = 0;
00301         Int_t nRetainedShw = 0;
00302         Int_t nRetainedBoth = 0;
00303         Float_t peRetained = 0.;
00304         Float_t peRetainedMuon = 0.;
00305         Float_t peRetainedShw = 0.;
00306         Float_t peRetainedBoth = 0.;
00307         Int_t nRejected = 0;
00308         Int_t nRejectedMuon = 0;
00309         Int_t nRejectedShw = 0;
00310         Int_t nRejectedBoth = 0;
00311         Int_t nRejShw = 0;
00312         Int_t nRejShwMaxTrk = 0 ;
00313         Int_t nRejShwFakeTrk = 0;
00314         Int_t nRejShwMix = 0 ;
00315 
00316         //loop over event strips:
00317         stpIter.Reset();
00318         stpCounter = 0;
00319         while(const CandStripHandle* strip = 
00320               dynamic_cast<const CandStripHandle*>(stpIter())){ //loop over strips
00321           TIter digitItr(strip->GetDaughterIterator());
00322           while (CandDigitHandle *digit = dynamic_cast<CandDigitHandle*>(digitItr())) { //loop over digits
00323             const int planeno = digit->GetPlexSEIdAltL().GetBestSEId().GetPlane();
00324             //const int stripno = digit->GetPlexSEIdAltL().GetBestSEId().GetStrip();  
00325             const CandDigitHandle tcdh = *digit;
00326             //const CandDeMuxDigitHandle* demuxdigit = 
00327             //dynamic_cast<const CandDeMuxDigitHandle*>(digit);
00328             
00329             bool is_retained = false;
00330             if(stripRetained[stpCounter]>0) is_retained = true;
00331             bool is_track = false;
00332             if(stripInTrack[stpCounter]==1) is_track = true;        
00333             bool is_retained_scaled = false;
00334             if(stripRetained[stpCounter]<0) is_retained_scaled = true;
00335             //bool is_recoed_xtalk = (demuxdigit->GetDeMuxDigitFlagWord()&CandDeMuxDigit::kXTalk); 
00336             bool is_shower = 0;
00337             bool is_muon = 0;
00338             bool is_physics = 0;
00339 
00340             const DigiSignal * signal = truth->GetSignal(tcdh);
00341             const DigiScintHit* biggest_hit = truth->GetBiggestHit(tcdh);
00342             TParticle* biggest_part  = NULL;
00343             if(biggest_hit!=NULL){
00344               Int_t biggest_track = abs(biggest_hit->TrackId());
00345               biggest_part = dynamic_cast<TParticle*>((*ctca)[biggest_track]);      
00346             }
00347             if(signal!=NULL){      
00348               is_physics = ((signal->GetTruth() & DigiSignal::kGenuine)!=0);      
00349               for (UInt_t i=0;i<signal->GetNumberOfHits();i++){
00350                 const DigiScintHit * hit = signal->GetHit(i);
00351                 if(hit){
00352                   Int_t track = abs(hit->TrackId());
00353                   TParticle* part = dynamic_cast<TParticle*>((*ctca)[track]);
00354                   if(!helper->IsNeutrino(part) && !helper->IsMuon(part)){
00355                     is_shower=true;         
00356                   }
00357                   if(!helper->IsNeutrino(part) && helper->IsMuon(part)){
00358                     is_muon=true;           
00359                   }
00360                 }
00361               }
00362             }
00363             
00364             //fill in truth-related hit removal info:
00365             std::multimap<Int_t,const CandDigitHandle*>::iterator esm_beg;
00366             std::multimap<Int_t,const CandDigitHandle*>::iterator esm_end;          
00367             esm_beg = eventStripMatch.find(stpCounter);
00368             if(esm_beg != eventStripMatch.end()){
00369               esm_end = eventStripMatch.upper_bound(stpCounter);
00370               for ( ; esm_beg != esm_end; ++esm_beg) {
00371                 if (is_muon) infoToStore[esm_beg->second]    |= RmMuMask::kRMMU_ISMU_MASK;
00372                 if (is_shower) infoToStore[esm_beg->second]  |= RmMuMask::kRMMU_ISSHW_MASK;
00373                 if (is_physics) infoToStore[esm_beg->second] |= RmMuMask::kRMMU_ISPHYS_MASK;            
00374               }
00375             }
00376           
00377             if(is_physics){
00378               if(is_shower){
00379                 nShwDig++;
00380                 peShw+=digit->GetCharge(CalDigitType::kPE);     
00381                 if(planeno<maxtrkplane){
00382                   nShwDigAtVtx++;
00383                   peShwAtVtx+=digit->GetCharge(CalDigitType::kPE);      
00384                 }
00385                 if(is_retained || is_retained_scaled){
00386                   nShwDigRetained++;
00387                   peShwRetained+=digit->GetCharge(CalDigitType::kPE);   
00388                   if(planeno<maxtrkplane){
00389                     nShwDigRetainedAtVtx++;
00390                     peShwRetainedAtVtx+=digit->GetCharge(CalDigitType::kPE);    
00391                   }
00392                 }
00393                 else{
00394                   nRejShw++;
00395                   if(planeno>maxtrkplane) nRejShwMaxTrk++;
00396                   if(is_muon) nRejShwMix++;
00397                   if(!is_muon && is_track) nRejShwFakeTrk++;
00398                 }
00399               } //is shower
00400               if(is_muon){
00401                 nMuonDig++;
00402                 if(is_retained || is_retained_scaled) nMuonDigRetained++;
00403               } //is muon
00404               if(is_retained || is_retained_scaled){
00405                 nRetained++;
00406                 peRetained+=digit->GetCharge(CalDigitType::kPE);        
00407                 if(is_muon){
00408                   nRetainedMuon++; 
00409                   peRetainedMuon+=digit->GetCharge(CalDigitType::kPE);  
00410                 }
00411                 if(is_shower){
00412                   nRetainedShw++;
00413                   peRetainedShw+=digit->GetCharge(CalDigitType::kPE);   
00414                 }
00415                 if(is_muon && is_shower){
00416                   nRetainedBoth++;
00417                   peRetainedBoth+=digit->GetCharge(CalDigitType::kPE);  
00418                 }
00419               }
00420               else{
00421                 nRejected++;
00422                 if(is_muon && !is_shower)nRejectedMuon++;
00423                 if(!is_muon && is_shower) nRejectedShw++;
00424                 if(is_muon && is_shower) nRejectedBoth++;
00425               }
00426             }       
00427           }  
00428           stpCounter += 1;
00429         }
00430         
00431         crmh.SetNMuonDig(nMuonDig);
00432         crmh.SetNMuonDigRetained(nMuonDigRetained);
00433         crmh.SetNShwDig(nShwDig);
00434         crmh.SetNShwDigRetained(nShwDigRetained);
00435         crmh.SetNShwDigAtVtx(nShwDigAtVtx);
00436         crmh.SetNShwDigRetainedAtVtx(nShwDigRetainedAtVtx);
00437         crmh.SetNShwPE(peShw);
00438         crmh.SetNShwPERetained(peShwRetained);
00439         crmh.SetNShwPEAtVtx(peShwAtVtx);
00440         crmh.SetNShwPERetainedAtVtx(peShwRetainedAtVtx);
00441         crmh.SetNRetained(nRetained);
00442         crmh.SetNRetainedMuon(nRetainedMuon);
00443         crmh.SetNRetainedShw(nRetainedShw);
00444         crmh.SetNRetainedBoth(nRetainedBoth);
00445         crmh.SetPERetained(peRetained);
00446         crmh.SetPERetainedMuon(peRetainedMuon);
00447         crmh.SetPERetainedShw(peRetainedShw);
00448         crmh.SetPERetainedBoth(peRetainedBoth);
00449         crmh.SetNRejected(nRejected);
00450         crmh.SetNRejectedMuon(nRejectedMuon);
00451         crmh.SetNRejectedShw(nRejectedShw);
00452         crmh.SetNRejectedBoth(nRejectedBoth);
00453         crmh.SetNRejShw(nRejShw);
00454         crmh.SetNRejShwMaxTrk(nRejShwMaxTrk);
00455         crmh.SetNRejShwFakeTrk(nRejShwFakeTrk);
00456         crmh.SetNRejShwMix(nRejShwMix);
00457       }
00458       delete helper;
00459     }
00460     delete truth;
00461   }
00462   
00463   //set the reason for keeping thing:
00464   std::map<const CandDigitHandle*,Int_t>::iterator beg = infoToStore.begin();
00465   std::map<const CandDigitHandle*,Int_t>::iterator end = infoToStore.end();
00466   while(beg!=end){
00467     crmh.SetReasonForKeeping(beg->first,beg->second);    
00468     beg++;
00469   }
00470 
00471 }

void AlgRmMu::Trace const char *  c  )  const [virtual]
 

Reimplemented from AlgBase.

Definition at line 474 of file AlgRmMu.cxx.

00475 {
00476 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 1 11:56:28 2007 for loon by  doxygen 1.3.9.1