Skip to content
Snippets Groups Projects
TrackingEfficiency.h 3.21 KiB
Newer Older
#ifndef ROOT_TrackingEfficiency
#define ROOT_TrackingEfficiency

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// TrackingEfficiency                                                        //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#include "THaEvData.h"
#include "THaCutList.h"
#include "VarDef.h"
#include "VarType.h"
#include "TClonesArray.h"

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iostream>

#include "THaPhysicsModule.h"
#include "THcHodoscope.h"
#include "THaSpectrometer.h"
#include "THaTrack.h"

namespace hcana {


  /** \brief TrackingEfficiency calculation.
   *
   *   \ingroup PhysMods
   */
  class TrackingEfficiency : public THaPhysicsModule {
  public:
    TrackingEfficiency(const char* name, const char* description, const char* hodname);
    virtual ~TrackingEfficiency();

    virtual Int_t   Begin(THaRunBase* r = 0);
    virtual Int_t   End(THaRunBase* r = 0);
    virtual EStatus Init(const TDatime& run_time);
    virtual Int_t   Process(const THaEvData&);

    void Reset(Option_t* opt = "");

  protected:
    virtual Int_t ReadDatabase(const TDatime& date);
    virtual Int_t DefineVariables(EMode mode = kDefine);
    /* Int_t GetScinIndex(Int_t nPlane, Int_t nPaddle); */

    // Data needed for efficiency calculation for one Hodoscope paddle

    // Double_t* fZPos; //

    // TString          fName;    // Name of hodoscope
    // THcHodoscope*    fHod;     // Hodscope object
    // THaSpectrometer* fSpectro; // Spectrometer object

    // Long64_t fNevt;

    //// Information about the hodoscopes that we get from the
    //// THcHodoscope object

    // Int_t                  fEffiTest;
    // Int_t                  fNPlanes;
    // THcScintillatorPlane** fPlanes;
    // Double_t*              fPosZ;
    // Double_t*              fSpacing;
    // Double_t*              fCenterFirst;
    // Int_t*                 fNCounters;
    ////  Int_t* fHodoPlnContHit;
    // Int_t*    fHodoPosEffi;
    // Int_t*    fHodoNegEffi;
    // Int_t*    fHodoOrEffi;
    // Int_t*    fHodoAndEffi;
    // Int_t*    fStatTrk;
    // Int_t*    fStatTrkSum;
    // Int_t*    fStatAndSum;
    // Double_t* fStatAndEff;
    // Double_t  fStatSlop;
    // Double_t  fHodoEff_CalEnergy_Cut;
    // Double_t  fMaxChisq;
    // Double_t* fHodoSlop;
    // Double_t  fHodoEff_s1, fHodoEff_s2, fHodoEff_tof, fHodoEff_3_of_4, fHodoEff_4_of_4;

    //// Arrays for accumulating statistics
    // vector<vector<vector<Int_t>>> fHitShould;
    // vector<vector<vector<Int_t>>> fStatAndHitDel;
    // vector<vector<vector<Int_t>>> fStatTrkDel;
    // vector<vector<Int_t>>         fStatPosHit;
    // vector<vector<Int_t>>         fStatNegHit;
    // vector<vector<Int_t>>         fStatAndHit;
    // vector<vector<Int_t>>         fStatOrHit;
    // vector<vector<Int_t>>         fBothGood;
    // vector<vector<Int_t>>         fNegGood;
    // vector<vector<Int_t>>         fPosGood;

    // Int_t* fHitPlane;

    ClassDef(TrackingEfficiency, 0) // Hodoscope efficiency module
  };

} // namespace hcana

#endif