AlignTPCDrift.h

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////
00002 // $Id: AlignTPCDrift.h,v 1.2 2007/03/01 19:36:38 lebedev Exp $
00003 //
00004 // lebedev@physics.harvard.edu
00005 ////////////////////////////////////////////////////////////////////////
00006 
00007 #ifndef ALIGN_TPC_DRIFT_H
00008 #define ALIGN_TPC_DRIFT_H
00009 
00010 #include "JobControl/JobCModuleFactory.h"
00011 #include <vector>
00012 #include <string>
00013 
00014 class SwimMIPP;
00015 
00016 //......................................................................
00017 /// @author lebedev@physics.harvard.edu
00018 ///
00019 class AlignTPCDrift : public JobCModule {
00020 public:
00021   typedef struct {
00022     int   fNTPCHit;
00023     float fPadX[128];
00024     float fPadZ[128];
00025     float fDriftT[128];
00026 
00027     int   fNChamHit;
00028     float fChamZ[36];
00029     float fU[36];
00030     float fW[36];
00031     float fCosA[36];
00032     float fSinA[36];
00033     double fPar[5];
00034     double fZ0;
00035     SwimMIPP* fSwim;
00036   } TrkInfo_t;
00037 
00038   AlignTPCDrift(const char* version);
00039   ~AlignTPCDrift();
00040 
00041   JobCResult Ana(const EDMEventHandle& evt);
00042   
00043   void NewRun(int run, int subrun);
00044   void EndRun(int run, int subrun);
00045 
00046   void Update(const CfgConfig& c);
00047 
00048   static void MinFCN(int& /*npar*/, double* /*gin*/, double& f,
00049             double* par, int /*iflag*/);
00050 
00051 private:
00052   double ComputeTrkChi2(TrkInfo_t& trk);
00053 
00054 private:
00055   static AlignTPCDrift* gModule;
00056   
00057   std::vector<TrkInfo_t> fTrkInfo;
00058   double fXOffset;
00059   double fYOffset;
00060   double fZOffset;
00061   double fTrigOffset;
00062 
00063   int fDebug; // Controls level of debug printing
00064   std::vector<float> fInitParam;
00065   std::vector<int> fFixParam; 
00066   std::string fFolder;
00067   int fMinTrkVtx;
00068   int fRequireBeamTrk;
00069   int fMinTPCHits;
00070   int fMaxTPCHits;
00071   int fMinChamHits;
00072   float fMinP;
00073   float fMinGoF;
00074   float fTPCSigmaX;
00075   float fTPCSigmaY;
00076   float fMinTrkTime;
00077   float fMaxTrkTime;
00078   
00079 };
00080 
00081 #endif // ALIGN_TPC_DRIFT_H
00082 
00083 ////////////////////////////////////////////////////////////////////////

Generated on Mon Nov 23 08:01:43 2009 for MIPP(E907) by  doxygen 1.4.7