/[PAMELA software]/quicklook/tracker/flight/macros/TrkFunctions.cpp
ViewVC logotype

Annotation of /quicklook/tracker/flight/macros/TrkFunctions.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Mar 14 16:09:30 2006 UTC (18 years, 9 months ago) by pam-fi
Branch: MAIN
Branch point for: trk-QLook
Initial revision

1 pam-fi 1.1 /**
2     * TrkFunctions.cpp --> some useful tracker functions
3     *
4     * version 1.0
5     * Parameters:
6     * file - the path to the root file to analyse
7     * outdir - total path of output file
8     *
9     */
10    
11     #include <Rtypes.h>
12     #include <TString.h>
13     typedef struct trkword{
14    
15     int type;
16     int decode;
17    
18     };
19    
20     typedef struct caltrk_def{
21     Int_t good0[2];
22     Int_t daqmode[12];
23     Int_t dspnum[12];
24     Int_t calibnum[12];
25     Int_t ncalev[12];
26     Int_t calfl[12];
27     Int_t ped1[12];
28     Int_t ped2[12];
29     Int_t ped3[12];
30     Int_t sig1[12];
31     Int_t sig2[12];
32     Int_t sig3[12];
33     Int_t nbad1[12];
34     Int_t nbad2[12];
35     Int_t nbad3[12];
36     Float_t dspped[12][3702];
37     Float_t dspsig[12][3702];
38     Float_t dspbad[12][3702];
39     Int_t crc_c[12][3];
40     Int_t crc_hc[12];
41     };
42    
43     /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
44     *
45     | The function "datadecode" decodes the tracker words.
46     *
47     | Tracker words are of three types:
48     * - ADC data
49     | - strip address
50     * - end of ladder
51     |
52     * The function returns a struct variable (trkword)
53     | that contains two quantities, type and decode, which are assigned
54     * the following values:
55     |
56     * type decode
57     | ----------------------------------------------------
58     * -1 error 0
59     | 0 data 0-4095 ADC values
60     * 1 address 0-1023 strip address (relative to ladder)
61     | 2 end-of-ladder 1,2,3 ladder number (compressed acq mode)
62     * 4,5,6 ladder number + 3 (full acq mode)
63     |
64     *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
65     trkword datadecode(int word){
66     int type =0;
67     int data =0;
68     int nodata = word&0xf000;
69     int zero = 0;
70    
71     trkword thisword;
72    
73     switch (nodata>>12){
74    
75     case 0:
76    
77     thisword.decode = word;
78     thisword.type = 0;
79     // cout << thisword.decode << "\n";
80     return (thisword); //>>>>> ADC data (0)
81    
82     case 1:
83    
84     type = word&0xC00;
85     data = word&0x3ff;
86    
87     switch(type>>10){
88    
89     case 0:
90     thisword.decode = data;
91     thisword.type = 1; //>>> address (1)
92     return (thisword);
93    
94     case 2:
95     // if(data>=4)data = data-3;
96     if(data>6){
97     printf("Error on data \n");
98     thisword.decode = zero;
99     thisword.type = -1;
100     return (thisword); //>>>>> error (-1)
101     }
102     thisword.decode = data;
103     thisword.type = 2;
104     return (thisword); //>>> end-of-ladder
105    
106     default:
107     printf("Error on data \n");
108     thisword.decode = zero;
109     thisword.type = -1;
110     return (thisword); //>>>>> error (-1)
111    
112     }
113    
114     default:
115    
116     printf("Error on data \n");
117     thisword.decode = zero;
118     thisword.type = -1;
119     return (thisword); //>>>>> error (-1)
120    
121     };
122     };
123    
124    
125     void stringcopy(TString& s1, const TString& s2, Int_t from=0, Int_t to=0){
126     if ( to == 0 ){
127     Int_t t2length = s2.Length();
128     s1 = "";
129     to = t2length;
130     };
131     for (Int_t i = from; i<to; i++){
132     s1.Append(s2[i],1);
133     };
134     };
135    
136    

  ViewVC Help
Powered by ViewVC 1.1.23