19 #ifndef TPCDigiProcessor_h 
   20 #define TPCDigiProcessor_h 1 
   22 #include <marlin/Processor.h> 
   27 #include <gsl/gsl_rng.h> 
   29 #ifdef MARLIN_USE_AIDA 
   31 #include <marlin/AIDAProcessor.h> 
   32 #include <AIDA/IHistogramFactory.h> 
   33 #include <AIDA/ICloud1D.h> 
   44 #include <AIDA/AIDA.h> 
   52 #include <EVENT/LCCollection.h> 
   53 #include <IMPL/LCCollectionVec.h> 
   54 #include <EVENT/MCParticle.h> 
   55 #include <EVENT/SimTrackerHit.h> 
   56 #include <IMPL/TrackerHitImpl.h> 
   57 #include <UTIL/CellIDEncoder.h> 
   59 #include "CLHEP/Vector/TwoVector.h" 
   65 using namespace lcio ;
 
   66 using namespace marlin ;
 
   67 #ifdef MARLIN_USE_AIDA 
   68 using namespace AIDA ;
 
  129   virtual void init() ;
 
  133   virtual void processRunHeader( LCRunHeader* run ) ;
 
  137   virtual void processEvent( LCEvent * evt ) ; 
 
  140   virtual void check( LCEvent * evt ) ; 
 
  147   void writeVoxelToHit( 
Voxel_tpc* aVoxel) ;  
 
  148   void writeMergedVoxelsToHit( std::vector <Voxel_tpc*>* hitList ) ;  
 
  149   void plotHelixHitResidual(MCParticle *mcp, CLHEP::Hep3Vector *thisPointRPhi);
 
  150   double getPadPhi( CLHEP::Hep3Vector* thisPointRPhi, CLHEP::Hep3Vector* firstPointRPhi, CLHEP::Hep3Vector* middlePointRPhi, CLHEP::Hep3Vector* lastPointRPhi);
 
  151   double getPadTheta( CLHEP::Hep3Vector* firstPointRPhi, CLHEP::Hep3Vector* middlePointRPhi, CLHEP::Hep3Vector* lastPointRPhi );
 
  158   std::string _spacePointColName ;
 
  159   std::string _lowPtHitscolName ;
 
  165   std::string _outRelColName ;
 
  167   bool _use_raw_hits_to_store_simhit_pointer;
 
  175   EVENT::MCParticle* _mcp;
 
  176   EVENT::MCParticle* _previousMCP;
 
  177   EVENT::MCParticle* _nextMCP;
 
  178   EVENT::MCParticle* _nMinus2MCP;
 
  179   EVENT::MCParticle* _nPlus2MCP;   
 
  181   SimTrackerHit* _SimTHit;
 
  182   SimTrackerHit* _previousSimTHit;
 
  183   SimTrackerHit* _nextSimTHit;
 
  184   SimTrackerHit* _nPlus2SimHit;
 
  185   SimTrackerHit* _nMinus2SimHit;
 
  190   bool _dontEncodeSide ;
 
  192   float _pointResoRPhi0; 
 
  193   float _pointResoPadPhi; 
 
  203   float _doubleHitResZ;
 
  204   float _doubleHitResRPhi;
 
  209   std::vector< std::vector <Voxel_tpc *> > _tpcRowHits;
 
  210   std::map< Voxel_tpc *,SimTrackerHit *> _tpcHitMap;
 
  211   std::vector<float> _length;
 
  214   LCCollectionVec* _trkhitVec;
 
  215   LCCollectionVec* _relCol;  
 
  216   CellIDEncoder<TrackerHitImpl>* _cellid_encoder ;
 
  219   int  _NBackgroundSimTPCHits;
 
  220   int  _NPhysicsSimTPCHits;
 
  221   int  _NPhysicsAbove02GeVSimTPCHits;
 
  222   int  _NPhysicsAbove1GeVSimTPCHits;
 
  225   int  _NLostPhysicsTPCHits;
 
  226   int  _NLostPhysicsAbove02GeVPtTPCHits;
 
  227   int  _NLostPhysicsAbove1GeVPtTPCHits;
 
  232   IAnalysisFactory * _AF;
 
  235   IHistogramFactory * _HF;
 
  236   IHistogram1D * _phiDiffHisto;
 
  237   IHistogram1D * _thetaDiffHisto;
 
  238   IHistogram1D * _phiRelHisto;
 
  239   IHistogram1D * _thetaRelHisto;
 
  241   IHistogram1D * _phiDistHisto;
 
  242   IHistogram1D * _rPhiPullHisto;
 
  243   IHistogram1D * _rPhiDiffHisto;
 
  244   IHistogram1D * _zDiffHisto;
 
  245   IHistogram1D * _zPullHisto;
 
  246   IHistogram2D * _zSigmaVsZHisto;
 
  247   IHistogram1D * _zSigmaHisto;
 
  248   IHistogram1D * _rPhiSigmaHisto;
 
  249   IHistogram1D * _radiusCheckHisto;
 
  250   IHistogram1D * _ResidualsRPhiHisto;
 
  252   IHistogram1D * _NSimTPCHitsHisto;
 
  253   IHistogram1D * _NBackgroundSimTPCHitsHisto;
 
  254   IHistogram1D * _NPhysicsSimTPCHitsHisto;
 
  255   IHistogram1D * _NPhysicsAbove02GeVSimTPCHitsHisto;
 
  256   IHistogram1D * _NPhysicsAbove1GeVSimTPCHitsHisto;
 
  257   IHistogram1D * _NRecTPCHitsHisto;
 
  259   IHistogram1D * _NLostPhysicsTPCHitsHisto;
 
  260   IHistogram1D * _NLostPhysicsAbove02GeVPtTPCHitsHisto;
 
  261   IHistogram1D * _NLostPhysicsAbove1GeVPtTPCHitsHisto;
 
  262   IHistogram1D * _NRevomedHitsHisto;
 
  264   IHistogram1D * _NKeptPhysicsTPCHitsHistoPercent;
 
  265   IHistogram1D * _NKeptPhysicsAbove02GeVPtTPCHitsHistoPercent;
 
  266   IHistogram1D * _NKeptPhysicsAbove1GeVPtTPCHitsHistoPercent;
 
std::string _padRowHitColName
Input collection name. 
Definition: TPCDigiProcessor.h:157
 
std::string _TPCTrackerHitsCol
Output collection name. 
Definition: TPCDigiProcessor.h:164
 
====== TPCDigiProcessor ======   
Definition: TPCDigiProcessor.h:117