ROOT logo
#ifndef HMDCPPEVTFILTER_H
#define HMDCPPEVTFILTER_H

#include "hevent.h"
#include "hreconstructor.h"
#include "TString.h"
#include "TCanvas.h"
#include "TH1.h"
#include "TH2.h"
#include "TF1.h"
#include "hmdcseg.h"
#include "hades.h"
#include "haddef.h"
#include "heventheader.h"
#include "hiterator.h"
#include "hmdcgeompar.h"
#include "hspecgeompar.h"
#include "hmdcdetector.h"
#include "hcategory.h"
#include "hruntimedb.h"
#include "heventheader.h"
#include "hmdcclus.h"

class TH1F;
class TFile;
class TLine;



class HMdcPPEvtFilter : public HReconstructor  {
  protected:
  HRuntimeDb*        rtdb;
  HCategory*         catmHMdcSeg;   //! HMdcSeg Category
  HMdcSeg*           mdcseg;         //! seg data level
  HIterator*         mdcsegiter;     //! seg iterator

  HCategory*         catmHMdcClus;   //! HMdcClus Category
  HMdcClus*          mdcclus;         //! clus data level
  HIterator*         mdcclusiter;     //! clus iterator


  Char_t title[300];          //! histrogram title
  Char_t name[300];           //! histogram name
  Char_t xtitle[300];         //! histogram xaxis title
  Char_t ytitle[300];         //! histogram yaxis title
  Char_t ztitle[300];         //! histogram zaxis title

  TH1F*              histtanthetamult;
  TH1F*              histphidiff;
  TH1F*              histphidiffcut;
  TH1F*              histtanthetamultcut;
  TH2F*              histchithetacut;
  TH2F*              histchitheta;
  TH2F*              histchiphicut;
  TH2F*              histchiphi;

  TCanvas*           canv1; //! canvas for histogram
  TCanvas*           canv2; //! canvas for histogram
  TCanvas*           canv3; //! canvas for histogram

  TString histFileDir;
  TString histFileSuffix;
  TString histFileOption;
  TString histFile;
  TString psFile;
  TString flNmWoExt;         // input file name without extension

  Bool_t saveHist;
  Bool_t saveCanv;
  Bool_t savePSFile;

  Int_t flagcategory;
  Int_t sector[200];
  Float_t phishift[6];
  Float_t theta[200], phi[200];
  Float_t phidiff, tanthetamult;
  Float_t phimin, phimax;
  Float_t tanthetamin, tanthetamax;
  Float_t phiwidth, tanthetawidth;
  Float_t tanthetamean, phimean;
  Int_t multiplicity;       // multiplicity counter
  Int_t IsElasticFlag;
  Int_t TrigBit;
  Float_t chi2[200];

 void resetCounters()
 {
   multiplicity=0;
 }

 void resetArrays()
   {
     for(Int_t a=0; a<200; a++)
       {
	 phi[a]=0;
	 theta[a]=0;
	 chi2[a]=0;
	 sector[a]=0;
       }
   }


  private:

 TFile* openHistFile(const Char_t* flag);

  public:

    HMdcPPEvtFilter(const Text_t *name,const Text_t *title, Int_t flagcat=0);
    HMdcPPEvtFilter(void);
    ~HMdcPPEvtFilter(void);

    Bool_t init(void);
    Bool_t reinit(void);
    Bool_t finalize(void);
    Int_t  execute(void);

    void createHists();
    void initVariables();
    void setThetaCuts(Float_t Theta, Float_t DTheta);
    void setPhiCuts(Float_t Phi, Float_t DPhi);
                void setSaveHists(Bool_t s = kTRUE){saveHist = s;};
                void setSaveCanv(Bool_t s = kTRUE){saveCanv = s;};
                void setSavePSFile(Bool_t s = kTRUE){savePSFile = s;};
                void setTrigBit(Int_t bit){TrigBit = bit;};
    void setHistFile(const Char_t* dir,const Char_t* suf,const Char_t* option="NEW");

    ClassDef(HMdcPPEvtFilter,0)
};

#endif
 hmdcppevtfilter.h:1
 hmdcppevtfilter.h:2
 hmdcppevtfilter.h:3
 hmdcppevtfilter.h:4
 hmdcppevtfilter.h:5
 hmdcppevtfilter.h:6
 hmdcppevtfilter.h:7
 hmdcppevtfilter.h:8
 hmdcppevtfilter.h:9
 hmdcppevtfilter.h:10
 hmdcppevtfilter.h:11
 hmdcppevtfilter.h:12
 hmdcppevtfilter.h:13
 hmdcppevtfilter.h:14
 hmdcppevtfilter.h:15
 hmdcppevtfilter.h:16
 hmdcppevtfilter.h:17
 hmdcppevtfilter.h:18
 hmdcppevtfilter.h:19
 hmdcppevtfilter.h:20
 hmdcppevtfilter.h:21
 hmdcppevtfilter.h:22
 hmdcppevtfilter.h:23
 hmdcppevtfilter.h:24
 hmdcppevtfilter.h:25
 hmdcppevtfilter.h:26
 hmdcppevtfilter.h:27
 hmdcppevtfilter.h:28
 hmdcppevtfilter.h:29
 hmdcppevtfilter.h:30
 hmdcppevtfilter.h:31
 hmdcppevtfilter.h:32
 hmdcppevtfilter.h:33
 hmdcppevtfilter.h:34
 hmdcppevtfilter.h:35
 hmdcppevtfilter.h:36
 hmdcppevtfilter.h:37
 hmdcppevtfilter.h:38
 hmdcppevtfilter.h:39
 hmdcppevtfilter.h:40
 hmdcppevtfilter.h:41
 hmdcppevtfilter.h:42
 hmdcppevtfilter.h:43
 hmdcppevtfilter.h:44
 hmdcppevtfilter.h:45
 hmdcppevtfilter.h:46
 hmdcppevtfilter.h:47
 hmdcppevtfilter.h:48
 hmdcppevtfilter.h:49
 hmdcppevtfilter.h:50
 hmdcppevtfilter.h:51
 hmdcppevtfilter.h:52
 hmdcppevtfilter.h:53
 hmdcppevtfilter.h:54
 hmdcppevtfilter.h:55
 hmdcppevtfilter.h:56
 hmdcppevtfilter.h:57
 hmdcppevtfilter.h:58
 hmdcppevtfilter.h:59
 hmdcppevtfilter.h:60
 hmdcppevtfilter.h:61
 hmdcppevtfilter.h:62
 hmdcppevtfilter.h:63
 hmdcppevtfilter.h:64
 hmdcppevtfilter.h:65
 hmdcppevtfilter.h:66
 hmdcppevtfilter.h:67
 hmdcppevtfilter.h:68
 hmdcppevtfilter.h:69
 hmdcppevtfilter.h:70
 hmdcppevtfilter.h:71
 hmdcppevtfilter.h:72
 hmdcppevtfilter.h:73
 hmdcppevtfilter.h:74
 hmdcppevtfilter.h:75
 hmdcppevtfilter.h:76
 hmdcppevtfilter.h:77
 hmdcppevtfilter.h:78
 hmdcppevtfilter.h:79
 hmdcppevtfilter.h:80
 hmdcppevtfilter.h:81
 hmdcppevtfilter.h:82
 hmdcppevtfilter.h:83
 hmdcppevtfilter.h:84
 hmdcppevtfilter.h:85
 hmdcppevtfilter.h:86
 hmdcppevtfilter.h:87
 hmdcppevtfilter.h:88
 hmdcppevtfilter.h:89
 hmdcppevtfilter.h:90
 hmdcppevtfilter.h:91
 hmdcppevtfilter.h:92
 hmdcppevtfilter.h:93
 hmdcppevtfilter.h:94
 hmdcppevtfilter.h:95
 hmdcppevtfilter.h:96
 hmdcppevtfilter.h:97
 hmdcppevtfilter.h:98
 hmdcppevtfilter.h:99
 hmdcppevtfilter.h:100
 hmdcppevtfilter.h:101
 hmdcppevtfilter.h:102
 hmdcppevtfilter.h:103
 hmdcppevtfilter.h:104
 hmdcppevtfilter.h:105
 hmdcppevtfilter.h:106
 hmdcppevtfilter.h:107
 hmdcppevtfilter.h:108
 hmdcppevtfilter.h:109
 hmdcppevtfilter.h:110
 hmdcppevtfilter.h:111
 hmdcppevtfilter.h:112
 hmdcppevtfilter.h:113
 hmdcppevtfilter.h:114
 hmdcppevtfilter.h:115
 hmdcppevtfilter.h:116
 hmdcppevtfilter.h:117
 hmdcppevtfilter.h:118
 hmdcppevtfilter.h:119
 hmdcppevtfilter.h:120
 hmdcppevtfilter.h:121
 hmdcppevtfilter.h:122
 hmdcppevtfilter.h:123
 hmdcppevtfilter.h:124
 hmdcppevtfilter.h:125
 hmdcppevtfilter.h:126
 hmdcppevtfilter.h:127
 hmdcppevtfilter.h:128
 hmdcppevtfilter.h:129
 hmdcppevtfilter.h:130
 hmdcppevtfilter.h:131