Logo Coherent WaveBurst  
Reference Guide
Logo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cwb_inet2G.C
Go to the documentation of this file.
1 // multistage 2G interactive cwb pipeline
2 
3 void
4 cwb_inet2G(int runID, TString fName, CWB_STAGE jstage, TString uName="", bool eced=false) {
5 
6  cwb2G* CWB = NULL;
7 
8  if(eced) { // get fName from env option --cfg
9  TString cwb_eced_opts=TString(gSystem->Getenv("CWB_ECED_OPTS"));
10  if(cwb_eced_opts!="") {
11  TString ECED_CFG = CWB::Toolbox::getParameter(cwb_eced_opts,"--cfg");
12  if(ECED_CFG!="") {
13  fName = gSystem->ExpandPathName(ECED_CFG.Data());
14  }
15  }
16  }
17 
18  if(fName.EndsWith(".root")) { // job file
19  CWB = new cwb2G(fName,uName,jstage);
20  // Warning : define the file to be saved in CED, must be implemented
21  // Must include the config in the root file and the aux user config file
22  // Temporarily is declared as empty and it is not saved : see ced.cc
23  gSystem->Setenv("CWB_UPARAMETERS_FILE","");
24  } else { // user configuration file
25  CWB::config icfg;
26  icfg.Import("$CWB_PARAMETERS_FILE");
27 #ifdef _USE_ROOT6
28  if(eced) { // skip config::check (used by eced)
29  int nIFO=1;int nfactor=1;
30  EXPORT(int,nIFO,TString::Format("nIFO = %d",nIFO).Data())
31  EXPORT(int,nfactor,TString::Format("nfactor = %d",nfactor).Data())
32  }
33 #else
34  if(eced) {nIFO=1;nfactor=1;} // skip config::check (used by eced)
35 #endif
36  icfg.Import(fName);
37  strcpy(icfg.analysis,"2G");
38  icfg.Export();
39  CWB = new cwb2G(icfg,jstage);
40  // updated standard user config (saved in CED)
41  gSystem->Setenv("CWB_UPARAMETERS_FILE",fName);
42  }
43 
44  if(CWB) {
45  CWB::config* cfg = CWB->GetConfig();
46  TArrayC lagBuffer;
47  if(CWB->GetLagBuffer().GetSize()) {
48 #ifdef _USE_ROOT6
49  char* lagFile=NULL;
50  char lagMode[2];
51 #endif
52  // read lags from job file (used in multistage analysis)
53  lagBuffer = CWB->GetLagBuffer();
54  lagFile = lagBuffer.GetArray();
55  lagMode[0] = CWB->GetLagMode();
56 #ifdef _USE_ROOT6
57  EXPORT(char*,lagFile,TString::Format("lagFile = (char*)%p",lagFile).Data())
58  EXPORT(char*,lagMode,TString::Format("strcpy(lagMode,(char*)%p)",lagMode).Data())
59  strcpy(cfg->lagMode,lagMode);
60  cfg->Import();
61 #endif
62  }
63  if(eced) cfg->Import(gSystem->ExpandPathName("$CWB_MACROS/cwb_eced.C")); // easy ced
64  cfg->Import(gSystem->ExpandPathName("$CWB_MACROS/cwb_inet.C"));
65  CWB->SetupStage(jstage);
66 #ifdef _USE_ROOT6
67  char tmp_dir[1024]; strcpy(tmp_dir,cfg->tmp_dir);
68 #endif
69  if(eced) cfg->Print(TString(tmp_dir)+"/eced_parameters.C"); // dump full parameters file
70  CWB->run(runID);
71  delete CWB;
72  }
73 
74  gSystem->Exit(0);
75 }
CWB::config * cfg
Definition: TestCWB_Plugin.C:5
char analysis[8]
Definition: config.hh:99
TString cwb_eced_opts
Definition: cwb_eced.C:34
void Export(TString fname="")
Definition: config.cc:388
void Print(Option_t *option="")
Definition: config.cc:719
Definition: ced.hh:24
TString("c")
void Import(TString umacro="")
Definition: config.cc:334
Definition: cwb2G.hh:15
#define nIFO
char tmp_dir[512]
Definition: test_config1.C:153
char lagMode[2]
Definition: test_config1.C:57
void SetupStage(CWB_STAGE jstage)
Definition: cwb.cc:2223
virtual void run(int runID=0)
Definition: cwb.cc:263
char tmp_dir[1024]
Definition: config.hh:307
char lagMode[2]
Definition: config.hh:155
#define EXPORT(TYPE, VAR, CMD)
Definition: config.cc:74
static TString getParameter(TString options, TString param="")
Definition: Toolbox.cc:5943
CWB::config * GetConfig()
Definition: cwb.hh:138
char * lagFile
Definition: test_config1.C:56
strcpy(RunLabel, RUN_LABEL)
nfactor[0]
Definition: cwb_eced.C:10
char GetLagMode()
Definition: cwb.hh:158
char fName[256]
TArrayC GetLagBuffer()
Definition: cwb.hh:159
void cwb_inet2G(int runID, TString fName, CWB_STAGE jstage, TString uName="", bool eced=false)
Definition: cwb_inet2G.C:4
CWB_STAGE
Definition: cwb.hh:102