#include <XANADOO/domain/interface/XANAEsdEvent.h>
#include <XANADOO/XANAClusters/interface/XANACluster.h>
#include <XANADOO/XANAClusters/interface/XANACaloRecHit.h>
#include <XANADOO/XANAClusters/interface/XANAEmCluster.h>
#include <XANADOO/XANAClusters/interface/XANASuperCluster.h>
#include <XANADOO/XANAClusters/interface/XANAHadCluster.h>
#include <XANADOO/XANATracks/interface/XANATrack.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeneratorEvent.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeantEvent.h>
#include <XANADOO/XANAMcInfo/interface/XANAGeneratorParticle.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronCandidate.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronTrack.h>
#include <XANADOO/XANAElectronCandidate/interface/XANAElectronSeed.h>
#include <XANADOO/XANAMuons/interface/XANAMuonCandidate.h>
#include <XANADOO/XANATriggerInfo/interface/XANATriggerInfo.h>
#include <XANADOO/XANAJets/interface/XANAJet.h>
#include <XANADOO/XANAGeometry/interface/XANAEcalGeometry.h>
#include <XANADOO/XANAnalysisRS/interface/RSElecSelector.h>
#include <XANADOO/XANAnalysisRS/interface/RSCorrectionFunc.h>
#include <XANADOO/XANAnalysisRS/interface/RSSaturation.h>
#include <XANADOO/XANAnalysisRS/interface/RSPhotonAssoc.h>
#include <XANADOO/XANAnalysisRS/interface/ClassRSElec.h>
#include <XANADOO/XANAnalysisRS/interface/RSVertexCorr.h>
#include <XANADOO/XANAnalysisRS/interface/RSDistribAng.h>
#include <XANADOO/XANAnalysisRS/interface/RSMassEstim.h>
#include "TTree.h"
#include "TBits.h"
#include "TObjectTable.h"
#include "TFile.h"
#include "TBranch.h"
#include "TClonesArray.h"
#include "TObjArray.h"
#include "TH1.h"
#include "TH2.h"
#include "TSystem.h"
#include "TChain.h"
#include <string>
Include dependency graph for rsAnalc0p1.cpp:
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
Variables | |
Short_t | ne_candidatelectron = 0ns_supercluster=0 |
TObjArray * | genpart = 0 |
TObjArray * | clusters = 0 |
TObjArray * | hadClusters = 0 |
TObjArray * | superClusters = 0 |
TObjArray * | preshClusters = 0 |
TRefArray * | hits = 0 |
TObjArray * | tracks = 0 |
TObjArray * | vertices = 0 |
TObjArray * | electrons = 0 |
TObjArray * | electronTracks = 0 |
TObjArray * | muons = 0 |
|
Definition at line 61 of file rsAnalc0p1.cpp. References XANAGeantEvent::clear(), XANAGeneratorEvent::clear(), XANAEsdEvent::clear(), clusters, electrons, electronTracks, genpart, RSElec::getElecEt(), RSElec::getElecIsol(), XANAEsdEvent::getElectronCandidates(), XANAEsdEvent::getElectronTracks(), XANAEsdEvent::getEmClusterHits(), XANAEsdEvent::getEmClusters(), XANASuperCluster::getEnergyScaleFactor(), XANAEsdEvent::getHadClusters(), XANAGeneratorParticle::getMass(), XANAGeneratorParticle::getMo1(), XANAEsdEvent::getMuonCandidates(), XANAEsdEvent::getNumberOfElectronCandidates(), XANAEsdEvent::getNumberOfElectronTracks(), XANAEsdEvent::getNumberOfEmClusters(), XANAEsdEvent::getNumberOfHadClusters(), XANAEsdEvent::getNumberOfMuonCandidates(), XANAGeneratorEvent::getNumberOfParticles(), XANAGeneratorEvent::getNumberOfPileupParticles(), XANAEsdEvent::getNumberOfPreshClusters(), XANAGeneratorEvent::getNumberOfSignalParticles(), XANAGeneratorEvent::getNumberOfStablePileupParticles(), XANAGeneratorEvent::getNumberOfStableSignalParticles(), XANAEsdEvent::getNumberOfSuperClusters(), XANAEsdEvent::getNumberOfTrackHits(), XANAEsdEvent::getNumberOfTracks(), XANAEsdEvent::getNumberOfVertexTracks(), XANAEsdEvent::getNumberOfVertices(), XANAGeneratorEvent::getParticles(), XANAGeneratorParticle::getPartId(), XANASuperCluster::getPosition(), XANAEsdEvent::getPreshClusters(), XANAElectronCandidate::getSuperCluster(), XANAElectronCandidate::getSuperClusterEnergy(), XANAEsdEvent::getSuperClusters(), XANAEsdEvent::getTracks(), XANAEsdEvent::getVertices(), hadClusters, hits, muons, ne_candidatelectron, preshClusters, RSAssocPhoton(), RSCorrectionFunc(), RSdistribAngGen(), RSdistribAngRec(), RSMassGen(), RSMassRec(), RSSaturation(), RSSelection(), superClusters, tracks, and vertices.
00062 { 00063 // Connect to file generated 00064 TFile *f; 00065 // if (argc==1) f = new TFile("SE04_E25_Pall_PT30.root"); 00066 if (argc==1) f = new TFile("/data/scratch/collard/Production_xana151/zprim/famos/xZprimALRM_m1tev.root"); 00067 00068 else f = new TFile(*++argv); 00069 00070 // Read Tree named "T" in memory. Tree pointer is assigned the same name 00071 TTree *T = (TTree*)f->Get("ESD"); 00072 00073 00074 // version TChain 00075 // TChain *T = new TChain("ESD"); 00076 // T->Add("file1.root"); 00077 // T->Add("file2.root"); 00078 00079 // example of how to suppress reading of branches 00080 // has to be put before setting the branch addresses! 00081 // T->SetBranchStatus("GeantEvent*",0); 00082 00083 // Reconstructed event 00084 XANAEsdEvent *event = new XANAEsdEvent(); 00085 T->SetBranchAddress("Event.",&event); 00086 // MC information (generator and GEANT event) 00087 XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent(); 00088 T->SetBranchAddress("GeneratorEvent.",&generatorEvent); 00089 00090 XANAGeantEvent *geantEvent = new XANAGeantEvent(); 00091 T->SetBranchAddress("GeantEvent.",&geantEvent); 00092 00093 00094 00095 00096 // Histo 00097 // sans contrainte de masse 00098 TH1F *histo1000 = new TH1F("histo1000","M RSgrav gen ee ",180,0.,4.5); 00099 TH1F *histo1001 = new TH1F("histo1001","M RSgrav gen",180,0.,4.5); 00100 TH1F *histo1002 = new TH1F("histo1002","M RSgrav rec",180,0.,4.5); 00101 TH1F *histo1003 = new TH1F("histo1003","Delta M ",100,-50.,50.); 00102 TH1F *histo1004 = new TH1F("histo1004","CosTheta gen",20,-1.,1.); 00103 TH1F *histo1005 = new TH1F("histo1005","CosTheta rec",20,-1.,1.); 00104 TH1F *histo1006 = new TH1F("histo1006","CosTheta gen",10,-1.,1.); 00105 TH1F *histo1007 = new TH1F("histo1007","CosTheta rec",10,-1.,1.); 00106 TH1F *histo1008 = new TH1F("histo1008","Delta Cos th",100,-0.5,0.5); 00107 TH1F *histo1009 = new TH1F("histo1009","Delta Cos th",100,-0.2,0.2); 00108 00109 // 2TeV 00110 TH1F *histo2000 = new TH1F("histo2000","M RSgrav gen ee ",50, 1.5,2.5); 00111 TH1F *histo2001 = new TH1F("histo2001","M RSgrav gen ",50, 1.5,2.5); 00112 TH1F *histo2002 = new TH1F("histo2002","M RSgrav rec ",50, 1.5,2.5); 00113 TH1F *histo2003 = new TH1F("histo2003","M RSgrav gen ",100, 1.5,2.5); 00114 TH1F *histo2004 = new TH1F("histo2004","M RSgrav rec ",100, 1.5,2.5); 00115 TH1F *histo2005 = new TH1F("histo2005","M RSgrav gen ",1000,1.5,2.5); 00116 TH1F *histo2006 = new TH1F("histo2006","M RSgrav rec ",1000,1.5,2.5); 00117 TH1F *histo2007 = new TH1F("histo2007","CosTheta gen ",20,-1.,1.); 00118 TH1F *histo2008 = new TH1F("histo2008","CosTheta rec ",20,-1.,1.); 00119 TH1F *histo2009 = new TH1F("histo2009","CosTheta gen ",10,-1.,1.); 00120 TH1F *histo2010 = new TH1F("histo2010","CosTheta rec ",10,-1.,1.); 00121 00122 // 2TeV5 00123 TH1F *histo2100 = new TH1F("histo2100","M RSgrav gen ee ",50, 2.0,3.0); 00124 TH1F *histo2101 = new TH1F("histo2101","M RSgrav gen ",50, 2.0,3.0); 00125 TH1F *histo2102 = new TH1F("histo2102","M RSgrav rec ",50, 2.0,3.0); 00126 TH1F *histo2103 = new TH1F("histo2103","M RSgrav gen ",100, 2.0,3.0); 00127 TH1F *histo2104 = new TH1F("histo2104","M RSgrav rec ",100, 2.9,3.0); 00128 TH1F *histo2105 = new TH1F("histo2105","M RSgrav gen ",1000,2.0,3.0); 00129 TH1F *histo2106 = new TH1F("histo2106","M RSgrav rec ",1000,2.0,3.0); 00130 TH1F *histo2107 = new TH1F("histo2107","CosTheta gen ",20,-1.,1.); 00131 TH1F *histo2108 = new TH1F("histo2108","CosTheta rec ",20,-1.,1.); 00132 TH1F *histo2109 = new TH1F("histo2109","CosTheta gen ",10,-1.,1.); 00133 TH1F *histo2110 = new TH1F("histo2110","CosTheta rec ",10,-1.,1.); 00134 00135 // 3TeV 00136 TH1F *histo2200 = new TH1F("histo2200","M RSgrav gen ee ",50, 2.5,3.5); 00137 TH1F *histo2201 = new TH1F("histo2201","M RSgrav gen ",50, 2.5,3.5); 00138 TH1F *histo2202 = new TH1F("histo2202","M RSgrav rec ",50, 2.5,3.5); 00139 TH1F *histo2203 = new TH1F("histo2203","M RSgrav gen ",100, 2.5,3.5); 00140 TH1F *histo2204 = new TH1F("histo2204","M RSgrav rec ",100, 2.5,3.5); 00141 TH1F *histo2205 = new TH1F("histo2205","M RSgrav gen ",1000,2.5,3.5); 00142 TH1F *histo2206 = new TH1F("histo2206","M RSgrav rec ",1000,2.5,3.5); 00143 TH1F *histo2207 = new TH1F("histo2207","CosTheta gen ",20,-1.,1.); 00144 TH1F *histo2208 = new TH1F("histo2208","CosTheta rec ",20,-1.,1.); 00145 TH1F *histo2209 = new TH1F("histo2209","CosTheta gen ",10,-1.,1.); 00146 TH1F *histo2210 = new TH1F("histo2210","CosTheta rec ",10,-1.,1.); 00147 00148 // 3TeV5 00149 TH1F *histo2300 = new TH1F("histo2300","M RSgrav gen ee ",50, 3.0,4.0); 00150 TH1F *histo2301 = new TH1F("histo2301","M RSgrav gen ",50, 3.0,4.0); 00151 TH1F *histo2302 = new TH1F("histo2302","M RSgrav rec ",50, 3.0,4.0); 00152 TH1F *histo2303 = new TH1F("histo2303","M RSgrav gen ",100, 3.0,4.0); 00153 TH1F *histo2304 = new TH1F("histo2304","M RSgrav rec ",100, 3.0,4.0); 00154 TH1F *histo2305 = new TH1F("histo2305","M RSgrav gen ",1000,3.0,4.0); 00155 TH1F *histo2306 = new TH1F("histo2306","M RSgrav rec ",1000,3.0,4.0); 00156 TH1F *histo2307 = new TH1F("histo2307","CosTheta gen ",20,-1.,1.); 00157 TH1F *histo2308 = new TH1F("histo2308","CosTheta rec ",20,-1.,1.); 00158 TH1F *histo2309 = new TH1F("histo2309","CosTheta gen ",10,-1.,1.); 00159 TH1F *histo2310 = new TH1F("histo2310","CosTheta rec ",10,-1.,1.); 00160 00161 // 3TeV5 sans saturation 00162 TH1F *histo2400 = new TH1F("histo2400","M RSgrav gen ee ",50, 3.0,4.0); 00163 TH1F *histo2401 = new TH1F("histo2401","M RSgrav gen ",50, 3.0,4.0); 00164 TH1F *histo2402 = new TH1F("histo2402","M RSgrav rec ",50, 3.0,4.0); 00165 TH1F *histo2403 = new TH1F("histo2403","M RSgrav gen ",100, 3.0,4.0); 00166 TH1F *histo2404 = new TH1F("histo2404","M RSgrav rec ",100, 3.0,4.0); 00167 TH1F *histo2405 = new TH1F("histo2405","M RSgrav gen ",1000,3.0,4.0); 00168 TH1F *histo2406 = new TH1F("histo2406","M RSgrav rec ",1000,3.0,4.0); 00169 TH1F *histo2407 = new TH1F("histo2407","CosTheta gen ",20,-1.,1.); 00170 TH1F *histo2408 = new TH1F("histo2408","CosTheta rec ",20,-1.,1.); 00171 TH1F *histo2409 = new TH1F("histo2409","CosTheta gen ",10,-1.,1.); 00172 TH1F *histo2410 = new TH1F("histo2410","CosTheta rec ",10,-1.,1.); 00173 00174 // 4TeV 00175 TH1F *histo2500 = new TH1F("histo2500","M RSgrav gen ee ",50, 3.5,4.5); 00176 TH1F *histo2501 = new TH1F("histo2501","M RSgrav gen ",50, 3.5,4.5); 00177 TH1F *histo2502 = new TH1F("histo2502","M RSgrav rec ",50, 3.5,4.5); 00178 TH1F *histo2503 = new TH1F("histo2503","M RSgrav gen ",100, 3.5,4.5); 00179 TH1F *histo2504 = new TH1F("histo2504","M RSgrav rec ",100, 3.5,4.5); 00180 TH1F *histo2505 = new TH1F("histo2505","M RSgrav gen ",1000,3.5,4.5); 00181 TH1F *histo2506 = new TH1F("histo2506","M RSgrav rec ",1000,3.5,4.5); 00182 TH1F *histo2507 = new TH1F("histo2507","CosTheta gen ",20,-1.,1.); 00183 TH1F *histo2508 = new TH1F("histo2508","CosTheta rec ",20,-1.,1.); 00184 TH1F *histo2509 = new TH1F("histo2509","CosTheta gen ",10,-1.,1.); 00185 TH1F *histo2510 = new TH1F("histo2510","CosTheta rec ",10,-1.,1.); 00186 00187 // 4TeV sans saturation 00188 TH1F *histo2600 = new TH1F("histo2600","M RSgrav gen ee ",50, 3.5,4.5); 00189 TH1F *histo2601 = new TH1F("histo2601","M RSgrav gen ",50, 3.5,4.5); 00190 TH1F *histo2602 = new TH1F("histo2602","M RSgrav rec ",50, 3.5,4.5); 00191 TH1F *histo2603 = new TH1F("histo2603","M RSgrav gen ",100, 3.5,4.5); 00192 TH1F *histo2604 = new TH1F("histo2604","M RSgrav rec ",100, 3.5,4.5); 00193 TH1F *histo2605 = new TH1F("histo2605","M RSgrav gen ",1000,3.5,4.5); 00194 TH1F *histo2606 = new TH1F("histo2606","M RSgrav rec ",1000,3.5,4.5); 00195 TH1F *histo2607 = new TH1F("histo2607","CosTheta gen ",20,-1.,1.); 00196 TH1F *histo2608 = new TH1F("histo2608","CosTheta rec ",20,-1.,1.); 00197 TH1F *histo2609 = new TH1F("histo2609","CosTheta gen ",10,-1.,1.); 00198 TH1F *histo2610 = new TH1F("histo2610","CosTheta rec ",10,-1.,1.); 00199 00200 // 4TeV5 00201 TH1F *histo2700 = new TH1F("histo2700","M RSgrav gen ee ",50, 4.0,5.0); 00202 TH1F *histo2701 = new TH1F("histo2701","M RSgrav gen ",50, 4.0,5.0); 00203 TH1F *histo2702 = new TH1F("histo2702","M RSgrav rec ",50, 4.0,5.0); 00204 TH1F *histo2703 = new TH1F("histo2703","M RSgrav gen ",100, 4.0,5.0); 00205 TH1F *histo2704 = new TH1F("histo2704","M RSgrav rec ",100, 4.0,5.0); 00206 TH1F *histo2705 = new TH1F("histo2705","M RSgrav gen ",1000,4.0,5.0); 00207 TH1F *histo2706 = new TH1F("histo2706","M RSgrav rec ",1000,4.0,5.0); 00208 TH1F *histo2707 = new TH1F("histo2707","CosTheta gen ",20,-1.,1.); 00209 TH1F *histo2708 = new TH1F("histo2708","CosTheta rec ",20,-1.,1.); 00210 TH1F *histo2709 = new TH1F("histo2709","CosTheta gen ",10,-1.,1.); 00211 TH1F *histo2710 = new TH1F("histo2710","CosTheta rec ",10,-1.,1.); 00212 00213 // 4TeV5 sans saturation 00214 TH1F *histo2800 = new TH1F("histo2800","M RSgrav gen ee ",50, 4.0,5.0); 00215 TH1F *histo2801 = new TH1F("histo2801","M RSgrav gen ",50, 4.0,5.0); 00216 TH1F *histo2802 = new TH1F("histo2802","M RSgrav rec ",50, 4.0,5.0); 00217 TH1F *histo2803 = new TH1F("histo2803","M RSgrav gen ",100, 4.0,5.0); 00218 TH1F *histo2804 = new TH1F("histo2804","M RSgrav rec ",100, 4.0,5.0); 00219 TH1F *histo2805 = new TH1F("histo2805","M RSgrav gen ",1000,4.0,5.0); 00220 TH1F *histo2806 = new TH1F("histo2806","M RSgrav rec ",1000,4.0,5.0); 00221 TH1F *histo2807 = new TH1F("histo2807","CosTheta gen ",20,-1.,1.); 00222 TH1F *histo2808 = new TH1F("histo2808","CosTheta rec ",20,-1.,1.); 00223 TH1F *histo2809 = new TH1F("histo2809","CosTheta gen ",10,-1.,1.); 00224 TH1F *histo2810 = new TH1F("histo2810","CosTheta rec ",10,-1.,1.); 00225 00226 // Start main loop on all events 00227 Int_t nb = 0; 00228 Int_t nevent = (Int_t)T->GetEntries(); 00229 00230 // nevent =10; 00231 00232 00233 cout << "Nombre d entrees a traiter : " << nevent << endl; 00234 for (Int_t i=0; i<nevent; i++) { 00235 nb += T->GetEntry(i); 00236 00237 00238 // Monte Carlo information 00239 00240 // generator event 00241 Short_t mc_np = 0, mc_nsp = 0, mc_nssp = 0, mc_npp = 0, mc_nspp = 0 ; 00242 mc_np = generatorEvent->getNumberOfParticles(); 00243 mc_nsp = generatorEvent->getNumberOfSignalParticles(); 00244 mc_nssp = generatorEvent->getNumberOfStableSignalParticles(); 00245 mc_npp = generatorEvent->getNumberOfPileupParticles(); 00246 mc_nspp = generatorEvent->getNumberOfStablePileupParticles(); 00247 genpart=generatorEvent->getParticles(); 00248 int npart=0,iRSgrav=11,ilink1=0,ilink2=0; 00249 for (int gp=0;gp<mc_np;gp++) { 00250 XANAGeneratorParticle *gpart = (XANAGeneratorParticle *)((*genpart)[gp]); 00251 if ((gpart->getPartId()==11 || gpart->getPartId()==-11) && gpart->getMo1()==12 ) 00252 { 00253 if (npart==0) 00254 { 00255 // elec 1 00256 npart++; 00257 ilink1=gp; 00258 } 00259 else if (npart==1) 00260 { 00261 //elec 2 00262 npart++; 00263 ilink2=gp; 00264 } 00265 else 00266 { 00267 cout << " pas possible d'avoir 3 electrons rattaches au RSgrav " << endl; 00268 } 00269 } 00270 } 00271 XANAGeneratorParticle *gRSgrav = (XANAGeneratorParticle *)((*genpart)[iRSgrav]); 00272 XANAGeneratorParticle *gElec1 = (XANAGeneratorParticle *)((*genpart)[ilink1]); 00273 XANAGeneratorParticle *gElec2 = (XANAGeneratorParticle *)((*genpart)[ilink2]); 00274 00275 float trueMassGen=gRSgrav->getMass(); 00276 float eeMassGen=RSMassGen(gElec1,gElec2); 00277 float costhetaGen = RSdistribAngGen(gElec1,gElec2); 00278 00279 histo1000->Fill( eeMassGen/1000.); 00280 histo2000->Fill( eeMassGen/1000.); 00281 histo2100->Fill( eeMassGen/1000.); 00282 histo2200->Fill( eeMassGen/1000.); 00283 histo2300->Fill( eeMassGen/1000.); 00284 histo2400->Fill( eeMassGen/1000.); 00285 histo2500->Fill( eeMassGen/1000.); 00286 histo2600->Fill( eeMassGen/1000.); 00287 histo2700->Fill( eeMassGen/1000.); 00288 histo2800->Fill( eeMassGen/1000.); 00289 00290 histo1001->Fill( trueMassGen/1000.); 00291 00292 histo2001->Fill( trueMassGen/1000.); 00293 histo2003->Fill( trueMassGen/1000.); 00294 histo2005->Fill( trueMassGen/1000.); 00295 00296 histo2101->Fill( trueMassGen/1000.); 00297 histo2103->Fill( trueMassGen/1000.); 00298 histo2105->Fill( trueMassGen/1000.); 00299 00300 histo2201->Fill( trueMassGen/1000.); 00301 histo2203->Fill( trueMassGen/1000.); 00302 histo2205->Fill( trueMassGen/1000.); 00303 00304 histo2301->Fill( trueMassGen/1000.); 00305 histo2303->Fill( trueMassGen/1000.); 00306 histo2305->Fill( trueMassGen/1000.); 00307 00308 histo2401->Fill( trueMassGen/1000.); 00309 histo2403->Fill( trueMassGen/1000.); 00310 histo2405->Fill( trueMassGen/1000.); 00311 00312 histo2501->Fill( trueMassGen/1000.); 00313 histo2503->Fill( trueMassGen/1000.); 00314 histo2505->Fill( trueMassGen/1000.); 00315 00316 histo2601->Fill( trueMassGen/1000.); 00317 histo2603->Fill( trueMassGen/1000.); 00318 histo2605->Fill( trueMassGen/1000.); 00319 00320 histo2701->Fill( trueMassGen/1000.); 00321 histo2703->Fill( trueMassGen/1000.); 00322 histo2705->Fill( trueMassGen/1000.); 00323 00324 histo2801->Fill( trueMassGen/1000.); 00325 histo2803->Fill( trueMassGen/1000.); 00326 histo2805->Fill( trueMassGen/1000.); 00327 00328 histo1004->Fill( costhetaGen ); 00329 histo1006->Fill( costhetaGen ); 00330 00331 // Reconstructed event 00332 00333 // Definitions 00334 Short_t nc = 0, nh = 0, nhc = 0, npc = 0, nt = 0, nv = 0, nvt = 0; 00335 Short_t nm = 0, nelt = 0 ; 00336 00337 00338 nc = event->getNumberOfEmClusters(); clusters = event->getEmClusters(); 00339 nh = event->getNumberOfTrackHits(); hits = event->getEmClusterHits(); 00340 nhc = event->getNumberOfHadClusters(); hadClusters = event->getHadClusters(); 00341 ns_supercluster = event->getNumberOfSuperClusters(); 00342 superClusters = event->getSuperClusters(); 00343 npc = event->getNumberOfPreshClusters(); preshClusters = event->getPreshClusters(); 00344 nt = event->getNumberOfTracks(); tracks = event->getTracks(); 00345 nv = event->getNumberOfVertices(); vertices = event->getVertices(); 00346 nvt = event->getNumberOfVertexTracks(); 00347 ne_candidatelectron = event->getNumberOfElectronCandidates(); 00348 electrons = event->getElectronCandidates(); 00349 nm = event->getNumberOfMuonCandidates(); muons = event->getMuonCandidates(); 00350 nelt = event->getNumberOfElectronTracks(); electronTracks = event->getElectronTracks(); 00351 00352 00353 00354 // electrons 00355 Int_t indexel1=-1, indexel2=-1; 00356 00357 // Selection des 2 candidats electrons les plus energetiques 00358 00359 RSSelection(indexel1, indexel2); 00360 00361 // On ne travaille qu'avec les 2 Candidats Electrons les + energetiques 00362 00363 if (indexel1>-1 && indexel2>-1) 00364 { 00365 XANAElectronCandidate *elec1 = (XANAElectronCandidate*)((*electrons)[indexel1]); 00366 XANAElectronCandidate *elec2 = (XANAElectronCandidate*)((*electrons)[indexel2]); 00367 00368 float energy1 =elec1->getSuperClusterEnergy()/elec1->getSuperCluster()->getEnergyScaleFactor(); 00369 float eta1 =elec1->getSuperCluster()->getPosition().eta(); 00370 float phi1 =elec1->getSuperCluster()->getPosition().phi(); 00371 00372 float energy2 =elec2->getSuperClusterEnergy()/elec2->getSuperCluster()->getEnergyScaleFactor(); 00373 float eta2 =elec2->getSuperCluster()->getPosition().eta(); 00374 float phi2 =elec2->getSuperCluster()->getPosition().phi(); 00375 00376 // Traitement de la saturation 00377 int iflag_satur=0; 00378 RSSaturation(elec1, energy1, iflag_satur); 00379 RSSaturation(elec2, energy2, iflag_satur); 00380 00381 // Association des photons 00382 float EtIsol1=0.; 00383 float EtIsol2=0.; 00384 RSAssocPhoton(elec1, energy1, EtIsol1); 00385 RSAssocPhoton(elec2, energy2, EtIsol2); 00386 00387 // Correction de l'energie pour eta 00388 00389 bool FAMOS=true; 00390 float xcor1=RSCorrectionFunc(energy1, eta1, FAMOS); 00391 float xcor2=RSCorrectionFunc(energy2, eta2, FAMOS); 00392 xcor1=1./xcor1; 00393 xcor2=1./xcor2; 00394 energy1*=xcor1; 00395 energy2*=xcor2; 00396 00397 // Candidat RSElec 00398 00399 RSElec *cElec1 = new RSElec(elec1,energy1,eta1,phi1,EtIsol1); 00400 RSElec *cElec2 = new RSElec(elec2,energy2,eta2,phi2,EtIsol2); 00401 00402 // Masse Reconstruite 00403 float eeMassRec=RSMassRec(cElec1,cElec2); 00404 00405 // Cut en iso (H/E pas encore dispo dans FAMOS 1_2_0) 00406 if ( cElec1->getElecIsol()< 0.02* cElec1->getElecEt() && 00407 cElec2->getElecIsol()< 0.02* cElec2->getElecEt() ) 00408 { 00409 float costhetaRec = RSdistribAngRec(cElec1,cElec2); 00410 00411 histo1002->Fill( eeMassRec /1000. ); 00412 histo1003->Fill( trueMassGen-eeMassRec); 00413 00414 histo1005->Fill(costhetaRec); 00415 histo1007->Fill(costhetaRec); 00416 histo1008->Fill( costhetaGen-costhetaRec); 00417 histo1009->Fill( costhetaGen-costhetaRec); 00418 00419 histo2002->Fill( eeMassRec /1000. ); 00420 histo2004->Fill( eeMassRec /1000. ); 00421 histo2006->Fill( eeMassRec /1000. ); 00422 00423 histo2102->Fill( eeMassRec /1000. ); 00424 histo2104->Fill( eeMassRec /1000. ); 00425 histo2106->Fill( eeMassRec /1000. ); 00426 00427 histo2202->Fill( eeMassRec /1000. ); 00428 histo2204->Fill( eeMassRec /1000. ); 00429 histo2206->Fill( eeMassRec /1000. ); 00430 00431 histo2302->Fill( eeMassRec /1000. ); 00432 histo2304->Fill( eeMassRec /1000. ); 00433 histo2306->Fill( eeMassRec /1000. ); 00434 00435 histo2502->Fill( eeMassRec /1000. ); 00436 histo2504->Fill( eeMassRec /1000. ); 00437 histo2506->Fill( eeMassRec /1000. ); 00438 00439 histo2702->Fill( eeMassRec /1000. ); 00440 histo2704->Fill( eeMassRec /1000. ); 00441 histo2706->Fill( eeMassRec /1000. ); 00442 00443 if (iflag_satur==0) 00444 { 00445 histo2402->Fill( eeMassRec /1000. ); 00446 histo2404->Fill( eeMassRec /1000. ); 00447 histo2406->Fill( eeMassRec /1000. ); 00448 00449 histo2602->Fill( eeMassRec /1000. ); 00450 histo2604->Fill( eeMassRec /1000. ); 00451 histo2606->Fill( eeMassRec /1000. ); 00452 00453 histo2802->Fill( eeMassRec /1000. ); 00454 histo2804->Fill( eeMassRec /1000. ); 00455 histo2806->Fill( eeMassRec /1000. ); 00456 } 00457 00458 if (1900<eeMassRec && eeMassRec<2100) 00459 { 00460 histo2007->Fill( costhetaGen ); 00461 histo2008->Fill( costhetaRec ); 00462 histo2009->Fill( costhetaGen ); 00463 histo2010->Fill( costhetaRec ); 00464 } 00465 else if (2400<eeMassRec && eeMassRec<2600) 00466 { 00467 histo2107->Fill( costhetaGen ); 00468 histo2108->Fill( costhetaRec ); 00469 histo2109->Fill( costhetaGen ); 00470 histo2110->Fill( costhetaRec ); 00471 } 00472 else if (2900<eeMassRec && eeMassRec<3100) 00473 { 00474 histo2207->Fill( costhetaGen ); 00475 histo2208->Fill( costhetaRec ); 00476 histo2209->Fill( costhetaGen ); 00477 histo2210->Fill( costhetaRec ); 00478 } 00479 else if (3400<eeMassRec && eeMassRec<3600) 00480 { 00481 histo2307->Fill( costhetaGen ); 00482 histo2308->Fill( costhetaRec ); 00483 histo2309->Fill( costhetaGen ); 00484 histo2310->Fill( costhetaRec ); 00485 if (iflag_satur==0) 00486 { 00487 histo2407->Fill( costhetaGen ); 00488 histo2408->Fill( costhetaRec ); 00489 histo2409->Fill( costhetaGen ); 00490 histo2410->Fill( costhetaRec ); 00491 } 00492 } 00493 else if (3900<eeMassRec && eeMassRec<4100) 00494 { 00495 histo2507->Fill( costhetaGen ); 00496 histo2508->Fill( costhetaRec ); 00497 histo2509->Fill( costhetaGen ); 00498 histo2510->Fill( costhetaRec ); 00499 if (iflag_satur==0) 00500 { 00501 histo2607->Fill( costhetaGen ); 00502 histo2608->Fill( costhetaRec ); 00503 histo2609->Fill( costhetaGen ); 00504 histo2610->Fill( costhetaRec ); 00505 } 00506 } 00507 else if (4400<eeMassRec && eeMassRec<4600) 00508 { 00509 histo2707->Fill( costhetaGen ); 00510 histo2708->Fill( costhetaRec ); 00511 histo2709->Fill( costhetaGen ); 00512 histo2710->Fill( costhetaRec ); 00513 if (iflag_satur==0) 00514 { 00515 histo2807->Fill( costhetaGen ); 00516 histo2808->Fill( costhetaRec ); 00517 histo2809->Fill( costhetaGen ); 00518 histo2810->Fill( costhetaRec ); 00519 } 00520 } 00521 00522 00523 00524 } 00525 00526 00527 00528 } 00529 00530 00531 event->clear(); 00532 generatorEvent->clear(); 00533 geantEvent->clear(); 00534 } 00535 00536 // f.Close(); 00537 // 00538 TFile *filehisto = new TFile("Mass_0.root","RECREATE"); 00539 00540 histo1000->Write(); 00541 histo1001->Write(); 00542 histo1002->Write(); 00543 histo1003->Write(); 00544 histo1004->Write(); 00545 histo1005->Write(); 00546 histo1006->Write(); 00547 histo1007->Write(); 00548 histo1008->Write(); 00549 histo1009->Write(); 00550 00551 00552 histo2000->Write(); 00553 histo2001->Write(); 00554 histo2002->Write(); 00555 histo2003->Write(); 00556 histo2004->Write(); 00557 histo2005->Write(); 00558 histo2006->Write(); 00559 histo2007->Write(); 00560 histo2008->Write(); 00561 histo2009->Write(); 00562 histo2010->Write(); 00563 00564 histo2100->Write(); 00565 histo2101->Write(); 00566 histo2102->Write(); 00567 histo2103->Write(); 00568 histo2104->Write(); 00569 histo2105->Write(); 00570 histo2106->Write(); 00571 histo2107->Write(); 00572 histo2108->Write(); 00573 histo2109->Write(); 00574 histo2110->Write(); 00575 00576 histo2200->Write(); 00577 histo2201->Write(); 00578 histo2202->Write(); 00579 histo2203->Write(); 00580 histo2204->Write(); 00581 histo2205->Write(); 00582 histo2206->Write(); 00583 histo2207->Write(); 00584 histo2208->Write(); 00585 histo2209->Write(); 00586 histo2210->Write(); 00587 00588 histo2300->Write(); 00589 histo2301->Write(); 00590 histo2302->Write(); 00591 histo2303->Write(); 00592 histo2304->Write(); 00593 histo2305->Write(); 00594 histo2306->Write(); 00595 histo2307->Write(); 00596 histo2308->Write(); 00597 histo2309->Write(); 00598 histo2310->Write(); 00599 00600 histo2400->Write(); 00601 histo2401->Write(); 00602 histo2402->Write(); 00603 histo2403->Write(); 00604 histo2404->Write(); 00605 histo2405->Write(); 00606 histo2406->Write(); 00607 histo2407->Write(); 00608 histo2408->Write(); 00609 histo2409->Write(); 00610 histo2410->Write(); 00611 00612 histo2500->Write(); 00613 histo2501->Write(); 00614 histo2502->Write(); 00615 histo2503->Write(); 00616 histo2504->Write(); 00617 histo2505->Write(); 00618 histo2506->Write(); 00619 histo2507->Write(); 00620 histo2508->Write(); 00621 histo2509->Write(); 00622 histo2510->Write(); 00623 00624 histo2600->Write(); 00625 histo2601->Write(); 00626 histo2602->Write(); 00627 histo2603->Write(); 00628 histo2604->Write(); 00629 histo2605->Write(); 00630 histo2606->Write(); 00631 histo2607->Write(); 00632 histo2608->Write(); 00633 histo2609->Write(); 00634 histo2610->Write(); 00635 00636 histo2700->Write(); 00637 histo2701->Write(); 00638 histo2702->Write(); 00639 histo2703->Write(); 00640 histo2704->Write(); 00641 histo2705->Write(); 00642 histo2706->Write(); 00643 histo2707->Write(); 00644 histo2708->Write(); 00645 histo2709->Write(); 00646 histo2710->Write(); 00647 00648 histo2800->Write(); 00649 histo2801->Write(); 00650 histo2802->Write(); 00651 histo2803->Write(); 00652 histo2804->Write(); 00653 histo2805->Write(); 00654 histo2806->Write(); 00655 histo2807->Write(); 00656 histo2808->Write(); 00657 histo2809->Write(); 00658 histo2810->Write(); 00659 00660 filehisto->Close(); 00661 00662 00663 } |
|
Definition at line 48 of file rsAnalc0p1.cpp. |
|
Definition at line 55 of file rsAnalc0p1.cpp. |
|
Definition at line 56 of file rsAnalc0p1.cpp. |
|
Definition at line 47 of file rsAnalc0p1.cpp. |
|
Definition at line 49 of file rsAnalc0p1.cpp. |
|
Definition at line 52 of file rsAnalc0p1.cpp. |
|
Definition at line 57 of file rsAnalc0p1.cpp. |
|
Definition at line 46 of file rsAnalc0p1.cpp. |
|
Definition at line 51 of file rsAnalc0p1.cpp. |
|
Definition at line 50 of file rsAnalc0p1.cpp. |
|
Definition at line 53 of file rsAnalc0p1.cpp. |
|
Definition at line 54 of file rsAnalc0p1.cpp. |