FEDRA emulsion software from the OPERA Collaboration
emunbend.cpp File Reference
#include <stdlib.h>
#include <string>
#include <TEnv.h>
#include "EdbLog.h"
#include "EdbScanProc.h"
#include "EdbUnbender.h"
Include dependency graph for emunbend.cpp:

Functions

int main (int argc, char *argv[])
 
void print_help_message ()
 
void set_default (TEnv &cenv)
 

Function Documentation

◆ main()

int main ( int  argc,
char *  argv[] 
)
35 {
36  if (argc < 2) { print_help_message(); return 0; }
37  TEnv cenv("unbendenv");
39  gEDBDEBUGLEVEL = cenv.GetValue("unbend.EdbDebugLevel" , 1 );
40  const char *outdir = cenv.GetValue("unbend.outdir" , "..");
41 
42  bool do_set = false;
43  bool do_3a = false;
44  bool do_3g = false;
45  bool do_5g = false;
46  bool do_corraff = false;
47  EdbID idset;
48 
49  for(int i=1; i<argc; i++ )
50  {
51  char *key = argv[i];
52  if(!strncmp(key,"-set=",5))
53  {
54  if(strlen(key)>5) if(idset.Set(key+5)) do_set=true;
55  }
56  if(!strncmp(key,"-corraff",8)) do_corraff = true;
57  if(!strncmp(key,"-alg3a",6)) do_3a = true;
58  if(!strncmp(key,"-alg3g",6)) do_3g = true;
59  if(!strncmp(key,"-alg5g",6)) do_5g = true;
60  }
61 
62  cenv.ReadFile( "unbend.rootrc" ,kEnvLocal);
63  cenv.WriteFile("unbend.save.rootrc");
64 
65  if(do_set)
66  {
69  EdbPVRec ali;
70  int ntrMin = cenv.GetValue("unbend.ntrMin" , 100);
71  const char *cut = cenv.GetValue("unbend.read_cut" , "1");
72  int ntr = sproc.ReadTracksTree( idset,ali, cut );
73  Log(1,"unbend","read %d tracks of set %s with cut %s",ntr,idset.AsString(),cut);
74  if(ntr<ntrMin) {
75  Log(1,"unbend","Warning: tracks not enough (%d < %d) - exit",ntr,ntrMin);
76  } else {
78  EdbUnbender ub;
79  ub.do_save_hist = cenv.GetValue("unbend.save_hist" , 0);
80  ub.do_save_tree = cenv.GetValue("unbend.save_tree" , 0);
81 
82  if (do_3g) ub.Unbend3g(ali,*ss, cenv);
83  else if(do_5g) ub.Unbend5g(ali,*ss, cenv);
84  else ub.Unbend3a(ali,*ss, cenv);
85 
87  }
88  }
89 }
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
EdbPVRec * ali
Definition: align.C:1
TCut cut
Definition: check_shower.C:6
Definition: EdbID.h:7
char * AsString() const
Definition: EdbID.cxx:24
bool Set(const char *id_string)
Definition: EdbID.cxx:17
Definition: EdbPVRec.h:148
Definition: EdbScanProc.h:12
int WriteScanSet(EdbID id, EdbScanSet &ss)
Definition: EdbScanProc.cxx:1467
int ReadTracksTree(EdbID id, EdbPVRec &ali, TCut cut="1")
Definition: EdbScanProc.cxx:644
TString eProcDirClient
Definition: EdbScanProc.h:14
EdbScanSet * ReadScanSet(EdbID id)
Definition: EdbScanProc.cxx:1521
Definition: EdbScanSet.h:11
Definition: EdbUnbender.h:15
bool do_save_hist
Definition: EdbUnbender.h:23
void Unbend3a(EdbPVRec &pvr, EdbScanSet &ss, TEnv &env)
Definition: EdbUnbender.cxx:33
void Unbend3g(EdbPVRec &pvr, EdbScanSet &ss, TEnv &env)
Definition: EdbUnbender.cxx:49
void Unbend5g(EdbPVRec &pvr, EdbScanSet &ss, TEnv &env)
Definition: EdbUnbender.cxx:64
bool do_save_tree
Definition: EdbUnbender.h:24
EdbScanProc * sproc
Definition: comptonmap.cpp:29
TEnv cenv("emrec")
bool do_set
Definition: emrec.cpp:36
EdbID idset
Definition: emrec.cpp:35
const char * outdir
Definition: emrec.cpp:37
bool do_corraff
Definition: emtrackan.cpp:81
void set_default(TEnv &cenv)
Definition: emunbend.cpp:23
void print_help_message()
Definition: emunbend.cpp:11
gEDBDEBUGLEVEL
Definition: energy.C:7
ss
Definition: energy.C:62

◆ print_help_message()

void print_help_message ( )
12 {
13  cout<< "\nUsage: \n\t emunbend -set=ID [ -alg3a -alg3g -alg5g -corraff -v=DEBUG] \n";
14  cout<< "\t Unbend dataset and update set.root\n";
15  cout<< "\t\t -alg3a - triplets simple (default) \n";
16  cout<< "\t\t -alg3g - triplets generic \n";
17  cout<< "\t\t -alg5g - quintets generic \n";
18  cout<< "\t\t -corraff - save corrections to set.root file\n";
19  cout<<endl;
20 }

◆ set_default()

void set_default ( TEnv &  cenv)
24 {
25  cenv.SetValue("unbend.outdir" , "..");
26  cenv.SetValue("unbend.read_cut" , "1");
27  cenv.SetValue("unbend.save_hist" , 0);
28  cenv.SetValue("unbend.save_tree" , 0);
29 // cenv.SetValue("unbend.NCPmin" , "50");
30  cenv.SetValue("unbend.EdbDebugLevel" , 1 );
31 }