Changes in modules/TreeWriter.cc [cc8716b:b750b0a] in git
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/TreeWriter.cc
rcc8716b rb750b0a 45 45 #include "TString.h" 46 46 47 #include <set>48 47 #include <algorithm> 49 48 #include <iostream> … … 77 76 fClassMap[Electron::Class()] = &TreeWriter::ProcessElectrons; 78 77 fClassMap[Muon::Class()] = &TreeWriter::ProcessMuons; 79 fClassMap[CscCluster::Class()] = &TreeWriter::ProcessCscCluster;80 78 fClassMap[Jet::Class()] = &TreeWriter::ProcessJets; 81 79 fClassMap[MissingET::Class()] = &TreeWriter::ProcessMissingET; … … 151 149 { 152 150 TIter it1(candidate->GetCandidates()); 153 set<Candidate *> s;154 set<Candidate *>::iterator it3;155 151 it1.Reset(); 156 s.clear();157 152 array->Clear(); 158 153 … … 164 159 if(candidate->GetCandidates()->GetEntriesFast() == 0) 165 160 { 166 s.insert(candidate);161 array->Add(candidate); 167 162 continue; 168 163 } … … 172 167 if(candidate->GetCandidates()->GetEntriesFast() == 0) 173 168 { 174 s.insert(candidate);169 array->Add(candidate); 175 170 continue; 176 171 } … … 180 175 while((candidate = static_cast<Candidate *>(it2.Next()))) 181 176 { 182 candidate = static_cast<Candidate *>(candidate->GetCandidates()->At(0)); 183 if(candidate->GetCandidates()->GetEntriesFast() == 0) 184 { 185 s.insert(candidate); 186 } 177 array->Add(candidate->GetCandidates()->At(0)); 187 178 } 188 }189 190 for(it3 = s.begin(); it3 != s.end(); ++it3)191 {192 array->Add(*it3);193 179 } 194 180 } … … 252 238 entry->Z = position.Z(); 253 239 entry->T = position.T() * 1.0E-3 / c_light; 254 255 240 } 256 241 } … … 399 384 entry->Zd = candidate->Zd; 400 385 401 entry->XFirstHit = candidate->XFirstHit;402 entry->YFirstHit = candidate->YFirstHit;403 entry->ZFirstHit = candidate->ZFirstHit;404 405 386 const TLorentzVector &momentum = candidate->Momentum; 406 387 … … 563 544 entry->Zd = candidate->Zd; 564 545 565 entry->XFirstHit = candidate->XFirstHit;566 entry->YFirstHit = candidate->YFirstHit;567 entry->ZFirstHit = candidate->ZFirstHit;568 569 546 const TLorentzVector &momentum = candidate->Momentum; 570 547 … … 909 886 } 910 887 } 911 //------------------------------------------------------------------------------912 913 void TreeWriter::ProcessCscCluster(ExRootTreeBranch *branch, TObjArray *array)914 {915 TIter iterator(array);916 Candidate *candidate = 0;917 CscCluster *entry = 0;918 Double_t pt, signPz, cosTheta, eta, rapidity;919 920 const Double_t c_light = 2.99792458E8; // in unit of m/s921 922 array->Sort();923 924 925 // loop over all clusters926 iterator.Reset();927 while((candidate = static_cast<Candidate *>(iterator.Next())))928 {929 const TLorentzVector &momentum = candidate->Momentum;930 const TLorentzVector &position = candidate->DecayPosition;931 932 pt = momentum.Pt();933 cosTheta = TMath::Abs(momentum.CosTheta());934 signPz = (momentum.Pz() >= 0.0) ? 1.0 : -1.0;935 eta = (cosTheta == 1.0 ? signPz * 999.9 : momentum.Eta());936 937 entry = static_cast<CscCluster *>(branch->NewEntry());938 939 entry->SetBit(kIsReferenced);940 entry->SetUniqueID(candidate->GetUniqueID());941 942 entry->Eta = eta;943 entry->Phi = momentum.Phi();944 945 entry->PT = momentum.Pt(); // pt of LLP946 entry->Px = momentum.Px();// px of LLP947 entry->Py = momentum.Py();// py of LLP948 entry->Pz = momentum.Pz();// pz of LLP949 entry->E = momentum.E(); // E of LLP950 entry->pid = candidate->PID; // LLP pid951 entry->Eem = candidate->Eem; // LLP Eem952 entry->Ehad = candidate->Ehad; // LLP Ehad953 Double_t beta = momentum.P()/momentum.E();954 Double_t gamma = 1.0/sqrt(1-beta*beta);955 Double_t decayDistance = sqrt(pow(position.X(),2)+pow(position.Y(),2)+pow(position.Z(),2)); // mm956 entry->beta = beta; // LLP pid957 entry->ctau = decayDistance/(beta * gamma); // LLP travel time in its rest frame958 entry->T = decayDistance*(1./beta-1)* 1.0E-3/c_light*1e9; // ns959 entry->X = position.X(); // LLP decay x960 entry->Y = position.Y(); // LLP decay y961 entry->Z = position.Z(); // LLP decay z962 }963 }964 888 965 889 //------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.