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

FarDetSliceListModule Class Reference

#include <FarDetSliceListModule.h>

Inheritance diagram for FarDetSliceListModule:

JobCModule List of all members.

Public Member Functions

 FarDetSliceListModule ()
 ~FarDetSliceListModule ()
void BeginJob ()
JobCResult Reco (MomNavigator *mom)
JobCResult Ana (const MomNavigator *mom)
const RegistryDefaultConfig () const
void Config (const Registry &r)
void HandleCommand (JobCommand *command)
void EndJob ()

Private Member Functions

Int_t ApplyFilter (FarDetSliceListHandle *csh)

Private Attributes

TFile * fFarDetSliceFile
TTree * fFarDetSliceTree
Int_t run
Int_t snarl
Int_t timeframe
Int_t time
Int_t date
Int_t planes
Int_t strips
Int_t begpln
Int_t endpln
Double_t charge
Double_t fidcharge
Double_t qSM1 [11]
Double_t qSM2 [11]
Double_t xSM1 [11]
Double_t xSM2 [11]
Double_t ySM1 [11]
Double_t ySM2 [11]
Double_t zSM1 [11]
Double_t zSM2 [11]
Double_t maxplncharge
Int_t edges
Int_t edgesSM1
Int_t edgesSM2
Int_t eventidSM1
Int_t eventidSM2
Int_t eventidX
Int_t eventid
TString fListIn
TString fListOut
Int_t fFilterOnOff
Int_t fFilterMinPlanes
Int_t fFilterFC
Int_t fFilterPC
Int_t fFilter
TObjArray fStrpList [500]

Constructor & Destructor Documentation

FarDetSliceListModule::FarDetSliceListModule  ) 
 

Definition at line 41 of file FarDetSliceListModule.cxx.

00041                                              :
00042   fFarDetSliceFile(0),
00043   fFarDetSliceTree(0),
00044   fListIn("CandStripListHandle"),
00045   fListOut("FarDetSliceListHandle"),
00046   fFilterOnOff(0),
00047   fFilterMinPlanes(5),
00048   fFilterFC(0),
00049   fFilterPC(0),
00050   fFilter(0)
00051 {
00052 
00053 }

FarDetSliceListModule::~FarDetSliceListModule  ) 
 

Definition at line 55 of file FarDetSliceListModule.cxx.

00056 {
00057 
00058 }


Member Function Documentation

JobCResult FarDetSliceListModule::Ana const MomNavigator mom  )  [virtual]
 

Implement this for read only access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 126 of file FarDetSliceListModule.cxx.

References begpln, charge, date, edges, edgesSM1, edgesSM2, endpln, eventid, eventidSM1, eventidSM2, eventidX, fFarDetSliceFile, fFarDetSliceTree, fidcharge, CandRecord::FindCandHandle(), CandSliceHandle::GetBegPlane(), CandSliceHandle::GetCharge(), CandHandle::GetDaughterIterator(), FarDetSliceHandle::GetEdges(), FarDetSliceHandle::GetEdgesSM1(), FarDetSliceHandle::GetEdgesSM2(), CandSliceHandle::GetEndPlane(), FarDetSliceHandle::GetEventId(), FarDetSliceHandle::GetEventIdSM1(), FarDetSliceHandle::GetEventIdSM2(), FarDetSliceHandle::GetEventIdX(), FarDetSliceHandle::GetFidCharge(), FarDetSliceHandle::GetFidChargeSM1(), FarDetSliceHandle::GetFidChargeSM2(), MomNavigator::GetFragment(), FarDetSliceHandle::GetGoodPlanes(), FarDetSliceHandle::GetGoodStrips(), FarDetSliceHandle::GetMaxPlaneCharge(), FarDetSliceHandle::GetMeanXPosSM1(), FarDetSliceHandle::GetMeanXPosSM2(), FarDetSliceHandle::GetMeanYPosSM1(), FarDetSliceHandle::GetMeanYPosSM2(), FarDetSliceHandle::GetMeanZPosSM1(), FarDetSliceHandle::GetMeanZPosSM2(), RawRecord::GetRawBlockIter(), RawRecord::GetRawHeader(), RawSnarlHeaderBlock::GetRun(), RawDaqHeader::GetRun(), RawSnarlHeaderBlock::GetSnarl(), RawDaqSnarlHeader::GetSnarl(), RawSnarlHeaderBlock::GetTimeFrameNum(), RawDaqHeader::GetTimeFrameNum(), RawSnarlHeaderBlock::GetTriggerTime(), RecMinos::GetVldContext(), maxplncharge, MSG, planes, qSM1, qSM2, run, JobCResult::SetFailed(), snarl, strips, time, timeframe, xSM1, xSM2, ySM1, ySM2, zSM1, and zSM2.

00127 {
00128   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::Ana( ) *** " << endl;
00129 
00130   JobCResult result(JobCResult::kPassed);  
00131   run=-1; snarl=-1; timeframe=-1;
00132 
00133   Int_t i;
00134 
00135   RawRecord *rawrec = dynamic_cast<RawRecord *>(mom->GetFragment("RawRecord"));
00136   if(rawrec){
00137 
00138     const RawDaqSnarlHeader* rawheader = dynamic_cast<const RawDaqSnarlHeader*>(rawrec->GetRawHeader());
00139     if(rawheader){
00140       if(run<0) run = rawheader->GetRun(); 
00141       if(snarl<0) snarl = rawheader->GetSnarl();
00142       if(timeframe<0) timeframe = rawheader->GetTimeFrameNum();
00143     }
00144 
00145     TIter rawrecitr = rawrec->GetRawBlockIter();
00146     TObject *tob;
00147     while((tob = rawrecitr())){
00148       if(tob->InheritsFrom("RawSnarlHeaderBlock")){
00149         RawSnarlHeaderBlock* rdb = (RawSnarlHeaderBlock*)(tob);
00150         if(run<0) run = rdb->GetRun(); 
00151         if(snarl<0) snarl = rdb->GetSnarl();
00152         if(timeframe<0) timeframe = rdb->GetTimeFrameNum();
00153         date = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)/(3600*24);
00154         time = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)%(3600*24);
00155       }
00156     }
00157   }  
00158 
00159   CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord","PrimaryCandidateRecord"));
00160   if(candrec==0){
00161     return result.SetFailed();
00162   }
00163 
00164   VldContext *vldc = (VldContext*)(candrec->GetVldContext());
00165   UgliGeomHandle ugh(*vldc);
00166   PlexHandle ph(*vldc);
00167 
00168   FarDetSliceListHandle* myslicelist = dynamic_cast<FarDetSliceListHandle*>(candrec->FindCandHandle("FarDetSliceListHandle"));
00169   if(myslicelist==0){
00170     return result.SetFailed();
00171   }
00172 
00173   TIter myitr(myslicelist->GetDaughterIterator());
00174   FarDetSliceHandle* myslice = dynamic_cast<FarDetSliceHandle*>(myitr());
00175   if(myslice==0){
00176     return result.SetFailed();
00177   }
00178 
00179   MSG("FarDetSlice",Msg::kDebug) << " *** FOUND SLICE *** " << endl
00180                                  << "   run=" << run << " snarl=" << snarl << " timeframe=" << timeframe << endl;
00181   
00182   if(!fFarDetSliceFile){      
00183     // TString mystring("results/fardet.slice");  
00184     // mystring.Append("."); mystring+=run; 
00185     // mystring.Append(".root");
00186     TString mystring("fardet.slice.root");
00187     TDirectory* tmpd = gDirectory;
00188     fFarDetSliceFile = new TFile(mystring.Data(),"RECREATE");
00189     fFarDetSliceTree = new TTree("SliceTree","SliceTree");
00190     fFarDetSliceTree->SetAutoSave(100);
00191     fFarDetSliceTree->Branch("run",&run,"run/I");
00192     fFarDetSliceTree->Branch("snarl",&snarl,"snarl/I");
00193     fFarDetSliceTree->Branch("timeframe",&timeframe,"timeframe/I");
00194     fFarDetSliceTree->Branch("time",&time,"time/I");
00195     fFarDetSliceTree->Branch("date",&date,"date/I");
00196     fFarDetSliceTree->Branch("planes",&planes,"planes/I");
00197     fFarDetSliceTree->Branch("strips",&strips,"strips/I");
00198     fFarDetSliceTree->Branch("begpln",&begpln,"begpln/I");
00199     fFarDetSliceTree->Branch("endpln",&endpln,"endpln/I");
00200     fFarDetSliceTree->Branch("charge",&charge,"charge/D");
00201     fFarDetSliceTree->Branch("qSM1",qSM1,"qSM1[11]/D");
00202     fFarDetSliceTree->Branch("qSM2",qSM2,"qSM2[11]/D");
00203     fFarDetSliceTree->Branch("xSM1",xSM1,"xSM1[11]/D");
00204     fFarDetSliceTree->Branch("xSM2",xSM2,"xSM2[11]/D");
00205     fFarDetSliceTree->Branch("ySM1",ySM1,"ySM1[11]/D");
00206     fFarDetSliceTree->Branch("ySM2",ySM2,"ySM2[11]/D");
00207     fFarDetSliceTree->Branch("zSM1",zSM1,"zSM1[11]/D");
00208     fFarDetSliceTree->Branch("zSM2",zSM2,"zSM2[11]/D");
00209     fFarDetSliceTree->Branch("fidcharge",&fidcharge,"fidcharge/D");
00210     fFarDetSliceTree->Branch("maxplncharge",&maxplncharge,"maxplncharge/D");
00211     fFarDetSliceTree->Branch("edges",&edges,"edges/I");
00212     fFarDetSliceTree->Branch("edgesSM1",&edgesSM1,"edgesSM1/I");
00213     fFarDetSliceTree->Branch("edgesSM2",&edgesSM2,"edgesSM2/I");
00214     fFarDetSliceTree->Branch("eventidSM1",&eventidSM1,"eventidSM1/I");
00215     fFarDetSliceTree->Branch("eventidSM2",&eventidSM2,"eventidSM2/I");
00216     fFarDetSliceTree->Branch("eventidX",&eventidX,"eventidX/I");
00217     fFarDetSliceTree->Branch("eventid",&eventid,"eventid/I");
00218     gDirectory = tmpd;
00219   }
00220 
00221 
00222   if(fFarDetSliceFile){
00223 
00224     planes=myslice->GetGoodPlanes();
00225     strips=myslice->GetGoodStrips();
00226     begpln=myslice->GetBegPlane();
00227     endpln=myslice->GetEndPlane();
00228     charge=myslice->GetCharge();
00229     fidcharge=myslice->GetFidCharge();
00230     maxplncharge=myslice->GetMaxPlaneCharge();
00231     edges=myslice->GetEdges();
00232     edgesSM1=myslice->GetEdgesSM1();
00233     edgesSM2=myslice->GetEdgesSM2();
00234     eventidSM1=myslice->GetEventIdSM1();
00235     eventidSM2=myslice->GetEventIdSM2();
00236     eventidX=myslice->GetEventIdX();
00237     eventid=myslice->GetEventId();
00238 
00239     for(i=0;i<11;i++){
00240       qSM1[i]=myslice->GetFidChargeSM1(i);
00241       qSM2[i]=myslice->GetFidChargeSM2(i);
00242     }
00243     
00244     for(i=0;i<11;i++){
00245       xSM1[i]=myslice->GetMeanXPosSM1(i);
00246       xSM2[i]=myslice->GetMeanXPosSM2(i);
00247     }
00248 
00249     for(i=0;i<11;i++){
00250       ySM1[i]=myslice->GetMeanYPosSM1(i);
00251       ySM2[i]=myslice->GetMeanYPosSM2(i);
00252     }
00253 
00254     for(i=0;i<11;i++){
00255       zSM1[i]=myslice->GetMeanZPosSM1(i);
00256       zSM2[i]=myslice->GetMeanZPosSM2(i);
00257     }
00258 
00259     TDirectory* tmpd = gDirectory;
00260     fFarDetSliceFile->cd();
00261     fFarDetSliceTree->Fill();
00262     gDirectory = tmpd;
00263   }
00264 
00265   return result;
00266 }

Int_t FarDetSliceListModule::ApplyFilter FarDetSliceListHandle csh  )  [private]
 

Definition at line 385 of file FarDetSliceListModule.cxx.

References fFilterFC, fFilterMinPlanes, fFilterPC, CandHandle::GetDaughterIterator(), FarDetSliceHandle::GetEventId(), FarDetSliceHandle::GetFidCharge(), FarDetSliceHandle::GetGoodPlanes(), FarDetSliceHandle::GetGoodStrips(), FarDetSliceHandle::GetGoodUPlanes(), FarDetSliceHandle::GetGoodVPlanes(), and MSG.

Referenced by Reco().

00386 {  
00387   Int_t filter=0;
00388 
00389   TIter myitr(csh->GetDaughterIterator());
00390   FarDetSliceHandle* myslice = dynamic_cast<FarDetSliceHandle*>(myitr());
00391 
00392   if( myslice ){
00393     MSG("FarDetSlice",Msg::kDebug)
00394       << endl
00395       << " eventid=" << myslice->GetEventId()
00396       << "  ( FC=" << fFilterFC 
00397       << " , PC=" << fFilterPC << " ) " << endl
00398       << " good planes=" << myslice->GetGoodPlanes()
00399       << "  ( U=" << myslice->GetGoodUPlanes() 
00400       << " , V=" << myslice->GetGoodVPlanes()
00401       << " , min=" << fFilterMinPlanes << " ) " << endl
00402       << " good strips=" << myslice->GetGoodStrips() 
00403       << " fidcharge=" << myslice->GetFidCharge() << endl;
00404   }
00405 
00406   if( myslice 
00407    && myslice->GetEventId()>-1
00408    && myslice->GetGoodUPlanes()>1 && myslice->GetGoodVPlanes()>1
00409    && myslice->GetGoodPlanes()>2 && myslice->GetGoodPlanes()>=fFilterMinPlanes ){  
00410 
00411     if( !fFilterFC && !fFilterPC ) filter=1;
00412     if( fFilterFC && myslice->GetEventId()==0 ) filter=1;
00413     if( fFilterPC && myslice->GetEventId()==1 ) filter=1;
00414 
00415   }
00416 
00417   return filter;
00418 }

void FarDetSliceListModule::BeginJob  )  [virtual]
 

Implement for notification of begin of job

Reimplemented from JobCModule.

Definition at line 60 of file FarDetSliceListModule.cxx.

References MSG.

00061 {
00062   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::BeginJob( ) *** " << endl;
00063 
00064   /*
00065   AlgFactory &af = AlgFactory::GetInstance();
00066   af.Register("AlgFarDetSliceList","default","libFarDetSlice.so","AlgConfig");
00067   af.Register("AlgFarDetSlice","default","libFarDetSlice.so","AlgConfig");
00068   */
00069 }

void FarDetSliceListModule::Config const Registry r  )  [virtual]
 

Return the actual configuration. If your module directly pulls its configuration from the fConfig Registry, you don't need to override this. Override if you have local config variables.

Reimplemented from JobCModule.

Definition at line 316 of file FarDetSliceListModule.cxx.

References fFilterFC, fFilterMinPlanes, fFilterOnOff, fFilterPC, fListIn, fListOut, Registry::Get(), AlgHandle::GetAlgConfig(), AlgFactory::GetAlgHandle(), AlgFactory::GetInstance(), Registry::LockValues(), MSG, Registry::Set(), and Registry::UnLockValues().

00317 {
00318   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::Config( ) *** " << endl;
00319 
00320   Double_t tmpdub; Int_t tmpint; const char* tmpchar = 0;
00321 
00322   if(r.Get("FilterOnOff",tmpint)) fFilterOnOff = tmpint;
00323   if(r.Get("FilterMinPlanes",tmpint)) fFilterMinPlanes = tmpint;
00324   if(r.Get("FilterFC",tmpint)) fFilterFC = tmpint;
00325   if(r.Get("FilterPC",tmpint)) fFilterPC = tmpint;
00326   if(r.Get("ListIn",tmpchar)) fListIn = tmpchar;
00327   if(r.Get("ListOut",tmpchar)) fListOut = tmpchar;
00328 
00329   AlgFactory &af = AlgFactory::GetInstance();
00330 
00331   AlgHandle ah_list = af.GetAlgHandle("AlgFarDetSliceList","default");
00332   AlgConfig &ac_list = ah_list.GetAlgConfig();
00333   ac_list.UnLockValues();
00334   if(r.Get("MinPlane",tmpint)) ac_list.Set("MinPlane",tmpint);
00335   if(r.Get("MaxPlane",tmpint)) ac_list.Set("MaxPlane",tmpint);
00336   ac_list.LockValues();
00337 
00338   AlgHandle ah_slice = af.GetAlgHandle("AlgFarDetSlice","default");
00339   AlgConfig &ac_slice = ah_slice.GetAlgConfig();
00340   ac_slice.UnLockValues();
00341   if(r.Get("MinPlane",tmpint)) ac_slice.Set("MinPlane",tmpint);
00342   if(r.Get("MaxPlane",tmpint)) ac_slice.Set("MaxPlane",tmpint);
00343   if(r.Get("EdgePlnCut",tmpint)) ac_slice.Set("EdgePlnCut",tmpint);
00344   if(r.Get("EdgeRadCut",tmpdub)) ac_slice.Set("EdgeRadCut",tmpdub);
00345   if(r.Get("EdgeWidthCut",tmpdub)) ac_slice.Set("EdgeWidthCut",tmpdub);
00346   if(r.Get("EdgeChargeCut",tmpdub)) ac_slice.Set("EdgeChargeCut",tmpdub);
00347   if(r.Get("FidChargeCut",tmpdub)) ac_slice.Set("FidChargeCut",tmpdub);
00348   ac_slice.LockValues();
00349 
00350   MSG("FarDetSlice",Msg::kDebug) << "  configuration : " << endl
00351                                 << "     FilterOnOff=" << fFilterOnOff << endl
00352                                 << "     FilterMinPlanes=" << fFilterMinPlanes << endl
00353                                 << "     FilterFC=" << fFilterFC << endl
00354                                 << "     FilterPC=" << fFilterPC << endl
00355                                 << "     ListIn=" << fListIn.Data() << endl
00356                                 << "     ListOut=" << fListOut.Data() << endl;
00357 
00358   return;
00359 }

const Registry & FarDetSliceListModule::DefaultConfig  )  const [virtual]
 

Get the default configuration registry. This should normally be overridden. One useful idiom is to implement it like:

const Registry& MyModule::DefaultConfig() const { static Registry cfg; // never is destroyed if (cfg.Size()) return cfg; // already filled it // set defaults: cfg.Set("TheAnswer",42); cfg.Set("Units","unknown"); return cfg; }

Reimplemented from JobCModule.

Definition at line 268 of file FarDetSliceListModule.cxx.

References fFilterFC, fFilterMinPlanes, fFilterOnOff, fFilterPC, fListIn, fListOut, AlgHandle::GetAlgConfig(), AlgFactory::GetAlgHandle(), AlgFactory::GetInstance(), Registry::LockValues(), MSG, AlgFactory::Register(), Registry::Set(), and Registry::UnLockValues().

00269 {
00270   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::DefaultConfig( ) *** " << endl;
00271 
00272   static Registry r;
00273   r.SetName("FarDetSliceListModule.config.default");
00274   r.UnLockValues();
00275   r.Set("FilterOnOff",fFilterOnOff);
00276   r.Set("FilterMinPlanes",fFilterMinPlanes);
00277   r.Set("FilterFC",fFilterFC);
00278   r.Set("FilterPC",fFilterPC);
00279   r.Set("ListIn",fListIn);
00280   r.Set("ListOut",fListOut);
00281   r.Set("MinPlane",0);
00282   r.Set("MaxPlane",485);
00283   r.Set("EdgePlnCut",4);
00284   r.Set("EdgeRadCut",0.3);
00285   r.Set("EdgeWidthCut",1.33);
00286   r.Set("EdgeChargeCut",6.0);
00287   r.Set("FidChargeCut",10.0);
00288   r.LockValues();
00289 
00290   AlgFactory &af = AlgFactory::GetInstance();
00291 
00292   af.Register("AlgFarDetSliceList","default");
00293   AlgHandle ah_list = af.GetAlgHandle("AlgFarDetSliceList","default");
00294   AlgConfig &ac_list = ah_list.GetAlgConfig();
00295   ac_list.UnLockValues();
00296   ac_list.Set("MinPlane",0);
00297   ac_list.Set("MaxPlane",485);
00298   ac_list.LockValues();
00299 
00300   af.Register("AlgFarDetSlice","default");
00301   AlgHandle ah_slice = af.GetAlgHandle("AlgFarDetSlice","default");
00302   AlgConfig &ac_slice = ah_slice.GetAlgConfig();
00303   ac_slice.UnLockValues();
00304   ac_slice.Set("MinPlane",0);
00305   ac_slice.Set("MaxPlane",485);
00306   ac_slice.Set("EdgePlnCut",4);
00307   ac_slice.Set("EdgeRadCut",0.3);
00308   ac_slice.Set("EdgeWidthCut",1.33);
00309   ac_slice.Set("EdgeChargeCut",6.0);
00310   ac_slice.Set("FidChargeCut",10.0);
00311   ac_slice.LockValues();
00312 
00313   return r;
00314 }

void FarDetSliceListModule::EndJob  )  [virtual]
 

Implement for notification of end of job

Reimplemented from JobCModule.

Definition at line 370 of file FarDetSliceListModule.cxx.

References fFarDetSliceFile, fFarDetSliceTree, and MSG.

00371 {
00372   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::EndJob( ) *** " << endl;
00373 
00374   if(fFarDetSliceFile){
00375     MSG("FarDetSlice",Msg::kDebug) << " *** saving SLICE INFO to file *** " << endl;
00376     TDirectory* tmpddd = gDirectory;
00377     fFarDetSliceFile->cd();
00378     fFarDetSliceTree->Write();
00379     fFarDetSliceFile->Close();
00380     gDirectory = tmpddd;
00381     MSG("FarDetSlice",Msg::kDebug) << "    ... data saved to file *** " << endl;
00382   }
00383 }

void FarDetSliceListModule::HandleCommand JobCommand command  )  [virtual]
 

Implement to handle a JobCommand

Reimplemented from JobCModule.

Definition at line 361 of file FarDetSliceListModule.cxx.

References JobCommand::PopCmd(), and JobCommand::PopOpt().

00362 {
00363   TString cmd = command->PopCmd();
00364   if(cmd=="Set"){
00365     TString opt = command->PopOpt();
00366 
00367   }
00368 }

JobCResult FarDetSliceListModule::Reco MomNavigator mom  )  [virtual]
 

Implement this for read-write access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 71 of file FarDetSliceListModule.cxx.

References ApplyFilter(), fFilter, CandRecord::FindCandHandle(), fListIn, fListOut, AlgFactory::GetAlgHandle(), MomNavigator::GetFragment(), AlgFactory::GetInstance(), FarDetSliceList::MakeCandidate(), MSG, CandRecord::SecureCandHandle(), CandContext::SetCandRecord(), CandContext::SetDataIn(), JobCResult::SetFailed(), CandHandle::SetName(), JobCResult::SetPassed(), and CandHandle::SetTitle().

00072 {
00073   MSG("FarDetSlice",Msg::kDebug) << " *** FarDetSliceListModule::Reco( ) *** " << endl;
00074 
00075   fFilter=0;
00076   JobCResult result(JobCResult::kPassed);
00077 
00078   // get candrecord
00079   CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord","PrimaryCandidateRecord"));
00080   if( candrec==0 ){
00081     MSG("FarDetSlice",Msg::kDebug) << "  *** FAILED TO FIND CANDRECORD *** " << endl;
00082     return result.SetFailed();
00083   }
00084 
00085   // make striplist handle
00086   CandStripListHandle* cslh = dynamic_cast<CandStripListHandle*>(candrec->FindCandHandle("CandStripListHandle",fListIn.Data()));
00087   if( cslh ){
00088     MSG("FarDetSlice",Msg::kDebug) << "  *** MAKE HANDLE *** " << endl;
00089 
00090     AlgFactory &af = AlgFactory::GetInstance();
00091     AlgHandle ah = af.GetAlgHandle("AlgFarDetSliceList", "default");
00092   
00093     CandContext cx(this, mom);
00094     cx.SetCandRecord(candrec);
00095     cx.SetDataIn(cslh);
00096     FarDetSliceListHandle myslicelist = FarDetSliceList::MakeCandidate(ah,cx);
00097     myslicelist.SetName(fListOut.Data());
00098     myslicelist.SetTitle(TString("Created by FarDetSliceListModule"));
00099 
00100     candrec->SecureCandHandle(myslicelist);
00101   }
00102 
00103   // contained event filter 
00104   FarDetSliceListHandle* csh = dynamic_cast<FarDetSliceListHandle*>(candrec->FindCandHandle("FarDetSliceListHandle"));
00105   if( csh ){
00106     fFilter = this->ApplyFilter(csh);
00107   }
00108 
00109   // apply filter
00110   if( fFilterOnOff ){
00111     MSG("FarDetSlice",Msg::kDebug) << "  *** APPLY FILTER *** " << endl;
00112 
00113     if( fFilter ){
00114       MSG("FarDetSlice",Msg::kDebug) << "   *** PASSED FILTER *** " << endl; 
00115       return result.SetPassed(); 
00116     }
00117     else{
00118       MSG("FarDetSlice",Msg::kDebug) << "   *** FAILED FILTER *** " << endl; 
00119       return result.SetFailed();
00120     } 
00121   }
00122 
00123   return result;
00124 }


Member Data Documentation

Int_t FarDetSliceListModule::begpln [private]
 

Definition at line 37 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::charge [private]
 

Definition at line 38 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::date [private]
 

Definition at line 35 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::edges [private]
 

Definition at line 44 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::edgesSM1 [private]
 

Definition at line 44 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::edgesSM2 [private]
 

Definition at line 44 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::endpln [private]
 

Definition at line 37 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::eventid [private]
 

Definition at line 46 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::eventidSM1 [private]
 

Definition at line 45 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::eventidSM2 [private]
 

Definition at line 45 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::eventidX [private]
 

Definition at line 45 of file FarDetSliceListModule.h.

Referenced by Ana().

TFile* FarDetSliceListModule::fFarDetSliceFile [private]
 

Definition at line 31 of file FarDetSliceListModule.h.

Referenced by Ana(), and EndJob().

TTree* FarDetSliceListModule::fFarDetSliceTree [private]
 

Definition at line 32 of file FarDetSliceListModule.h.

Referenced by Ana(), and EndJob().

Int_t FarDetSliceListModule::fFilter [private]
 

Definition at line 52 of file FarDetSliceListModule.h.

Referenced by Reco().

Int_t FarDetSliceListModule::fFilterFC [private]
 

Definition at line 51 of file FarDetSliceListModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Int_t FarDetSliceListModule::fFilterMinPlanes [private]
 

Definition at line 50 of file FarDetSliceListModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Int_t FarDetSliceListModule::fFilterOnOff [private]
 

Definition at line 49 of file FarDetSliceListModule.h.

Referenced by Config(), and DefaultConfig().

Int_t FarDetSliceListModule::fFilterPC [private]
 

Definition at line 51 of file FarDetSliceListModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Double_t FarDetSliceListModule::fidcharge [private]
 

Definition at line 38 of file FarDetSliceListModule.h.

Referenced by Ana().

TString FarDetSliceListModule::fListIn [private]
 

Definition at line 48 of file FarDetSliceListModule.h.

Referenced by Config(), DefaultConfig(), and Reco().

TString FarDetSliceListModule::fListOut [private]
 

Definition at line 48 of file FarDetSliceListModule.h.

Referenced by Config(), DefaultConfig(), and Reco().

TObjArray FarDetSliceListModule::fStrpList[500] [private]
 

Definition at line 54 of file FarDetSliceListModule.h.

Double_t FarDetSliceListModule::maxplncharge [private]
 

Definition at line 43 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::planes [private]
 

Definition at line 36 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::qSM1[11] [private]
 

Definition at line 39 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::qSM2[11] [private]
 

Definition at line 39 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::run [private]
 

Definition at line 34 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::snarl [private]
 

Definition at line 34 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::strips [private]
 

Definition at line 36 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::time [private]
 

Definition at line 35 of file FarDetSliceListModule.h.

Referenced by Ana().

Int_t FarDetSliceListModule::timeframe [private]
 

Definition at line 35 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::xSM1[11] [private]
 

Definition at line 40 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::xSM2[11] [private]
 

Definition at line 40 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::ySM1[11] [private]
 

Definition at line 41 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::ySM2[11] [private]
 

Definition at line 41 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::zSM1[11] [private]
 

Definition at line 42 of file FarDetSliceListModule.h.

Referenced by Ana().

Double_t FarDetSliceListModule::zSM2[11] [private]
 

Definition at line 42 of file FarDetSliceListModule.h.

Referenced by Ana().


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 15:01:14 2008 for loon by  doxygen 1.3.9.1