DimuPreSelect Class Reference

#include <DimuPreSelect.h>

List of all members.

Public Member Functions

 DimuPreSelect (const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
 DimuPreSelect ()
 ~DimuPreSelect ()
void BookNtuple (NTuple::Tuple *&tuple)
int IsDimu ()
void Print ()

Private Attributes

bool m_selectFlag
bool m_output
bool m_mdcPass
bool m_tofPass
bool m_emcPass
bool m_mucPass
bool m_useFlag [4]
bool m_passFlag [4]
long m_totevent
long m_currun
long m_curevent
double m_ecms
double m_vr0cut
double m_vz0cut
double m_pcut_up
double m_pcut_down
double m_psymcut
double m_tcut
double m_ecut_up
double m_ecut_down
double m_dthetacut
double m_dphicut
double m_partselect
double m_mudigicut
double m_mutrkcut
double m_cutpass [20]
double m_subpass [4]
double m_totalpass
NTuple::Tuple * m_passtuple
NTuple::Item< double > m_run
NTuple::Item< double > m_event
NTuple::Item< double > m_part
NTuple::Item< double > m_c1
NTuple::Item< double > m_c2
NTuple::Item< double > m_r1
NTuple::Item< double > m_r2
NTuple::Item< double > m_z1
NTuple::Item< double > m_z2
NTuple::Item< double > m_p1
NTuple::Item< double > m_p2
NTuple::Item< double > m_t1
NTuple::Item< double > m_t2
NTuple::Item< double > m_e1
NTuple::Item< double > m_e2
NTuple::Item< double > m_theta1
NTuple::Item< double > m_theta2
NTuple::Item< double > m_phi1
NTuple::Item< double > m_phi2
NTuple::Item< double > m_mudigi
NTuple::Item< double > m_mutrk
NTuple::Item< double > m_zeroCFlag
NTuple::Item< double > m_vtRZFlag
NTuple::Item< double > m_pLimFlag
NTuple::Item< double > m_pSymFlag
NTuple::Item< double > m_tLimFlag
NTuple::Item< double > m_eLimFlag
NTuple::Item< double > m_eBBFlag
NTuple::Item< double > m_partFlag
NTuple::Item< double > m_mudigiFlag
NTuple::Item< double > m_mutrkFlag
NTuple::Item< double > m_mdcFlag
NTuple::Item< double > m_tofFlag
NTuple::Item< double > m_emcFlag
NTuple::Item< double > m_mucFlag
PropertyMgr m_propMgr
NTuple::Tuple * m_passtuple
NTuple::Item< double > m_run
NTuple::Item< double > m_event
NTuple::Item< double > m_part
NTuple::Item< double > m_c1
NTuple::Item< double > m_c2
NTuple::Item< double > m_r1
NTuple::Item< double > m_r2
NTuple::Item< double > m_z1
NTuple::Item< double > m_z2
NTuple::Item< double > m_p1
NTuple::Item< double > m_p2
NTuple::Item< double > m_t1
NTuple::Item< double > m_t2
NTuple::Item< double > m_e1
NTuple::Item< double > m_e2
NTuple::Item< double > m_theta1
NTuple::Item< double > m_theta2
NTuple::Item< double > m_phi1
NTuple::Item< double > m_phi2
NTuple::Item< double > m_mudigi
NTuple::Item< double > m_mutrk
NTuple::Item< double > m_zeroCFlag
NTuple::Item< double > m_vtRZFlag
NTuple::Item< double > m_pLimFlag
NTuple::Item< double > m_pSymFlag
NTuple::Item< double > m_tLimFlag
NTuple::Item< double > m_eLimFlag
NTuple::Item< double > m_eBBFlag
NTuple::Item< double > m_partFlag
NTuple::Item< double > m_mudigiFlag
NTuple::Item< double > m_mutrkFlag
NTuple::Item< double > m_mdcFlag
NTuple::Item< double > m_tofFlag
NTuple::Item< double > m_emcFlag
NTuple::Item< double > m_mucFlag


Detailed Description

Definition at line 7 of file DimuPreSelect.h.


Constructor & Destructor Documentation

DimuPreSelect::DimuPreSelect ( const std::string name,
ISvcLocator *  pSvcLocator 
)

Definition at line 49 of file DimuPreSelect.cxx.

References m_dphicut, m_dthetacut, m_ecms, m_ecut_down, m_ecut_up, m_mudigicut, m_mutrkcut, m_output, m_partselect, m_pcut_down, m_pcut_up, m_psymcut, m_selectFlag, m_tcut, m_useFlag, m_vr0cut, and m_vz0cut.

00049                                                                             :
00050   Algorithm(name, pSvcLocator) 
00051 {  
00052   declareProperty("CmsEnergy",  m_ecms      = 3.686);
00053   declareProperty("Vr0Cut",     m_vr0cut    = 1.0);
00054   declareProperty("Vz0Cut",     m_vz0cut    = 5.0);
00055   declareProperty("PUpCut",     m_pcut_up   = 2.0);
00056   declareProperty("PDownCut",   m_pcut_down = 0.5);
00057   declareProperty("PSymCut",    m_psymcut   = 0.5);
00058   declareProperty("TCut",       m_tcut      = 4);
00059   declareProperty("EUpCut",     m_ecut_up   = 1.0);
00060   declareProperty("EDownCut",   m_ecut_down = 0.1);
00061   declareProperty("DThetaCut",  m_dthetacut = 0.05);
00062   declareProperty("DPhiCut",    m_dphicut   = 0.4);
00063   declareProperty("PartSelect", m_partselect= 0);
00064   declareProperty("MuDigiCut",  m_mudigicut = 6);
00065   declareProperty("MuTrkCut",   m_mutrkcut  = 1);
00066   declareProperty("UseMDC",     m_useFlag[0]= 1);
00067   declareProperty("UseTOF",     m_useFlag[1]= 1);
00068   declareProperty("UseEMC",     m_useFlag[2]= 1);
00069   declareProperty("UseMUC",     m_useFlag[3]= 1);
00070   declareProperty ("Output",    m_output    = false);
00071   
00072   declareProperty ("SelectDimu",m_selectFlag= true);
00073   //Declare the properties  
00074 }

DimuPreSelect::DimuPreSelect (  ) 

Definition at line 24 of file DimuPreSelect.cxx.

References genRecEmupikp::i, m_curevent, m_currun, m_cutpass, m_dphicut, m_dthetacut, m_ecms, m_ecut_down, m_ecut_up, m_mudigicut, m_mutrkcut, m_output, m_partselect, m_pcut_down, m_pcut_up, m_propMgr, m_psymcut, m_subpass, m_tcut, m_totalpass, m_totevent, m_vr0cut, and m_vz0cut.

00025 {
00026   m_output=false;
00027   m_totevent = m_currun = m_curevent = 0;
00028   for(int i = 0; i < 20; i++)  m_cutpass[i] = 0;
00029   m_subpass[0] = m_subpass[1] = m_subpass[2] = m_subpass[3] = 0;
00030   m_totalpass = 0;
00031 
00032   m_propMgr.declareProperty("CmsEnergy",  m_ecms      = 3.686);
00033   m_propMgr.declareProperty("Vr0Cut",     m_vr0cut    = 1.0);
00034   m_propMgr.declareProperty("Vz0Cut",     m_vz0cut    = 5.0);
00035   m_propMgr.declareProperty("PUpCut",     m_pcut_up   = 2.0);
00036   m_propMgr.declareProperty("PDownCut",   m_pcut_down = 0.5);
00037   m_propMgr.declareProperty("PSymCut",    m_psymcut   = 0.5);
00038   m_propMgr.declareProperty("TCut",       m_tcut      = 4);
00039   m_propMgr.declareProperty("EUpCut",     m_ecut_up   = 1.0);
00040   m_propMgr.declareProperty("EDownCut",   m_ecut_down = 0.1);
00041   m_propMgr.declareProperty("DThetaCut",  m_dthetacut = 0.05);
00042   m_propMgr.declareProperty("DPhiCut",    m_dphicut   = 0.4);
00043   m_propMgr.declareProperty("PartSelect", m_partselect= 0);
00044   m_propMgr.declareProperty("MuDigiCut",  m_mudigicut = 6);
00045   m_propMgr.declareProperty("MuTrkCut",   m_mutrkcut  = 1);
00046 
00047   IJobOptionsSvc* jobSvc;
00048   Gaudi::svcLocator()->service("JobOptionsSvc", jobSvc);
00049   jobSvc->setMyProperties("DimuSelect", &m_propMgr);
00050 }

DimuPreSelect::~DimuPreSelect (  )  [inline]

Definition at line 11 of file DimuPreSelect.h.

00011 {;}


Member Function Documentation

void DimuPreSelect::BookNtuple ( NTuple::Tuple *&  tuple  ) 

Definition at line 52 of file DimuPreSelect.cxx.

References m_c1, m_c2, m_e1, m_e2, m_eBBFlag, m_eLimFlag, m_emcFlag, m_event, m_mdcFlag, m_mucFlag, m_mudigi, m_mudigiFlag, m_mutrk, m_mutrkFlag, m_output, m_p1, m_p2, m_part, m_partFlag, m_passtuple, m_phi1, m_phi2, m_pLimFlag, m_pSymFlag, m_r1, m_r2, m_run, m_t1, m_t2, m_theta1, m_theta2, m_tLimFlag, m_tofFlag, m_vtRZFlag, m_z1, m_z2, and m_zeroCFlag.

Referenced by EventPreSelect::initialize().

00053 {
00054   m_output=true;
00055   m_passtuple=tuple;
00056   if(!m_passtuple) {
00057     std::cerr << "invalid ntuple in DimuPreSelect!" << std::endl;
00058   } else {
00059     m_passtuple->addItem ("run",   m_run);
00060     m_passtuple->addItem ("event", m_event);
00061     m_passtuple->addItem ("part",  m_part);
00062     m_passtuple->addItem ("c1",    m_c1);
00063     m_passtuple->addItem ("c2",    m_c2);
00064     m_passtuple->addItem ("r1",    m_r1);
00065     m_passtuple->addItem ("r2",    m_r2);
00066     m_passtuple->addItem ("z1",    m_z1);
00067     m_passtuple->addItem ("z2",    m_z2);
00068     m_passtuple->addItem ("p1",    m_p1);
00069     m_passtuple->addItem ("p2",    m_p2);
00070     m_passtuple->addItem ("t1",    m_t1);
00071     m_passtuple->addItem ("t2",    m_t2);
00072     m_passtuple->addItem ("e1",    m_e1);
00073     m_passtuple->addItem ("e2",    m_e2);
00074     m_passtuple->addItem ("theta1",m_theta1);
00075     m_passtuple->addItem ("theta2",m_theta2);
00076     m_passtuple->addItem ("phi1",  m_phi1);
00077     m_passtuple->addItem ("phi2",  m_phi2);
00078     m_passtuple->addItem ("mudigi",m_mudigi);
00079     m_passtuple->addItem ("mutrk", m_mutrk);
00080 
00081     m_passtuple->addItem ("zeroC",  m_zeroCFlag);
00082     m_passtuple->addItem ("vtRZ",   m_vtRZFlag);
00083     m_passtuple->addItem ("pLim",   m_pLimFlag);
00084     m_passtuple->addItem ("pSym",   m_pSymFlag);
00085     m_passtuple->addItem ("tLim",   m_tLimFlag);
00086     m_passtuple->addItem ("eLim",   m_eLimFlag);
00087     m_passtuple->addItem ("eBB",    m_eBBFlag);
00088     m_passtuple->addItem ("partSlt",m_partFlag);
00089     m_passtuple->addItem ("muDigiN",m_mudigiFlag);
00090     m_passtuple->addItem ("muTrkN", m_mutrkFlag);
00091 
00092     m_passtuple->addItem ("mdc",    m_mdcFlag);
00093     m_passtuple->addItem ("tof",    m_tofFlag);
00094     m_passtuple->addItem ("emc",    m_emcFlag);
00095     m_passtuple->addItem ("muc",    m_mucFlag);
00096   }
00097 }

StatusCode DimuPreSelect::execute (  ) 

Definition at line 149 of file DimuPreSelect.cxx.

References Bes_Common::FATAL, genRecEmupikp::i, Bes_Common::INFO, m_c1, m_c2, m_curevent, m_currun, m_cutpass, m_dphicut, m_dthetacut, m_e1, m_e2, m_eBBFlag, m_ecut_down, m_eLimFlag, m_emcFlag, m_emcPass, m_event, m_mdcFlag, m_mdcPass, m_mucFlag, m_mucPass, m_mudigi, m_mudigicut, m_mudigiFlag, m_mutrk, m_mutrkcut, m_mutrkFlag, m_output, m_p1, m_p2, m_part, m_partFlag, m_partselect, m_passFlag, m_passtuple, m_pcut_up, m_phi1, m_phi2, m_pLimFlag, m_psymcut, m_pSymFlag, m_r1, m_r2, m_run, m_selectFlag, m_subpass, m_t1, m_t2, m_tcut, m_theta1, m_theta2, m_tLimFlag, m_tofFlag, m_tofPass, m_totalpass, m_totevent, m_useFlag, m_vr0cut, m_vtRZFlag, m_vz0cut, m_z1, m_z2, m_zeroCFlag, msgSvc(), phi1, phi2, PI, theta1, and theta2.

00150 {
00151   if(m_selectFlag==false) return( StatusCode::SUCCESS );
00152 
00153   MsgStream log(msgSvc(),name());
00154   log<<MSG::INFO<<"in execute()"<<endreq;
00155   
00156   m_totevent ++;
00157   if(m_totevent%1000==0) std::cout << m_totevent << "\tdone!" <<std::endl;
00158 
00159   setFilterPassed(false);
00160   m_mdcPass = m_tofPass = m_emcPass = m_mucPass = false;
00161   for(int i=0; i<4; i++) m_passFlag[i] = false;
00162 
00163   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00164   m_currun   = eventHeader->runNumber();
00165   m_curevent = eventHeader->eventNumber();
00166   if( m_output ) { m_run = m_currun; m_event = m_curevent; }
00167   
00168   // Select by MDC Info
00169   SmartDataPtr<RecMdcTrackCol> mdcTrackCol(eventSvc(),"/Event/Recon/RecMdcTrackCol");
00170   if(!mdcTrackCol)  {
00171     log << MSG::FATAL << "Could not find RecMdcTrackCol!" << endreq;
00172     return( StatusCode::FAILURE);
00173   }
00174   log << MSG::INFO << "MDC tracks:\t" << mdcTrackCol->size() << endreq;
00175   
00176   if( mdcTrackCol->size() != 2 ) return ( StatusCode::SUCCESS );
00177   
00178   m_cutpass[0] += 1;  
00179   
00180   double c1, c2, r1, r2, z1, z2, p1, p2;
00181   c1 = c2 = r1 = r2 = z1 = z2 = p1 = p2 = 0.;
00182 
00183   c1 = (*mdcTrackCol)[0]->charge(); c2 = (*mdcTrackCol)[1]->charge();
00184   r1 = (*mdcTrackCol)[0]->r();      r2 = (*mdcTrackCol)[1]->r();
00185   z1 = (*mdcTrackCol)[0]->z();      z2 = (*mdcTrackCol)[1]->z();
00186   p1 = (*mdcTrackCol)[0]->p();      p2 = (*mdcTrackCol)[1]->p();
00187   
00188   if( m_output ) { m_c1 = c1; m_c2 = c2; m_r1 = r1; m_r2 = r2; m_z1 = z1; m_z2 = z2; m_p1 = p1; m_p2 = p2; }
00189   
00190   bool mdcflag1 = c1 + c2 == 0;
00191   bool mdcflag2 = fabs(r1)<=m_vr0cut && fabs(z1)<m_vz0cut;
00192   bool mdcflag3 = fabs(r2)<=m_vr0cut && fabs(z2)<m_vz0cut;
00193   bool mdcflag4 = p1<m_pcut_up && p2<m_pcut_up;
00194   //bool mdcflag4 = p1<2 && p1>1;
00195   //bool mdcflag5 = p2<2 && p2>1;
00196   bool mdcflag5 = fabs( p1-p2 )/( p1+p2 ) < m_psymcut;
00197 
00198   log << MSG::INFO << "r1:\t" << r1 << "\tz1:" << z1 << endreq;
00199   log << MSG::INFO << "r2:\t" << r2 << "\tz2:" << z2 << endreq;
00200   log << MSG::INFO << "p1:\t" << p1 << "\tp2:" << p2 << endreq;
00201 
00202   if( mdcflag1 )              { m_cutpass[1] += 1; if(m_output) m_zeroCFlag = 1; }
00203   if( mdcflag2 && mdcflag3 )  { m_cutpass[2] += 1; if(m_output) m_vtRZFlag = 1; }
00204   if( mdcflag4 )              { m_cutpass[3] += 1; if(m_output) m_pLimFlag = 1; }
00205   if( mdcflag5 )              { m_cutpass[4] += 1; if(m_output) m_pSymFlag = 1; }  
00206   if( mdcflag1 && mdcflag2 && mdcflag3 && mdcflag4 && mdcflag5 ) { m_mdcPass = true; m_subpass[0] += 1; }
00207   if( !m_useFlag[0] ) m_passFlag[0] = true;
00208   else                m_passFlag[0] = m_mdcPass;  
00209   log << MSG::INFO << "MDC selection done!" << endreq;
00210     
00211   // Select by TOF Info
00212   SmartDataPtr<RecTofTrackCol> tofTrackCol(eventSvc(),"/Event/Recon/RecTofTrackCol");
00213   if(!tofTrackCol)  {
00214     log << MSG::FATAL << "Could not find RecTofTrackCol!" << endreq;
00215     return( StatusCode::FAILURE);
00216   }
00217   log << MSG::INFO << "TOF tracks:\t" << tofTrackCol->size() << endreq;
00218    
00219   double t1, t2; 
00220   t1 = 0., t2 = 1000;
00221   // if(tofTrackCol->size() < 8 && tofTrackCol->size() > 20) 
00222   if(tofTrackCol->size() > 7 && tofTrackCol->size() < 21) 
00223   {
00224     int goodtof = 0;
00225     for(int itof = 0; itof < tofTrackCol->size(); itof++)
00226     {
00227       TofHitStatus *status = new TofHitStatus;  
00228       status->setStatus((*tofTrackCol)[itof]->status());
00229       
00230       if( !(status->is_cluster()) ) { delete status; continue; }      
00231       if(goodtof==0) t1 = (*tofTrackCol)[itof]->tof();
00232       if(goodtof==1) t2 = (*tofTrackCol)[itof]->tof();
00233       
00234       goodtof++;
00235       delete status;
00236     }
00237   }  
00238  
00239   if( m_output ) { m_t1 = t1; m_t2 = t2; }
00240   
00241   bool tofflag1 = fabs( t1-t2 ) < m_tcut; // ns
00242   log << MSG::INFO << "t1:\t" << t1 << "\tt2:" << t2 << "dt:\t" << fabs(t1-t2) << endreq;
00243   if( tofflag1 ) { m_cutpass[5] += 1; if(m_output) m_tLimFlag = 1; m_tofPass = true; m_subpass[1] += 1; }
00244   if( !m_useFlag[1] ) m_passFlag[1] = true;
00245   else                m_passFlag[1] = m_tofPass;  
00246   log << MSG::INFO << "TOF selection done!" << endreq;
00247     
00248   // Select by EMC Info
00249   SmartDataPtr<RecEmcShowerCol> emcShowerCol(eventSvc(),"/Event/Recon/RecEmcShowerCol");
00250   if (!emcShowerCol) { 
00251     log << MSG::FATAL << "Could not find RecEmcShowerCol!" << endreq;
00252     return( StatusCode::FAILURE);
00253   }
00254   log << MSG::INFO << "EMC showers:\t" << emcShowerCol->size() << endreq;
00255   
00256   if( emcShowerCol->size() < 2 ) return ( StatusCode::SUCCESS );
00257   
00258   double e1, e2, theta1, theta2, phi1, phi2;
00259   int part;
00260 
00261   e1      = (*emcShowerCol)[0]->energy();   e2      = (*emcShowerCol)[1]->energy();
00262   theta1  = (*emcShowerCol)[0]->theta();    theta2  = (*emcShowerCol)[1]->theta();
00263   phi1    = (*emcShowerCol)[0]->phi();      phi2    = (*emcShowerCol)[1]->phi();
00264   part    = (*emcShowerCol)[0]->module(); 
00265 
00266   if( m_output ) { m_e1 = e1; m_e2 = e2; m_theta1 = theta1; m_theta2 = theta2; m_phi1 = phi1; m_phi2 = phi2; 
00267     m_part = part;
00268   }
00269   
00270   bool emcFlag1 = e1 < m_ecut_up && e1 > m_ecut_down;
00271   bool emcFlag2 = e2 < m_ecut_up && e2 > m_ecut_down; 
00272   bool emcFlag3 = fabs(theta1 + theta2 - PI) < m_dthetacut;
00273   bool emcFlag4 = fabs(phi1 - phi2) - PI < m_dphicut;
00274   bool emcFlag5 = !m_partselect || (m_partselect==1&&part==1) || (m_partselect==2&&part!=1);
00275 
00276   log << MSG::INFO << "e1:\t" << e1 << "\te2:\t" << e2 << endreq;
00277   log << MSG::INFO << "theta1:\t" << theta1 << "\ttheta2:\t" << theta2 << endreq;  
00278   log << MSG::INFO << "phi1:\t" << phi1 << "\tphi2:\t" << phi2 << endreq;  
00279   log << MSG::INFO << "part:\t" << part << "\tpartFlag:\t" << emcFlag5 << endreq;  
00280   
00281   if( emcFlag1 && emcFlag2 ) { m_cutpass[6] += 1; if(m_output) m_eLimFlag = 1; }
00282   if( emcFlag3 && emcFlag4 ) { m_cutpass[7] += 1; if(m_output) m_eBBFlag  = 1; }
00283   if( emcFlag5 )             { m_cutpass[8] += 1; if(m_output) m_partFlag = 1; }
00284   if( emcFlag1 && emcFlag2 && emcFlag3 && emcFlag4 && emcFlag5 ) { m_emcPass = true; m_subpass[2] += 1; }
00285   if( !m_useFlag[2] ) m_passFlag[2] = true;
00286   else                m_passFlag[2] = m_emcPass;
00287   log << MSG::INFO << "EMC selection done!" << endreq;
00288     
00289   // Select by MUC Info
00290   SmartDataPtr<MucDigiCol> mucDigiCol(eventSvc(),"/Event/Digi/MucDigiCol");
00291   if(!mucDigiCol)  {
00292     log << MSG::FATAL << "Could not find MucDigiCol!" << endreq;
00293     return( StatusCode::FAILURE);
00294   }
00295   SmartDataPtr<RecMucTrackCol> mucTrackCol(eventSvc(),"/Event/Recon/RecMucTrackCol");
00296   if (!mucTrackCol) {
00297     log << MSG::FATAL << "Could not find RecMucTrackCol" << endreq;
00298     return( StatusCode::FAILURE);
00299   }  
00300   
00301   int mudigiNum, mutrkNum;
00302   mudigiNum = mutrkNum = 0;
00303   mudigiNum = mucDigiCol->size(); mutrkNum  = mucTrackCol->size();
00304   if(m_output) { m_mudigi  = mudigiNum; m_mutrk   = mutrkNum; } 
00305   
00306   bool mucflag1 = mudigiNum >=  m_mudigicut;
00307   bool mucflag2 = mutrkNum  >=  m_mutrkcut;
00308   
00309   log << MSG::INFO << "MUC digi:\t" << mudigiNum << "\tMUC track:\t" << mutrkNum << endreq;
00310 
00311   if( mucflag1 ) { m_cutpass[9]   += 1; if(m_output) m_mudigiFlag = 1; }
00312   if( mucflag2 ) { m_cutpass[10]  += 1; if(m_output) m_mutrkFlag  = 1; }  
00313   if( mucflag1 && mucflag2 ) { m_mucPass = true; m_subpass[3] += 1; }
00314   if( !m_useFlag[3] ) m_passFlag[3] = true;
00315   else                m_passFlag[3] = m_mucPass;
00316   log << MSG::INFO << "MUC selection done!" << endreq;
00317   
00318    
00319   // All selections 
00320   if( m_passFlag[0] && m_passFlag[1] && m_passFlag[2] && m_passFlag[3] )
00321   {    
00322     m_totalpass += 1;    
00323     setFilterPassed(true);
00324   }
00325   log << MSG::INFO << "Set filter passed!" << endreq;
00326 
00327   if(m_output) { m_mdcFlag = m_mdcPass; m_tofFlag = m_tofPass; m_emcFlag = m_emcPass; m_mucFlag = m_mucPass; }
00328   
00329   if( m_output ) m_passtuple->write(); 
00330   
00331   return StatusCode::SUCCESS;
00332 }

StatusCode DimuPreSelect::finalize (  ) 

Definition at line 334 of file DimuPreSelect.cxx.

References Bes_Common::INFO, m_cutpass, m_dphicut, m_dthetacut, m_ecut_down, m_ecut_up, m_mudigicut, m_mutrkcut, m_partselect, m_pcut_up, m_psymcut, m_selectFlag, m_subpass, m_tcut, m_totalpass, m_totevent, m_useFlag, m_vr0cut, m_vz0cut, msgSvc(), and deljobs::string.

00335 {
00336   if(m_selectFlag==false) return StatusCode::SUCCESS;
00337   
00338   MsgStream log(msgSvc(), name());
00339   log << MSG::INFO << "in finalize()" << endmsg;
00340   const string str[3] = {"all","barrel","endcap"};
00341  
00342   cout << "pass 0 - 2 MDC tracks            : " << m_cutpass[0] << endl;
00343   cout << "pass 1 - 0 charge                : " << m_cutpass[1] << endl;
00344   cout << "pass 2 - |r|<"<<m_vr0cut<<" && |z|<"<<m_vz0cut<<"          : " << m_cutpass[2] << endl;
00345   cout << "pass 3 - p < "<<m_pcut_up<<" GeV/c             : " << m_cutpass[3] << endl;
00346   cout << "pass 4 - p_sym < "<<m_psymcut<<"             : " << m_cutpass[4] << endl;
00347   cout << "pass 5 - |t1-t1| < "<<m_tcut<<" ns          : " << m_cutpass[5] << endl;
00348   cout << "pass 6 - "<<m_ecut_down<<" < e < "<<m_ecut_up<<"             : " << m_cutpass[6] << endl;
00349   cout << "pass 7 - |dth|<"<<m_dthetacut<<" && |dphi|<"<<m_dphicut<<": " << m_cutpass[7] << endl;
00350   cout << "pass 8 - "<< str[(int)m_partselect] <<" part is selected    : " << m_cutpass[8] << endl;
00351   cout << "pass 9 - mudigi >= "<<m_mudigicut<<"             : " << m_cutpass[9] << endl;
00352   cout << "pass 10- mutrk  >= "<<m_mutrkcut<<"             : " << m_cutpass[10]<< endl;
00353 
00354   cout << "pass MDC : " << m_subpass[0] << "\tUsed: " << (m_useFlag[0]?"Yes":"No") << endl;
00355   cout << "pass TOF : " << m_subpass[1] << "\tUsed: " << (m_useFlag[1]?"Yes":"No") << endl;
00356   cout << "pass EMC : " << m_subpass[2] << "\tUsed: " << (m_useFlag[2]?"Yes":"No") << endl;
00357   cout << "pass MUC : " << m_subpass[3] << "\tUsed: " << (m_useFlag[3]?"Yes":"No") << endl;
00358 
00359   
00360   cout<<"Total event: " << m_totevent   <<endl;
00361   cout<<"Dimu event: "  << m_totalpass  <<endl;
00362   
00363   return StatusCode::SUCCESS;
00364 }

StatusCode DimuPreSelect::initialize (  ) 

Definition at line 77 of file DimuPreSelect.cxx.

References calibUtil::ERROR, genRecEmupikp::i, Bes_Common::INFO, m_c1, m_c2, m_curevent, m_currun, m_cutpass, m_e1, m_e2, m_eBBFlag, m_eLimFlag, m_emcFlag, m_event, m_mdcFlag, m_mucFlag, m_mudigi, m_mudigiFlag, m_mutrk, m_mutrkFlag, m_output, m_p1, m_p2, m_part, m_partFlag, m_passtuple, m_phi1, m_phi2, m_pLimFlag, m_pSymFlag, m_r1, m_r2, m_run, m_subpass, m_t1, m_t2, m_theta1, m_theta2, m_tLimFlag, m_tofFlag, m_totalpass, m_totevent, m_vtRZFlag, m_z1, m_z2, m_zeroCFlag, msgSvc(), and ntupleSvc().

00078 {
00079   MsgStream log(msgSvc(), name());
00080   log << MSG::INFO << "in initialize()" << endmsg;
00081 
00082   m_totevent = m_currun = m_curevent = 0;
00083   for(int i = 0; i < 20; i++)  m_cutpass[i] = 0;
00084   m_subpass[0] = m_subpass[1] = m_subpass[2] = m_subpass[3] = 0;
00085   m_totalpass = 0;
00086   
00087   if(m_output) 
00088   {
00089     StatusCode status;
00090     NTuplePtr nt(ntupleSvc(), "FILE1/dimu");
00091     if ( nt ) m_passtuple = nt;
00092     else {
00093       m_passtuple = ntupleSvc()->book ("FILE1/dimu", CLID_ColumnWiseTuple, "DimuPreSelect N-Tuple example");
00094       if ( m_passtuple )   
00095       {
00096         status =m_passtuple->addItem ("run",   m_run);
00097         status =m_passtuple->addItem ("event", m_event);
00098         status =m_passtuple->addItem ("part",  m_part);
00099         status =m_passtuple->addItem ("c1",    m_c1);
00100         status =m_passtuple->addItem ("c2",    m_c2);
00101         status =m_passtuple->addItem ("r1",    m_r1);
00102         status =m_passtuple->addItem ("r2",    m_r2);
00103         status =m_passtuple->addItem ("z1",    m_z1);
00104         status =m_passtuple->addItem ("z2",    m_z2);
00105         status =m_passtuple->addItem ("p1",    m_p1);
00106         status =m_passtuple->addItem ("p2",    m_p2);
00107         status =m_passtuple->addItem ("t1",    m_t1);
00108         status =m_passtuple->addItem ("t2",    m_t2);
00109         status =m_passtuple->addItem ("e1",    m_e1);
00110         status =m_passtuple->addItem ("e2",    m_e2);
00111         status =m_passtuple->addItem ("theta1",m_theta1);
00112         status =m_passtuple->addItem ("theta2",m_theta2);
00113         status =m_passtuple->addItem ("phi1",  m_phi1);
00114         status =m_passtuple->addItem ("phi2",  m_phi2);
00115         status =m_passtuple->addItem ("mudigi",m_mudigi);
00116         status =m_passtuple->addItem ("mutrk", m_mutrk);
00117         
00118         status =m_passtuple->addItem ("zeroC",  m_zeroCFlag);
00119         status =m_passtuple->addItem ("vtRZ",   m_vtRZFlag);
00120         status =m_passtuple->addItem ("pLim",   m_pLimFlag);
00121         status =m_passtuple->addItem ("pSym",   m_pSymFlag);
00122         status =m_passtuple->addItem ("tLim",   m_tLimFlag);
00123         status =m_passtuple->addItem ("eLim",   m_eLimFlag);
00124         status =m_passtuple->addItem ("eBB",    m_eBBFlag);
00125         status =m_passtuple->addItem ("partSlt",m_partFlag);
00126         status =m_passtuple->addItem ("muDigiN",m_mudigiFlag);
00127         status =m_passtuple->addItem ("muTrkN", m_mutrkFlag);
00128         
00129         status =m_passtuple->addItem ("mdc",    m_mdcFlag);
00130         status =m_passtuple->addItem ("tof",    m_tofFlag);
00131         status =m_passtuple->addItem ("emc",    m_emcFlag);
00132         status =m_passtuple->addItem ("muc",    m_mucFlag);
00133 
00134       }
00135       else   
00136       { 
00137         log << MSG::ERROR << "Cannot book N-tuple:"<<long(m_passtuple)<<endmsg;
00138         return StatusCode::FAILURE;
00139       }
00140     }
00141   }
00142   
00143   log << MSG::INFO << "Initialize done!" << endmsg;
00144 
00145   return StatusCode::SUCCESS;
00146 }

int DimuPreSelect::IsDimu (  ) 

Definition at line 99 of file DimuPreSelect.cxx.

References calibUtil::ERROR, Bes_Common::INFO, m_c1, m_c2, m_cutpass, m_dphicut, m_dthetacut, m_e1, m_e2, m_eBBFlag, m_ecut_down, m_eLimFlag, m_emcFlag, m_emcPass, m_mdcFlag, m_mdcPass, m_mucFlag, m_mucPass, m_mudigi, m_mudigicut, m_mudigiFlag, m_mutrk, m_mutrkcut, m_mutrkFlag, m_output, m_p1, m_p2, m_part, m_partFlag, m_partselect, m_passtuple, m_pcut_up, m_phi1, m_phi2, m_pLimFlag, m_psymcut, m_pSymFlag, m_r1, m_r2, m_subpass, m_t1, m_t2, m_tcut, m_theta1, m_theta2, m_tLimFlag, m_tofFlag, m_tofPass, m_totalpass, m_vr0cut, m_vtRZFlag, m_vz0cut, m_z1, m_z2, m_zeroCFlag, msgSvc(), phi1, phi2, pi, theta1, and theta2.

Referenced by EventPreSelect::execute().

00100 {
00101   IMessageSvc* msgSvc;
00102   Gaudi::svcLocator()->service("MessageSvc", msgSvc);
00103   MsgStream log(msgSvc, "DimuPreSelect");
00104 
00105   IDataProviderSvc* eventSvc;
00106   Gaudi::svcLocator()->service("EventDataSvc", eventSvc);
00107 
00108   m_mdcPass = false;
00109   m_tofPass = false;
00110   m_emcPass = false;
00111   m_mucPass = false;
00112 
00113   // Select by MDC Info
00114   SmartDataPtr<RecMdcTrackCol> mdcTrackCol(eventSvc,"/Event/Recon/RecMdcTrackCol");
00115   if(!mdcTrackCol)  {
00116     log << MSG::ERROR << "Could not find RecMdcTrackCol!" << endreq;
00117     return false;
00118   }
00119   log << MSG::INFO << "MDC tracks:\t" << mdcTrackCol->size() << endreq;
00120 
00121   if( mdcTrackCol->size() != 2 ) return 0;
00122 
00123   m_cutpass[0] += 1;
00124 
00125   double c1, c2, r1, r2, z1, z2, p1, p2;
00126   c1 = c2 = r1 = r2 = z1 = z2 = p1 = p2 = 0.;
00127 
00128   c1 = (*mdcTrackCol)[0]->charge(); c2 = (*mdcTrackCol)[1]->charge();
00129   r1 = (*mdcTrackCol)[0]->r();      r2 = (*mdcTrackCol)[1]->r();
00130   z1 = (*mdcTrackCol)[0]->z();      z2 = (*mdcTrackCol)[1]->z();
00131   p1 = (*mdcTrackCol)[0]->p();      p2 = (*mdcTrackCol)[1]->p();
00132 
00133 
00134   bool mdcflag1 = c1 + c2 == 0;
00135   bool mdcflag2 = fabs(r1)<=m_vr0cut && fabs(z1)<m_vz0cut;
00136   bool mdcflag3 = fabs(r2)<=m_vr0cut && fabs(z2)<m_vz0cut;
00137   bool mdcflag4 = p1<m_pcut_up && p2<m_pcut_up;
00138   //bool mdcflag4 = p1<2 && p1>1;
00139   //bool mdcflag5 = p2<2 && p2>1;
00140   bool mdcflag5 = fabs( p1-p2 )/( p1+p2 ) < m_psymcut;
00141 
00142   log << MSG::INFO << "r1:\t" << r1 << "\tz1:" << z1 << endreq;
00143   log << MSG::INFO << "r2:\t" << r2 << "\tz2:" << z2 << endreq;
00144   log << MSG::INFO << "p1:\t" << p1 << "\tp2:" << p2 << endreq;
00145 
00146   double zeroCFlag,vtRZFlag,pLimFlag,pSymFlag;
00147   if( mdcflag1 )             { m_cutpass[1] += 1; zeroCFlag = 1; }
00148   if( mdcflag2 && mdcflag3 ) { m_cutpass[2] += 1; vtRZFlag = 1; }
00149   if( mdcflag4 )             { m_cutpass[3] += 1; pLimFlag = 1; }
00150   if( mdcflag5 )             { m_cutpass[4] += 1; pSymFlag = 1; }
00151 
00152   if( mdcflag1 && mdcflag2 && mdcflag3 && mdcflag4 && mdcflag5 ) { m_mdcPass = true; m_subpass[0] += 1; }
00153   log << MSG::INFO << "MDC selection done!" << endreq;
00154 
00155   // Select by TOF Info
00156   SmartDataPtr<RecTofTrackCol> tofTrackCol(eventSvc,"/Event/Recon/RecTofTrackCol");
00157   if(!tofTrackCol)  {
00158     log << MSG::ERROR << "Could not find RecTofTrackCol!" << endreq;
00159     return 0;
00160   }
00161   log << MSG::INFO << "TOF tracks:\t" << tofTrackCol->size() << endreq;
00162 
00163   double t1, t2; 
00164   t1 = 0., t2 = 1000;
00165   // if(tofTrackCol->size() < 8 && tofTrackCol->size() > 20) 
00166   if(tofTrackCol->size() > 7 && tofTrackCol->size() < 21) 
00167   {
00168     int goodtof = 0;
00169     for(int itof = 0; itof < tofTrackCol->size(); itof++)
00170     {
00171       TofHitStatus *status = new TofHitStatus;  
00172       status->setStatus((*tofTrackCol)[itof]->status());
00173 
00174       if( !(status->is_cluster()) ) { delete status; continue; }      
00175       if(goodtof==0) t1 = (*tofTrackCol)[itof]->tof();
00176       if(goodtof==1) t2 = (*tofTrackCol)[itof]->tof();
00177 
00178       goodtof++;
00179       delete status;
00180     }
00181   }
00182 
00183   double tLimFlag;
00184   bool tofflag1 = fabs( t1-t2 ) < m_tcut; // ns
00185   log << MSG::INFO << "t1:\t" << t1 << "\tt2:" << t2 << "dt:\t" << fabs(t1-t2) << endreq;
00186   if( tofflag1 ) { m_cutpass[5] += 1; tLimFlag = 1; m_tofPass = true; m_subpass[1] += 1; }
00187   log << MSG::INFO << "TOF selection done!" << endreq;
00188 
00189   // Select by EMC Info
00190   SmartDataPtr<RecEmcShowerCol> emcShowerCol(eventSvc,"/Event/Recon/RecEmcShowerCol");
00191   if (!emcShowerCol) { 
00192     log << MSG::ERROR << "Could not find RecEmcShowerCol!" << endreq;
00193     return 0;
00194   }
00195   log << MSG::INFO << "EMC showers:\t" << emcShowerCol->size() << endreq;
00196 
00197   if( emcShowerCol->size() < 2 ) return 0;
00198 
00199   double e1, e2, theta1, theta2, phi1, phi2;
00200   int part;
00201 
00202   e1      = (*emcShowerCol)[0]->energy();   e2      = (*emcShowerCol)[1]->energy();
00203   theta1  = (*emcShowerCol)[0]->theta();    theta2  = (*emcShowerCol)[1]->theta();
00204   phi1    = (*emcShowerCol)[0]->phi();      phi2    = (*emcShowerCol)[1]->phi();
00205   part    = (*emcShowerCol)[0]->module(); 
00206 
00207   bool emcFlag1 = e1 < m_ecut_up && e1 > m_ecut_down;
00208   bool emcFlag2 = e2 < m_ecut_up && e2 > m_ecut_down; 
00209   bool emcFlag3 = fabs(theta1 + theta2 - CLHEP::pi) < m_dthetacut;
00210   bool emcFlag4 = fabs(phi1 - phi2) - CLHEP::pi < m_dphicut;
00211   bool emcFlag5 = !m_partselect || (m_partselect==1&&part==1) || (m_partselect==2&&part!=1);
00212 
00213   log << MSG::INFO << "e1:\t" << e1 << "\te2:\t" << e2 << endreq;
00214   log << MSG::INFO << "theta1:\t" << theta1 << "\ttheta2:\t" << theta2 << endreq;  
00215   log << MSG::INFO << "phi1:\t" << phi1 << "\tphi2:\t" << phi2 << endreq;  
00216   log << MSG::INFO << "part:\t" << part << "\tpartFlag:\t" << emcFlag5 << endreq;  
00217 
00218   double eLimFlag,eBBFlag,partFlag;
00219   if( emcFlag1 && emcFlag2 ) { m_cutpass[6] += 1; eLimFlag = 1; }
00220   if( emcFlag3 && emcFlag4 ) { m_cutpass[7] += 1; eBBFlag  = 1; }
00221   if( emcFlag5 )             { m_cutpass[8] += 1; partFlag = 1; }
00222   if( emcFlag1 && emcFlag2 && emcFlag3 && emcFlag4 && emcFlag5 ) { m_emcPass = true; m_subpass[2] += 1; }
00223   log << MSG::INFO << "EMC selection done!" << endreq;
00224 
00225   // Select by MUC Info
00226   SmartDataPtr<MucDigiCol> mucDigiCol(eventSvc,"/Event/Digi/MucDigiCol");
00227   if(!mucDigiCol)  {
00228     log << MSG::ERROR << "Could not find MucDigiCol!" << endreq;
00229     return 0;
00230   }
00231   SmartDataPtr<RecMucTrackCol> mucTrackCol(eventSvc,"/Event/Recon/RecMucTrackCol");
00232   if (!mucTrackCol) {
00233     log << MSG::ERROR << "Could not find RecMucTrackCol" << endreq;
00234     return 0;
00235   }  
00236 
00237   int mudigiNum, mutrkNum;
00238   mudigiNum = mutrkNum = 0;
00239   mudigiNum = mucDigiCol->size(); mutrkNum  = mucTrackCol->size();
00240 
00241   bool mucflag1 = mudigiNum >=  m_mudigicut;
00242   bool mucflag2 = mutrkNum  >=  m_mutrkcut;
00243 
00244   log << MSG::INFO << "MUC digi:\t" << mudigiNum << "\tMUC track:\t" << mutrkNum << endreq;
00245 
00246   double mudigiFlag,mutrkFlag;
00247   if( mucflag1 ) { m_cutpass[9]   += 1; mudigiFlag = 1; }
00248   if( mucflag2 ) { m_cutpass[10]  += 1; mutrkFlag  = 1; }  
00249   if( mucflag1 && mucflag2 ) { m_mucPass = true; m_subpass[3] += 1; }
00250   log << MSG::INFO << "MUC selection done!" << endreq;
00251 
00252   if(m_output) {
00253     m_c1 = c1; m_c2 = c2; m_r1 = r1; m_r2 = r2; m_z1 = z1; m_z2 = z2; m_p1 = p1; m_p2 = p2;
00254     m_t1 = t1; m_t2 = t2;
00255     m_e1 = e1; m_e2 = e2; m_theta1 = theta1; m_theta2 = theta2; m_phi1 = phi1; m_phi2 = phi2;
00256     m_part = part;
00257     m_mudigi  = mudigiNum;          m_mutrk   = mutrkNum; 
00258     m_zeroCFlag = zeroCFlag; m_vtRZFlag = vtRZFlag; m_pLimFlag = pLimFlag; m_pSymFlag = pSymFlag;
00259     m_tLimFlag = tLimFlag; m_eLimFlag = eLimFlag; m_eBBFlag = eBBFlag; m_partFlag = partFlag;
00260     m_mudigiFlag = mudigiFlag; m_mutrkFlag = mutrkFlag;
00261 
00262     m_mdcFlag = m_mdcPass; m_tofFlag = m_tofPass; m_emcFlag = m_emcPass; m_mucFlag = m_mucPass;
00263 
00264     m_passtuple->write();
00265   }
00266 
00267   // All selections 
00268   if( m_mdcPass && m_tofPass && m_emcPass && m_mucPass )
00269   {    
00270     m_totalpass += 1;    
00271     if( part==1 ) return 1; //barrel
00272     else return 2;          //endcap
00273     //setFilterPassed(true);
00274   }
00275 
00276   return 0;
00277 
00278 }

void DimuPreSelect::Print (  ) 

Definition at line 280 of file DimuPreSelect.cxx.

References m_cutpass, m_dphicut, m_dthetacut, m_ecut_down, m_ecut_up, m_mudigicut, m_mutrkcut, m_partselect, m_pcut_up, m_psymcut, m_subpass, m_tcut, m_totalpass, m_totevent, m_vr0cut, m_vz0cut, and deljobs::string.

Referenced by EventPreSelect::finalize().

00281 {
00282   const string str[3] = {"all","barrel","endcap"};
00283 
00284   cout << "pass 0 - 2 MDC tracks            : " << m_cutpass[0] << endl;
00285   cout << "pass 1 - 0 charge                : " << m_cutpass[1] << endl;
00286   cout << "pass 2 - |r|<"<<m_vr0cut<<" && |z|<"<<m_vz0cut<<"          : " << m_cutpass[2] << endl;
00287   cout << "pass 3 - p < "<<m_pcut_up<<" GeV/c             : " << m_cutpass[3] << endl;
00288   cout << "pass 4 - p_sym < "<<m_psymcut<<"             : " << m_cutpass[4] << endl;
00289   cout << "pass 5 - |t1-t1| < "<<m_tcut<<" ns          : " << m_cutpass[5] << endl;
00290   cout << "pass 6 - "<<m_ecut_down<<" < e < "<<m_ecut_up<<"             : " << m_cutpass[6] << endl;
00291   cout << "pass 7 - |dth|<"<<m_dthetacut<<" && |dphi|<"<<m_dphicut<<": " << m_cutpass[7] << endl;
00292   cout << "pass 8 - "<< str[(int)m_partselect] <<" part is selected    : " << m_cutpass[8] << endl;
00293   cout << "pass 9 - mudigi >= "<<m_mudigicut<<"             : " << m_cutpass[9] << endl;
00294   cout << "pass 10- mutrk  >= "<<m_mutrkcut<<"             : " << m_cutpass[10]<< endl;
00295 
00296   cout << "pass MDC : " << m_subpass[0] << endl;
00297   cout << "pass TOF : " << m_subpass[1] << endl;
00298   cout << "pass EMC : " << m_subpass[2] << endl;
00299   cout << "pass MUC : " << m_subpass[3] << endl;
00300 
00301   cout<<"Total event: " << m_totevent   <<endl;
00302   cout<<"Dimu event: "  << m_totalpass  <<endl;
00303 }


Member Data Documentation

NTuple::Item<double> DimuPreSelect::m_c1 [private]

Definition at line 53 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_c1 [private]

Definition at line 49 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_c2 [private]

Definition at line 54 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_c2 [private]

Definition at line 50 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

long DimuPreSelect::m_curevent [private]

Definition at line 24 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), and initialize().

long DimuPreSelect::m_currun [private]

Definition at line 23 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), and initialize().

double DimuPreSelect::m_cutpass [private]

Definition at line 40 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), initialize(), IsDimu(), and Print().

double DimuPreSelect::m_dphicut [private]

Definition at line 35 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

double DimuPreSelect::m_dthetacut [private]

Definition at line 34 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_e1 [private]

Definition at line 63 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_e1 [private]

Definition at line 59 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_e2 [private]

Definition at line 64 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_e2 [private]

Definition at line 60 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_eBBFlag [private]

Definition at line 77 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_eBBFlag [private]

Definition at line 73 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_ecms [private]

Definition at line 25 of file DimuPreSelect.h.

Referenced by DimuPreSelect().

double DimuPreSelect::m_ecut_down [private]

Definition at line 33 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

double DimuPreSelect::m_ecut_up [private]

Definition at line 32 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), finalize(), and Print().

NTuple::Item<double> DimuPreSelect::m_eLimFlag [private]

Definition at line 76 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_eLimFlag [private]

Definition at line 72 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_emcFlag [private]

Definition at line 83 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_emcFlag [private]

Definition at line 79 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

bool DimuPreSelect::m_emcPass [private]

Definition at line 18 of file DimuPreSelect.h.

Referenced by execute(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_event [private]

Definition at line 51 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_event [private]

Definition at line 47 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), and initialize().

NTuple::Item<double> DimuPreSelect::m_mdcFlag [private]

Definition at line 81 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mdcFlag [private]

Definition at line 77 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

bool DimuPreSelect::m_mdcPass [private]

Definition at line 18 of file DimuPreSelect.h.

Referenced by execute(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_mucFlag [private]

Definition at line 84 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mucFlag [private]

Definition at line 80 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

bool DimuPreSelect::m_mucPass [private]

Definition at line 18 of file DimuPreSelect.h.

Referenced by execute(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_mudigi [private]

Definition at line 69 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mudigi [private]

Definition at line 65 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_mudigicut [private]

Definition at line 37 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_mudigiFlag [private]

Definition at line 79 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mudigiFlag [private]

Definition at line 75 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_mutrk [private]

Definition at line 70 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mutrk [private]

Definition at line 66 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_mutrkcut [private]

Definition at line 38 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_mutrkFlag [private]

Definition at line 80 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_mutrkFlag [private]

Definition at line 76 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

bool DimuPreSelect::m_output [private]

Definition at line 17 of file DimuPreSelect.h.

Referenced by BookNtuple(), DimuPreSelect(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_p1 [private]

Definition at line 59 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_p1 [private]

Definition at line 55 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_p2 [private]

Definition at line 60 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_p2 [private]

Definition at line 56 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_part [private]

Definition at line 52 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_part [private]

Definition at line 48 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_partFlag [private]

Definition at line 78 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_partFlag [private]

Definition at line 74 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_partselect [private]

Definition at line 36 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

bool DimuPreSelect::m_passFlag[4] [private]

Definition at line 20 of file DimuPreSelect.h.

Referenced by execute().

NTuple::Tuple* DimuPreSelect::m_passtuple [private]

Definition at line 49 of file DimuPreSelect.h.

NTuple::Tuple* DimuPreSelect::m_passtuple [private]

Definition at line 45 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_pcut_down [private]

Definition at line 29 of file DimuPreSelect.h.

Referenced by DimuPreSelect().

double DimuPreSelect::m_pcut_up [private]

Definition at line 28 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_phi1 [private]

Definition at line 67 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_phi1 [private]

Definition at line 63 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_phi2 [private]

Definition at line 68 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_phi2 [private]

Definition at line 64 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_pLimFlag [private]

Definition at line 73 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_pLimFlag [private]

Definition at line 69 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

PropertyMgr DimuPreSelect::m_propMgr [private]

Definition at line 18 of file DimuPreSelect.h.

Referenced by DimuPreSelect().

double DimuPreSelect::m_psymcut [private]

Definition at line 30 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_pSymFlag [private]

Definition at line 74 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_pSymFlag [private]

Definition at line 70 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_r1 [private]

Definition at line 55 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_r1 [private]

Definition at line 51 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_r2 [private]

Definition at line 56 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_r2 [private]

Definition at line 52 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_run [private]

Definition at line 50 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_run [private]

Definition at line 46 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), and initialize().

bool DimuPreSelect::m_selectFlag [private]

Definition at line 16 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), and finalize().

double DimuPreSelect::m_subpass [private]

Definition at line 41 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), initialize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_t1 [private]

Definition at line 61 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_t1 [private]

Definition at line 57 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_t2 [private]

Definition at line 62 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_t2 [private]

Definition at line 58 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_tcut [private]

Definition at line 31 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_theta1 [private]

Definition at line 65 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_theta1 [private]

Definition at line 61 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_theta2 [private]

Definition at line 66 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_theta2 [private]

Definition at line 62 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_tLimFlag [private]

Definition at line 75 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_tLimFlag [private]

Definition at line 71 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_tofFlag [private]

Definition at line 82 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_tofFlag [private]

Definition at line 78 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

bool DimuPreSelect::m_tofPass [private]

Definition at line 18 of file DimuPreSelect.h.

Referenced by execute(), and IsDimu().

double DimuPreSelect::m_totalpass [private]

Definition at line 42 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), initialize(), IsDimu(), and Print().

long DimuPreSelect::m_totevent [private]

Definition at line 22 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), initialize(), and Print().

bool DimuPreSelect::m_useFlag[4] [private]

Definition at line 19 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), and finalize().

double DimuPreSelect::m_vr0cut [private]

Definition at line 26 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_vtRZFlag [private]

Definition at line 72 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_vtRZFlag [private]

Definition at line 68 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

double DimuPreSelect::m_vz0cut [private]

Definition at line 27 of file DimuPreSelect.h.

Referenced by DimuPreSelect(), execute(), finalize(), IsDimu(), and Print().

NTuple::Item<double> DimuPreSelect::m_z1 [private]

Definition at line 57 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_z1 [private]

Definition at line 53 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_z2 [private]

Definition at line 58 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_z2 [private]

Definition at line 54 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().

NTuple::Item<double> DimuPreSelect::m_zeroCFlag [private]

Definition at line 71 of file DimuPreSelect.h.

NTuple::Item<double> DimuPreSelect::m_zeroCFlag [private]

Definition at line 67 of file DimuPreSelect.h.

Referenced by BookNtuple(), execute(), initialize(), and IsDimu().


Generated on Tue Nov 29 23:18:18 2016 for BOSS_7.0.2 by  doxygen 1.4.7