ROOT logo
#ifndef HALIGNMENTGNOMAG_H
#define HALIGNMENTGNOMAG_H

#include "TObject.h"
#include "hsymmat.h"
#include "fstream"
#include "iostream"
#include "TString.h"
#include "halignmentgparticle.h"
#include "hgeomtransform.h"
#include "halignmentgbase.h"

class TClonesArray;
class HAlignmentGGeom;
class HAlignmentGRotations;
class TH2F;
class TH1F;
class TMinuit;
class TFile;

class HAlignmentGNoMag:public HAlignmentGBase
{
 
public:
  HAlignmentGNoMag();
  virtual ~HAlignmentGNoMag();  
  void    SetIname(TString _inName) {inName=_inName;}
  TString GetIname() {return inName;}
  void    Init(TString, TString, Int_t, Bool_t);
  virtual void    CollectTracks();
  virtual void    ResetCounts();
  virtual Bool_t  AddToClones();
  virtual HGeomTransform Align(const Int_t &, const Int_t &);    
  void  CheckAlignment();
  //virtual void CheckAlignment(HGeomTransform trans[6][4], Int_t s) {;}
  virtual void  FillHistograms();
  virtual void SetNtBranches() {;}
  void AddData(Float_t , Float_t , Float_t, Float_t, Int_t);
  Bool_t Selected(HAlignmentGParticle &);  
  TH1F* GetTargetHisto() { return histoVertex;}
  //TH2F* GetRasterPlotBefore() {return RasterPlotBefore;}
  //TH2F* GetRasterPlotAfter() {return RasterPlotAfter;}
  HGeomTransform AlignMod();
  void Raster(TH2F*, TH2F*);
  void JustPlot(Int_t , Int_t );

  Int_t GetFitVersion() {return fitVersion;}
  void  SetFitVersion(Int_t _fitVersion) {fitVersion = _fitVersion;}
  void setDefault(Float_t& , Float_t& , Float_t& , Float_t& );
 
 void setMdcSetup(Int_t a[6][4]);
 Bool_t isMdc(Int_t , Int_t );
 
 void ResetRaster();
 
private:
  Bool_t isThirdChamber;
  Bool_t isFouthChamber;

  Float_t AcceptRadius;
  Float_t AcceptRadiusFour;
  Float_t AcceptRadiusTarg;
  Float_t AcceptDir;
  Float_t AcceptDirFour;

  Int_t fitVersion;
  Int_t numberOfTracks;
  Bool_t isAligned;
  ifstream in;
  TString inName;
  TString outName;
  Int_t nEvent;
  Int_t mod;
  Int_t sector;
  Float_t X,Y;
  Float_t Xdir, Ydir;
  Int_t FirstEvent;
  Int_t FirstMod;
  Float_t FirstX;
  Float_t FirstXdir;
  Float_t FirstY;
  Float_t FirstYdir;
  Int_t nCount[4];
  HAlignmentGParticle *testP;
  HAlignmentGParticle fAlignParticle;
  Float_t XValue   [4][50];
  Float_t XdirValue[4][50];
  Float_t YValue   [4][50];
  Float_t YdirValue[4][50];
  TH1F *histoVertex; 
  TH1F *histoDiffYBeforeMod3;
  TH1F *histoDiffYAfterMod3;
  TH2F *histoDiffYBeforeVsPhiMod3;
  TH2F *histoDiffYAfterVsPhiMod3;
  TH2F *histoDiffYBeforeVsThetaMod3;
  TH2F *histoDiffYAfterVsThetaMod3;
  TH1F *histoDiffYBeforeMod4;
  TH1F *histoDiffYAfterMod4;
  TH2F *histoDiffYBeforeVsPhiMod4;
  TH2F *histoDiffYAfterVsPhiMod4;
  TH2F *histoDiffYBeforeVsThetaMod4;
  TH2F *histoDiffYAfterVsThetaMod4;
  TH1F *histoTheta;
  TH2F *RasterPlotBefore3;
  TH2F *RasterPlotAfter3;
  TH2F *RasterPlotBefore4;
  TH2F *RasterPlotAfter4;
  
  ///TH1F *histoVertex;

  HGeomTransform transBefore[4];
  HGeomTransform transAfter[4];
  HGeomTransform transStarting[4];
  
  Int_t mdcSetup[6][4];
  
ClassDef(HAlignmentGNoMag,0)

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