28 |
|
/// MAX_STATIONS is set to 5 because the subsectors in ME 1 are handled |
29 |
|
/// as a separate station |
30 |
|
MAX_STATIONS = 5, |
31 |
< |
MAX_SECTORS = 6, |
31 |
> |
MAX_SECTORS = 12, |
32 |
|
MAX_CHAMBERS = 9 |
33 |
|
}; |
34 |
|
|
35 |
|
const TString stationLabel[MAX_STATIONS] = {"1a","1b","2","3","4"}; |
36 |
< |
const TString sectorLabel[MAX_SECTORS] = {"1","2","3","4","5","6"}; |
36 |
> |
const TString sectorLabel[12] = {"1","2","3","4","5","6", "7","8","9","10","11","12"}; |
37 |
|
const TString chamberLabel[MAX_CHAMBERS] = {"1","2","3","4","5","6","7","8","9"}; |
38 |
+ |
const TString SecOverLabel[11] = {"1b3-1a1","1b6-1a4","2S3-1","2S3-4","2S9-1","2S9-4", |
39 |
+ |
"3S3-1","3S3-4","3S9-1","3S9-4","4S3-1"}; |
40 |
+ |
const int MINSEC=0; |
41 |
+ |
const int MAXSEC=12; |
42 |
+ |
const int TIMINGSEC=3; // this only works for naive estimation now |
43 |
+ |
const int BX_START=3; // starting of hBX: 3 for MC and 0 for data |
44 |
+ |
const int ABSBX_START=0; // starting of hAbsBX: run#62232:797; run#63200:234; run62384:2500 |
45 |
+ |
const int NUMSEC=MAXSEC-MINSEC; |
46 |
|
|
47 |
|
class CSCTriggerMappingFromFile; |
48 |
|
|
59 |
|
|
60 |
|
private: |
61 |
|
|
62 |
< |
void initializeHistograms(); |
62 |
> |
void initializeHistograms(); |
63 |
|
void fillHistograms(edm::Handle<CSCCorrelatedLCTDigiCollection> corrlcts, |
64 |
|
edm::Handle<L1CSCTrackCollection> tracks); |
65 |
|
|
66 |
|
void timingExtract(); |
67 |
< |
void initializeCanvases(); |
68 |
< |
void fillCanvases(); |
69 |
< |
void printCanvases(); |
67 |
> |
// void initializeCanvases(); |
68 |
> |
// void fillCanvases(); |
69 |
> |
// void printCanvases(); |
70 |
|
|
71 |
|
void deleteRootObjects(); |
72 |
|
void deleteHistograms(); |
73 |
|
void deleteCanvases(); |
74 |
< |
|
74 |
> |
int myBX(edm::Event& event); |
75 |
|
bool testBeam; |
76 |
|
int TBFEDid, TBendcap, TBsector; |
77 |
|
std::string mapPath; |
79 |
|
int eventNumber; |
80 |
|
|
81 |
|
/* std::string day; */ |
82 |
+ |
edm::InputTag lctProducer, trackProducer; |
83 |
+ |
|
84 |
|
std::string run; |
85 |
|
std::string outFile; |
86 |
|
std::string timeFile; |
93 |
|
/// for output of const and error |
94 |
|
TFile* fTimingConst; |
95 |
|
|
96 |
< |
TH1I* hBX[MAX_SECTORS][MAX_STATIONS][MAX_CHAMBERS]; |
96 |
> |
/// for inter sector synchronization |
97 |
> |
TFile* fInterSector; |
98 |
> |
|
99 |
> |
/// for absolute BXN synchronization |
100 |
> |
TFile* fAbsBXN; |
101 |
> |
|
102 |
> |
// TH2F* hEndSec; |
103 |
> |
TH1I* hBX[NUMSEC][MAX_STATIONS][MAX_CHAMBERS]; |
104 |
> |
TH1I* hAbsBX[NUMSEC][MAX_STATIONS][MAX_CHAMBERS]; |
105 |
|
TH1I* hNumTracksPerEvent; |
106 |
+ |
TH1I* hBX0; |
107 |
|
TH1F* hTimingConstDirect; |
108 |
|
TH1F* hTimingConstA; |
109 |
|
TH1F* hTimingConstB; |
113 |
|
/// |
114 |
|
/// MAX_CHAMBERS-2 because there are that many boundaries between CSCs to |
115 |
|
/// account for in ME 234. In ME 1 there will be unused plots |
116 |
< |
TH1I* hBXDifference[MAX_SECTORS][MAX_STATIONS][MAX_CHAMBERS-2]; |
116 |
> |
TH1I* hBXDifference[NUMSEC][MAX_STATIONS][MAX_CHAMBERS-2]; |
117 |
|
|
118 |
|
/// BX difference between station 2 and 3 |
119 |
|
/// overlapping cscs in ME 2 and 3 |
120 |
< |
TH1I* hBXDifference23Overlap[MAX_SECTORS][MAX_CHAMBERS]; |
120 |
> |
TH1I* hBXDifference23Overlap[NUMSEC][MAX_CHAMBERS]; |
121 |
|
/// crossing cscs in ME 2 and 3 |
122 |
< |
TH1I* hBXDifference23Cross[MAX_SECTORS][2*MAX_CHAMBERS-4]; |
122 |
> |
TH1I* hBXDifference23Cross[NUMSEC][2*MAX_CHAMBERS-4]; |
123 |
|
/// non overlapping cscs in ME 2 and 3 |
124 |
< |
TH1I* hBXDifference23NonOverlap[MAX_SECTORS][MAX_CHAMBERS-3]; |
124 |
> |
TH1I* hBXDifference23NonOverlap[NUMSEC][MAX_CHAMBERS-3]; |
125 |
|
/// require "forward" muons |
126 |
|
|
127 |
|
/// BX difference between stations 1A and 2 |
128 |
|
/// ME 1A ring 1 |
129 |
< |
TH1I* hBXDifference1AR12[MAX_SECTORS][MAX_CHAMBERS-3]; |
129 |
> |
TH1I* hBXDifference1AR12[NUMSEC][MAX_CHAMBERS-3]; |
130 |
|
/// ME 1A ring 2/3 |
131 |
< |
TH1I* hBXDifference1AR232[MAX_SECTORS][MAX_CHAMBERS-3]; |
131 |
> |
TH1I* hBXDifference1AR232[NUMSEC][MAX_CHAMBERS-3]; |
132 |
|
|
133 |
|
/// BX difference between stations 1B and 2 |
134 |
|
/// ME 1B ring 1 |
135 |
< |
TH1I* hBXDifference1BR12[MAX_SECTORS][MAX_CHAMBERS-3]; |
135 |
> |
TH1I* hBXDifference1BR12[NUMSEC][MAX_CHAMBERS-3]; |
136 |
|
/// ME 1B ring 2/3 |
137 |
< |
TH1I* hBXDifference1BR232[MAX_SECTORS][MAX_CHAMBERS-3]; |
137 |
> |
TH1I* hBXDifference1BR232[NUMSEC][MAX_CHAMBERS-3]; |
138 |
> |
|
139 |
> |
/// BX difference within different rings in stations 1A |
140 |
> |
/// R1-R2 |
141 |
> |
TH1I* hBXDifference1AInR1R2[NUMSEC][7]; |
142 |
> |
/// R1-R3 |
143 |
> |
TH1I* hBXDifference1AInR1R3[NUMSEC][7]; |
144 |
> |
|
145 |
> |
/// BX difference within different rings in stations 1B |
146 |
> |
/// R1-R2 |
147 |
> |
TH1I* hBXDifference1BInR1R2[NUMSEC][7]; |
148 |
> |
/// R1-R3 |
149 |
> |
TH1I* hBXDifference1BInR1R3[NUMSEC][7]; |
150 |
> |
|
151 |
> |
/// BX difference within stations 1A abd 1B |
152 |
> |
TH1I* hBXDifference1AWith1B[NUMSEC][7]; |
153 |
> |
|
154 |
> |
|
155 |
> |
/// BX difference between station 3 and 4 |
156 |
> |
/// overlapping cscs in ME 3 and 4 |
157 |
> |
TH1I* hBXDifference34Overlap[NUMSEC][MAX_CHAMBERS]; |
158 |
> |
/// crossing cscs in ME 3 and 4 |
159 |
> |
TH1I* hBXDifference34Cross[NUMSEC][4]; |
160 |
> |
|
161 |
> |
/// BX differences between different sectors |
162 |
> |
TH1I* hBXDifferenceSector[NUMSEC][11]; |
163 |
> |
|
164 |
|
|
120 |
– |
|
165 |
|
/// Canvases to display the histograms once they are filled |
166 |
|
|
167 |
< |
TCanvas* cBX[MAX_SECTORS][MAX_STATIONS]; |
167 |
> |
TCanvas* cBX[NUMSEC][MAX_STATIONS]; |
168 |
|
TCanvas* cNumTracksPerEvent; |
169 |
|
TCanvas* cTimingConstA; |
170 |
|
TCanvas* cTimingConstB; |
171 |
|
TCanvas* cTimingConstDirect; |
172 |
|
TCanvas* cTimingComp; |
173 |
|
|
174 |
< |
TCanvas* cBXDifference[MAX_SECTORS][MAX_STATIONS]; |
174 |
> |
TCanvas* cBXDifference[NUMSEC][MAX_STATIONS]; |
175 |
|
|
176 |
|
/// Canvases for printing BX Difference between station 2 and 3 |
177 |
|
/// Overlapping cscs in stations 2 and 3 |
178 |
< |
TCanvas* cBXDifference23Overlap[MAX_SECTORS]; |
178 |
> |
TCanvas* cBXDifference23Overlap[NUMSEC]; |
179 |
|
/// Crossing cscs in stations 2 and 3 |
180 |
< |
TCanvas* cBXDifference23Cross[MAX_SECTORS]; |
180 |
> |
TCanvas* cBXDifference23Cross[NUMSEC]; |
181 |
|
/// Non-overlapping cscs in stations 2 and 3 |
182 |
< |
TCanvas* cBXDifference23NonOverlap[MAX_SECTORS]; |
182 |
> |
TCanvas* cBXDifference23NonOverlap[NUMSEC]; |
183 |
|
/// Canvases for printing BX differences between station 1A and 2 |
184 |
|
/// ME 1A ring 1 |
185 |
< |
TCanvas* cBXDifference1AR12[MAX_SECTORS]; |
185 |
> |
TCanvas* cBXDifference1AR12[NUMSEC]; |
186 |
|
/// ME 1A ring 2/3 |
187 |
< |
TCanvas* cBXDifference1AR232[MAX_SECTORS]; |
187 |
> |
TCanvas* cBXDifference1AR232[NUMSEC]; |
188 |
|
|
189 |
|
/// Canvases for printing BX differences between station 1B and 2 |
190 |
|
/// ME 1B ring 1 |
191 |
< |
TCanvas* cBXDifference1BR12[MAX_SECTORS]; |
191 |
> |
TCanvas* cBXDifference1BR12[NUMSEC]; |
192 |
|
/// ME 1B ring 2/3 |
193 |
< |
TCanvas* cBXDifference1BR232[MAX_SECTORS]; |
193 |
> |
TCanvas* cBXDifference1BR232[NUMSEC]; |
194 |
> |
|
195 |
> |
/// Canvases for printing BX differences within station 1A |
196 |
> |
/// R1R2 |
197 |
> |
TCanvas* cBXDifference1AInR1R2[NUMSEC]; |
198 |
> |
/// R1R3 |
199 |
> |
TCanvas* cBXDifference1AInR1R3[NUMSEC]; |
200 |
> |
|
201 |
> |
/// Canvases for printing BX differences within station 1B |
202 |
> |
/// R1R2 |
203 |
> |
TCanvas* cBXDifference1BInR1R2[NUMSEC]; |
204 |
> |
/// R1R3 |
205 |
> |
TCanvas* cBXDifference1BInR1R3[NUMSEC]; |
206 |
> |
|
207 |
> |
/// Canvases for printing BX differences of station 1A and 1B |
208 |
> |
TCanvas* cBXDifference1AWith1B[NUMSEC]; |
209 |
> |
|
210 |
|
|
211 |
|
}; |
212 |
|
|