/[PAMELA software]/DarthVader/TrackerLevel2/src/TrkStruct.cpp
ViewVC logotype

Annotation of /DarthVader/TrackerLevel2/src/TrkStruct.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Tue May 30 16:30:37 2006 UTC (18 years, 6 months ago) by pam-fi
Branch: MAIN
CVS Tags: v0r02, v1r01beta, v1r00, v1r01
Changes since 1.1: +95 -6 lines
Error handling from F77 routine / Fixed some bugs with default calibration

1 mocchiut 1.1 /**
2     * \file TrkStruct.h
3     * \author Elena Vannuccini
4     * \date
5     */
6     #include <TrkStruct.h>
7    
8    
9     using namespace pamela;
10     using namespace std;
11    
12     float aint(float f){
13     int ret = (int)f;
14     float ret1 = 0;
15     ret1=(float)ret;
16     return ret1;
17     }
18    
19     float anint(float f){
20     int ret = (int)(f+0.5);
21     float ret1 = 0;
22     ret1=(float)ret;
23     return ret1;
24     }
25     /**
26     * Method to fill the tracker calibration-parameter struct from on-line calibrations
27     */
28 pam-fi 1.2 void cTrkCalib::FillACalibFrom(TFile* f0, Int_t ev_reg1, Int_t ev_reg2){
29 mocchiut 1.1
30     TTree *tr1 = (TTree*)f0->Get("CalibTrk1");
31     TTree *tr2 = (TTree*)f0->Get("CalibTrk2");
32    
33     CalibTrk1Event *calibdata1 = 0;
34     CalibTrk2Event *calibdata2 = 0;
35     tr1->SetBranchAddress("CalibTrk1",&calibdata1);
36     tr2->SetBranchAddress("CalibTrk2",&calibdata2);
37     tr1->GetEntry(ev_reg1);
38     tr2->GetEntry(ev_reg2);
39     Int_t dspn1(0),dspn2(0);
40    
41     for(Int_t i=0;i<6;i++){
42     dspn1=calibdata1->DSPnumber[i]-1;
43     dspn2=calibdata2->DSPnumber[i]-1;
44     /* cout<<"dspn1= "<<dspn1<<" dspn2= "<<dspn2<<endl; */
45     for(Int_t ii=0;ii<3072;ii++){
46     Int_t j=(ii/128);
47     Int_t jj=ii-j*128;
48     pedestal[jj][j][dspn1]=calibdata1->DSPped_par[i][ii];
49     pedestal[jj][j][dspn2]=calibdata2->DSPped_par[i][ii];
50     pedestal_t[jj][j][dspn1]=aint(calibdata1->DSPped_par[i][ii]);
51     pedestal_t[jj][j][dspn2]=aint(calibdata2->DSPped_par[i][ii]);
52     sigma[jj][j][dspn1]=calibdata1->DSPsig_par[i][ii];
53     sigma[jj][j][dspn2]=calibdata2->DSPsig_par[i][ii];
54     sigma_t[jj][j][dspn1]=anint(calibdata1->DSPsig_par[i][ii]);
55     sigma_t[jj][j][dspn2]=anint(calibdata2->DSPsig_par[i][ii]);
56     // cout<<"sigma trk1= "<<sigma[jj][j][dspn1]<<endl;
57     // cout<<"sigma_t trk1= "<<sigma_t[jj][j][dspn1]<<endl;
58     // cout<<"sigma trk2= "<<sigma[jj][j][dspn2]<<endl;
59     // cout<<"sigma_t trk2= "<<sigma_t[jj][j][dspn2]<<endl;
60    
61     //
62     // invert the bad
63     //
64     if(calibdata1->DSPbad_par[i][ii]==0)
65     bad[jj][j][dspn1]=1;
66     else if(calibdata1->DSPbad_par[i][ii]==1)
67     bad[jj][j][dspn1]=0;
68     if(calibdata2->DSPbad_par[i][ii]==0)
69     bad[jj][j][dspn2]=1;
70     else if(calibdata2->DSPbad_par[i][ii]==1)
71     bad[jj][j][dspn2]=0;
72     };
73     };
74    
75     tr1->Delete();
76     tr2->Delete();
77     };
78 pam-fi 1.2
79     /**
80     * Method to fill the tracker calibration-parameter struct from on-line calibrations
81     */
82     void cTrkCalib::FillFCalibFrom(TFile* f0, Int_t ev_reg1, Int_t ev_reg2){
83    
84     TTree *tr1 = (TTree*)f0->Get("CalibTrk1");
85     TTree *tr2 = (TTree*)f0->Get("CalibTrk2");
86    
87     CalibTrk1Event *calibdata1 = 0;
88     CalibTrk2Event *calibdata2 = 0;
89     tr1->SetBranchAddress("CalibTrk1",&calibdata1);
90     tr2->SetBranchAddress("CalibTrk2",&calibdata2);
91     tr1->GetEntry(ev_reg1);
92     tr2->GetEntry(ev_reg2);
93     Int_t dspn1(0),dspn2(0);
94    
95     for(Int_t i=0;i<6;i++){
96     dspn1=calibdata1->DSPnumber[i]-1;
97     dspn2=calibdata2->DSPnumber[i]-1;
98     /* cout<<"dspn1= "<<dspn1<<" dspn2= "<<dspn2<<endl; */
99     for(Int_t ii=0;ii<3072;ii++){
100     Int_t j=(ii/128);
101     Int_t jj=ii-j*128;
102     pedestal[jj][j][dspn1]=calibdata1->DSPped_par[i][ii];
103     pedestal[jj][j][dspn2]=calibdata2->DSPped_par[i][ii];
104     sigma[jj][j][dspn1]=calibdata1->DSPsig_par[i][ii];
105     sigma[jj][j][dspn2]=calibdata2->DSPsig_par[i][ii];
106     // cout<<"sigma trk1= "<<sigma[jj][j][dspn1]<<endl;
107     // cout<<"sigma_t trk1= "<<sigma_t[jj][j][dspn1]<<endl;
108     // cout<<"sigma trk2= "<<sigma[jj][j][dspn2]<<endl;
109     // cout<<"sigma_t trk2= "<<sigma_t[jj][j][dspn2]<<endl;
110    
111     //
112     // invert the bad
113     //
114     if(calibdata1->DSPbad_par[i][ii]==0)
115     bad[jj][j][dspn1]=1;
116     else if(calibdata1->DSPbad_par[i][ii]==1)
117     bad[jj][j][dspn1]=0;
118     if(calibdata2->DSPbad_par[i][ii]==0)
119     bad[jj][j][dspn2]=1;
120     else if(calibdata2->DSPbad_par[i][ii]==1)
121     bad[jj][j][dspn2]=0;
122     };
123     };
124    
125     tr1->Delete();
126     tr2->Delete();
127     };
128     /**
129     * Method to fill the tracker calibration-parameter struct from on-line calibrations
130     */
131     void cTrkCalib::FillTCalibFrom(TFile* f0, Int_t ev_reg1, Int_t ev_reg2){
132    
133     TTree *tr1 = (TTree*)f0->Get("CalibTrk1");
134     TTree *tr2 = (TTree*)f0->Get("CalibTrk2");
135    
136     CalibTrk1Event *calibdata1 = 0;
137     CalibTrk2Event *calibdata2 = 0;
138     tr1->SetBranchAddress("CalibTrk1",&calibdata1);
139     tr2->SetBranchAddress("CalibTrk2",&calibdata2);
140     tr1->GetEntry(ev_reg1);
141     tr2->GetEntry(ev_reg2);
142     Int_t dspn1(0),dspn2(0);
143    
144     for(Int_t i=0;i<6;i++){
145     dspn1=calibdata1->DSPnumber[i]-1;
146     dspn2=calibdata2->DSPnumber[i]-1;
147     /* cout<<"dspn1= "<<dspn1<<" dspn2= "<<dspn2<<endl; */
148     for(Int_t ii=0;ii<3072;ii++){
149     Int_t j=(ii/128);
150     Int_t jj=ii-j*128;
151     pedestal_t[jj][j][dspn1]=aint(calibdata1->DSPped_par[i][ii]);
152     pedestal_t[jj][j][dspn2]=aint(calibdata2->DSPped_par[i][ii]);
153     sigma_t[jj][j][dspn1]=anint(calibdata1->DSPsig_par[i][ii]);
154     sigma_t[jj][j][dspn2]=anint(calibdata2->DSPsig_par[i][ii]);
155     };
156     };
157    
158     tr1->Delete();
159     tr2->Delete();
160     };
161     /**
162     * Method to fill the tracker calibration-parameter struct from on-line calibrations
163     */
164     void cTrkCalib::FillTCalibFrom(TString path){
165    
166     path_.FillWith(path);
167     fillpedsigfromdefault_();
168     if(path_.error) throw -216;
169    
170     };
171    

  ViewVC Help
Powered by ViewVC 1.1.23