/[PAMELA software]/YodaProfiler/inc/PamelaDBOperations.h
ViewVC logotype

Contents of /YodaProfiler/inc/PamelaDBOperations.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Wed Aug 30 11:18:13 2006 UTC (18 years, 3 months ago) by mocchiut
Branch: MAIN
Branch point for: YodaProfiler
File MIME type: text/plain
Initial revision

1 #ifndef PAMELA_DB_OPERATIONS_H
2 #define PAMELA_DB_OPERATIONS_H
3
4 #include <iostream>
5 #include <list>
6 //
7 #include <TSQLServer.h>
8 #include <TArrayD.h>
9 //
10 #include <EventHeader.h>
11 #include <PscuHeader.h>
12 #include <mcmd/McmdEvent.h>
13 #include <mcmd/McmdRecord.h>
14 #include <RunHeaderEvent.h>
15 #include <RunTrailerEvent.h>
16 #include <CalibCalPedEvent.h>
17 #include <CalibS4Event.h>
18 #include <CalibTrk1Event.h>
19 #include <CalibTrk2Event.h>
20 #include <varDump/VarDumpEvent.h>
21 #include <varDump/VarDumpRecord.h>
22 #include <physics/S4/S4Event.h>
23 //
24 #include <GLTables.h>
25
26 using namespace pamela;
27
28
29 /**
30 * Collections of Pamela specific operations over a database
31 */
32 class PamelaDBOperations {
33
34 private:
35 TSQLServer *conn;
36 TFile *file;
37 //
38 RunHeaderEvent *runh;
39 EventHeader *ehh;
40 PscuHeader *phh;
41 RunTrailerEvent *runt;
42 EventHeader *eht;
43 PscuHeader *pht;
44 //
45 GL_RUN *glrun;
46 //
47 TString filerawname;
48 TString filerootname;
49 //
50 UInt_t tsync;
51 UInt_t toffset;
52 //
53 UInt_t BOOTNO;
54 UInt_t obt0;
55 UInt_t id;
56 UInt_t idroot;
57 UInt_t pktfirst;
58 ULong64_t obtfirst;
59 ULong64_t upperobt;
60 UInt_t upperpkt;
61 UInt_t upperentry;
62 Int_t rtev;
63 Int_t rhev;
64 //
65 // calibration variables
66 //
67 Int_t t1;
68 Int_t t2;
69 UInt_t fromtime;
70 UInt_t obt1;
71 UInt_t pkt1;
72 UInt_t obt2;
73 UInt_t pkt2;
74 UInt_t valid;
75 //
76 //
77 Bool_t NOBOOT;
78 Bool_t debug;
79 //
80 typedef std::list<const char*> pcksList;
81 static void getPacketsNames(pcksList &pcksNames){
82 pcksNames.push_back("PhysEndRun");
83 pcksNames.push_back("CalibCalPulse1");
84 pcksNames.push_back("CalibCalPulse2");
85 pcksNames.push_back("Physics");
86 pcksNames.push_back("CalibTrkBoth");
87 pcksNames.push_back("CalibTrk1");
88 pcksNames.push_back("CalibTrk2");
89 pcksNames.push_back("CalibTof");
90 pcksNames.push_back("CalibS4");
91 pcksNames.push_back("CalibCalPed");
92 pcksNames.push_back("Calib1_Ac1");
93 pcksNames.push_back("Calib2_Ac1");
94 pcksNames.push_back("Calib1_Ac2");
95 pcksNames.push_back("Calib2_Ac2");
96 pcksNames.push_back("CalibCal");
97 pcksNames.push_back("RunHeader");
98 pcksNames.push_back("RunTrailer");
99 pcksNames.push_back("CalibHeader");
100 pcksNames.push_back("CalibTrailer");
101 pcksNames.push_back("InitHeader");
102 pcksNames.push_back("InitTrailer");
103 pcksNames.push_back("EventTrk");
104 pcksNames.push_back("Log");
105 pcksNames.push_back("VarDump");
106 pcksNames.push_back("ArrDump");
107 pcksNames.push_back("TabDump");
108 pcksNames.push_back("Tmtc");
109 pcksNames.push_back("Mcmd");
110 pcksNames.push_back("ForcedFECmd");
111 pcksNames.push_back("Ac1Init");
112 pcksNames.push_back("CalInit");
113 pcksNames.push_back("TrkInit");
114 pcksNames.push_back("TofInit");
115 pcksNames.push_back("TrgInit");
116 pcksNames.push_back("NdInit");
117 pcksNames.push_back("S4Init");
118 pcksNames.push_back("Ac2Init");
119 pcksNames.push_back("CalAlarm");
120 pcksNames.push_back("Ac1Alarm");
121 pcksNames.push_back("TrkAlarm");
122 pcksNames.push_back("TrgAlarm");
123 pcksNames.push_back("TofAlarm");
124 pcksNames.push_back("S4Alarm");
125 pcksNames.push_back("Ac2Alarm");
126 pcksNames.push_back("TsbT");
127 pcksNames.push_back("TsbB");
128 };
129 //
130 // Functions
131 //
132 void HandleRun();
133 void HandleRunFragments(Bool_t mishead, Bool_t mistrail, UInt_t firstev, UInt_t lastev);
134 void HandleMissingHoT(Bool_t mishead, Bool_t mistrail, UInt_t firstev, UInt_t lastev);
135 void HandleSuspiciousRun();
136 void FillClass();
137 void FillClass(Bool_t mishead, Bool_t mistrail, UInt_t firstev, UInt_t lastev);
138 void HandleTRK_CALIB(Bool_t pk1, Bool_t pk2);
139 //
140 Bool_t IsDebug(){return(debug);};
141 Bool_t IsRunAlreadyInserted();
142 Bool_t IsRunConsistent(Bool_t mishead, Bool_t mistrail, UInt_t &firstev, UInt_t &lastev);
143 //
144 UInt_t PKT(UInt_t pkt_num);
145 //
146 ULong64_t OBT(UInt_t obt);
147 //
148 TArrayD S4_paramfit(pamela::CalibS4Event *S4CalibEvent);
149 //
150
151 public:
152 //
153 PamelaDBOperations(TString host, TString user, TString password, TString filerawname, TString filerootname, UInt_t boot, UInt_t tsync, UInt_t obt0, Bool_t debug); // constructor
154 //
155 void Close(); // destructor
156 //
157 //
158 // Setters
159 //
160 void SetConnection(TString host, TString user, TString password);
161 void SetBOOTnumber(UInt_t boot);
162 void SetRawName(TString str);
163 void SetRootName(TString str);
164 void SetDebugFlag(Bool_t debug);
165 void SetID_RAW(UInt_t idr);
166 void SetID_ROOT(UInt_t idr);
167 void SetTsync(UInt_t ts);
168 void SetObt0(UInt_t ts);
169 void SetCommonGLRUN(UInt_t absth, UInt_t abstt);
170 void SetNOBOOT(Bool_t noboot);
171 //
172 Bool_t SetID_RAW();
173 //
174 Int_t SetUpperLimits();
175 //
176 // Getters
177 //
178 Bool_t GetNOBOOT(){return(NOBOOT);};
179 //
180 UInt_t GetID_RAW(){return(id);};
181 UInt_t GetID_ROOT(){return(idroot);};
182 UInt_t GetBOOTnumber(){return(BOOTNO);};
183 //
184 UInt_t GetAbsTime(UInt_t obt);
185 UInt_t GetTsync(){return(tsync);};
186 //
187 const PacketType* GetPacketType(const char* type);
188 //
189 TString GetRawFile(){return((TString)gSystem->BaseName(filerawname.Data()));};
190 TString GetRawPath(){return((TString)gSystem->DirName(filerawname.Data())+'/');};
191 TString GetRootFile(){return((TString)gSystem->BaseName(filerootname.Data()));};
192 TString GetRootPath(){return((TString)gSystem->DirName(filerootname.Data())+'/');};
193 TString GetRootName(){return(filerootname);};
194 TString GetRawName(){return(filerawname);};
195 //
196 // Functions
197 //
198 Int_t assignBOOT_NUMBER();
199 Int_t insertPamelaRootFile();
200 Int_t insertPamelaRawFile();
201 Int_t insertPamelaGL_TIMESYNC();
202 Int_t insertPamelaRUN();
203 Int_t insertCALO_CALIB();
204 Int_t insertTRK_CALIB();
205 Int_t insertS4_CALIB();
206 //
207 void OpenFile();
208 void CheckFile();
209 //
210 };
211 #endif /* PAMELA_DB_OPERATIONS_H */

  ViewVC Help
Powered by ViewVC 1.1.23