mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-22 09:37:59 +02:00
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorCalibration@49 113b152e-814d-439b-b186-022a431db7b5
This commit is contained in:
@ -9,30 +9,23 @@ typedef struct task_s{
|
||||
int runmin;
|
||||
int runmax;
|
||||
int treeIndex;
|
||||
int tNumber;
|
||||
double xTalkFactor;
|
||||
} Task;
|
||||
|
||||
double hc = 0.1; // read - out crosstalk
|
||||
|
||||
void *moenchMakeTreeTask(void *p){
|
||||
TThread::Lock();
|
||||
char fname[1000];
|
||||
Task *t = (Task *)p;
|
||||
sprintf(fname,"%s%s_%i.root",t->tdir,t->tname,t->treeIndex);
|
||||
TFile *f = new TFile(fname,"RECREATE");
|
||||
double xTalkC = t->xTalkFactor; //((double)t->tNumber) * 0.01; Calibrated with data in /data/moench_trieste_20140313_trees/xtalkScan
|
||||
cout << "Call moenchReadData(" << t->fformat << "," << t->tname << "," << t->runmin<< "," << t->runmax <<") with xTalkC: " << xTalkC << endl;
|
||||
cout << "Call moenchReadData(" << t->fformat << "," << t->tname << "," << t->runmin<< "," << t->runmax <<")" << endl;
|
||||
TThread::UnLock();
|
||||
moenchReadData(t->fformat,t->tname,t->runmin,t->runmax, 1500, -500, 1000, 1, xTalkC);
|
||||
if(f && f->IsOpen()){
|
||||
f->Close();
|
||||
}
|
||||
moenchReadData(t->fformat,t->tname,t->runmin,t->runmax);
|
||||
f->Close();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void moenchReadDataMT(char *fformat, char *tit, char *tdir, int runmin, int runoffset, int nThreads, int treeIndexStart=0, double xTalkFactor=0.044){
|
||||
void moenchReadDataMT(char *fformat, char *tit, char *tdir, int runmin, int runoffset, int nThreads, int treeIndexStart=0){
|
||||
char threadName[1000];
|
||||
TThread *threads[nThreads];
|
||||
for(int i = 0; i < nThreads; i++){
|
||||
@ -44,8 +37,6 @@ void moenchReadDataMT(char *fformat, char *tit, char *tdir, int runmin, int runo
|
||||
t->runmin = runmin + i*runoffset;
|
||||
t->runmax = runmin + (i+1)*runoffset - 1;
|
||||
t->treeIndex = treeIndexStart + i;
|
||||
t->tNumber = i;
|
||||
t->xTalkFactor = xTalkFactor;
|
||||
cout << "start thread " << i << " start: " << t->runmin << " end " << t->runmax << endl;
|
||||
threads[i] = new TThread(threadName, moenchMakeTreeTask, t);
|
||||
threads[i]->Run();
|
||||
@ -54,33 +45,8 @@ void moenchReadDataMT(char *fformat, char *tit, char *tdir, int runmin, int runo
|
||||
for(int i = 0; i < nThreads; i++){
|
||||
threads[i]->Join();
|
||||
}
|
||||
|
||||
cout << " ( DONE ) " << endl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//to compile: g++ -DMYROOT -DMYROOT1 -g `root-config --cflags --glibs` -o moenchReadDataMT moenchReadDataMT.C
|
||||
int main(int argc, char **argv){
|
||||
if(argc < 8){
|
||||
cout << "Usage: " << argv[0] << " fformat tit tdir runmin runoffset nThreads treeIndexStart [xTalkFactor]" << endl;
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
char *fformat = argv[1];
|
||||
char *tit = argv[2];
|
||||
char *tdir = argv[3];
|
||||
int runmin = atoi(argv[4]);
|
||||
int runoffset = atoi(argv[5]);
|
||||
int nThreads = atoi(argv[6]);
|
||||
int treeIndexStart = atoi(argv[7]);
|
||||
double xTalkFactor = 0.044;
|
||||
|
||||
if(argc == 9)
|
||||
xTalkFactor = atof(argv[8]);
|
||||
|
||||
moenchReadDataMT(fformat, tit, tdir,runmin,runoffset,nThreads,treeIndexStart, xTalkFactor);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user