#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/XANAVertex/interface/XANAVertex.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 rsAnalc0p01_o.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 64 of file rsAnalc0p01_o.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(), XANAVertex::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(), RSZvertexCorrection(), superClusters, tracks, and vertices.
00065 {
00066
00067 // version TChain
00068 TChain *T = new TChain("ESD");
00069 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_1.root");
00070 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_2.root");
00071 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_3.root");
00072 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_4.root");
00073 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_5.root");
00074 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_6.root");
00075 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_7.root");
00076 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_8.root");
00077 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_9.root");
00078 T->Add("/data/scratch/collard/Production_xana151/grav/oscar/oRSee_1500_c001_10.root");
00079
00080 // example of how to suppress reading of branches
00081 // has to be put before setting the branch addresses!
00082 // T->SetBranchStatus("GeantEvent*",0);
00083
00084 // Reconstructed event
00085 XANAEsdEvent *event = new XANAEsdEvent();
00086 T->SetBranchAddress("Event.",&event);
00087 // MC information (generator and GEANT event)
00088 XANAGeneratorEvent *generatorEvent = new XANAGeneratorEvent();
00089 T->SetBranchAddress("GeneratorEvent.",&generatorEvent);
00090
00091 XANAGeantEvent *geantEvent = new XANAGeantEvent();
00092 T->SetBranchAddress("GeantEvent.",&geantEvent);
00093
00094
00095
00096
00097 // Histo
00098 // sans contrainte de masse
00099 TH1F *histo1000 = new TH1F("histo1000","M RSgrav gen ee ",180,0.,4.5);
00100 TH1F *histo1001 = new TH1F("histo1001","M RSgrav gen",180,0.,4.5);
00101 TH1F *histo1002 = new TH1F("histo1002","M RSgrav rec",180,0.,4.5);
00102 TH1F *histo1003 = new TH1F("histo1003","Delta M ",100,-50.,50.);
00103 TH1F *histo1004 = new TH1F("histo1004","CosTheta gen",20,-1.,1.);
00104 TH1F *histo1005 = new TH1F("histo1005","CosTheta rec",20,-1.,1.);
00105 TH1F *histo1006 = new TH1F("histo1006","CosTheta gen",10,-1.,1.);
00106 TH1F *histo1007 = new TH1F("histo1007","CosTheta rec",10,-1.,1.);
00107 TH1F *histo1008 = new TH1F("histo1008","Delta Cos th",100,-0.5,0.5);
00108 TH1F *histo1009 = new TH1F("histo1009","Delta Cos th",100,-0.2,0.2);
00109
00110 // 0TeV75
00111 TH1F *histo2000 = new TH1F("histo2000","M RSgrav gen ee ",50, 0.55,0.85);
00112 TH1F *histo2001 = new TH1F("histo2001","M RSgrav gen ",50, 0.55,0.85);
00113 TH1F *histo2002 = new TH1F("histo2002","M RSgrav rec ",50, 0.55,0.85);
00114 TH1F *histo2003 = new TH1F("histo2003","M RSgrav gen ",100, 0.55,0.85);
00115 TH1F *histo2004 = new TH1F("histo2004","M RSgrav rec ",100, 0.55,0.85);
00116 TH1F *histo2005 = new TH1F("histo2005","M RSgrav gen ",200,0.55,0.85);
00117 TH1F *histo2006 = new TH1F("histo2006","M RSgrav rec ",200,0.55,0.85);
00118 TH1F *histo2007 = new TH1F("histo2007","CosTheta gen ",20,-1.,1.);
00119 TH1F *histo2008 = new TH1F("histo2008","CosTheta rec ",20,-1.,1.);
00120 TH1F *histo2009 = new TH1F("histo2009","CosTheta gen ",10,-1.,1.);
00121 TH1F *histo2010 = new TH1F("histo2010","CosTheta rec ",10,-1.,1.);
00122
00123 // 1TeV
00124 TH1F *histo2100 = new TH1F("histo2100","M RSgrav gen ee ",50, 0.8,1.1);
00125 TH1F *histo2101 = new TH1F("histo2101","M RSgrav gen ",50, 0.8,1.1);
00126 TH1F *histo2102 = new TH1F("histo2102","M RSgrav rec ",50, 0.8,1.1);
00127 TH1F *histo2103 = new TH1F("histo2103","M RSgrav gen ",100,0.8,1.1);
00128 TH1F *histo2104 = new TH1F("histo2104","M RSgrav rec ",100,0.8,1.1);
00129 TH1F *histo2105 = new TH1F("histo2105","M RSgrav gen ",200,0.8,1.1);
00130 TH1F *histo2106 = new TH1F("histo2106","M RSgrav rec ",200,0.8,1.1);
00131 TH1F *histo2107 = new TH1F("histo2107","CosTheta gen ",20,-1.,1.);
00132 TH1F *histo2108 = new TH1F("histo2108","CosTheta rec ",20,-1.,1.);
00133 TH1F *histo2109 = new TH1F("histo2109","CosTheta gen ",10,-1.,1.);
00134 TH1F *histo2110 = new TH1F("histo2110","CosTheta rec ",10,-1.,1.);
00135
00136 // 1TeV25
00137 TH1F *histo2200 = new TH1F("histo2200","M RSgrav gen ee ",50, 1.05,1.35);
00138 TH1F *histo2201 = new TH1F("histo2201","M RSgrav gen ",50, 1.05,1.35);
00139 TH1F *histo2202 = new TH1F("histo2202","M RSgrav rec ",50, 1.05,1.35);
00140 TH1F *histo2203 = new TH1F("histo2203","M RSgrav gen ",100,1.05,1.35);
00141 TH1F *histo2204 = new TH1F("histo2204","M RSgrav rec ",100,1.05,1.35);
00142 TH1F *histo2205 = new TH1F("histo2205","M RSgrav gen ",200,1.05,1.35);
00143 TH1F *histo2206 = new TH1F("histo2206","M RSgrav rec ",200,1.05,1.35);
00144 TH1F *histo2207 = new TH1F("histo2207","CosTheta gen ",20,-1.,1.);
00145 TH1F *histo2208 = new TH1F("histo2208","CosTheta rec ",20,-1.,1.);
00146 TH1F *histo2209 = new TH1F("histo2209","CosTheta gen ",10,-1.,1.);
00147 TH1F *histo2210 = new TH1F("histo2210","CosTheta rec ",10,-1.,1.);
00148
00149 // 1TeV5
00150 TH1F *histo2300 = new TH1F("histo2300","M RSgrav gen ee ",50, 1.3,1.6);
00151 TH1F *histo2301 = new TH1F("histo2301","M RSgrav gen ",50, 1.3,1.6);
00152 TH1F *histo2302 = new TH1F("histo2302","M RSgrav rec ",50, 1.3,1.6);
00153 TH1F *histo2303 = new TH1F("histo2303","M RSgrav gen ",100,1.3,1.6);
00154 TH1F *histo2304 = new TH1F("histo2304","M RSgrav rec ",100,1.3,1.6);
00155 TH1F *histo2305 = new TH1F("histo2305","M RSgrav gen ",200,1.3,1.6);
00156 TH1F *histo2306 = new TH1F("histo2306","M RSgrav rec ",200,1.3,1.6);
00157 TH1F *histo2307 = new TH1F("histo2307","CosTheta gen ",20,-1.,1.);
00158 TH1F *histo2308 = new TH1F("histo2308","CosTheta rec ",20,-1.,1.);
00159 TH1F *histo2309 = new TH1F("histo2309","CosTheta gen ",10,-1.,1.);
00160 TH1F *histo2310 = new TH1F("histo2310","CosTheta rec ",10,-1.,1.);
00161
00162 // 1TeV75
00163 TH1F *histo2400 = new TH1F("histo2400","M RSgrav gen ee ",50, 1.55,1.85);
00164 TH1F *histo2401 = new TH1F("histo2401","M RSgrav gen ",50, 1.55,1.85);
00165 TH1F *histo2402 = new TH1F("histo2402","M RSgrav rec ",50, 1.55,1.85);
00166 TH1F *histo2403 = new TH1F("histo2403","M RSgrav gen ",100,1.55,1.85);
00167 TH1F *histo2404 = new TH1F("histo2404","M RSgrav rec ",100,1.55,1.85);
00168 TH1F *histo2405 = new TH1F("histo2405","M RSgrav gen ",200,1.55,1.85);
00169 TH1F *histo2406 = new TH1F("histo2406","M RSgrav rec ",200,1.55,1.85);
00170 TH1F *histo2407 = new TH1F("histo2407","CosTheta gen ",20,-1.,1.);
00171 TH1F *histo2408 = new TH1F("histo2408","CosTheta rec ",20,-1.,1.);
00172 TH1F *histo2409 = new TH1F("histo2409","CosTheta gen ",10,-1.,1.);
00173 TH1F *histo2410 = new TH1F("histo2410","CosTheta rec ",10,-1.,1.);
00174
00175 // 2TeV
00176 TH1F *histo2500 = new TH1F("histo2500","M RSgrav gen ee ",50, 1.8,2.1);
00177 TH1F *histo2501 = new TH1F("histo2501","M RSgrav gen ",50, 1.8,2.1);
00178 TH1F *histo2502 = new TH1F("histo2502","M RSgrav rec ",50, 1.8,2.1);
00179 TH1F *histo2503 = new TH1F("histo2503","M RSgrav gen ",100,1.8,2.1);
00180 TH1F *histo2504 = new TH1F("histo2504","M RSgrav rec ",100,1.8,2.1);
00181 TH1F *histo2505 = new TH1F("histo2505","M RSgrav gen ",200,1.8,2.1);
00182 TH1F *histo2506 = new TH1F("histo2506","M RSgrav rec ",200,1.8,2.1);
00183 TH1F *histo2507 = new TH1F("histo2507","CosTheta gen ",20,-1.,1.);
00184 TH1F *histo2508 = new TH1F("histo2508","CosTheta rec ",20,-1.,1.);
00185 TH1F *histo2509 = new TH1F("histo2509","CosTheta gen ",10,-1.,1.);
00186 TH1F *histo2510 = new TH1F("histo2510","CosTheta rec ",10,-1.,1.);
00187
00188 // 2TeV5
00189 TH1F *histo2600 = new TH1F("histo2600","M RSgrav gen ee ",50, 2.3,2.6);
00190 TH1F *histo2601 = new TH1F("histo2601","M RSgrav gen ",50, 2.3,2.6);
00191 TH1F *histo2602 = new TH1F("histo2602","M RSgrav rec ",50, 2.3,2.6);
00192 TH1F *histo2603 = new TH1F("histo2603","M RSgrav gen ",100,2.3,2.6);
00193 TH1F *histo2604 = new TH1F("histo2604","M RSgrav rec ",100,2.3,2.6);
00194 TH1F *histo2605 = new TH1F("histo2605","M RSgrav gen ",200,2.3,2.6);
00195 TH1F *histo2606 = new TH1F("histo2606","M RSgrav rec ",200,2.3,2.6);
00196 TH1F *histo2607 = new TH1F("histo2607","CosTheta gen ",20,-1.,1.);
00197 TH1F *histo2608 = new TH1F("histo2608","CosTheta rec ",20,-1.,1.);
00198 TH1F *histo2609 = new TH1F("histo2609","CosTheta gen ",10,-1.,1.);
00199 TH1F *histo2610 = new TH1F("histo2610","CosTheta rec ",10,-1.,1.);
00200
00201
00202 // Start main loop on all events
00203 Int_t nb = 0;
00204 Int_t nevent = (Int_t)T->GetEntries();
00205
00206 // nevent =10;
00207
00208
00209 cout << "Nombre d entrees a traiter : " << nevent << endl;
00210 for (Int_t i=0; i<nevent; i++) {
00211 nb += T->GetEntry(i);
00212
00213
00214 // Monte Carlo information
00215
00216 // generator event
00217 Short_t mc_np = 0, mc_nsp = 0, mc_nssp = 0, mc_npp = 0, mc_nspp = 0 ;
00218 mc_np = generatorEvent->getNumberOfParticles();
00219 mc_nsp = generatorEvent->getNumberOfSignalParticles();
00220 mc_nssp = generatorEvent->getNumberOfStableSignalParticles();
00221 mc_npp = generatorEvent->getNumberOfPileupParticles();
00222 mc_nspp = generatorEvent->getNumberOfStablePileupParticles();
00223 genpart=generatorEvent->getParticles();
00224 int npart=0,iRSgrav=11,ilink1=0,ilink2=0;
00225 for (int gp=0;gp<mc_np;gp++) {
00226 XANAGeneratorParticle *gpart = (XANAGeneratorParticle *)((*genpart)[gp]);
00227 if ((gpart->getPartId()==11 || gpart->getPartId()==-11) && gpart->getMo1()==12 )
00228 {
00229 if (npart==0)
00230 {
00231 // elec 1
00232 npart++;
00233 ilink1=gp;
00234 }
00235 else if (npart==1)
00236 {
00237 //elec 2
00238 npart++;
00239 ilink2=gp;
00240 }
00241 else
00242 {
00243 cout << " pas possible d'avoir 3 electrons rattaches au RSgrav " << endl;
00244 }
00245 }
00246 }
00247 XANAGeneratorParticle *gRSgrav = (XANAGeneratorParticle *)((*genpart)[iRSgrav]);
00248 XANAGeneratorParticle *gElec1 = (XANAGeneratorParticle *)((*genpart)[ilink1]);
00249 XANAGeneratorParticle *gElec2 = (XANAGeneratorParticle *)((*genpart)[ilink2]);
00250
00251 float trueMassGen=gRSgrav->getMass();
00252 float eeMassGen=RSMassGen(gElec1,gElec2);
00253 float costhetaGen = RSdistribAngGen(gElec1,gElec2);
00254
00255 histo1000->Fill( eeMassGen/1000.);
00256 histo2000->Fill( eeMassGen/1000.);
00257 histo2100->Fill( eeMassGen/1000.);
00258 histo2200->Fill( eeMassGen/1000.);
00259 histo2300->Fill( eeMassGen/1000.);
00260 histo2400->Fill( eeMassGen/1000.);
00261 histo2500->Fill( eeMassGen/1000.);
00262 histo2600->Fill( eeMassGen/1000.);
00263
00264 histo1001->Fill( trueMassGen/1000.);
00265
00266 histo2001->Fill( trueMassGen/1000.);
00267 histo2003->Fill( trueMassGen/1000.);
00268 histo2005->Fill( trueMassGen/1000.);
00269
00270 histo2101->Fill( trueMassGen/1000.);
00271 histo2103->Fill( trueMassGen/1000.);
00272 histo2105->Fill( trueMassGen/1000.);
00273
00274 histo2201->Fill( trueMassGen/1000.);
00275 histo2203->Fill( trueMassGen/1000.);
00276 histo2205->Fill( trueMassGen/1000.);
00277
00278 histo2301->Fill( trueMassGen/1000.);
00279 histo2303->Fill( trueMassGen/1000.);
00280 histo2305->Fill( trueMassGen/1000.);
00281
00282 histo2401->Fill( trueMassGen/1000.);
00283 histo2403->Fill( trueMassGen/1000.);
00284 histo2405->Fill( trueMassGen/1000.);
00285
00286 histo2501->Fill( trueMassGen/1000.);
00287 histo2503->Fill( trueMassGen/1000.);
00288 histo2505->Fill( trueMassGen/1000.);
00289
00290 histo2601->Fill( trueMassGen/1000.);
00291 histo2603->Fill( trueMassGen/1000.);
00292 histo2605->Fill( trueMassGen/1000.);
00293
00294
00295 histo1004->Fill( costhetaGen );
00296 histo1006->Fill( costhetaGen );
00297
00298 // Reconstructed event
00299
00300 // Definitions
00301 Short_t nc = 0, nh = 0, nhc = 0, npc = 0, nt = 0, nv = 0, nvt = 0;
00302 Short_t nm = 0, nelt = 0 ;
00303
00304
00305 nc = event->getNumberOfEmClusters(); clusters = event->getEmClusters();
00306 nh = event->getNumberOfTrackHits(); hits = event->getEmClusterHits();
00307 nhc = event->getNumberOfHadClusters(); hadClusters = event->getHadClusters();
00308 ns_supercluster = event->getNumberOfSuperClusters();
00309 superClusters = event->getSuperClusters();
00310 npc = event->getNumberOfPreshClusters(); preshClusters = event->getPreshClusters();
00311 nt = event->getNumberOfTracks(); tracks = event->getTracks();
00312 nv = event->getNumberOfVertices(); vertices = event->getVertices();
00313 nvt = event->getNumberOfVertexTracks();
00314 ne_candidatelectron = event->getNumberOfElectronCandidates();
00315 electrons = event->getElectronCandidates();
00316 nm = event->getNumberOfMuonCandidates(); muons = event->getMuonCandidates();
00317 nelt = event->getNumberOfElectronTracks(); electronTracks = event->getElectronTracks();
00318
00319
00320 // z vertex
00321 float zvertex=0;
00322 if (nv>0)
00323 {
00324 XANAVertex *vertexlink = (XANAVertex*)((*vertices)[0]);
00325 zvertex=vertexlink->getPosition().z();
00326 }
00327
00328
00329
00330 // electrons
00331 Int_t indexel1=-1, indexel2=-1;
00332
00333 // Selection des 2 candidats electrons les plus energetiques
00334
00335 RSSelection(indexel1, indexel2);
00336
00337 // On ne travaille qu'avec les 2 Candidats Electrons les + energetiques
00338
00339 if (indexel1>-1 && indexel2>-1)
00340 {
00341 XANAElectronCandidate *elec1 = (XANAElectronCandidate*)((*electrons)[indexel1]);
00342 XANAElectronCandidate *elec2 = (XANAElectronCandidate*)((*electrons)[indexel2]);
00343
00344 float energy1 =elec1->getSuperClusterEnergy()/elec1->getSuperCluster()->getEnergyScaleFactor();
00345 float eta1 =elec1->getSuperCluster()->getPosition().eta();
00346 float phi1 =elec1->getSuperCluster()->getPosition().phi();
00347
00348 float energy2 =elec2->getSuperClusterEnergy()/elec2->getSuperCluster()->getEnergyScaleFactor();
00349 float eta2 =elec2->getSuperCluster()->getPosition().eta();
00350 float phi2 =elec2->getSuperCluster()->getPosition().phi();
00351
00352 // Traitement de la saturation
00353 int iflag_satur=0;
00354 RSSaturation(elec1, energy1, iflag_satur);
00355 RSSaturation(elec2, energy2, iflag_satur);
00356
00357 // Association des photons
00358 float EtIsol1=0.;
00359 float EtIsol2=0.;
00360 RSAssocPhoton(elec1, energy1, EtIsol1);
00361 RSAssocPhoton(elec2, energy2, EtIsol2);
00362
00363 // Correction de l'energie pour eta
00364
00365 bool FAMOS=false;
00366 float xcor1=RSCorrectionFunc(energy1, eta1, FAMOS);
00367 float xcor2=RSCorrectionFunc(energy2, eta2, FAMOS);
00368 xcor1=1./xcor1;
00369 xcor2=1./xcor2;
00370 energy1*=xcor1;
00371 energy2*=xcor2;
00372
00373 // Correction de la position du vertex
00374 RSZvertexCorrection(zvertex,eta1);
00375 RSZvertexCorrection(zvertex,eta2);
00376
00377 // Candidat RSElec
00378
00379 RSElec *cElec1 = new RSElec(elec1,energy1,eta1,phi1,EtIsol1);
00380 RSElec *cElec2 = new RSElec(elec2,energy2,eta2,phi2,EtIsol2);
00381
00382 // Masse Reconstruite
00383 float eeMassRec=RSMassRec(cElec1,cElec2);
00384
00385 // Cut en iso (H/E pas encore dispo dans FAMOS 1_2_0)
00386 if ( cElec1->getElecIsol()< 0.02* cElec1->getElecEt() &&
00387 cElec2->getElecIsol()< 0.02* cElec2->getElecEt() )
00388 {
00389 float costhetaRec = RSdistribAngRec(cElec1,cElec2);
00390
00391 histo1002->Fill( eeMassRec /1000. );
00392 histo1003->Fill( trueMassGen-eeMassRec);
00393
00394 histo1005->Fill(costhetaRec);
00395 histo1007->Fill(costhetaRec);
00396 histo1008->Fill( costhetaGen-costhetaRec);
00397 histo1009->Fill( costhetaGen-costhetaRec);
00398
00399 histo2002->Fill( eeMassRec /1000. );
00400 histo2004->Fill( eeMassRec /1000. );
00401 histo2006->Fill( eeMassRec /1000. );
00402
00403 histo2102->Fill( eeMassRec /1000. );
00404 histo2104->Fill( eeMassRec /1000. );
00405 histo2106->Fill( eeMassRec /1000. );
00406
00407 histo2202->Fill( eeMassRec /1000. );
00408 histo2204->Fill( eeMassRec /1000. );
00409 histo2206->Fill( eeMassRec /1000. );
00410
00411 histo2302->Fill( eeMassRec /1000. );
00412 histo2304->Fill( eeMassRec /1000. );
00413 histo2306->Fill( eeMassRec /1000. );
00414
00415 histo2402->Fill( eeMassRec /1000. );
00416 histo2404->Fill( eeMassRec /1000. );
00417 histo2406->Fill( eeMassRec /1000. );
00418
00419 histo2502->Fill( eeMassRec /1000. );
00420 histo2504->Fill( eeMassRec /1000. );
00421 histo2506->Fill( eeMassRec /1000. );
00422
00423 histo2602->Fill( eeMassRec /1000. );
00424 histo2604->Fill( eeMassRec /1000. );
00425 histo2606->Fill( eeMassRec /1000. );
00426
00427 if (725<eeMassRec && eeMassRec<775)
00428 {
00429 histo2007->Fill( costhetaGen );
00430 histo2008->Fill( costhetaRec );
00431 histo2009->Fill( costhetaGen );
00432 histo2010->Fill( costhetaRec );
00433 }
00434 else if (975<eeMassRec && eeMassRec<1025)
00435 {
00436 histo2107->Fill( costhetaGen );
00437 histo2108->Fill( costhetaRec );
00438 histo2109->Fill( costhetaGen );
00439 histo2110->Fill( costhetaRec );
00440 }
00441 else if (1225<eeMassRec && eeMassRec<1275)
00442 {
00443 histo2207->Fill( costhetaGen );
00444 histo2208->Fill( costhetaRec );
00445 histo2209->Fill( costhetaGen );
00446 histo2210->Fill( costhetaRec );
00447 }
00448 else if (1475<eeMassRec && eeMassRec<1525)
00449 {
00450 histo2307->Fill( costhetaGen );
00451 histo2308->Fill( costhetaRec );
00452 histo2309->Fill( costhetaGen );
00453 histo2310->Fill( costhetaRec );
00454 }
00455 else if (1725<eeMassRec && eeMassRec<1775)
00456 {
00457 histo2407->Fill( costhetaGen );
00458 histo2408->Fill( costhetaRec );
00459 histo2409->Fill( costhetaGen );
00460 histo2410->Fill( costhetaRec );
00461 }
00462 else if (1975<eeMassRec && eeMassRec<2025)
00463 {
00464 histo2507->Fill( costhetaGen );
00465 histo2508->Fill( costhetaRec );
00466 histo2509->Fill( costhetaGen );
00467 histo2510->Fill( costhetaRec );
00468 }
00469 else if (2475<eeMassRec && eeMassRec<2525)
00470 {
00471 histo2607->Fill( costhetaGen );
00472 histo2608->Fill( costhetaRec );
00473 histo2609->Fill( costhetaGen );
00474 histo2610->Fill( costhetaRec );
00475 }
00476
00477
00478
00479 }
00480
00481
00482
00483 }
00484
00485
00486 event->clear();
00487 generatorEvent->clear();
00488 geantEvent->clear();
00489 }
00490
00491 // f.Close();
00492 //
00493 TFile *filehisto = new TFile("Mass_0.root","RECREATE");
00494
00495 histo1000->Write();
00496 histo1001->Write();
00497 histo1002->Write();
00498 histo1003->Write();
00499 histo1004->Write();
00500 histo1005->Write();
00501 histo1006->Write();
00502 histo1007->Write();
00503 histo1008->Write();
00504 histo1009->Write();
00505
00506
00507 histo2000->Write();
00508 histo2001->Write();
00509 histo2002->Write();
00510 histo2003->Write();
00511 histo2004->Write();
00512 histo2005->Write();
00513 histo2006->Write();
00514 histo2007->Write();
00515 histo2008->Write();
00516 histo2009->Write();
00517 histo2010->Write();
00518
00519 histo2100->Write();
00520 histo2101->Write();
00521 histo2102->Write();
00522 histo2103->Write();
00523 histo2104->Write();
00524 histo2105->Write();
00525 histo2106->Write();
00526 histo2107->Write();
00527 histo2108->Write();
00528 histo2109->Write();
00529 histo2110->Write();
00530
00531 histo2200->Write();
00532 histo2201->Write();
00533 histo2202->Write();
00534 histo2203->Write();
00535 histo2204->Write();
00536 histo2205->Write();
00537 histo2206->Write();
00538 histo2207->Write();
00539 histo2208->Write();
00540 histo2209->Write();
00541 histo2210->Write();
00542
00543 histo2300->Write();
00544 histo2301->Write();
00545 histo2302->Write();
00546 histo2303->Write();
00547 histo2304->Write();
00548 histo2305->Write();
00549 histo2306->Write();
00550 histo2307->Write();
00551 histo2308->Write();
00552 histo2309->Write();
00553 histo2310->Write();
00554
00555 histo2400->Write();
00556 histo2401->Write();
00557 histo2402->Write();
00558 histo2403->Write();
00559 histo2404->Write();
00560 histo2405->Write();
00561 histo2406->Write();
00562 histo2407->Write();
00563 histo2408->Write();
00564 histo2409->Write();
00565 histo2410->Write();
00566
00567 histo2500->Write();
00568 histo2501->Write();
00569 histo2502->Write();
00570 histo2503->Write();
00571 histo2504->Write();
00572 histo2505->Write();
00573 histo2506->Write();
00574 histo2507->Write();
00575 histo2508->Write();
00576 histo2509->Write();
00577 histo2510->Write();
00578
00579 histo2600->Write();
00580 histo2601->Write();
00581 histo2602->Write();
00582 histo2603->Write();
00583 histo2604->Write();
00584 histo2605->Write();
00585 histo2606->Write();
00586 histo2607->Write();
00587 histo2608->Write();
00588 histo2609->Write();
00589 histo2610->Write();
00590
00591
00592 filehisto->Close();
00593
00594
00595 }
|
|
|
Definition at line 50 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 57 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 58 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 49 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 51 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 54 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 59 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 48 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 53 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 52 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 55 of file rsAnalc0p01_o.cpp. |
|
|
Definition at line 56 of file rsAnalc0p01_o.cpp. |
1.3.5