diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..74fae91 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,17 @@ +{ + "configurations": [ + { + "name": "splitpole", + "includePath": [ + "${workspaceFolder}/**", + "/home/splitpole/cern/root/**" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "gnu++17", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ec94e33 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "files.associations": { + "ryanScript.C": "cpp", + "ryanSelector.C": "cpp", + "array": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "string_view": "cpp", + "initializer_list": "cpp", + "span": "cpp", + "ApplyMapping.C": "cpp", + "script.C": "cpp" + } +} \ No newline at end of file diff --git a/ApplyMapping.C b/ApplyMapping.C new file mode 100644 index 0000000..b02c56a --- /dev/null +++ b/ApplyMapping.C @@ -0,0 +1,147 @@ +#define ApplyMapping_cxx + +#include "ApplyMapping.h" +#include +#include +#include +#include + +#include +#include + + +void ApplyMapping::Begin(TTree * /*tree*/){ + + TString option = GetOption(); + + run = option.Atoi(); + +} + +void ApplyMapping::SlaveBegin(TTree * /*tree*/){ + + TString option = GetOption(); + +} + +Bool_t ApplyMapping::Process(Long64_t entry){ + + b_event_ID->GetEntry(entry); + b_multi->GetEntry(entry); + b_sn->GetEntry(entry); + b_ch->GetEntry(entry); + b_e->GetEntry(entry); + b_e_t->GetEntry(entry); + + eventID = evID; + + // printf("======================== %llu, %u\n", evID, multi); + + sx3.multi = 0; + qqq.multi = 0; + pc.multi = 0; + + 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] ); + int globalCh = ch[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; + } + } + unsigned short ID = mapping[globalCh]; + + //=================================== sx3 + if( ID < 10000 ) { + + sx3.id[sx3.multi] = ID / 100; + sx3.ch[sx3.multi] = ID % 100; + sx3.e[sx3.multi] = e[i]; + sx3.t[sx3.multi] = e_t[i]; + sx3.multi ++; + + } + + //=================================== qqq + 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]; + qqq.t[qqq.multi] = e_t[i]; + + qqq.multi ++; + + } + + //=================================== pc + 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]; + pc.t[pc.multi] = e_t[i]; + + pc.multi ++; + } + + } + + //if(entry == 0 ) sx3.Print(); + + /************************************************************************/ + saveFile->cd(); //set focus on this file + newTree->Fill(); + newTree->Write(); + + printf("%6lu/%6u [%2d%%]\n\033[A\r", eventID, totnumEntry, TMath::Nint((eventID+1)*100./totnumEntry)); + + // clock.Stop("timer"); + // Double_t time = clock.GetRealTime("timer"); + // clock.Start("timer"); + + // if ( !shown ) { + // if (fmod(time, 10) < 1 ){ + // printf( "%10lu[%2d%%]|%3.0f min %5.2f sec | expect:%5.2f min\n", + // eventID, + // TMath::Nint((eventID+1)*100./totnumEntry), + // TMath::Floor(time/60.), time - TMath::Floor(time/60.)*60., + // totnumEntry*time/(eventID+1.)/60.); + // shown = true; + // } + // }else{ + // if (fmod(time, 10) > 9 ){ + // shown = false; + // } + // } + + + return kTRUE; +} + +void ApplyMapping::SlaveTerminate(){ + +} + +void ApplyMapping::Terminate(){ + + // Double_t time = clock.GetRealTime("timer"); + + // printf( "%10lu[%2d%%]|%3.0f min %5.2f sec | expect:%5.2f min\n", + // eventID, + // TMath::Nint((eventID+1)*100./totnumEntry), + // TMath::Floor(time/60.), time - TMath::Floor(time/60.)*60., + // totnumEntry*time/(eventID+1.)/60.); + // shown = true; + + saveFile->cd(); //set focus on this file + newTree->Write(); + + UInt_t eventNumber = newTree->GetEntries(); + + saveFile->Close(); + + printf("-------------- done, saved in %s, %u\n", saveFileName.Data(), eventNumber); + +} diff --git a/ApplyMapping.h b/ApplyMapping.h new file mode 100644 index 0000000..9e356b9 --- /dev/null +++ b/ApplyMapping.h @@ -0,0 +1,245 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Mon Jan 22 14:02:44 2024 by ROOT version 6.26/04 +// from TTree tree/pulsertest_018_10000_noTrace.root +// found on file: pulsertest_018_10000_noTrace.root +////////////////////////////////////////////////////////// + +#ifndef ApplyMapping_h +#define ApplyMapping_h + +#include +#include +#include +#include +#include +#include + +#include "mapping.h" + +#define MAXMULTI 1000 +// Header file for the classes stored in the TTree if any. + +class Det{ + +public: + Det(): multi(0) {Clear(); } + + UShort_t multi; + UShort_t id[MAXMULTI]; + UShort_t ch[MAXMULTI]; + UShort_t e[MAXMULTI]; + ULong64_t t[MAXMULTI]; + + void Clear(){ + + multi = 0; + for( int i = 0; i < MAXMULTI; i++){ + id[i] = 0; + ch[i] = 0; + e[i] = 0; + t[i] = 0; + } + + } + + void Print(){ + printf("=============================== multi : %u\n", multi); + for( int i = 0; i < multi; i++) { + printf(" %3d | %2d-%2d %5u %llu \n", i, id[i], ch[i], e[i], t[i]); + } + } + +}; + +class ApplyMapping : public TSelector { +public : + TChain *fChain; //!pointer to the analyzed TTree or TChain + + // Fixed size dimensions of array or collections stored in the TTree if any. + + // Declaration of leaf types + ULong64_t evID; + UInt_t multi; + UShort_t sn[MAXMULTI]; //[multi] + UShort_t ch[MAXMULTI]; //[multi] + UShort_t e[MAXMULTI]; //[multi] + UShort_t e2[MAXMULTI]; //[multi] + ULong64_t e_t[MAXMULTI]; //[multi] + UShort_t e_f[MAXMULTI]; //[multi] + + // List of branches + TBranch *b_event_ID; //! + TBranch *b_multi; //! + TBranch *b_sn; //! + TBranch *b_ch; //! + TBranch *b_e; //! + TBranch *b_e2; //! + TBranch *b_e_t; //! + TBranch *b_e_f; //! + + ApplyMapping(TTree * /*tree*/ =0) : fChain(0) { } + virtual ~ApplyMapping() { } + virtual Int_t Version() const { return 2; } + virtual void Begin(TTree *tree); + virtual void SlaveBegin(TTree *tree); + virtual void Init(TTree *tree); + virtual Bool_t Notify(); + virtual Bool_t Process(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } + virtual void SetOption(const char *option) { fOption = option; } + virtual void SetObject(TObject *obj) { fObject = obj; } + virtual void SetInputList(TList *input) { fInput = input; } + virtual TList *GetOutputList() const { return fOutput; } + virtual void SlaveTerminate(); + virtual void Terminate(); + + void SetRunID(UInt_t runID) { run = runID; } + + ClassDef(ApplyMapping,0); + + + //=============================== + TFile * saveFile; + TTree * newTree; + TString saveFileName; + int totnumEntry; // of original root + + //tree + ULong_t eventID; + UInt_t run; + + Det sx3; + Det qqq; + Det pc ; + + //clock + TBenchmark clock; + Bool_t shown; + +}; + +#endif + +#ifdef ApplyMapping_cxx +void ApplyMapping::Init(TTree *tree){ + + if (!tree) return; + + //====================================== + totnumEntry = tree->GetEntries(); + printf( "===================================== \n"); + printf( "====== total Entry : %d \n", totnumEntry); + printf( "===================================== \n"); + + + fChain = (TChain *) tree; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("evID", &evID, &b_event_ID); + fChain->SetBranchAddress("multi", &multi, &b_multi); + fChain->SetBranchAddress("sn", sn, &b_sn); + fChain->SetBranchAddress("ch", ch, &b_ch); + fChain->SetBranchAddress("e", e, &b_e); + fChain->SetBranchAddress("e2", e2, &b_e2); + fChain->SetBranchAddress("e_t", e_t, &b_e_t); + fChain->SetBranchAddress("e_f", e_f, &b_e_f); + + PrintMapping(); + + //================= Formation of file name + // TString expName = ""; + + // fChain->GetListOfFiles()->Print(); + // int numFile = fChain->GetListOfFiles()->GetLast() + 1; + // if( numFile > 0 ) { + // int oldRunNum = -100; + // bool contFlag = false; // is runNumber continue; + // for( int i = 0; i < numFile ; i++){ + // TString name = fChain->GetListOfFiles()->At(i)->GetTitle(); + + // TString prefix = name; + + // int found = name.Last('/'); + // found = name.Index("_", found+1); // find next "_" + // name.Remove(0, found+1); + // name.Remove(3); // name should be only runID + // int runNum = name.Atoi(); // this should give the 3 digit run number + + // if( i == 0 ) { + // int found = prefix.Last('/'); + // prefix.Remove(0, found+1); + // found = name.Index("_"); + // prefix.Remove(0, found+1); // this should give the expName; + // expName = prefix; + // saveFileName = expName + "_" + prefix + "_run"; + // } + + // if( runNum == oldRunNum + 1 ){ + // int kk = saveFileName.Sizeof(); + // if( contFlag == false ){ + // saveFileName.Remove(kk-2); //remove the "-" + // saveFileName += "-"; + // }else{ + // saveFileName.Remove(kk-5); //remove the runNum and "-" + // } + // contFlag = true; + // } + // if( runNum > oldRunNum + 1) contFlag = false; + + // saveFileName += Form("%03d_", runNum); + // oldRunNum = runNum; + // } + // int kk = saveFileName.Sizeof(); + // saveFileName.Remove(kk-2); // remove the last "-" + // saveFileName += ".root"; + // }else{ + // saveFileName.Form("%s_default.root", expName.Data()); + // } + saveFileName = "test.root"; + + printf("save file name : %s \n", saveFileName.Data()); + printf("---------------------------------------------\n"); + if( saveFileName == ".root" ) gROOT->ProcessLine(".q"); + + saveFile = new TFile( saveFileName,"recreate"); + + //====================== Create tree + newTree = new TTree("tree","tree"); + + eventID = 0; + run = 0; + sx3.Clear(); + qqq.Clear(); + pc.Clear(); + + newTree->Branch("eventID",&eventID,"eventID/l"); + newTree->Branch("run", &run,"run/i"); + + newTree->Branch("sx3Multi", &sx3.multi, "sx3Multi/s"); + newTree->Branch("sx3ID", &sx3.id, "sx3ID[sx3Multi]/s"); + newTree->Branch("sx3Ch", &sx3.ch, "sx3Ch[sx3Multi]/s"); + newTree->Branch("sx3E", &sx3.e, "sx3Energy[sx3Multi]/s"); + newTree->Branch("sx3T", &sx3.t, "sx3Time[sx3Multi]/l"); + + newTree->Branch("qqqMulti", &qqq.multi, "qqqMulti/s"); + newTree->Branch("qqqID", &qqq.id, "qqqID[qqqMulti]/s"); + newTree->Branch("qqqCh", &qqq.ch, "qqqCh[qqqMulti]/s"); + newTree->Branch("qqqE", &qqq.e, "qqqEnergy[qqqMulti]/s"); + newTree->Branch("qqqT", &qqq.t, "qqqTime[qqqMulti]/l"); + + newTree->Branch("pcMulti", &pc.multi, "pcMulti/s"); + newTree->Branch("pcID", &pc.id, "pcID[pcMulti]/s"); + newTree->Branch("pcCh", &pc.ch, "pcCh[pcMulti]/s"); + newTree->Branch("pcE", &pc.e, "pcEnergy[pcMulti]/s"); + newTree->Branch("pcT", &pc.t, "pcTime[pcMulti]/l"); + + shown = false; +} + +Bool_t ApplyMapping::Notify(){ + + return kTRUE; +} + +#endif // #ifdef ApplyMapping_cxx diff --git a/buildEvents.sh b/buildEvents.sh index bff5707..2e4a6a6 100755 --- a/buildEvents.sh +++ b/buildEvents.sh @@ -9,8 +9,11 @@ fi runID=$1 timeWindow=$2 -fileList=`\ls -1 ../*${runID}*.fsu` +rawFolder=/media/nvmeData/ANASEN_test +rootFoler=/media/nvmeData/ANASEN_test/root_data + +fileList=`\ls -1 ${rawFolder}/*${runID}*.fsu` ./EventBuilderNoTrace ${timeWindow} 0 ${fileList} -mv -vf ../*${runID}*${timeWindow}_noTrace.root . \ No newline at end of file +mv -vf ${rawFolder}/*${runID}*${timeWindow}_noTrace.root ${rootFoler}/. \ No newline at end of file diff --git a/mapping.h b/mapping.h new file mode 100644 index 0000000..8c307bd --- /dev/null +++ b/mapping.h @@ -0,0 +1,290 @@ +#ifndef Mapping_h +#define Mapping_h + +#include +#include +#include +#include +#include +#include +#include + +#include + +// class Hit{ + +// public: +// std::string label; +// unsigned short ch; +// double energy; +// unsigned long long timestamp; +// Hit() : label(""), ch(-1), energy(TMath::QuietNaN()), timestamp(0) {} + +// Hit(std::string label, unsigned short ch, double energy, unsigned long long timestamp){ +// this->label = label; +// this->ch = ch; +// this->energy = energy; +// this->timestamp = timestamp; +// } + +// }; + +const std::map board = { + {0, 17122}, // id, sn + {1, 17123}, + {2, 22320}, + {3, 22130}, + {4, 22129}, + {5, 15529}, + {6, 15528}, + {7, 379}, + {8, 409}, + {9, 405} +}; +const int nBd = board.size(); + +//+++++++++++++++++++ detID; +// The detectors are seperated into 2 type: SuperX3, QQQ, and PC +// the SuperX3 has 24 detectors for each kind, wach detector has 12 channels +// the QQQ has 4 detectors for each kind, each detector has 32 channels +// the PC has 2 types, anode and cathode, each has 24 channels +// The detID = Type * 10000 + index * 100 + channel +// fro example, detID(superX3-8, ch-7) = 00807 + + +// use the GenMapping() to get that +const std::vector mapping = { + + //================== 17122 + 206, 207, 204, 205, 203, 202, 201, 200, 406, 407, 404, 405, 403, 402, 401, 400, + 6, 7, 4, 5, 3, 2, 1, 0, 506, 507, 504, 505, 503, 502, 501, 500, + 111, 110, 109, 108, 211, 210, 209, 208, 311, 310, 309, 308, 411, 410, 409, 408, + 106, 107, 104, 105, 103, 102, 101, 100, 306, 307, 304, 305, 303, 302, 301, 300, + //================== 17123 + 606, 607, 604, 605, 603, 602, 601, 600, 1106, 1107, 1104, 1105, 1103, 1102, 1101, 1100, + 711, 710, 709, 708, 811, 810, 809, 808, 911, 910, 909, 908, 1011, 1010, 1009, 1008, + 706, 707, 704, 705, 703, 702, 701, 700, 906, 907, 904, 905, 903, 902, 901, 900, + 806, 807, 804, 805, 803, 802, 801, 800, 1006, 1007, 1004, 1005, 1003, 1002, 1001, 1000, + //================== 22320 + 1911, 1910, 1909, 1908, 2011, 2010, 2009, 2008, 2111, 2110, 2109, 2108, 2211, 2210, 2209, 2208, + 1906, 1907, 1904, 1905, 1903, 1902, 1901, 1900, 2106, 2107, 2104, 2105, 2103, 2102, 2101, 2100, + 1806, 1807, 1804, 1805, 1803, 1802, 1801, 1800, 2306, 2307, 2304, 2305, 2303, 2302, 2301, 2300, + 2006, 2007, 2004, 2005, 2003, 2002, 2001, 2000, 2206, 2207, 2204, 2205, 2203, 2202, 2201, 2200, + //================== 22130 + 1311, 1310, 1309, 1308, 1411, 1410, 1409, 1408, 1511, 1510, 1509, 1508, 1611, 1610, 1609, 1608, + 11, 10, 9, 8, 511, 510, 509, 508, 611, 610, 609, 608, 1111, 1110, 1109, 1108, + 1406, 1407, 1404, 1405, 1403, 1402, 1401, 1400, 1606, 1607, 1604, 1605, 1603, 1602, 1601, 1600, + 1306, 1307, 1304, 1305, 1303, 1302, 1301, 1300, 1506, 1507, 1504, 1505, 1503, 1502, 1501, 1500, + //================== 22129 + 10015, 10014, 10013, 10012, 10011, 10010, 10009, 10008, 10007, 10006, 10005, 10004, 10003, 10002, 10001, 10000, + 1206, 1207, 1204, 1205, 1203, 1202, 1201, 1200, 1706, 1707, 1704, 1705, 1703, 1702, 1701, 1700, + 10115, 10114, 10113, 10112, 10111, 10110, 10109, 10108, 10107, 10106, 10105, 10104, 10103, 10102, 10101, 10100, + 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, + //================== 15529 + 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, + 10215, 10214, 10213, 10212, 10211, 10210, 10209, 10208, 10207, 10206, 10205, 10204, 10203, 10202, 10201, 10200, + 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, + 10315, 10314, 10313, 10312, 10311, 10310, 10309, 10308, 10307, 10306, 10305, 10304, 10303, 10302, 10301, 10300, + //================== 15528 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + //================== 379 + 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, + //================== 409 + 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, + //================== 405 + 20100, 20101, 20102, 20103, 20104, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, 20113, 20114, 20115, + +}; + +void PrintMapping(){ + + int digiID = 0; + int count = 0; + printf("==================== ID-MAP: \n"); + printf("%11s|", ""); for(int i = 0 ; i < 16; i++ ) printf("%7d|", i); + printf("\n"); + for(int i = 0 ; i < 12 + 16*8; i++ ) printf("-"); + for(size_t i = 0 ; i < mapping.size(); i ++){ + if( (i) % 16 == 0 ) { + printf("\n"); + + if( digiID < nBd ){ + if( board.at(digiID) > 1000 ) { + if( count == 3 ) digiID ++; + if( i % 64 == 0 ) { + printf("%11d|", board.at(digiID)); + count = 0; + } + }else{ + if( count == 1 ) digiID ++; + if( i % 16 == 0 ) { + printf("%11d|", board.at(digiID)); + count = 0; + } + } + } + + if( count != 0) printf("%11s|", ""); + count ++; + } + + int typeID = mapping[i] / 10000; + int detID = (mapping[i] - typeID*10000 )/100; + int ch = mapping[i] - typeID*10000 - detID * 100; + + if( mapping[i] == -1 ) { + + printf("%7s|", ""); + + }else{ + + if( typeID == 0){ // SX3 + + printf("\033[36m%3d(%2d)\033[0m|", detID, ch); + + }else if( typeID == 1){ // QQQ + + printf("\033[91m%3d(%2d)\033[0m|", detID, ch); + + }else if( typeID == 2){ // PC + + printf("\033[35m%3d(%2d)\033[0m|", detID, ch); + + }else{ + + + } + } + } + printf("\n"); + for(int i = 0 ; i < 12 + 16*8; i++ ) printf("-"); + printf("\n"); + +} + + +void GenMapping(std::string mapFile){ + + + std::vector map; + + + std::ifstream inputFile(mapFile); // Replace "your_file.txt" with the actual file path + + if (!inputFile.is_open()) { + printf("Error: Could not open the file (%s).\n", mapFile.c_str()); + return ; + } + + std::string line; + + // Read the file line by line + while (std::getline(inputFile, line)) { + std::vector words; + std::istringstream iss(line); + + // Extract words from the current line + while (true) { + std::string word; + if (!(iss >> word)) break; // Break if there are no more words + + word.erase(std::remove_if(word.begin(), word.end(), ::isspace), word.end()); + words.push_back(word); + + } + + if( atoi(words[0].c_str()) % 16 == 0 ) printf("=================\n"); + + for( size_t i = 0; i < words.size(); i++) printf("|%9s", words[i].c_str()); + + int detID = atoi(words[1].c_str())*100; + + if( words[2] == "BARREL" ) { + if( words[3] == "FRONTDOWN" ){ + int chID = atoi(words[4].c_str()); + if( chID % 2 != 0 ) chID -= 1; + detID += chID; + } + + if( words[3] == "FRONTUP" ){ + int chID = atoi(words[4].c_str()); + if( chID % 2 == 0 ) chID += 1; + detID += chID; + } + + if( words[3] == "BACK") detID += atoi(words[4].c_str()) + 8; + } + + if( words[2] == "FQQQ" ) { + detID += 10000; + if( words[3] == "WEDGE") detID += atoi(words[4].c_str()); + if( words[3] == "RING") detID += atoi(words[4].c_str()) + 16; + } + + if( words[2] == "PC" ) { + detID += 20000; + if( words[3] == "ANODE") detID += atoi(words[4].c_str()); + if( words[3] == "CATHODE") detID += 100 + atoi(words[4].c_str()); + + } + + if( words[2] == "blank") { + detID = -1; + } + + map.push_back(detID); + + printf("| %5d", detID); + printf("|\n"); + } + + // Close the file + inputFile.close(); + + int digiID = 0; + int count = 0; + printf("===============================\n"); + for( size_t i = 0; i < ((map.size() +15)/16) * 16; i++){ + if( i % 16 == 0) { + printf("\n"); + if( digiID < nBd ){ + if( board.at(digiID) > 1000 ) { + if( count == 3 ) digiID ++; + if( i % 64 == 0 ) { + printf(" //================== %d\n", board.at(digiID)); + count = 0; + } + }else{ + if( count == 1 ) digiID ++; + if( i % 16 == 0 ) { + printf(" //================== %d\n", board.at(digiID)); + count = 0; + } + } + } + count ++; + } + if( i < map.size() ){ + printf(" %5d,", map[i]); + }else{ + printf(" %5d,", -1); + } + } + printf("\n\n===============================\n"); + + printf("sorting mapping and see if there any repeated\n"); + std::sort(map.begin(), map.end()); + + for( size_t i = 1; i < map.size(); i++){ + if( map[i] == -1 ) continue; + if( map[i] == map[i-1] ) printf("%5d \n", map[i]); + } + printf("=========== Done. if nothing show, no repeat. \n"); + + +} + +#endif \ No newline at end of file diff --git a/mapping_old.txt b/mapping_old.txt new file mode 100644 index 0000000..7148494 --- /dev/null +++ b/mapping_old.txt @@ -0,0 +1,496 @@ + 0 2 BARREL FRONTDOWN 7 + 1 2 BARREL FRONTUP 6 + 2 2 BARREL FRONTDOWN 5 + 3 2 BARREL FRONTUP 4 + 4 2 BARREL FRONTUP 3 + 5 2 BARREL FRONTDOWN 2 + 6 2 BARREL FRONTUP 1 + 7 2 BARREL FRONTDOWN 0 + 8 4 BARREL FRONTDOWN 7 + 9 4 BARREL FRONTUP 6 + 10 4 BARREL FRONTDOWN 5 + 11 4 BARREL FRONTUP 4 + 12 4 BARREL FRONTUP 3 + 13 4 BARREL FRONTDOWN 2 + 14 4 BARREL FRONTUP 1 + 15 4 BARREL FRONTDOWN 0 + 16 0 BARREL FRONTDOWN 7 + 17 0 BARREL FRONTUP 6 + 18 0 BARREL FRONTDOWN 5 + 19 0 BARREL FRONTUP 4 + 20 0 BARREL FRONTUP 3 + 21 0 BARREL FRONTDOWN 2 + 22 0 BARREL FRONTUP 1 + 23 0 BARREL FRONTDOWN 0 + 24 5 BARREL FRONTDOWN 7 + 25 5 BARREL FRONTUP 6 + 26 5 BARREL FRONTDOWN 5 + 27 5 BARREL FRONTUP 4 + 28 5 BARREL FRONTUP 3 + 29 5 BARREL FRONTDOWN 2 + 30 5 BARREL FRONTUP 1 + 31 5 BARREL FRONTDOWN 0 + 32 1 BARREL BACK 3 + 33 1 BARREL BACK 2 + 34 1 BARREL BACK 1 + 35 1 BARREL BACK 0 + 36 2 BARREL BACK 3 + 37 2 BARREL BACK 2 + 38 2 BARREL BACK 1 + 39 2 BARREL BACK 0 + 40 3 BARREL BACK 3 + 41 3 BARREL BACK 2 + 42 3 BARREL BACK 1 + 43 3 BARREL BACK 0 + 44 4 BARREL BACK 3 + 45 4 BARREL BACK 2 + 46 4 BARREL BACK 1 + 47 4 BARREL BACK 0 + 48 1 BARREL FRONTDOWN 7 + 49 1 BARREL FRONTUP 6 + 50 1 BARREL FRONTDOWN 5 + 51 1 BARREL FRONTUP 4 + 52 1 BARREL FRONTUP 3 + 53 1 BARREL FRONTDOWN 2 + 54 1 BARREL FRONTUP 1 + 55 1 BARREL FRONTDOWN 0 + 56 3 BARREL FRONTDOWN 7 + 57 3 BARREL FRONTUP 6 + 58 3 BARREL FRONTDOWN 5 + 59 3 BARREL FRONTUP 4 + 60 3 BARREL FRONTUP 3 + 61 3 BARREL FRONTDOWN 2 + 62 3 BARREL FRONTUP 1 + 63 3 BARREL FRONTDOWN 0 + 64 6 BARREL FRONTDOWN 7 + 65 6 BARREL FRONTUP 6 + 66 6 BARREL FRONTDOWN 5 + 67 6 BARREL FRONTUP 4 + 68 6 BARREL FRONTUP 3 + 69 6 BARREL FRONTDOWN 2 + 70 6 BARREL FRONTUP 1 + 71 6 BARREL FRONTDOWN 0 + 72 11 BARREL FRONTDOWN 7 + 73 11 BARREL FRONTUP 6 + 74 11 BARREL FRONTDOWN 5 + 75 11 BARREL FRONTUP 4 + 76 11 BARREL FRONTUP 3 + 77 11 BARREL FRONTDOWN 2 + 78 11 BARREL FRONTUP 1 + 79 11 BARREL FRONTDOWN 0 + 80 7 BARREL BACK 3 + 81 7 BARREL BACK 2 + 82 7 BARREL BACK 1 + 83 7 BARREL BACK 0 + 84 8 BARREL BACK 3 + 85 8 BARREL BACK 2 + 86 8 BARREL BACK 1 + 87 8 BARREL BACK 0 + 88 9 BARREL BACK 3 + 89 9 BARREL BACK 2 + 90 9 BARREL BACK 1 + 91 9 BARREL BACK 0 + 92 10 BARREL BACK 3 + 93 10 BARREL BACK 2 + 94 10 BARREL BACK 1 + 95 10 BARREL BACK 0 + 96 7 BARREL FRONTDOWN 7 + 97 7 BARREL FRONTUP 6 + 98 7 BARREL FRONTDOWN 5 + 99 7 BARREL FRONTUP 4 +100 7 BARREL FRONTUP 3 +101 7 BARREL FRONTDOWN 2 +102 7 BARREL FRONTUP 1 +103 7 BARREL FRONTDOWN 0 +104 9 BARREL FRONTDOWN 7 +105 9 BARREL FRONTUP 6 +106 9 BARREL FRONTDOWN 5 +107 9 BARREL FRONTUP 4 +108 9 BARREL FRONTUP 3 +109 9 BARREL FRONTDOWN 2 +110 9 BARREL FRONTUP 1 +111 9 BARREL FRONTDOWN 0 +112 8 BARREL FRONTDOWN 7 +113 8 BARREL FRONTUP 6 +114 8 BARREL FRONTDOWN 5 +115 8 BARREL FRONTUP 4 +116 8 BARREL FRONTUP 3 +117 8 BARREL FRONTDOWN 2 +118 8 BARREL FRONTUP 1 +119 8 BARREL FRONTDOWN 0 +120 10 BARREL FRONTDOWN 7 +121 10 BARREL FRONTUP 6 +122 10 BARREL FRONTDOWN 5 +123 10 BARREL FRONTUP 4 +124 10 BARREL FRONTUP 3 +125 10 BARREL FRONTDOWN 2 +126 10 BARREL FRONTUP 1 +127 10 BARREL FRONTDOWN 0 +128 19 BARREL BACK 3 +129 19 BARREL BACK 2 +130 19 BARREL BACK 1 +131 19 BARREL BACK 0 +132 20 BARREL BACK 3 +133 20 BARREL BACK 2 +134 20 BARREL BACK 1 +135 20 BARREL BACK 0 +136 21 BARREL BACK 3 +137 21 BARREL BACK 2 +138 21 BARREL BACK 1 +139 21 BARREL BACK 0 +140 22 BARREL BACK 3 +141 22 BARREL BACK 2 +142 22 BARREL BACK 1 +143 22 BARREL BACK 0 +144 19 BARREL FRONTDOWN 7 +145 19 BARREL FRONTUP 6 +146 19 BARREL FRONTDOWN 5 +147 19 BARREL FRONTUP 4 +148 19 BARREL FRONTUP 3 +149 19 BARREL FRONTDOWN 2 +150 19 BARREL FRONTUP 1 +151 19 BARREL FRONTDOWN 0 +152 21 BARREL FRONTDOWN 7 +153 21 BARREL FRONTUP 6 +154 21 BARREL FRONTDOWN 5 +155 21 BARREL FRONTUP 4 +156 21 BARREL FRONTUP 3 +157 21 BARREL FRONTDOWN 2 +158 21 BARREL FRONTUP 1 +159 21 BARREL FRONTDOWN 0 +160 18 BARREL FRONTDOWN 7 +161 18 BARREL FRONTUP 6 +162 18 BARREL FRONTDOWN 5 +163 18 BARREL FRONTUP 4 +164 18 BARREL FRONTUP 3 +165 18 BARREL FRONTDOWN 2 +166 18 BARREL FRONTUP 1 +167 18 BARREL FRONTDOWN 0 +168 23 BARREL FRONTDOWN 7 +169 23 BARREL FRONTUP 6 +170 23 BARREL FRONTDOWN 5 +171 23 BARREL FRONTUP 4 +172 23 BARREL FRONTUP 3 +173 23 BARREL FRONTDOWN 2 +174 23 BARREL FRONTUP 1 +175 23 BARREL FRONTDOWN 0 +176 20 BARREL FRONTDOWN 7 +177 20 BARREL FRONTUP 6 +178 20 BARREL FRONTDOWN 5 +179 20 BARREL FRONTUP 4 +180 20 BARREL FRONTUP 3 +181 20 BARREL FRONTDOWN 2 +182 20 BARREL FRONTUP 1 +183 20 BARREL FRONTDOWN 0 +184 22 BARREL FRONTDOWN 7 +185 22 BARREL FRONTUP 6 +186 22 BARREL FRONTDOWN 5 +187 22 BARREL FRONTUP 4 +188 22 BARREL FRONTUP 3 +189 22 BARREL FRONTDOWN 2 +190 22 BARREL FRONTUP 1 +191 22 BARREL FRONTDOWN 0 +192 13 BARREL BACK 3 +193 13 BARREL BACK 2 +194 13 BARREL BACK 1 +195 13 BARREL BACK 0 +196 14 BARREL BACK 3 +197 14 BARREL BACK 2 +198 14 BARREL BACK 1 +199 14 BARREL BACK 0 +200 15 BARREL BACK 3 +201 15 BARREL BACK 2 +202 15 BARREL BACK 1 +203 15 BARREL BACK 0 +204 16 BARREL BACK 3 +205 16 BARREL BACK 2 +206 16 BARREL BACK 1 +207 16 BARREL BACK 0 +208 0 BARREL BACK 3 +209 0 BARREL BACK 2 +210 0 BARREL BACK 1 +211 0 BARREL BACK 0 +212 5 BARREL BACK 3 +213 5 BARREL BACK 2 +214 5 BARREL BACK 1 +215 5 BARREL BACK 0 +216 6 BARREL BACK 3 +217 6 BARREL BACK 2 +218 6 BARREL BACK 1 +219 6 BARREL BACK 0 +220 11 BARREL BACK 3 +221 11 BARREL BACK 2 +222 11 BARREL BACK 1 +223 11 BARREL BACK 0 +224 14 BARREL FRONTDOWN 7 +225 14 BARREL FRONTUP 6 +226 14 BARREL FRONTDOWN 5 +227 14 BARREL FRONTUP 4 +228 14 BARREL FRONTUP 3 +229 14 BARREL FRONTDOWN 2 +230 14 BARREL FRONTUP 1 +231 14 BARREL FRONTDOWN 0 +232 16 BARREL FRONTDOWN 7 +233 16 BARREL FRONTUP 6 +234 16 BARREL FRONTDOWN 5 +235 16 BARREL FRONTUP 4 +236 16 BARREL FRONTUP 3 +237 16 BARREL FRONTDOWN 2 +238 16 BARREL FRONTUP 1 +239 16 BARREL FRONTDOWN 0 +240 13 BARREL FRONTDOWN 7 +241 13 BARREL FRONTUP 6 +242 13 BARREL FRONTDOWN 5 +243 13 BARREL FRONTUP 4 +244 13 BARREL FRONTUP 3 +245 13 BARREL FRONTDOWN 2 +246 13 BARREL FRONTUP 1 +247 13 BARREL FRONTDOWN 0 +248 15 BARREL FRONTDOWN 7 +249 15 BARREL FRONTUP 6 +250 15 BARREL FRONTDOWN 5 +251 15 BARREL FRONTUP 4 +252 15 BARREL FRONTUP 3 +253 15 BARREL FRONTDOWN 2 +254 15 BARREL FRONTUP 1 +255 15 BARREL FRONTDOWN 0 +256 0 FQQQ WEDGE 15 +257 0 FQQQ WEDGE 14 +258 0 FQQQ WEDGE 13 +259 0 FQQQ WEDGE 12 +260 0 FQQQ WEDGE 11 +261 0 FQQQ WEDGE 10 +262 0 FQQQ WEDGE 9 +263 0 FQQQ WEDGE 8 +264 0 FQQQ WEDGE 7 +265 0 FQQQ WEDGE 6 +266 0 FQQQ WEDGE 5 +267 0 FQQQ WEDGE 4 +268 0 FQQQ WEDGE 3 +269 0 FQQQ WEDGE 2 +270 0 FQQQ WEDGE 1 +271 0 FQQQ WEDGE 0 +272 12 BARREL FRONTDOWN 7 +273 12 BARREL FRONTUP 6 +274 12 BARREL FRONTDOWN 5 +275 12 BARREL FRONTUP 4 +276 12 BARREL FRONTUP 3 +277 12 BARREL FRONTDOWN 2 +278 12 BARREL FRONTUP 1 +279 12 BARREL FRONTDOWN 0 +280 17 BARREL FRONTDOWN 7 +281 17 BARREL FRONTUP 6 +282 17 BARREL FRONTDOWN 5 +283 17 BARREL FRONTUP 4 +284 17 BARREL FRONTUP 3 +285 17 BARREL FRONTDOWN 2 +286 17 BARREL FRONTUP 1 +287 17 BARREL FRONTDOWN 0 +288 1 FQQQ WEDGE 15 +289 1 FQQQ WEDGE 14 +290 1 FQQQ WEDGE 13 +291 1 FQQQ WEDGE 12 +292 1 FQQQ WEDGE 11 +293 1 FQQQ WEDGE 10 +294 1 FQQQ WEDGE 9 +295 1 FQQQ WEDGE 8 +296 1 FQQQ WEDGE 7 +297 1 FQQQ WEDGE 6 +298 1 FQQQ WEDGE 5 +299 1 FQQQ WEDGE 4 +300 1 FQQQ WEDGE 3 +301 1 FQQQ WEDGE 2 +302 1 FQQQ WEDGE 1 +303 1 FQQQ WEDGE 0 +304 1 FQQQ RING 0 +305 1 FQQQ RING 1 +306 1 FQQQ RING 2 +307 1 FQQQ RING 3 +308 1 FQQQ RING 4 +309 1 FQQQ RING 5 +310 1 FQQQ RING 6 +311 1 FQQQ RING 7 +312 1 FQQQ RING 8 +313 1 FQQQ RING 9 +314 1 FQQQ RING 10 +315 1 FQQQ RING 11 +316 1 FQQQ RING 12 +317 1 FQQQ RING 13 +318 1 FQQQ RING 14 +319 1 FQQQ RING 15 +320 0 FQQQ RING 0 +321 0 FQQQ RING 1 +322 0 FQQQ RING 2 +323 0 FQQQ RING 3 +324 0 FQQQ RING 4 +325 0 FQQQ RING 5 +326 0 FQQQ RING 6 +327 0 FQQQ RING 7 +328 0 FQQQ RING 8 +329 0 FQQQ RING 9 +330 0 FQQQ RING 10 +331 0 FQQQ RING 11 +332 0 FQQQ RING 12 +333 0 FQQQ RING 13 +334 0 FQQQ RING 14 +335 0 FQQQ RING 15 +336 2 FQQQ WEDGE 15 +337 2 FQQQ WEDGE 14 +338 2 FQQQ WEDGE 13 +339 2 FQQQ WEDGE 12 +340 2 FQQQ WEDGE 11 +341 2 FQQQ WEDGE 10 +342 2 FQQQ WEDGE 9 +343 2 FQQQ WEDGE 8 +344 2 FQQQ WEDGE 7 +345 2 FQQQ WEDGE 6 +346 2 FQQQ WEDGE 5 +347 2 FQQQ WEDGE 4 +348 2 FQQQ WEDGE 3 +349 2 FQQQ WEDGE 2 +350 2 FQQQ WEDGE 1 +351 2 FQQQ WEDGE 0 +352 2 FQQQ RING 0 +353 2 FQQQ RING 1 +354 2 FQQQ RING 2 +355 2 FQQQ RING 3 +356 2 FQQQ RING 4 +357 2 FQQQ RING 5 +358 2 FQQQ RING 6 +359 2 FQQQ RING 7 +360 2 FQQQ RING 8 +361 2 FQQQ RING 9 +362 2 FQQQ RING 10 +363 2 FQQQ RING 11 +364 2 FQQQ RING 12 +365 2 FQQQ RING 13 +366 2 FQQQ RING 14 +367 2 FQQQ RING 15 +368 3 FQQQ WEDGE 15 +369 3 FQQQ WEDGE 14 +370 3 FQQQ WEDGE 13 +371 3 FQQQ WEDGE 12 +372 3 FQQQ WEDGE 11 +373 3 FQQQ WEDGE 10 +374 3 FQQQ WEDGE 9 +375 3 FQQQ WEDGE 8 +376 3 FQQQ WEDGE 7 +377 3 FQQQ WEDGE 6 +378 3 FQQQ WEDGE 5 +379 3 FQQQ WEDGE 4 +380 3 FQQQ WEDGE 3 +381 3 FQQQ WEDGE 2 +382 3 FQQQ WEDGE 1 +383 3 FQQQ WEDGE 0 +384 0 blank blank 0 +385 0 blank blank 1 +386 0 blank blank 2 +387 0 blank blank 3 +388 0 blank blank 4 +389 0 blank blank 5 +390 0 blank blank 6 +391 0 blank blank 7 +392 0 blank blank 8 +393 0 blank blank 9 +394 0 blank blank 10 +395 0 blank blank 11 +396 0 blank blank 12 +397 0 blank blank 13 +398 0 blank blank 14 +399 0 blank blank 15 +400 3 FQQQ RING 0 +401 3 FQQQ RING 1 +402 3 FQQQ RING 2 +403 3 FQQQ RING 3 +404 3 FQQQ RING 4 +405 3 FQQQ RING 5 +406 3 FQQQ RING 6 +407 3 FQQQ RING 7 +408 3 FQQQ RING 8 +409 3 FQQQ RING 9 +410 3 FQQQ RING 10 +411 3 FQQQ RING 11 +412 3 FQQQ RING 12 +413 3 FQQQ RING 13 +414 3 FQQQ RING 14 +415 3 FQQQ RING 15 +416 0 blank blank 0 +417 0 blank blank 1 +418 0 blank blank 2 +419 0 blank blank 3 +420 0 blank blank 4 +421 0 blank blank 5 +422 0 blank blank 6 +423 0 blank blank 7 +424 0 blank blank 8 +425 0 blank blank 9 +426 0 blank blank 10 +427 0 blank blank 11 +428 0 blank blank 12 +429 0 blank blank 13 +430 0 blank blank 14 +431 0 blank blank 15 +432 0 blank blank 0 +433 0 blank blank 1 +434 0 blank blank 2 +435 0 blank blank 3 +436 0 blank blank 4 +437 0 blank blank 5 +438 0 blank blank 6 +439 0 blank blank 7 +440 0 blank blank 8 +441 0 blank blank 9 +442 0 blank blank 10 +443 0 blank blank 11 +444 0 blank blank 12 +445 0 blank blank 13 +446 0 blank blank 14 +447 0 blank blank 15 +448 0 PC CATHODE 16 +449 0 PC CATHODE 17 +450 0 PC CATHODE 18 +451 0 PC CATHODE 19 +452 0 PC CATHODE 20 +453 0 PC CATHODE 21 +454 0 PC CATHODE 22 +455 0 PC CATHODE 23 +457 0 PC ANODE 16 +458 0 PC ANODE 17 +459 0 PC ANODE 18 +460 0 PC ANODE 19 +461 0 PC ANODE 20 +462 0 PC ANODE 21 +463 0 PC ANODE 22 +464 0 PC ANODE 23 +465 0 PC ANODE 0 +466 0 PC ANODE 1 +467 0 PC ANODE 2 +468 0 PC ANODE 3 +469 0 PC ANODE 4 +470 0 PC ANODE 5 +471 0 PC ANODE 6 +472 0 PC ANODE 7 +473 0 PC ANODE 8 +474 0 PC ANODE 9 +475 0 PC ANODE 10 +476 0 PC ANODE 11 +477 0 PC ANODE 12 +478 0 PC ANODE 13 +479 0 PC ANODE 14 +480 0 PC ANODE 15 +481 0 PC CATHODE 0 +482 0 PC CATHODE 1 +483 0 PC CATHODE 2 +484 0 PC CATHODE 3 +485 0 PC CATHODE 4 +486 0 PC CATHODE 5 +487 0 PC CATHODE 6 +488 0 PC CATHODE 7 +489 0 PC CATHODE 8 +490 0 PC CATHODE 9 +491 0 PC CATHODE 10 +492 0 PC CATHODE 11 +493 0 PC CATHODE 12 +494 0 PC CATHODE 13 +495 0 PC CATHODE 14 +496 0 PC CATHODE 15 \ No newline at end of file diff --git a/ryanSelector.C b/ryanSelector.C deleted file mode 100644 index d338b62..0000000 --- a/ryanSelector.C +++ /dev/null @@ -1,57 +0,0 @@ -#define ryanSelector_cxx - -#include "ryanSelector.h" -#include -#include -#include -#include - -#include -#include - -const std::map board = { - {0, 17122}, // id, sn - {1, 17123}, - {2, 22320}, - {3, 22130}, - {4, 22129}, - {5, 15529}, - {6, 15528}, - {7, 379}, - {8, 409}, - {9, 405} -}; -const int nBd = board.size(); - - -void ryanSelector::Begin(TTree * /*tree*/){ - - TString option = GetOption(); - - -} - -void ryanSelector::SlaveBegin(TTree * /*tree*/){ - - TString option = GetOption(); - -} - -Bool_t ryanSelector::Process(Long64_t entry){ - - b_sn->GetEntry(entry); - b_e_t->GetEntry(entry); - - - return kTRUE; -} - -void ryanSelector::SlaveTerminate(){ - -} - -void ryanSelector::Terminate(){ - - // TCanvas * canvas = new TCanvas("c1", "c1", 800, 600); - -} diff --git a/ryanSelector.h b/ryanSelector.h deleted file mode 100644 index 10b3b98..0000000 --- a/ryanSelector.h +++ /dev/null @@ -1,130 +0,0 @@ -////////////////////////////////////////////////////////// -// This class has been automatically generated on -// Mon Jan 22 14:02:44 2024 by ROOT version 6.26/04 -// from TTree tree/pulsertest_018_10000_noTrace.root -// found on file: pulsertest_018_10000_noTrace.root -////////////////////////////////////////////////////////// - -#ifndef ryanSelector_h -#define ryanSelector_h - -#include -#include -#include -#include -#include - -#define MAXMULTI 500 -// Header file for the classes stored in the TTree if any. - -class ryanSelector : public TSelector { -public : - TTree *fChain; //!pointer to the analyzed TTree or TChain - -// Fixed size dimensions of array or collections stored in the TTree if any. - - // Declaration of leaf types - ULong64_t evID; - UInt_t multi; - UShort_t sn[MAXMULTI]; //[multi] - UShort_t ch[MAXMULTI]; //[multi] - UShort_t e[MAXMULTI]; //[multi] - UShort_t e2[MAXMULTI]; //[multi] - ULong64_t e_t[MAXMULTI]; //[multi] - UShort_t e_f[MAXMULTI]; //[multi] - - // List of branches - TBranch *b_event_ID; //! - TBranch *b_multi; //! - TBranch *b_sn; //! - TBranch *b_ch; //! - TBranch *b_e; //! - TBranch *b_e2; //! - TBranch *b_e_t; //! - TBranch *b_e_f; //! - - ryanSelector(TTree * /*tree*/ =0) : fChain(0) { } - virtual ~ryanSelector() { } - virtual Int_t Version() const { return 2; } - virtual void Begin(TTree *tree); - virtual void SlaveBegin(TTree *tree); - virtual void Init(TTree *tree); - virtual Bool_t Notify(); - virtual Bool_t Process(Long64_t entry); - virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0) { return fChain ? fChain->GetTree()->GetEntry(entry, getall) : 0; } - virtual void SetOption(const char *option) { fOption = option; } - virtual void SetObject(TObject *obj) { fObject = obj; } - virtual void SetInputList(TList *input) { fInput = input; } - virtual TList *GetOutputList() const { return fOutput; } - virtual void SlaveTerminate(); - virtual void Terminate(); - - ClassDef(ryanSelector,0); - - - //=============================== - TFile * saveFile; - TTree * newTree; - TString saveFileName; - int totnumEntry; // of original root - - //tree - ULong_t eventID; - UShort_t run; - UInt_t multi; - UShort_t snC[MAXMULTI]; - UShort_t chC[MAXMULTI]; - Float_t eC[MAXMULTI]; - ULong64_t eC_t[MAXMULTI]; - -}; - -#endif - -#ifdef ryanSelector_cxx -void ryanSelector::Init(TTree *tree){ - - if (!tree) return; - - //====================================== - totnumEntry = tree->GetEntries(); - printf( "===================================== \n"); - printf( "====== total Entry : %d \n", totnumEntry); - printf( "===================================== \n"); - - - fChain = tree; - fChain->SetMakeClass(1); - - fChain->SetBranchAddress("evID", &evID, &b_event_ID); - fChain->SetBranchAddress("multi", &multi, &b_multi); - fChain->SetBranchAddress("sn", sn, &b_sn); - fChain->SetBranchAddress("ch", ch, &b_ch); - fChain->SetBranchAddress("e", e, &b_e); - fChain->SetBranchAddress("e2", e2, &b_e2); - fChain->SetBranchAddress("e_t", e_t, &b_e_t); - fChain->SetBranchAddress("e_f", e_f, &b_e_f); - - - - //====================== Create tree - newTree = new TTree("tree","tree"); - - eventID = -1; - run = 0; - - newTree->Branch("eventID",&eventID,"eventID/l"); - newTree->Branch("run", &run,"run/i"); - newTree->Branch("mutli", &multi,"mutli/s"); - newTree->Branch("sn" , snC, "sn/s"); - newTree->Branch("ch" , chC, "ch/s"); - newTree->Branch("e" , eC, "energy/F"); - newTree->Branch("e_t" , eC_t, "timestamp/l"); -} - -Bool_t ryanSelector::Notify(){ - - return kTRUE; -} - -#endif // #ifdef ryanSelector_cxx diff --git a/ryanScript.C b/script.C similarity index 97% rename from ryanScript.C rename to script.C index 9ce03b4..c7bbb4d 100644 --- a/ryanScript.C +++ b/script.C @@ -3,9 +3,12 @@ #include #include #include +#include #include #include +#include "mapping.h" + class PulserChecker { public: PulserChecker(int sn) : SN(sn){ @@ -66,7 +69,7 @@ private: }; -void ryanScript(TString fileName, int maxEvent = -1){ +void script(TString fileName, int maxEvent = -1){ /* //+++++++++++++++++++++++++++++++++++++++++++ @@ -145,8 +148,8 @@ void ryanScript(TString fileName, int maxEvent = -1){ file0->Close(); f1->Close(); */ + /* //+++++++++++++++++++++++++++++++++++++++++++ - printf("######### file : %s \n", fileName.Data()); TFile * file0 = new TFile(fileName); @@ -232,7 +235,8 @@ void ryanScript(TString fileName, int maxEvent = -1){ for( int i = 0; i< nBd; i++){ printf(" %5d | %16llu \n", stat[i]->getSN(), stat[i]->getTime0() - time0); } - + */ + //+++++++++++++++++++++++++++++++++++++++++++ } \ No newline at end of file