ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/wangdy/TimingCSC/interface/CSCTimingAnalyzer.h
Revision: 1.15
Committed: Fri Dec 19 09:48:59 2008 UTC (16 years, 4 months ago) by wangdy
Content type: text/plain
Branch: MAIN
Changes since 1.14: +4 -4 lines
Log Message:
update to cmssw_2_2_3

File Contents

# User Rev Content
1 wangdy 1.1 /**
2     * @file CSCTimingAnalyzer.h
3     * @author Dayong Wang
4     * @date Fri Dec 1 18:24:39 2006
5     *
6     * @brief Analyzer for extracting CSC timing const.
7     * based on B. Jackson's analyzer by Dayong Wang
8     *
9     */
10 wangdy 1.15 // $Id: CSCTimingAnalyzer.h,v 1.14 2008/11/03 14:56:14 wangdy Exp $
11 wangdy 1.1
12     #ifndef TimingCSC_CSCTimingAnalyzer_h
13     #define TimingCSC_CSCTimingAnalyzer_h
14    
15    
16     #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
17     #include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
18    
19     #include <TROOT.h>
20     #include <TFile.h>
21     #include <TCanvas.h>
22     #include <TH1I.h>
23     #include <TH1F.h>
24     #include <TString.h>
25    
26     enum
27     {
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 wangdy 1.11 MAX_SECTORS = 12,
32 wangdy 1.1 MAX_CHAMBERS = 9
33     };
34    
35     const TString stationLabel[MAX_STATIONS] = {"1a","1b","2","3","4"};
36 wangdy 1.8 const TString sectorLabel[12] = {"1","2","3","4","5","6", "7","8","9","10","11","12"};
37 wangdy 1.1 const TString chamberLabel[MAX_CHAMBERS] = {"1","2","3","4","5","6","7","8","9"};
38 wangdy 1.10 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 wangdy 1.5 const int MINSEC=0;
41 wangdy 1.11 const int MAXSEC=12;
42 wangdy 1.6 const int TIMINGSEC=3; // this only works for naive estimation now
43 wangdy 1.7 const int BX_START=3; // starting of hBX: 3 for MC and 0 for data
44 wangdy 1.14 const int ABSBX_START=0; // starting of hAbsBX: run#62232:797; run#63200:234; run62384:2500
45 wangdy 1.10 const int NUMSEC=MAXSEC-MINSEC;
46 wangdy 1.1
47     class CSCTriggerMappingFromFile;
48    
49     class CSCTimingAnalyzer : public edm::EDAnalyzer
50     {
51     public:
52    
53     explicit CSCTimingAnalyzer(edm::ParameterSet const& conf);
54     ~CSCTimingAnalyzer();
55    
56     virtual void beginJob(const edm::EventSetup&);
57     virtual void endJob();
58     virtual void analyze(edm::Event const& e, edm::EventSetup const& iSetup);
59    
60     private:
61    
62 wangdy 1.8 void initializeHistograms();
63 wangdy 1.1 void fillHistograms(edm::Handle<CSCCorrelatedLCTDigiCollection> corrlcts,
64     edm::Handle<L1CSCTrackCollection> tracks);
65    
66     void timingExtract();
67 wangdy 1.15 // void initializeCanvases();
68     // void fillCanvases();
69     // void printCanvases();
70 wangdy 1.1
71     void deleteRootObjects();
72     void deleteHistograms();
73     void deleteCanvases();
74 wangdy 1.12 int myBX(edm::Event& event);
75 wangdy 1.1 bool testBeam;
76     int TBFEDid, TBendcap, TBsector;
77     std::string mapPath;
78     CSCTriggerMappingFromFile* TFMapping;
79     int eventNumber;
80    
81     /* std::string day; */
82 wangdy 1.5 edm::InputTag lctProducer, trackProducer;
83    
84 wangdy 1.1 std::string run;
85     std::string outFile;
86     std::string timeFile;
87    
88     /// Root Objects
89    
90     /// File to store the generated hisograms
91     TFile* fAnalysis;
92    
93     /// for output of const and error
94     TFile* fTimingConst;
95    
96 wangdy 1.10 /// for inter sector synchronization
97     TFile* fInterSector;
98    
99 wangdy 1.12 /// for absolute BXN synchronization
100     TFile* fAbsBXN;
101    
102 wangdy 1.14 // TH2F* hEndSec;
103 wangdy 1.10 TH1I* hBX[NUMSEC][MAX_STATIONS][MAX_CHAMBERS];
104 wangdy 1.12 TH1I* hAbsBX[NUMSEC][MAX_STATIONS][MAX_CHAMBERS];
105 wangdy 1.1 TH1I* hNumTracksPerEvent;
106 wangdy 1.12 TH1I* hBX0;
107 wangdy 1.1 TH1F* hTimingConstDirect;
108     TH1F* hTimingConstA;
109     TH1F* hTimingConstB;
110     TH1F* hTimingComp;
111     /// Arrays of histograms that contains the strip difference between
112     /// LCTs in adjacent CSCs within the same event
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 wangdy 1.10 TH1I* hBXDifference[NUMSEC][MAX_STATIONS][MAX_CHAMBERS-2];
117 wangdy 1.1
118     /// BX difference between station 2 and 3
119     /// overlapping cscs in ME 2 and 3
120 wangdy 1.10 TH1I* hBXDifference23Overlap[NUMSEC][MAX_CHAMBERS];
121 wangdy 1.1 /// crossing cscs in ME 2 and 3
122 wangdy 1.10 TH1I* hBXDifference23Cross[NUMSEC][2*MAX_CHAMBERS-4];
123 wangdy 1.1 /// non overlapping cscs in ME 2 and 3
124 wangdy 1.10 TH1I* hBXDifference23NonOverlap[NUMSEC][MAX_CHAMBERS-3];
125 wangdy 1.1 /// require "forward" muons
126    
127     /// BX difference between stations 1A and 2
128     /// ME 1A ring 1
129 wangdy 1.10 TH1I* hBXDifference1AR12[NUMSEC][MAX_CHAMBERS-3];
130 wangdy 1.1 /// ME 1A ring 2/3
131 wangdy 1.10 TH1I* hBXDifference1AR232[NUMSEC][MAX_CHAMBERS-3];
132 wangdy 1.1
133     /// BX difference between stations 1B and 2
134     /// ME 1B ring 1
135 wangdy 1.10 TH1I* hBXDifference1BR12[NUMSEC][MAX_CHAMBERS-3];
136 wangdy 1.1 /// ME 1B ring 2/3
137 wangdy 1.10 TH1I* hBXDifference1BR232[NUMSEC][MAX_CHAMBERS-3];
138 wangdy 1.1
139 wangdy 1.4 /// BX difference within different rings in stations 1A
140     /// R1-R2
141 wangdy 1.10 TH1I* hBXDifference1AInR1R2[NUMSEC][7];
142 wangdy 1.4 /// R1-R3
143 wangdy 1.10 TH1I* hBXDifference1AInR1R3[NUMSEC][7];
144 wangdy 1.4
145     /// BX difference within different rings in stations 1B
146     /// R1-R2
147 wangdy 1.10 TH1I* hBXDifference1BInR1R2[NUMSEC][7];
148 wangdy 1.4 /// R1-R3
149 wangdy 1.10 TH1I* hBXDifference1BInR1R3[NUMSEC][7];
150 wangdy 1.1
151 wangdy 1.4 /// BX difference within stations 1A abd 1B
152 wangdy 1.10 TH1I* hBXDifference1AWith1B[NUMSEC][7];
153 wangdy 1.4
154    
155 wangdy 1.9 /// BX difference between station 3 and 4
156     /// overlapping cscs in ME 3 and 4
157 wangdy 1.10 TH1I* hBXDifference34Overlap[NUMSEC][MAX_CHAMBERS];
158 wangdy 1.9 /// crossing cscs in ME 3 and 4
159 wangdy 1.10 TH1I* hBXDifference34Cross[NUMSEC][4];
160    
161     /// BX differences between different sectors
162     TH1I* hBXDifferenceSector[NUMSEC][11];
163 wangdy 1.9
164 wangdy 1.4
165 wangdy 1.1 /// Canvases to display the histograms once they are filled
166    
167 wangdy 1.10 TCanvas* cBX[NUMSEC][MAX_STATIONS];
168 wangdy 1.1 TCanvas* cNumTracksPerEvent;
169     TCanvas* cTimingConstA;
170     TCanvas* cTimingConstB;
171     TCanvas* cTimingConstDirect;
172     TCanvas* cTimingComp;
173    
174 wangdy 1.10 TCanvas* cBXDifference[NUMSEC][MAX_STATIONS];
175 wangdy 1.1
176     /// Canvases for printing BX Difference between station 2 and 3
177     /// Overlapping cscs in stations 2 and 3
178 wangdy 1.10 TCanvas* cBXDifference23Overlap[NUMSEC];
179 wangdy 1.1 /// Crossing cscs in stations 2 and 3
180 wangdy 1.10 TCanvas* cBXDifference23Cross[NUMSEC];
181 wangdy 1.1 /// Non-overlapping cscs in stations 2 and 3
182 wangdy 1.10 TCanvas* cBXDifference23NonOverlap[NUMSEC];
183 wangdy 1.1 /// Canvases for printing BX differences between station 1A and 2
184     /// ME 1A ring 1
185 wangdy 1.10 TCanvas* cBXDifference1AR12[NUMSEC];
186 wangdy 1.1 /// ME 1A ring 2/3
187 wangdy 1.10 TCanvas* cBXDifference1AR232[NUMSEC];
188 wangdy 1.1
189     /// Canvases for printing BX differences between station 1B and 2
190     /// ME 1B ring 1
191 wangdy 1.10 TCanvas* cBXDifference1BR12[NUMSEC];
192 wangdy 1.1 /// ME 1B ring 2/3
193 wangdy 1.10 TCanvas* cBXDifference1BR232[NUMSEC];
194 wangdy 1.1
195 wangdy 1.4 /// Canvases for printing BX differences within station 1A
196     /// R1R2
197 wangdy 1.10 TCanvas* cBXDifference1AInR1R2[NUMSEC];
198 wangdy 1.4 /// R1R3
199 wangdy 1.10 TCanvas* cBXDifference1AInR1R3[NUMSEC];
200 wangdy 1.4
201     /// Canvases for printing BX differences within station 1B
202     /// R1R2
203 wangdy 1.10 TCanvas* cBXDifference1BInR1R2[NUMSEC];
204 wangdy 1.4 /// R1R3
205 wangdy 1.10 TCanvas* cBXDifference1BInR1R3[NUMSEC];
206 wangdy 1.4
207     /// Canvases for printing BX differences of station 1A and 1B
208 wangdy 1.10 TCanvas* cBXDifference1AWith1B[NUMSEC];
209 wangdy 1.4
210    
211 wangdy 1.1 };
212    
213     #endif