////////////////////////////////////////////////////////// // This class has been automatically generated on // Thu Jul 1 12:40:30 2021 by ROOT version 6.22/06 // from TTree calAnalyzerTree/SiPM/FEB channel calibration data // found on file: ftest.root ////////////////////////////////////////////////////////// #ifndef calAnalyzerTree_h #define calAnalyzerTree_h #define DEBUG_sim 0 #include #include #include #include // Header file for the classes stored in the TTree if any. class calAnalyzerTree { public : TTree *fChain; //!pointer to the analyzed TTree or TChain Int_t fCurrent; //!current Tree number in a TChain // Fixed size dimensions of array or collections stored in the TTree if any. // Declaration of leaf types UChar_t mac5; Bool_t active[32]; Float_t gain[32]; Float_t gainErr[32]; Float_t gainXsqr[32]; UShort_t gainNdf[32]; Float_t gainPed[32]; Float_t gainPedErr[32]; UShort_t nPeak[32]; Float_t peakXsqr[32][5]; UShort_t peakNdf[32][5]; Float_t peakMean[32][5]; Float_t peakMeanErr[32][5]; Float_t peakNorm[32][5]; Float_t peakNormErr[32][5]; Float_t peakSigma[32][5]; Float_t peakSigmaErr[32][5]; Float_t ped[32]; Float_t pedErr[32]; Float_t pedXsqr[32]; UShort_t pedNdf[32]; Float_t pedSigma[32]; Float_t pedSigmaErr[32]; Float_t pedNorm[32]; Float_t pedNormErr[32]; Int_t threshAdc[32]; Float_t threshPe[32]; Int_t nAbove[32]; // List of branches TBranch *b_mac5; //! TBranch *b_active; //! TBranch *b_gain; //! TBranch *b_gainErr; //! TBranch *b_gainXsqr; //! TBranch *b_gainNdf; //! TBranch *b_gainPed; //! TBranch *b_gainPedErr; //! TBranch *b_nPeak; //! TBranch *b_peakXsqr; //! TBranch *b_peakNdf; //! TBranch *b_peakMean; //! TBranch *b_peakMeanErr; //! TBranch *b_peakNorm; //! TBranch *b_peakNormErr; //! TBranch *b_peakSigma; //! TBranch *b_peakSigmaErr; //! TBranch *b_ped; //! TBranch *b_pedErr; //! TBranch *b_pedXsqr; //! TBranch *b_pedNdf; //! TBranch *b_pedSigma; //! TBranch *b_pedSigmaErr; //! TBranch *b_pedNorm; //! TBranch *b_pedNormErr; //! TBranch *b_threshAdc; //! TBranch *b_threshPe; //! TBranch *b_nAbove; //! calAnalyzerTree(TTree *tree=0); virtual ~calAnalyzerTree(); virtual Int_t Cut(Long64_t entry); virtual Int_t GetEntry(Long64_t entry); virtual Long64_t LoadTree(Long64_t entry); virtual void Init(TTree *tree); virtual void Loop(); virtual Bool_t Notify(); virtual void Show(Long64_t entry = -1); void GetcalAnalyzerTree(Long64_t entry); static calAnalyzerTree* giveThis(); static calAnalyzerTree* giveThis(TTree* aTree, const std:: string& option); static void releaseThis(); TTree* GetInputTree(); uint8_t ret_mac5() { return m_mac5; }; bool ret_active(Int_t index) { return m_active[index]; }; float ret_gain(Int_t index) { return m_gain[index]; }; float ret_gainErr(Int_t index) { return m_gainerr[index]; }; float ret_gainXsqr(Int_t index) { return m_gainxsqr[index]; }; short ret_gainNdf(Int_t index) { return m_gainndf[index]; }; float ret_gainPed(Int_t index) { return m_gainped[index]; }; float ret_gainPedErr(Int_t index) { return m_gainpederr[index]; }; short ret_npeak(Int_t index) { return m_npeak[index]; }; float ret_peakXsqr(Int_t index, Int_t second_index) { return m_peakxsqr[index][second_index]; }; short ret_peakNdf(Int_t index, Int_t second_index) { return m_peakndf[index][second_index]; }; float ret_peakMean(Int_t index, Int_t second_index) { return m_peakmean[index][second_index]; }; float ret_peakMeanErr(Int_t index, Int_t second_index) { return m_peakmeanerr[index][second_index]; }; float ret_peakNorm(Int_t index, Int_t second_index) { return m_peaknorm[index][second_index]; }; float ret_peakNormErr(Int_t index, Int_t second_index) { return m_peaknormerr[index][second_index]; }; float ret_peakSigma(Int_t index, Int_t second_index) { return m_peaksigma[index][second_index]; }; float ret_peakSigmaErr(Int_t index, Int_t second_index) { return m_peaksigmaerr[index][second_index]; }; float ret_ped(Int_t index) { return m_ped[index]; }; float ret_pedErr(Int_t index) { return m_pederr[index]; }; float ret_pedXsqr(Int_t index) { return m_pedxsqr[index]; }; short ret_pedNdf(Int_t index) { return m_pedndf[index]; }; float ret_pedSigma(Int_t index) { return m_pedsigma[index]; }; float ret_pedSigmaErr(Int_t index) { return m_pedsigmaerr[index]; }; float ret_pedNorm(Int_t index) { return m_pednorm[index]; }; float ret_pedNormErr(Int_t index) { return m_pednormerr[index]; }; int ret_threshADC(Int_t index) { return m_threshadc[index]; }; float ret_threshPE(Int_t index) { return m_threshpe[index]; }; int ret_nabove(Int_t index) { return m_nabove[index]; }; private: TTree* m_treeIn; static calAnalyzerTree* m_instance; ClassDef(calAnalyzerTree,0); uint8_t m_mac5; bool m_active[32]; float m_gain[32]; float m_gainerr[32]; float m_gainxsqr[32]; short m_gainndf[32]; float m_gainped[32]; float m_gainpederr[32]; short m_npeak[32]; float m_peakxsqr[32][5]; short m_peakndf[32][5]; float m_peakmean[32][5]; float m_peakmeanerr[32][5]; float m_peaknorm[32][5]; float m_peaknormerr[32][5]; float m_peaksigma[32][5]; float m_peaksigmaerr[32][5]; float m_ped[32]; float m_pederr[32]; float m_pedxsqr[32]; short m_pedndf[32]; float m_pedsigma[32]; float m_pedsigmaerr[32]; float m_pednorm[32]; float m_pednormerr[32]; int m_threshadc[32]; float m_threshpe[32]; int m_nabove[32]; }; #endif #if 0 //def calAnalyzerTree_cxx calAnalyzerTree* calAnalyzerTree::m_instance; calAnalyzerTree::calAnalyzerTree(TTree *tree) : fChain(0) { // if parameter tree is not specified (or zero), connect the file // used to generate this class and read the Tree. if (tree == 0) { TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("ftest.root"); if (!f || !f->IsOpen()) { f = new TFile("ftest.root"); } f->GetObject("calAnalyzerTree",tree); } Init(tree); } calAnalyzerTree* calAnalyzerTree::giveThis() { if(DEBUG_sim) std::cout << "debug::m_instance calAnalyzerTree " << m_instance << std::endl; if (0 == m_instance){ std::cout << "calAnalyzerTree::giveThis error not constructed properly " << std::endl; } return m_instance; } // Open a TTree for reading calAnalyzerTree* calAnalyzerTree::giveThis(TTree* aTree, const std::string& option) { if(DEBUG_sim) std::cout << "debug::m_instance calAnalyzerTree " << m_instance << std::endl; if (0 == m_instance){ m_instance = new calAnalyzerTree(aTree/*, option*/); } else{ std::cout << "calAnalyzerTree::giveThis Warning " << aTree->GetTitle() << std::endl; } return m_instance; } // Delete unique instance void calAnalyzerTree::releaseThis() { if ( m_instance != 0 ) { delete m_instance; m_instance = 0; } } calAnalyzerTree::~calAnalyzerTree() { if (!fChain) return; delete fChain->GetCurrentFile(); } Int_t calAnalyzerTree::GetEntry(Long64_t entry) { // Read contents of entry. if (!fChain) return 0; return fChain->GetEntry(entry); } Long64_t calAnalyzerTree::LoadTree(Long64_t entry) { // Set the environment to read one entry if (!fChain) return -5; Long64_t centry = fChain->LoadTree(entry); if (centry < 0) return centry; if (fChain->GetTreeNumber() != fCurrent) { fCurrent = fChain->GetTreeNumber(); Notify(); } return centry; } void calAnalyzerTree::Init(TTree *tree) { // The Init() function is called when the selector needs to initialize // a new tree or chain. Typically here the branch addresses and branch // pointers of the tree will be set. // It is normally not necessary to make changes to the generated // code, but the routine can be extended by the user if needed. // Init() will be called many times when running on PROOF // (once per file to be processed). // Set branch addresses and branch pointers if (!tree) return; fChain = tree; fCurrent = -1; fChain->SetMakeClass(1); fChain->SetBranchAddress("mac5", &mac5, &b_mac5); fChain->SetBranchAddress("active", active, &b_active); fChain->SetBranchAddress("gain", gain, &b_gain); fChain->SetBranchAddress("gainErr", gainErr, &b_gainErr); fChain->SetBranchAddress("gainXsqr", gainXsqr, &b_gainXsqr); fChain->SetBranchAddress("gainNdf", gainNdf, &b_gainNdf); fChain->SetBranchAddress("gainPed", gainPed, &b_gainPed); fChain->SetBranchAddress("gainPedErr", gainPedErr, &b_gainPedErr); fChain->SetBranchAddress("nPeak", nPeak, &b_nPeak); fChain->SetBranchAddress("peakXsqr", peakXsqr, &b_peakXsqr); fChain->SetBranchAddress("peakNdf", peakNdf, &b_peakNdf); fChain->SetBranchAddress("peakMean", peakMean, &b_peakMean); fChain->SetBranchAddress("peakMeanErr", peakMeanErr, &b_peakMeanErr); fChain->SetBranchAddress("peakNorm", peakNorm, &b_peakNorm); fChain->SetBranchAddress("peakNormErr", peakNormErr, &b_peakNormErr); fChain->SetBranchAddress("peakSigma", peakSigma, &b_peakSigma); fChain->SetBranchAddress("peakSigmaErr", peakSigmaErr, &b_peakSigmaErr); fChain->SetBranchAddress("ped", ped, &b_ped); fChain->SetBranchAddress("pedErr", pedErr, &b_pedErr); fChain->SetBranchAddress("pedXsqr", pedXsqr, &b_pedXsqr); fChain->SetBranchAddress("pedNdf", pedNdf, &b_pedNdf); fChain->SetBranchAddress("pedSigma", pedSigma, &b_pedSigma); fChain->SetBranchAddress("pedSigmaErr", pedSigmaErr, &b_pedSigmaErr); fChain->SetBranchAddress("pedNorm", pedNorm, &b_pedNorm); fChain->SetBranchAddress("pedNormErr", pedNormErr, &b_pedNormErr); fChain->SetBranchAddress("threshAdc", threshAdc, &b_threshAdc); fChain->SetBranchAddress("threshPe", threshPe, &b_threshPe); fChain->SetBranchAddress("nAbove", nAbove, &b_nAbove); Notify(); } Bool_t calAnalyzerTree::Notify() { // The Notify() function is called when a new file is opened. This // can be either for a new TTree in a TChain or when when a new TTree // is started when using PROOF. It is normally not necessary to make changes // to the generated code, but the routine can be extended by the // user if needed. The return value is currently not used. return kTRUE; } void calAnalyzerTree::Show(Long64_t entry) { // Print contents of entry. // If entry is not specified, print current entry if (!fChain) return; fChain->Show(entry); } Int_t calAnalyzerTree::Cut(Long64_t entry) { // This function may be called from Loop. // returns 1 if entry is accepted. // returns -1 otherwise. return 1; } TTree* calAnalyzerTree::GetInputTree() {return m_treeIn;}; void calAnalyzerTree::GetcalAnalyzerTree(Long64_t entry) { if (!m_treeIn) { std::cout << "calAnalyzerTree::getEntry error" << std::endl; exit(1); } m_treeIn->GetEntry(entry); if(DEBUG_sim) m_treeIn->Show(entry); m_mac5 = mac5; for(int k=0; k<32; k++) { m_active[k]=active[k]; m_gain[k]=gain[k]; m_gainerr[k]=gainErr[k]; m_gainxsqr[k]=gainXsqr[k]; m_gainndf[k]=gainNdf[k]; m_gainped[k]=gainPed[k]; m_gainpederr[k]=gainPedErr[k]; m_npeak[k]=nPeak[k]; for(int l=0; l<5; l++) { m_peakxsqr[k][l]=peakXsqr[k][l]; m_peakndf[k][l]=peakNdf[k][l]; m_peakmean[k][l]=peakMean[k][l]; m_peakmeanerr[k][l]=peakMeanErr[k][l]; m_peaknorm[k][l]=peakNorm[k][l]; m_peaknormerr[k][l]=peakNormErr[k][l]; m_peaksigma[k][l]=peakSigma[k][l]; m_peaksigmaerr[k][l]=peakSigmaErr[k][l]; }//end loop for 5-element data m_ped[k]=ped[k]; m_pederr[k]=pedErr[k]; m_pedxsqr[k]=pedXsqr[k]; m_pedndf[k]=pedNdf[k]; m_pedsigma[k]=pedSigma[k]; m_pedsigmaerr[k]=pedSigmaErr[k]; m_pednorm[k]=pedNorm[k]; m_pednormerr[k]=pedNormErr[k]; m_threshadc[k]=threshAdc[k]; m_threshpe[k]=threshPe[k]; m_nabove[k]=nAbove[k]; }//end loop over chans } #endif // #ifdef calAnalyzerTree_cxx