Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

rsAnalc0p1.cpp File Reference

#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


Function Documentation

int main int  argc,
char **  argv
 

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 }


Variable Documentation

TObjArray* clusters = 0
 

Definition at line 48 of file rsAnalc0p1.cpp.

TObjArray* electrons = 0
 

Definition at line 55 of file rsAnalc0p1.cpp.

TObjArray* electronTracks = 0
 

Definition at line 56 of file rsAnalc0p1.cpp.

TObjArray* genpart = 0
 

Definition at line 47 of file rsAnalc0p1.cpp.

TObjArray* hadClusters = 0
 

Definition at line 49 of file rsAnalc0p1.cpp.

TRefArray* hits = 0
 

Definition at line 52 of file rsAnalc0p1.cpp.

TObjArray* muons = 0
 

Definition at line 57 of file rsAnalc0p1.cpp.

Short_t ne_candidatelectron = 0ns_supercluster=0
 

Definition at line 46 of file rsAnalc0p1.cpp.

TObjArray* preshClusters = 0
 

Definition at line 51 of file rsAnalc0p1.cpp.

TObjArray* superClusters = 0
 

Definition at line 50 of file rsAnalc0p1.cpp.

TObjArray* tracks = 0
 

Definition at line 53 of file rsAnalc0p1.cpp.

TObjArray* vertices = 0
 

Definition at line 54 of file rsAnalc0p1.cpp.


Generated on Thu Oct 27 21:59:47 2005 for XANADOO by doxygen 1.3.5