Compare commits
No commits in common. "fc09dc9258ded8005e0cf9a0df2f02d3c0eeac51" and "c3bb28a1a2691a1626def4d6a9d634a9c1a106c3" have entirely different histories.
fc09dc9258
...
c3bb28a1a2
|
|
@ -5,20 +5,11 @@
|
|||
|
||||
#define MAXMULTI 1000
|
||||
|
||||
class Det
|
||||
{
|
||||
class Det
|
||||
{
|
||||
public:
|
||||
Det() : multi(0) { Clear(); }
|
||||
Det() : multi(0) { Clear(); }
|
||||
|
||||
unsigned short multi; // max 65535
|
||||
unsigned short id[MAXMULTI];
|
||||
unsigned short ch[MAXMULTI];
|
||||
unsigned short e[MAXMULTI];
|
||||
unsigned long long t[MAXMULTI];
|
||||
unsigned long long tf[MAXMULTI];
|
||||
unsigned short multi; // max 65535
|
||||
unsigned short id[MAXMULTI];
|
||||
unsigned short ch[MAXMULTI];
|
||||
|
|
@ -26,24 +17,16 @@ public:
|
|||
unsigned long long t[MAXMULTI];
|
||||
unsigned long long tf[MAXMULTI];
|
||||
|
||||
unsigned short sn[MAXMULTI];
|
||||
unsigned short digiCh[MAXMULTI];
|
||||
unsigned short sn[MAXMULTI];
|
||||
unsigned short digiCh[MAXMULTI];
|
||||
|
||||
unsigned short index[MAXMULTI]; // id * nCh + ch;
|
||||
bool used[MAXMULTI];
|
||||
unsigned short index[MAXMULTI]; // id * nCh + ch;
|
||||
bool used[MAXMULTI];
|
||||
|
||||
void Clear()
|
||||
{
|
||||
void Clear()
|
||||
{
|
||||
multi = 0;
|
||||
for (int i = 0; i < MAXMULTI; i++)
|
||||
{
|
||||
for (int i = 0; i < MAXMULTI; i++)
|
||||
{
|
||||
id[i] = 0;
|
||||
ch[i] = 0;
|
||||
|
|
@ -54,40 +37,24 @@ public:
|
|||
sn[i] = 0;
|
||||
digiCh[i] = 0;
|
||||
used[i] = false;
|
||||
e[i] = 0;
|
||||
t[i] = 0;
|
||||
tf[i] = 0;
|
||||
index[i] = 0;
|
||||
sn[i] = 0;
|
||||
digiCh[i] = 0;
|
||||
used[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
void Print()
|
||||
{
|
||||
void Print()
|
||||
{
|
||||
printf("=============================== multi : %u\n", multi);
|
||||
for (int i = 0; i < multi; i++)
|
||||
{
|
||||
printf(" %3d | %2d-%-2d(%5d) %5u %15llu %15llu \n", i, id[i], ch[i], index[i], e[i], t[i], tf[i]);
|
||||
printf(" %3d | %2d-%-2d(%5d) %5u %15llu \n", i, id[i], ch[i], index[i], e[i], t[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void SetDetDimension(unsigned short maxID, unsigned maxCh)
|
||||
{
|
||||
void SetDetDimension(unsigned short maxID, unsigned maxCh)
|
||||
{
|
||||
nID = maxID;
|
||||
nCh = maxCh;
|
||||
}
|
||||
|
||||
void CalIndex()
|
||||
{
|
||||
for (int i = 0; i < multi; i++)
|
||||
{
|
||||
index[i] = id[i] * nCh + ch[i];
|
||||
void CalIndex()
|
||||
{
|
||||
for (int i = 0; i < multi; i++)
|
||||
|
|
@ -102,4 +69,3 @@ private:
|
|||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -11,14 +11,12 @@
|
|||
#include "ClassDet.h"
|
||||
|
||||
//===============================
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int main(int argc, char **argv){
|
||||
|
||||
printf("=========================================\n");
|
||||
printf("=== Mapper ===\n");
|
||||
printf("=========================================\n");
|
||||
if (argc != 2)
|
||||
{
|
||||
if (argc != 2) {
|
||||
printf("Incorrect number of arguments:\n");
|
||||
printf("%s [inFile]\n", argv[0]);
|
||||
printf("\n\n");
|
||||
|
|
@ -79,6 +77,7 @@ int main(int argc, char **argv)
|
|||
TFile * saveFile = new TFile( outFileName,"RECREATE");
|
||||
TTree * newTree = new TTree("tree","tree");
|
||||
|
||||
|
||||
newTree->Branch("evID", &eventID,"eventID/l");
|
||||
newTree->Branch("run", &run,"run/i");
|
||||
|
||||
|
|
@ -108,14 +107,14 @@ int main(int argc, char **argv)
|
|||
newTree->Branch("miscT", &misc.t, "miscTime[miscMulti]/l");
|
||||
newTree->Branch("miscF", &misc.tf, "miscFineTime[miscMulti]/l");
|
||||
|
||||
|
||||
///================== looping old tree and apply mapping
|
||||
|
||||
//clock
|
||||
// TBenchmark clock;
|
||||
// Bool_t shown;
|
||||
|
||||
for (unsigned long long ev = 0; ev < totnumEntry; ev++)
|
||||
{
|
||||
for( unsigned long long ev = 0; ev < totnumEntry; ev++){
|
||||
tree->GetEntry(ev);
|
||||
|
||||
eventID = evID;
|
||||
|
|
@ -124,39 +123,31 @@ int main(int argc, char **argv)
|
|||
pc.multi = 0;
|
||||
misc.multi=0;
|
||||
|
||||
sx3.Clear();
|
||||
sx3.Clear();
|
||||
qqq.Clear();
|
||||
pc.Clear();
|
||||
misc.Clear();
|
||||
pc.Clear();
|
||||
misc.Clear();
|
||||
|
||||
for (unsigned int i = 0; i < multi; i++)
|
||||
{
|
||||
for( unsigned int i = 0; i < multi; i++){
|
||||
|
||||
// printf("%10u/%10u| %5d, %2u, %6u, %14llu\n", i, multi, sn[i], ch[i], e[i], e_t[i] );
|
||||
|
||||
//globalCh = digi-ID * nCh(digi-iD) + ch
|
||||
int globalCh = -1;
|
||||
|
||||
for (int j = 0; j < nBd; j++)
|
||||
{
|
||||
if (board.at(j) == sn[i])
|
||||
{
|
||||
for( int j = 0; j < nBd; j++){
|
||||
if( board.at(j) == sn[i]){
|
||||
globalCh = (sn[i] > 1000 ? j * 64 : 7*64 + (j-7) * 16) + ch[i]; //& = number V1740
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (globalCh == -1)
|
||||
printf("ev %llu\n", ev);
|
||||
if( globalCh == -1) printf("ev %llu\n", ev);
|
||||
|
||||
unsigned short ID = mapping[globalCh];
|
||||
|
||||
//=================================== sx3
|
||||
if (ID < 10000)
|
||||
{
|
||||
if( ID < 10000 ) {
|
||||
sx3.id[sx3.multi] = ID / 100;
|
||||
sx3.ch[sx3.multi] = ID % 100;
|
||||
sx3.e[sx3.multi] = e[i];
|
||||
|
|
@ -165,8 +156,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
//=================================== qqq
|
||||
if (10000 <= ID && ID < 20000)
|
||||
{
|
||||
if( 10000 <= ID && ID < 20000 ) {
|
||||
qqq.id[qqq.multi] = (ID - 10000) / 100;
|
||||
qqq.ch[qqq.multi] = (ID - 10000) % 100;
|
||||
qqq.e[qqq.multi] = e[i];
|
||||
|
|
@ -176,8 +166,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
//=================================== pc
|
||||
if (20000 <= ID && ID < 30000)
|
||||
{
|
||||
if( 20000 <= ID && ID < 30000 ) {
|
||||
pc.id[pc.multi] = (ID - 20000) / 100;
|
||||
pc.ch[pc.multi] = (ID - 20000) % 100;
|
||||
pc.e[pc.multi] = e[i];
|
||||
|
|
@ -186,8 +175,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
//=================================== misc
|
||||
if (30000 <= ID && ID < 40000)
|
||||
{
|
||||
if( 30000 <= ID && ID < 40000 ) {
|
||||
misc.id[misc.multi] = (ID - 30000) / 100;
|
||||
misc.ch[misc.multi] = (ID - 30000) % 100;
|
||||
misc.e[misc.multi] = e[i];
|
||||
|
|
@ -196,13 +184,14 @@ int main(int argc, char **argv)
|
|||
// if( ID == 30002 || ID == 30004 ) printf("sn : %d ch: %2d | gID %3d | ID %6d | e_f : %d\n", sn[i], ch[i], globalCh, ID, e_f[i]);
|
||||
misc.multi ++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
saveFile->cd(); //set focus on this file
|
||||
newTree->Fill();
|
||||
|
||||
if (eventID % 100 == 0)
|
||||
printf("%6lu/%6llu [%2d%%]\n\033[A\r", eventID, totnumEntry, TMath::Nint((eventID + 1) * 100. / totnumEntry));
|
||||
if( eventID % 100 == 0 ) printf("%6lu/%6llu [%2d%%]\n\033[A\r", eventID, totnumEntry, TMath::Nint((eventID+1)*100./totnumEntry));
|
||||
|
||||
}
|
||||
|
||||
inFile->Close();
|
||||
|
|
@ -214,4 +203,5 @@ int main(int argc, char **argv)
|
|||
printf("-------------- done, %u\n", eventNumber);
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
|
@ -13,26 +13,22 @@ timeWindow=$2
|
|||
option=$3
|
||||
|
||||
# rawFolder=/home/tandem/data1/2024_09_17Fap/data
|
||||
# rawFolder=/mnt/d/17F
|
||||
# rootFolder=/mnt/d/Remapped_files/17F_data/root_data
|
||||
# rawFolder=/mnt/data1/vs19g/2024_06_27Al_vs19g/data
|
||||
# rootFolder=/home/vs19g/Desktop/27Al_Data/root_data
|
||||
rawFolder=/mnt/data1/vs19g/2024_09_17Fap/data
|
||||
rootFolder=/home/vs19g/Desktop/17F_Data/root_data
|
||||
rawFolder=/mnt/d/17F
|
||||
rootFolder=/mnt/d/Remapped_files/17F_data/root_data
|
||||
|
||||
if [ $option -eq 0 ]; then
|
||||
|
||||
# rsync -auh --info=progress2 splitpole@128.186.111.223:/media/nvmeData/2024_09_17Fap/*.fsu /home/tandem/data1/2024_09_17Fap/data
|
||||
|
||||
fileList=`\ls -1 ${rawFolder}/*Run*_${runID}_*.fsu`
|
||||
fileList=`\ls -1 ${rawFolder}/*SourceRun_${runID}_*.fsu`
|
||||
|
||||
time ./EventBuilder ${timeWindow} 0 0 100000000 ${fileList}
|
||||
./EventBuilder ${timeWindow} 0 0 100000000 ${fileList}
|
||||
|
||||
outFile=${rawFolder}/*${runID}*${timeWindow}.root
|
||||
|
||||
mv -vf ${outFile} ${rootFolder}/.
|
||||
|
||||
time ./Mapper ${rootFolder}/*${runID}*${timeWindow}.root
|
||||
./Mapper ${rootFolder}/*${runID}*${timeWindow}.root
|
||||
fi
|
||||
|
||||
# root "processRun.C(\"${rootFolder}/Run_${runID}_mapped.root\")"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user