Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:20:23

0001 #include <cdbobjects/CDBTTree.h>
0002 #include <tpc/TpcMap.h>
0003 
0004 R__LOAD_LIBRARY(libcdbobjects.so)
0005 R__LOAD_LIBRARY(libtpc.so)
0006 
0007 
0008 void TestCDBTTreeTPC(const std::string &fname = "./PadPlane/TPCPadPlaneCDBTTree.root")
0009 {
0010   TpcMap M;
0011   // To use the latest CSV files the path should be directly 
0012   // from the default CDBTTree directory used in TpcMap to files, 
0013   // otherwise the default CSV Files are used 
0014   M.setMapNames("../../../../../../../../../../../sphenix/user/shulga/Work/TPCPadPlaneMapping/macros/calibrations/tpc/PadPlane/AutoPad-R1-RevA.sch.ChannelMapping.csv", 
0015                 "../../../../../../../../../../../sphenix/user/shulga/Work/TPCPadPlaneMapping/macros/calibrations/tpc/PadPlane/AutoPad-R2-RevA-Pads.sch.ChannelMapping.csv", 
0016                 "../../../../../../../../../../../sphenix/user/shulga/Work/TPCPadPlaneMapping/macros/calibrations/tpc/PadPlane/AutoPad-R3-RevA.sch.ChannelMapping.csv");
0017 
0018 
0019   CDBTTree *cdbttree = new CDBTTree(fname);
0020 
0021   int Nfee = 26;
0022   int Nch = 256;
0023   for(int f=0;f<Nfee;f++){
0024     for(int ch=0;ch<Nch;ch++){
0025       int layer = M.getLayer(f, ch);
0026       int padN = M.getPad(f, ch);
0027       double padR = M.getR(f, ch);
0028       if (f==5 && ch==30){std::cout<<"layer="<<layer<<" padR="<<padR<<std::endl;}
0029       double padPhi = M.getPhi(f, ch);
0030       int mod = 0;
0031       if(f>5) mod = 1;
0032       if(f>15) mod =2;
0033       unsigned int key = 256 * (f) + ch;
0034       string varname = "layer";// + to_string(key);
0035       cdbttree->SetIntValue(key,varname,layer);
0036       varname = "fee";// + to_string(key);
0037       cdbttree->SetIntValue(key,varname,f);
0038       varname = "ch";// + to_string(key);
0039       cdbttree->SetIntValue(key,varname,ch);
0040       varname = "R";// + to_string(key);
0041       cdbttree->SetDoubleValue(key,varname,padR);
0042       varname = "phi";// + to_string(key);
0043       cdbttree->SetDoubleValue(key,varname,padPhi);
0044       varname = "pad";// + to_string(key);
0045       cdbttree->SetIntValue(key,varname,padN);
0046 
0047     }
0048   }
0049 
0050   std::cout<<"cdbttree->Commit();"<<std::endl;
0051   cdbttree->Commit();
0052   std::cout<<"cdbttree->Print();"<<std::endl;
0053   //cdbttree->Print();
0054   std::cout<<"cdbttree->WriteCDBTTree()"<<std::endl;
0055   cdbttree->WriteCDBTTree();
0056 
0057   std::cout<<"delete cdbttree;"<<std::endl;
0058   delete cdbttree;
0059   //delete M;
0060   std::cout<<"gSystem->Exit(0);"<<std::endl;
0061 
0062   gSystem->Exit(0);
0063 }
0064 
0065 CDBTTree *TestWrite(const std::string &fname = "test.root")
0066 {
0067   CDBTTree *cdbttree = new CDBTTree(fname);
0068   cdbttree->SetSingleFloatValue("Test",25);
0069   cdbttree->SetSingleFloatValue("Test2",22);
0070   cdbttree->SetSingleFloatValue("Test3",23);
0071   cdbttree->SetSingleFloatValue("Test4",24);
0072   cdbttree->SetSingleIntValue("Tes2",24);
0073   cdbttree->SetSingleDoubleValue("Tes2",TMath::Pi());
0074   cdbttree->SetSingleUInt64Value("Tes2",12486346984672562);
0075   cdbttree->CommitSingle();
0076   cdbttree->SetFloatValue(2,"Tst",25);
0077   cdbttree->SetFloatValue(2,"Tt2",22);
0078   cdbttree->SetFloatValue(2,"Tes",23);
0079   cdbttree->SetFloatValue(2,"gaga",24);
0080   cdbttree->SetFloatValue(4,"Tst",5);
0081   cdbttree->SetFloatValue(4,"Tt2",2);
0082   cdbttree->SetFloatValue(4,"Tes",3);
0083   cdbttree->SetFloatValue(4,"Tara",7);
0084   cdbttree->SetIntValue(10,"blar",2864);
0085   cdbttree->SetUInt64Value(10,"blatr",28);
0086   for (int i=0; i<100; i++)
0087   {
0088     string varname = "dvar";
0089     string varname2 = "dvar2";
0090     string varname3 = "dvar3";
0091     string varname4 = "dvar4";
0092     for (int j=0; j<25; j++)
0093     {
0094       cdbttree->SetDoubleValue(j,varname,28875342.867*j);
0095       cdbttree->SetDoubleValue(j,varname2,2.867*j);
0096       cdbttree->SetDoubleValue(j,varname3,28875.8*j);
0097       cdbttree->SetDoubleValue(j,varname4,28875342*j);
0098     }
0099   }
0100   return cdbttree;
0101 }
0102 
0103 void Read(const std::string &fname = "test.root")
0104 {
0105   CDBTTree *cdbttree = new CDBTTree(fname);
0106   cdbttree->LoadCalibrations();
0107   cout << "Test2: " << cdbttree->GetSingleFloatValue("Test2") << endl;
0108   cout << "Tt2(2): " << cdbttree->GetFloatValue(2,"Tt2") << endl;
0109   cout << "Tt2(4): " << cdbttree->GetFloatValue(4,"Tt2") << endl;
0110   cout << "blar: " << cdbttree->GetIntValue(10,"blar") << endl;
0111   cout << "int Tt2(4): " << cdbttree->GetIntValue(4,"Tt2") << endl;
0112   cout << "dvar5: " << cdbttree->GetDoubleValue(23,"dvar5");
0113   cdbttree->Print();
0114   delete cdbttree;
0115   gSystem->Exit(0);
0116 }