ROOT logo
#ifndef HMDCTASKSET_H
#define HMDCTASKSET_H

#include "htaskset.h"
#include "hmdcdigitizer.h"

#include <cstdlib>

class HMdcDigitizer;
class HMdcCalibrater1;
class HMdcDeDx2Maker;
class HMdcSetup;
class HMdcCalibrater1Setup;
class HMdcDigitizerSetup;
class HMdcTrackFinderSetup;
class HMdcClusterToHitSetup;
class HMdc12FitSetup;
class HMdcCommonSetup;
class HMdcVertexFind;

class HMdcTaskSet : public HTaskSet {

private:

static Int_t ilevel;            // counter for arguments of analysis levels
static Int_t irealorsimulation; // counter for arguments of real/simulation
static Int_t icalibrater;       // counter for arguments of calibrater mode
static Int_t itimecuts;         // counter for arguments of calibrater time cuts
static Int_t itracker;          // counter for arguments of tracker type
static Int_t imagnet;           // counter for arguments of magnet status
static Int_t itrackermode;      // counter for arguments of tracker mode (DUBNA)

static Int_t analysisLevel;   // 0=raw,1=cal1,2=cal2,3=hit,4=fit
static Int_t cal1TimeCutFlag; // 0=nocuts, 1=cuts
static Int_t cal1ModeFlag;    // 1=nostartandcal,2=startandcal,3=nostartandnocal

static Int_t tracker;         // 1=dubna,2=santiago
static Bool_t isCoilOff;      // kTRUE=magnetoff,kFALSE=magneton
static Int_t typeClustFinder; // 0=combinedchamberclusters,1=singlechamberclusters
static Int_t nLayers[6][4];   // number of layers per module for trackfinder
static Int_t nLevel[4];       // levels for hit finding in seg1 and seg2
static Int_t mdcForSeg1;      // -1=don't fill HMdcSeg for segment 1,
                              //  0 and typeClustFinder=1 and sector has mdc1&2
                              //   =fill HMdcSeg by cluster in mdc1
                              //  1 -/- in mdc2
static Int_t mdcForSeg2;      // -1=don't fill HMdcSeg for segment 1,
                              //  2 and typeClustFinder=1 and sector has
                              //    mdc3&4  and isCoilOff=kTRUE,
                              //   =fill HMdcSeg by cluster in mdc4
                              //  3 -/- in mdc4
static Int_t fitAuthor;       // DUBNA:0=Hedar, 1=Alexandr
static Bool_t fitNTuple;      // DUBNA:kTRUE=fill NTuple,kFALSE=fill nothing
static Bool_t fitPrint;       // DUBNA:kTRUE=print debug,kFALSE=print nothing
static Int_t fitVersion;      // DUBNA:1=old,2=new
static Int_t fitIndep;        // DUBNA: 0=MDC fit, 1=segment fit
static Int_t isSimulation;   // 1=sim.0=real,2=merge

static HMdcDigitizer*         mdcdigi;
static HMdcCalibrater1*       calibrater1;
static HMdcDeDx2Maker*        dedx2maker;  //!
Int_t  versionDeDx;                        //!  0: no dedx, 1=dedx

Bool_t idealTracking;          // kTRUE - ideal tracking
Bool_t fillParallel;           // kTRUE will fill HMdcHitSim,HMdcSegSim and HMdcTrkCand to ideal categories

static HMdcSetup*             mdcsetup;
static HMdcSetup*             mdcsetuplocal;
static HMdcCalibrater1Setup*  calibrater1setlocal;
static HMdcDigitizerSetup*    digisetlocal;
static HMdcTrackFinderSetup*  trackfindersetlocal;
static HMdcClusterToHitSetup* clustertohitsetlocal;
static HMdc12FitSetup*        fittersetlocal;
static HMdcCommonSetup*       commonsetlocal;
static HMdcVertexFind*        vertexfinder;
static Bool_t isCreated;
static Int_t rtdbinput;
  void getSetupContainer();
  void copySetup();
  void getSets();
  void setDefaults();
  void parseArguments(TString);
public:
  HMdcTaskSet(void);
  HMdcTaskSet(const Text_t name[],const Text_t title[]);
  ~HMdcTaskSet(void);
  HTask *make(const Char_t *select="",const Option_t *option="");
  HMdcDigitizer*   getDigitizer();
  HMdcCalibrater1* getCalibrater1();
  HMdcDeDx2Maker*  getDeDx2Maker();
  HMdcSetup*       getMdcSetup();
  HMdcVertexFind*  getMdcVertexFinder();
  void setVersionDeDx(Int_t vers){ if(vers >= 0 && vers < 2){ versionDeDx = vers;} else { Error("setVersionDeDx()","Unknown option!"); exit(1);} }
  void printStatus();
  void printOptions();
  void useIdealTracking(Bool_t fillPar=kFALSE) {idealTracking = kTRUE; fillParallel=fillPar;}

  ClassDef(HMdcTaskSet,1) // Set of tasks
};

#endif /* !HMDCTASKSET_H */
 hmdctaskset.h:1
 hmdctaskset.h:2
 hmdctaskset.h:3
 hmdctaskset.h:4
 hmdctaskset.h:5
 hmdctaskset.h:6
 hmdctaskset.h:7
 hmdctaskset.h:8
 hmdctaskset.h:9
 hmdctaskset.h:10
 hmdctaskset.h:11
 hmdctaskset.h:12
 hmdctaskset.h:13
 hmdctaskset.h:14
 hmdctaskset.h:15
 hmdctaskset.h:16
 hmdctaskset.h:17
 hmdctaskset.h:18
 hmdctaskset.h:19
 hmdctaskset.h:20
 hmdctaskset.h:21
 hmdctaskset.h:22
 hmdctaskset.h:23
 hmdctaskset.h:24
 hmdctaskset.h:25
 hmdctaskset.h:26
 hmdctaskset.h:27
 hmdctaskset.h:28
 hmdctaskset.h:29
 hmdctaskset.h:30
 hmdctaskset.h:31
 hmdctaskset.h:32
 hmdctaskset.h:33
 hmdctaskset.h:34
 hmdctaskset.h:35
 hmdctaskset.h:36
 hmdctaskset.h:37
 hmdctaskset.h:38
 hmdctaskset.h:39
 hmdctaskset.h:40
 hmdctaskset.h:41
 hmdctaskset.h:42
 hmdctaskset.h:43
 hmdctaskset.h:44
 hmdctaskset.h:45
 hmdctaskset.h:46
 hmdctaskset.h:47
 hmdctaskset.h:48
 hmdctaskset.h:49
 hmdctaskset.h:50
 hmdctaskset.h:51
 hmdctaskset.h:52
 hmdctaskset.h:53
 hmdctaskset.h:54
 hmdctaskset.h:55
 hmdctaskset.h:56
 hmdctaskset.h:57
 hmdctaskset.h:58
 hmdctaskset.h:59
 hmdctaskset.h:60
 hmdctaskset.h:61
 hmdctaskset.h:62
 hmdctaskset.h:63
 hmdctaskset.h:64
 hmdctaskset.h:65
 hmdctaskset.h:66
 hmdctaskset.h:67
 hmdctaskset.h:68
 hmdctaskset.h:69
 hmdctaskset.h:70
 hmdctaskset.h:71
 hmdctaskset.h:72
 hmdctaskset.h:73
 hmdctaskset.h:74
 hmdctaskset.h:75
 hmdctaskset.h:76
 hmdctaskset.h:77
 hmdctaskset.h:78
 hmdctaskset.h:79
 hmdctaskset.h:80
 hmdctaskset.h:81
 hmdctaskset.h:82
 hmdctaskset.h:83
 hmdctaskset.h:84
 hmdctaskset.h:85
 hmdctaskset.h:86
 hmdctaskset.h:87
 hmdctaskset.h:88
 hmdctaskset.h:89
 hmdctaskset.h:90
 hmdctaskset.h:91
 hmdctaskset.h:92
 hmdctaskset.h:93
 hmdctaskset.h:94
 hmdctaskset.h:95
 hmdctaskset.h:96
 hmdctaskset.h:97
 hmdctaskset.h:98
 hmdctaskset.h:99
 hmdctaskset.h:100