Subversion Repositories f9daq

Rev

Rev 329 | Rev 331 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 329 Rev 330
Line 53... Line 53...
53
void h1d(const char *varname, const char *name, int nbins, double min, double max, int id );
53
void h1d(const char *varname, const char *name, int nbins, double min, double max, int id );
54
int  selector(int pin, int charge, SIMPLEPID particlename,  int hid, int pout );
54
int  selector(int pin, int charge, SIMPLEPID particlename,  int hid, int pout );
55
int  selector(int pin, int charge, SIMPLEPID particlename,  std::vector<int> hid, int pout );
55
int  selector(int pin, int charge, SIMPLEPID particlename,  std::vector<int> hid, int pout );
56
int  combiner(int id0 ,int id1 , int same, SIMPLEPID particlename, double min, double max, int hid, int id );
56
int  combiner(int id0 ,int id1 , int same, SIMPLEPID particlename, double min, double max, int hid, int id );
57
int  combiner(int id0 ,int id1 , int same, SIMPLEPID particlename, double min, double max, std::vector<int>hid, int id );
57
int  combiner(int id0 ,int id1 , int same, SIMPLEPID particlename, double min, double max, std::vector<int>hid, int id );
-
 
58
int  combiner3(int id0 ,int id1 , int id2, int same, SIMPLEPID particlename, double min, double max, int hid, int id );
-
 
59
int  combiner3(int id0 ,int id1 , int id2, int same, SIMPLEPID particlename, double min, double max, std::vector<int>hid, int id );
58
int  fix_mass(int id);
60
int  fix_mass(int id);
59
int  Fill(std::vector<int> hid, BParticle *p);
61
int  Fill(std::vector<int> hid, BParticle *p);
60
void plist(int i);
62
void plist(int i);
61
 
63
 
62
 
64
 
Line 136... Line 138...
136
return 0;
138
return 0;
137
}
139
}
138
int Blab2::combiner(int _p0, int _p1,int same, SIMPLEPID pid, double min, double max, int hid, int _p2 ){
140
int Blab2::combiner(int _p0, int _p1,int same, SIMPLEPID pid, double min, double max, int hid, int _p2 ){
139
std::vector<int> a;
141
std::vector<int> a;
140
return combiner(_p0,_p1,same,pid,min,max,a,_p2);
142
return combiner(_p0,_p1,same,pid,min,max,a,_p2);
-
 
143
}
-
 
144
 
-
 
145
int Blab2::combiner3(int _p0, int _p1, int _p2, int same, SIMPLEPID pid, double min, double max, int hid, int _p3 ){
-
 
146
std::vector<int> a;
-
 
147
return combiner3(_p0,_p1,_p2, same,pid,min,max,a,_p3);
141
}
148
}
142
 
149
 
143
int Blab2::combiner(int _p0, int _p1,int same, SIMPLEPID pid, double min, double max, std::vector<int> hid, int _p2 ){
150
int Blab2::combiner(int _p0, int _p1,int same, SIMPLEPID pid, double min, double max, std::vector<int> hid, int _p2 ){
144
   // Loop over all the particles in both lists.
151
   // Loop over all the particles in both lists.
145
 if (_p0 < 0 ) _p0 =0;
152
 if (_p0 < 0 ) _p0 =0;
Line 152... Line 159...
152
 for(TIter next1(fList[_p0]);BParticle * p1 =(BParticle *) next1();) {
159
 for(TIter next1(fList[_p0]);BParticle * p1 =(BParticle *) next1();) {
153
    // the second loop
160
    // the second loop
154
   // in the case the second parti 
161
   // in the case the second parti 
155
   for(TIter next2 = (_p0!=_p1 && same==0) ?  TIter(fList[_p1]): TIter(next1) ; BParticle * p2 =(BParticle *) next2();) {  
162
   for(TIter next2 = (_p0!=_p1 && same==0) ?  TIter(fList[_p1]): TIter(next1) ; BParticle * p2 =(BParticle *) next2();) {  
156
      if (p1==p2) continue;     // do not use the same particle in the combinations
163
      if (p1==p2) continue;     // do not use the same particle in the combinations
157
      BParticle  p = *p1 + *p2; // Combine two particles into a new particle   
164
      BParticle  p = *p1 + *p2; // Combine two particles into a new particle   
158
      if (p.InMassRange(min, max)){
165
      if (p.InMassRange(min, max)){
-
 
166
            Fill(hid, &p);
-
 
167
            p.SetPid(pid); // set PID to particlename to fix the particle mass
-
 
168
            p.SetEnergyFromPid();
-
 
169
            TClonesArray& list = *fList[_p2];          
-
 
170
            new (list[nprt++]) BParticle ( p ); // create a new entry in kslist list of particles
-
 
171
           
-
 
172
      }
-
 
173
       
-
 
174
   }
-
 
175
               
-
 
176
 }
-
 
177
 return _p2;
-
 
178
}
-
 
179
 
-
 
180
 
-
 
181
int Blab2::combiner3(int _p0, int _p1,int _p2, int same, SIMPLEPID pid, double min, double max, std::vector<int> hid, int _p3 ){
-
 
182
   // Loop over all the particles in both lists.
-
 
183
 if (_p0 < 0 ) _p0 =0;
-
 
184
 if (_p1 < 0 ) _p1 =0;
-
 
185
 if (_p2 < 0 ) _p2 =0;
-
 
186
 
-
 
187
 
-
 
188
 fList[_p2]->Clear();
-
 
189
 int nprt=0;
-
 
190
 
-
 
191
 for(TIter next1(fList[_p0]);BParticle * p1 =(BParticle *) next1();) {
-
 
192
    // the second loop
-
 
193
   // in the case the second parti 
-
 
194
   for(TIter next2 = (_p0!=_p1 && same==0) ?  TIter(fList[_p1]): TIter(next1) ; BParticle * p2 =(BParticle *) next2();) {  
-
 
195
      if (p1==p2) continue;     // do not use the same particle in the combinations
-
 
196
      for(TIter next3 = (_p1!=_p2 && same==0) ?  TIter(fList[_p2]): TIter(next2) ; BParticle * p3 =(BParticle *) next3();) {  
-
 
197
        if (p2==p3) continue;     // do not use the same particle in the combinations
-
 
198
        BParticle  p = *p1 + *p2 + *p3; // Combine two particles into a new particle   
-
 
199
        if (p.InMassRange(min, max)){
159
            Fill(hid, &p);
200
            Fill(hid, &p);
160
            p.SetPid(pid); // set PID to particlename to fix the particle mass
201
            p.SetPid(pid); // set PID to particlename to fix the particle mass
161
            p.SetEnergyFromPid();
202
            p.SetEnergyFromPid();
162
            TClonesArray& list = *fList[_p2];          
203
            TClonesArray& list = *fList[_p3];          
163
            new (list[nprt++]) BParticle ( p ); // create a new entry in kslist list of particles
204
            new (list[nprt++]) BParticle ( p ); // create a new entry in kslist list of particles       
164
           
205
        }
165
      }
206
      }
166
       
207
       
167
   }
208
   }
168
               
209
               
169
 }
210
 }
170
 return _p2;
211
 return _p3;
171
}
212
}
172
 
213
 
173
 
214
 
174
int Blab2::selector(int pin, int charge, SIMPLEPID type ,  int  hid, int pout ){
215
int Blab2::selector(int pin, int charge, SIMPLEPID type ,  int  hid, int pout ){
175
std::vector<int> a;
216
std::vector<int> a;