#ifndef HMDCMACROMAKER_H
#define HMDCMACROMAKER_H
#include "TNamed.h"
#include "TObject.h"
#include "TObjArray.h"
#include "TArrayI.h"
#include "TArrayF.h"
class TString;
class HMdcGarMacroMaker : public TNamed {
protected:
TString fNameAsciiOut;
TString fNameSignalOut;
TString fNameGasIn;
FILE *output;
Bool_t postscript;
TString postscriptfile;
TString setup;
static Float_t cathodth[4];
static Float_t senseth [4];
static Float_t fieldth [4];
static Float_t cathodpitch[4];
static Float_t sensepitch [4];
static Float_t fieldpitch [4];
static Int_t cathodhv [4];
static Int_t sensehv [4];
static Int_t fieldhv [4];
static Int_t cathodhvmod [4];
static Int_t sensehvmod [4];
static Int_t fieldhvmod [4];
static Int_t ncathod [4];
static Int_t nsense [4];
static Int_t nfield [4];
static Float_t dc_s [4];
static Float_t cathodx [4];
static Float_t sensex [4];
static Float_t fieldx [4];
static Float_t area [4][4];
static Int_t cwire[4];
static Int_t cwire_foil[4];
static Float_t time_up [4];
static Float_t time_low[4];
static Int_t maxLoop[4][18];
static Int_t minLoop[4][18];
static Float_t B_components[3];
Int_t mdc;
Int_t temperature;
Int_t pressure;
Int_t argon;
Int_t helium;
Int_t ibutane;
Float_t mobility;
Int_t avalanche;
Int_t collisions;
TString particle;
Float_t energy;
Int_t range;
Float_t timebin;
Int_t nTimeBin;
Float_t angleDeg;
Int_t angleStep;
Float_t angleStepSize;
Bool_t printclusters;
Int_t nSignals;
Bool_t writeData;
Bool_t printcell;
Bool_t printoption;
Bool_t printgas;
Bool_t printfield;
Bool_t printdrift;
Bool_t printsignal;
Bool_t print3d;
Bool_t cathode_foils;
Float_t isochrones;
Int_t nLines;
void initVariables();
void putOut(const Char_t*);
void openOutPut();
void closeOutPut();
void printCell();
void printOptions();
void printGeometry();
void printField();
void printMagnetic();
void printGas();
void printDrift();
void printSignal();
void print3D();
void printMetaHeader();
void printMetaTrailer();
void parseArguments(TString);
void printKeyWords();
public:
HMdcGarMacroMaker(const Char_t* name="",const Char_t* title="");
~HMdcGarMacroMaker();
void setPrintSetup(TString);
void setFileNameOut(TString);
void setFileNameSignals(TString);
void setFileNameGasFile(TString);
void setPsFileName(TString);
void setWriteDataSets(Bool_t write=kTRUE){writeData=write;}
void setMdcType(Int_t type) {mdc =type;}
void setAngle(Float_t a)
{
angleDeg =a;
angleStep =(Int_t)(angleDeg/angleStepSize);
}
void setCathodeFoil(Bool_t foil){cathode_foils=foil;}
void setAngleStepSize(Float_t s){angleStepSize=s;}
void setBFieldComponents(Float_t,Float_t,Float_t);
void setTemperature(Int_t t){temperature=t;}
void setPressure(Int_t p) {pressure =p;}
void setArgon(Int_t ar);
void setHelium(Int_t he);
void setIButane(Int_t b);
void setMobility(Float_t m) {mobility =m;}
void setParticle(TString p) {particle =p;}
void setEnergy(Float_t e) {energy =e;}
void setRange(Int_t r) {range =r;}
void setAvalanche(Int_t a) {avalanche =a;}
void setNCollisions(Int_t c){collisions =c;}
void setNSignals(Int_t nS) {nSignals =nS;}
void setNLines(Int_t ni) {nLines =ni;}
void setIsochrones(Float_t ni){isochrones =ni;}
void setCathodHvMod(Int_t hv,Int_t i){cathodhvmod[i]=hv;}
void setSenseHvMod (Int_t hv,Int_t i){sensehvmod [i]=hv;}
void setFieldHvMod (Int_t hv,Int_t i){fieldhvmod [i]=hv;}
void setCathodTh (Float_t* c){for(Int_t i=0;i<4;i++)cathodth [i]=c[i];}
void setSenseTh (Float_t* c){for(Int_t i=0;i<4;i++)senseth [i]=c[i];}
void setFieldTh (Float_t* c){for(Int_t i=0;i<4;i++)fieldth [i]=c[i];}
void setCathodPitch(Float_t* c){for(Int_t i=0;i<4;i++)cathodpitch[i]=c[i];}
void setSensePitch (Float_t* c){for(Int_t i=0;i<4;i++)sensepitch [i]=c[i];}
void setFieldPitch (Float_t* c){for(Int_t i=0;i<4;i++)fieldpitch [i]=c[i];}
void setCathodHv (Int_t* c) {for(Int_t i=0;i<4;i++)cathodhv [i]=c[i];}
void setSenseHv (Int_t* c) {for(Int_t i=0;i<4;i++)sensehv [i]=c[i];}
void setFieldHv (Int_t* c) {for(Int_t i=0;i<4;i++)fieldhv [i]=c[i];}
void setNCathod (Int_t* c) {for(Int_t i=0;i<4;i++)ncathod [i]=c[i];}
void setNSense (Int_t* c) {for(Int_t i=0;i<4;i++)nsense [i]=c[i];}
void setNField (Int_t* c) {for(Int_t i=0;i<4;i++)nfield [i]=c[i];}
void setCathodX (Float_t* c){for(Int_t i=0;i<4;i++)cathodx [i]=c[i];}
void setSenseX (Float_t* c){for(Int_t i=0;i<4;i++)sensex [i]=c[i];}
void setFieldX (Float_t* c){for(Int_t i=0;i<4;i++)fieldx [i]=c[i];}
void setArea (Float_t* c)
{
for(Int_t i=0;i<4;i++){
for(Int_t j=0;j<4;j++){
area[i][j]=c[i*4+j];
}
}
}
void setMaxLoop (Int_t* c)
{
for(Int_t i=0;i<4;i++){
for(Int_t j=0;j<18;j++){
maxLoop[i][j]=c[i*18+j];
}
}
}
void setMinLoop (Int_t* c)
{
for(Int_t i=0;i<4;i++){
for(Int_t j=0;j<18;j++){
minLoop[i][j]=c[i*18+j];
}
}
}
void setCWire (Int_t* c) {for(Int_t i=0;i<4;i++)cwire [i]=c[i];}
void setCWireFoil(Int_t* c){for(Int_t i=0;i<4;i++)cwire_foil[i]=c[i];}
void setTimeUp (Float_t* c){for(Int_t i=0;i<4;i++)time_up [i]=c[i];}
void setTimeLow(Float_t* c){for(Int_t i=0;i<4;i++)time_low [i]=c[i];}
void setNTimeBin(Int_t number){nTimeBin=1000;}
void setDC_S (Float_t* c){for(Int_t i=0;i<4;i++)dc_s[i]=c[i];}
void setPrintClusters(Bool_t opt){printclusters=opt;}
void printMacro();
void printStatus(void);
ClassDef(HMdcGarMacroMaker,1)
};
#endif /*!HMDCGARMACROMAKER_H*/
Last change: Sat May 22 13:01:58 2010
Last generated: 2010-05-22 13:01
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.