ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/IPHCalignment2/analysis/EvtByEvtComparison.cpp
Revision: 1.2
Committed: Wed Nov 30 23:39:12 2011 UTC (13 years, 5 months ago) by econte
Branch: MAIN
Changes since 1.1: +117 -21 lines
Log Message:
EvtByEvt first implementation

File Contents

# User Rev Content
1 econte 1.1 #include "EvtByEvtComparison.h"
2    
3     #include "TreeProducer.h"
4     #include "TwoBodyDecaySpy.h"
5    
6 econte 1.2 #define MU_MASS 0.105658367
7 econte 1.1
8 econte 1.2
9     void EvtComparison::Compare(TwoBodyDecaySpy* a,
10     TwoBodyDecaySpy* b,
11     histoEvt& histos)
12 econte 1.1 {
13 econte 1.2 unsigned long ncounter = 0;
14    
15     Long64_t jentry1=0;
16     Long64_t jentry2=0;
17    
18     bool read_a=true;
19     bool read_b=true;
20    
21     while(1)
22     {
23     if (read_a)
24     {
25     Long64_t ientry1 = a->LoadTree(jentry1);
26     if (ientry1 < 0) break;
27     a->GetEntry(jentry1);
28     jentry1++;
29     }
30    
31     if (read_b)
32     {
33     Long64_t ientry2 = b->LoadTree(jentry2);
34     if (ientry2 < 0) break;
35     b->GetEntry(jentry2);
36     jentry2++;
37     }
38    
39     if (a->RunNumber ==b->RunNumber &&
40     a->EventNumber==b->EventNumber)
41     {
42     std::vector<TLorentzVector> va;
43     TLorentzVector qa1;
44     qa1.SetXYZM( a->NewTrack_px[0],
45     a->NewTrack_py[0],
46     a->NewTrack_pz[0],
47     MU_MASS );
48     va.push_back(qa1);
49     TLorentzVector qa2;
50     qa2.SetXYZM( a->NewTrack_px[1],
51     a->NewTrack_py[1],
52     a->NewTrack_pz[1],
53     MU_MASS );
54     va.push_back(qa2);
55     std::vector<TLorentzVector> vb;
56     TLorentzVector qb1;
57     qb1.SetXYZM( b->NewTrack_px[0],
58     b->NewTrack_py[0],
59     b->NewTrack_pz[0],
60     MU_MASS );
61     vb.push_back(qb1);
62     TLorentzVector qb2;
63     qb2.SetXYZM( b->NewTrack_px[1],
64     b->NewTrack_py[1],
65     b->NewTrack_pz[1],
66     MU_MASS );
67     vb.push_back(qb2);
68     ncounter++;
69     Compare(va,vb,histos);
70     }
71     else if (a->RunNumber!=b->RunNumber)
72     {
73     if (a->RunNumber<b->RunNumber)
74     {
75     read_a=true;
76     read_b=false;
77     }
78     else
79     {
80     read_a=false;
81     read_b=true;
82     }
83     }
84     else if (a->EventNumber!=b->EventNumber)
85     {
86     if (a->EventNumber<b->EventNumber)
87     {
88     read_a=true;
89     read_b=false;
90     }
91     else
92     {
93     read_a=false;
94     read_b=true;
95     }
96     }
97     }
98    
99     std::cout << "Number of common events = " << ncounter << std::endl;
100 econte 1.1 }
101    
102    
103 econte 1.2 void EvtComparison::Compare(TreeProducer* a,
104     TreeProducer* b,
105 econte 1.1 histoEvt& histos)
106     {
107     unsigned long ncounter = 0;
108    
109     Long64_t jentry1=0;
110     Long64_t jentry2=0;
111    
112     bool read_a=true;
113     bool read_b=true;
114    
115     while(1)
116     {
117     if (read_a)
118     {
119     Long64_t ientry1 = a->LoadTree(jentry1);
120 econte 1.2 if (ientry1 < 0) break;
121 econte 1.1 a->GetEntry(jentry1);
122     jentry1++;
123     }
124    
125     if (read_b)
126     {
127     Long64_t ientry2 = b->LoadTree(jentry2);
128 econte 1.2 if (ientry2 < 0) break;
129 econte 1.1 b->GetEntry(jentry2);
130     jentry2++;
131     }
132    
133     if (a->RunNumber ==b->RunNumber &&
134     a->EventNumber==b->EventNumber)
135     {
136     std::vector<TLorentzVector> va;
137 econte 1.2 TLorentzVector qa1;
138     qa1.SetXYZM( a->Track_px[0],
139     a->Track_py[0],
140     a->Track_pz[0],
141     MU_MASS );
142 econte 1.1 va.push_back(qa1);
143 econte 1.2 TLorentzVector qa2;
144     qa2.SetXYZM( a->Track_px[1],
145     a->Track_py[1],
146     a->Track_pz[1],
147     MU_MASS );
148 econte 1.1 va.push_back(qa2);
149     std::vector<TLorentzVector> vb;
150 econte 1.2 TLorentzVector qb1;
151     qb1.SetXYZM( b->Track_px[0],
152     b->Track_py[0],
153     b->Track_pz[0],
154     MU_MASS );
155 econte 1.1 vb.push_back(qb1);
156 econte 1.2 TLorentzVector qb2;
157     qb2.SetXYZM( b->Track_px[1],
158     b->Track_py[1],
159     b->Track_pz[1],
160     MU_MASS );
161 econte 1.1 vb.push_back(qb2);
162     ncounter++;
163     Compare(va,vb,histos);
164     }
165     else if (a->RunNumber!=b->RunNumber)
166     {
167     if (a->RunNumber<b->RunNumber)
168     {
169     read_a=true;
170     read_b=false;
171     }
172     else
173     {
174     read_a=false;
175     read_b=true;
176     }
177     }
178     else if (a->EventNumber!=b->EventNumber)
179     {
180     if (a->EventNumber<b->EventNumber)
181     {
182     read_a=true;
183     read_b=false;
184     }
185     else
186     {
187     read_a=false;
188     read_b=true;
189     }
190     }
191     }
192    
193     std::cout << "Number of common events = " << ncounter << std::endl;
194     }
195    
196    
197    
198    
199     void EvtComparison::Compare(const std::vector<TLorentzVector>& spy,
200     const std::vector<TLorentzVector>& tree,
201     histoEvt& histos)
202     {
203 econte 1.2 // std::cout << "common" << std::endl;
204 econte 1.1 }